软件工程期末考试重点《软件工程》期末复习重点第一章软件工程1. 什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2. 常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证的。
缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型1优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
D.螺旋模型优点:客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点:风险评估依赖专家。
建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
E.喷泉模型优点:各个阶段没有明显的界限,开发人员可以同步进行开发。
可提高软件项目开发效率,节省开发时间。
缺点:于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
第三章结构化分析1. SA即结构化分析,是一种面向数据流的分析方法。
2. 结构化分析实质上是一种建模的活动,主要建立三种模型:实体关系图ERD流图DFD转换图STD。
最后产生的结果是软件需求规格说明。
3. 数据流图是一种描绘信息流和数据从输入移动到输出的过程中所经受的变换的图形化技术。
4. 状态转换图通过描绘系统的状态及引起系统状态转换的事件,表示系统的行为,从而提供了行为建模的机制。
5. 获取需求进行需求分析的方法很多,其中,快速建立软件原型是最准确、最有效和最强大的需求分析技术。
6. SA法中,有一个处理过程逻辑不易用语言表达清楚,最好是用判定表或判定树来描述。
7. 4GT即第四代技术,包括众多数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言。
8. 数据流图。
注意分层画:先顶层DFD,再0层DFD。
9. 数据字典。
只需给出数据元素的组成即可。
第四章结构化设计1. 软件设计的目标是设计出所要开发的软件的模型,通常把软件设计工作划分为概要设计和详细设计两个阶段。
22. 软件概要设计结束后得到的是优化后的软件结构图。
3. 什么是模块化?模块化就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
模块独立性的衡量标准是耦合和内聚。
4. 什么是耦合,每种耦合各自的特点。
什么是内聚,每种内聚各自的特点。
A.耦合是对一个软件结构内不同模块之间互连程度的度量。
非直接耦合:模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
这种耦合的模块独立性最强。
数据耦合:在两个模块间往返传递的只有数据,这种耦合称数据耦合。
在模块间只有数据传输,模块接口简单。
在不可避免的耦合中是耦合力最低的,也是较理想的耦合。
标记耦合:指两个模块之间传递的是数据结构。
其实传递的是这个数据结构的地址。
两个模块必须清楚这些数据结构,并按要求对其进行操作,这样就降低了可理解性。
控制耦合:如果一个模块通过传送控制信息,明显地控制选择另一模块的功能就是控制耦合。
公共耦合:允许两个以上模块引用或访问同一个公用数据区。
内容耦合:当一个模块使用另一个模块内部的数据或信息时,或者转移进入另一个模块中时,产生模块间内容耦合。
B.内聚用来衡量一个模块内各个元素彼此结合的紧密程度。
偶然内聚:一个模块完成一组任务,任务之间的关系很松散。
缺点:可理解性差,可修改性差。
逻辑内聚:这种模块把几种功能组合在一起,每次被调用时,则传递给模块的判定参数来确定该模块应执行哪一种功能。
V88o 缺点:增强了耦合程度,不易修改,效率低。
时间内聚:模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。
过程内聚:一个模块内各处理成分的动作各不相同,但它们都受一个控制流的支配,且决定了它们的执行次序。
通信内聚:模块中的所有元素都使用相同输入数据,和/或产生相同输出数据。
顺序内聚:一个模块能完成多个操作,前一个操作处理的输出数据是下一个操作处理的输入数据,模块中各成份的工作是有次序的,各成份的关系也较紧密,则称为顺序内聚。
功能内聚:一个模块内的所有成分的处理动作全部为完成某个功能,且只执行一个功能,缺一不可,称为功能内聚。
5. 模块优化的目标是高内聚低耦合。
最高内聚是功能内聚。
36. 面向数据流的设计方法中把数据流图中数据流分为两种:变换流和事务流。
7. 过程设计的工具有哪些。
这些工具各自的特点。
层次图 HIPO图结构图8. 判定树。
9. 程序流程图。
第五章结构化实现1.什么是白盒测试?白盒测试主要采用的技术有哪些?几种白盒测试方法各自的基本思想。
白盒测试,又称结构测试、逻辑驱动测试。
是对软件的过程性细节做细致的检查。
按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
白盒测试的方法:代码检查法、静态结构分析法、静态质量度量法逻辑覆盖法、基本路径测试法等基本思想:逻辑覆盖是通过采用流程图来设计测试用例,它考察的重点是图中的判定框,因为这些判定通常是与选择结构有关或是与循环结构有关,是决定程序结构的关键成分。
基本路径测试是通过分析流图的环形复杂度,导出基本可执行路径集合,从而设计测试用例的方法。
2. 什么是黑盒测试?黑盒测试主要采用的技术有哪些?几种黑盒测试方法各自的基本思想。
黑盒测试,又称功能测试。
把测试对象看作是一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只需依据程序的需求规格说明书来检查程序的功能是否符合它的功能说明。
黑盒测试方法:穷举输入测试等价类划分法边界值分析法、错误推测法基本思想:因果图法等价类划分法是把输入数据的可能值划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以少量的代表性测试数据,来取得较好的测试结果。
边界值分析是对等价类划分方法的补充,不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
错误推测法就是猜测被测程序在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。
因果图法是借助图形来设计测试用例的一种系统方法。
3. 软件测试方法从是否执行程序的角度可划分为静态测试和动态测试;从是否关心软件内部结构和具体实现的角度可划分黑盒测试和白盒测试。
4. 什么静态测试。
什么是动态测试。
4静态测试:是指测试不运行的部分,只检查和审核。
动态测试:指通常意义上的测试,使用和运行软件。
5. 测试步骤:单元测试、集成测试、确认测试和系统测试。
6. 单元测试一般以白盒测试为主,测试的依据是模块的功能规格说明。
7. 集成测试中最常用的是黑盒测试,辅以白盒测试。
8. 逻辑覆盖测试法是一种白盒测试方法,几种不同覆盖标准的区别。
发现错误的能力 1 2 3 4 5 9.标准语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖含义每条语句至少执行一次每一判断的每个分支至少执行一次每一判定中的每个条件,分别按‘真’‘假’至少个执行一次同时满足判定覆盖和条件覆盖的要求求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次测试用例主要输入数据和预期输出结果组成。
第六章面向对象方法学导论1. 面向对象模型主要有三种:对象模型、动态模型和功能模型。
2. 面向对象的四个特点:抽象、继承、封装和多态。
3. 面向对象方法的主要特点?使人们更好地认识客观世界。
能很好地适应需求变化。
容易实现软件复用。
系统易于维护和修改。
第七章面向对象分析1. OOA即面向对象分析2. 面向对象分析阶段主要建立的三种模型:对象模型、功能模型、动态模型。
3. 用例建模的主要目标有哪些?将需求规约变为可视化模型,并得到客户确认。
给出清晰、一致的关于系统“做什么”的描述,确定系统的功能要求。
提供从功能需求到系统分析、设计、实现各阶段的度量标准。
为最终系统测试提供给制,据此验证系统是否达到功能要求。
为项目目标进度管理和风险管理提供依据。
4. 用例图。
注意其中的依赖关系。
5. 类图。
注意其中每个对象类的属性和操作。
第八章面向对象设计1. OOD即面向对象设计2. OOD体系结构主要包括四部分:设计问题论域部分:设计构造为底层应用建立模型的类和对象,细化分析结果。
设计人机交互部分:设计有关类接口视图的用户模型的类和对象,设计用户界面。
设计任务管理部分:确定系统资源的分配,设计用于系统中类行为控制的对象或类。
设计数据管理部分:确定持久对象的存储,将对象转换成数据库记录或表格。
第九章面向对象实现djsalkdf5泳道用纵向矩形表示生命线画作一个方格,一条虚线从上而下,通过底部边界的中心,生命线对象的名字放置在方格里第十章 UML1. UML中的关系主要有哪四种?它们分别使用什么符号表示?依赖、关联、泛化、实现2. UML共有九个图,每个图主要描述什么?主要元素有哪些,它们的符号又如何表示?1用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。