软件工程基础.doc

上传人:壹****1 文档编号:560456870 上传时间:2023-06-28 格式:DOC 页数:5 大小:41.50KB
返回 下载 相关 举报
软件工程基础.doc_第1页
第1页 / 共5页
软件工程基础.doc_第2页
第2页 / 共5页
软件工程基础.doc_第3页
第3页 / 共5页
软件工程基础.doc_第4页
第4页 / 共5页
软件工程基础.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件工程基础.doc》由会员分享,可在线阅读,更多相关《软件工程基础.doc(5页珍藏版)》请在金锄头文库上搜索。

1、LWSX软件工程基础一、基本概念:v 软件(Software):软件是一种产品(逻辑产品),指的是计算机中程序及其说明程序的各种文档。“程序”是计算任务的处理对象和处理规则的描述;“文档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。v 软件危机的表现:1、软件需求的增长得不到满足2、软件开发成本和进度无法控制3、软件质量难以保证4、软件不可维护或维护程度非常低5、软件成本不断提高6、软件开发生产效率的提高赶不上硬件的发展和应用需求的增长v 软件工程(Software Engineering):用工程化的方法、科学知识和技术原理来定义、开发、维护软件的一门学科。v 软件工程的目标:付

2、出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。v 软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。v 软件生存周期:是指一个软件从提出开发要求开始直到该软件报废(停止运行)为止的整个时期。v 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。v 常用的模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。主要包括问题定义及可行性分析、项目开发计划、需求分析、概要设计、详细设计、编

3、码、测试和维护几个阶段。例:下列描述中正确的是( )A、程序就是软件B、软件开发不受计算机系统的限制C、软件既是逻辑实体,又是物理实体D、软件是程序、数据与相关文档的集合二、软件可行性研究与项目开发计划:v 软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。v 可行性研究的任务:A、技术可行性B、经济可行性C、社会可行性(法律可行性)v 可行性研究的具体步骤:1、确定项目规模和目标2、研究正在运行的系统3、建立新系统的高层逻辑模型4、导出和评价各种方案5、推荐可行的方案6、编写可行性研究报告三、软件需求分析:v 需求分析是指开发人员要准确理解用户的

4、要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。v 需求分析的基本任务:1、问题识别A、功能需求B、性能需求C、环境需求D、用户界面需求2、分析与综合,导出软件的逻辑模型3、编写文档(需求规格说明书)v 需求分析的方法:1、结构化分析(Structured Analysis):是面向数据流进行需求分析的方法。SA方法利用图形等半形式化的描述方式表达需求,主要描述工具:A、数据流图(DFD):是SA方法中用于表示系统逻辑模型的一种工具,以图形的方式描绘数据在系统中流动和处理的过程。B、数据字典(DD):用以定义数据

5、流图中的各个成分的具体含义,为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。C、描述加工逻辑的结构化语言、判定表、判定树2、IDEF方法(是 ICAM Definition的缩写):是一种用于进行复杂系统分析和设计的方法,是在结构化分析和设计技术的基础上提出来的。3、面向对象分析方法(OOP):将客观世界的事物抽象为对象,通过属性和方法描述对象的状态和行为,具有继承、封装和多态性等特征。例:软件开发的结构化分析方法中,常用的描述软件功能需求的工具是( )A、业务流程图、处理说明 B、软件流程图、模块说明C、数据流程图、数据字典 D、系统流程图、程序编码四、软件概要设计:将软件需

6、求转换为软件表示的过程。v 软件概要设计的基本任务:1、设计软件系统结构2、数据结构及数据库设计(概要设计、逻辑设计、物理设计):3、编写概要设计文档:4、评审:v 软件设计的方法:模块化:模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等。v 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。其度量标准是:耦合性和内聚性v 耦合性也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。v 内聚性也称块内联系,指模块功能强度的度量

7、,即一个模块内部各个元素(语句之间、程序段之间)彼此结合的紧密程度的度量。v 将软件系统划分模块时,尽量做到高内聚低耦合。例:为了使模块尽可能独立,要求( )A、模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强B、模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱C、模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱D、模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强五、软件详细设计:主要确定每个模块具体执行过程v 软件详细设计的基本任务:1、为每个模块进行详细的算法设计:2、为模块内的数据结构进行设计:3、对数据库进行物理设计:4、输入、输出格式设计5、编写详细设计说明书:6、评

8、审:v 详细设计常用三种工具:图形(流程图、盒图、问题分析图PAD)、表格(判定表)、语言(过程设计语言,又称为伪码)六、软件编码:主要是将详细设计得到的处理过程描述转换为基于某种计算机语言的程序常用的计算机语言:Pascal 、C、C+、Java等七、软件测试:软件测试代表了需求分析、设计、编码的最终复审。软件测试贯穿于软件开发的全过程。v 软件测试的目的:1、软件测试是为了尽可能多地发现程序中的错误而执行程序的过程。2、一个好的测试用例能够发现至今尚未发现的错误。3、一个成功的测试是发现了至今尚未发现的错误的测试。v 软件测试的原则:1、测试用例应由输入数据和预期的输出数据两部分组成。2、

9、测试用例不仅选用合理的输入数据,还要选择不合理的输入数据3、除了检查程序是否做了它应该做的事4、应制定测试计划并严格执行,排除随意性5、长期保留测试用例6、对发现错误较多的程序段,应进行更深入的测试7、程序员避免测试自己的程序v 软件测试方法:1、静态测试:是指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。2、动态测试:是指通过运行程序发现错误A、黑盒测试法(功能测试):主要对软件的接口进行测试,依据需求规格说明书,检查程序是否满足功能要求。常用的技术是等价类划分法、边界值分析法、错误推测法、因果图法、综合策略法B、白盒测试法(结构测试):主要测试程序的内

10、部结构和处理过程。常用的技术是语句覆盖、条件覆盖、路径覆盖、判定覆盖等v 软件测试的实施:1、单元测试:单元测试是对软件设计的最小单位模块(程序单元)进行正确性检验测试,主要针对模块的以下五个基本特征进行测试:A、模块接口B、局部数据结构:C、重要的执行路径:D、错误处理测试:E、边界条件:2、集成测试:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。主要方法有两种:非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测

11、试,每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。3、确认测试:确认测试又称有效性测试,它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合,因而需求规格说明是确认测试的基础。4、系统测试:系统测试是通过测试确认的软件作为整个计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试。v 程序调试:调试是在进行了成功的测试之后才开始的工作,目的是确定错误的原因和位置,并改正错误,又称为纠错。例:软件测试的目的是( )A、证明软件的正确性 B、找出软件系统中存在的所有错误C、尽

12、可能多地发现软件系统中的错误 D、证明软件系统中存在错误在软件测试方法中,黑箱测试法和白箱测试法是常用的方法,其中黑箱测试法主要是用于测试( )A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑八、软件维护: 软件投入使用后进行的阶段,是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。主要是因为:隐含的错误要修改;新增的功能要加入进去;环境的变化对程序进行变动等。v 软件维护的内容有四类:1、校正性维护:为了识别和纠正错误,修改软件性能上的缺陷,其占整个维护工作的 21%2、适应性维护:为了使应用软件适应环境(硬件、系统软件、数据)的变化而修改软件的过程称为适应性维护,其占整个维护工作的25%3、完善性维护:增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护,其占整个维护工作的 50%4、预防性维护:为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护,其占整个维护工作的 4%例:软件维护是指( )A、维护软件正常运行B、软件的配置更新C、对软件的改进、适应和完善D、软件开发期的一个阶段软件生命周期中所花费用最多的阶段是( )A、详细设计B、软件编码C、软件测试D、软件维护

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号