软件工程复习提纲

一、概念:

软件生存周期:开始研发~停止使用,开发策划、需求分析、总体设计、详细设计、编写程序、测试、运行维护。

软件工程:工程化原则、经济的手段、有效运行的可靠软件。

内聚性:单个模块关联度,偶然、逻辑、时间、过程、通信、顺序、功能。

耦合:模块间的依赖程度,相依、混合、数据、控制、内容、环境。

扇出

扇入

白盒测试:内部执行路径,逻辑覆盖、循环、路径。

黑盒法:需求说明,等价类划分、边界值。

集成测试:在单元测试基础上,测试模块间的组合。

多态性:多种类型的对象-相同的函数-不同的结果。

抽象

封装:使属性和服务紧密结合,接口>数据结构、算法。

:相同属性和服务的抽象。

对象:客观事物的抽象,表示、属性、服务。

继承:父类、子类间共享数据结构、方法。

路径覆盖

判定/条件覆盖

条件组合覆盖

软件维护:因业务需求改变、环境改变而进行微调。

 

二、问答

1.简述软件危机发生的原因。

(1)   软件开发规模逐渐变大、复杂度和软件需求量不断变大;

(2)   没有按照工程化方式运作,缺乏统一的标准、准则、规范的指导方法;

(3)   需求分析和设计考虑不周,开发、维护、管理不到位;

(4)   开发人员间、开发人员与用户间交流不够,文档资料不完备;

(5)   测试调试不规范、不细致,软件质量不达标;

(6)   在软件运行过程中,忽视了正常的维护和管理。

2.解决软件危机的措施

(1)   技术方法:运用软件工程的技术、方法、标准规范;

(2)   开发工具:先进高效的软件工具,采取切实可行的实施策略;

(3)   组织管理:组织高效、管理制度和标准严格规范、职责明确、质量保证、团结互助、齐心协力、注重文档及服务。

3.软件生存周期? 软件生存周期各阶段如何划分

(1)   软件生存周期:开始研发~停止使用;

(2)   阶段划分:开发策划、需求分析、总体分析、详细设计、编写程序、测试、运行维护。

4.瀑布模型(适用于:需求明确、技术成熟、工程管理严格)

(1)   计划时期:问题定义、可行性研究、需求分析;

开发时期:概要设计、详细设计、软件实现、软件测试;

运行时期:维护,调整。

(2)   特点:开发过程顺序性;

严格要求保证质量;

统筹兼顾,不过早编程;

5. 需求分析阶段的基本任务是什么?


(1)   确定总体目标及组织结构;

(2)   深入领域分析---业务流程图;

(3)   分析数据流程---数据流图;

(4)   确定功能需求---功能结构图、点列表;

(5)   获取性能需求---性能点列表;

(6)   明确处理关系---接口列表;

(7)   确定系统运行环境及界面;

(8)   完善开发计划及新系统方案;

(9)   验证、确认需求,编写需求文档。


6. 软件设计分为两个阶段:总体设计和详细设计的主要任务

总体设计


(1)   软件系统总体结构及模块结构设计;

(2)   软件处理流程设计;

(3)   确定软件的功能并分配;

(4)   数据结构总体设计;

(5)   网络及接口概要设计;

(6)   确定具体实现方案;

(7)   出错处理概要设计;

(8)   性能可靠性及安全保密概要设计;

(9)   文档及维护概要设计;


详细设计:


(1)   模块的算法设计;

(2)   模块内的数据结构设计;

(3)   模块接口设计;

(4)   其他相关设计(数据库、代码、网络、I/O格式、界面);

(5)   模块测试用例设计;

(6)   编写详细设计文档;

(7)   详细设计评审及实现方案;

 


7. 简述面向对象系统开发过程。


(1)   分析:论域分析、应用分析;

(2)   高层设计:顶层视图;

(3)   开发类;

(4)   建立实例;

(5)   组装测试;

(6)   维护


8.面向对象分析(OOA)的任务


(1)   掌握业务需求细节;

(2)   标识类(属性、操作);

(3)   分析、定义类的层次关系;

(4)   对象间的连接;

(5)   确定模型化对象的行为;

(6)   建立系统模型;


9.OOD的基本任务

(1)   系统设计(划分子系统);

(2)   对象设计(类的属性、操作);

(3)   设计优化(提高效率、建立良好的继承关系)。

10.UML组成

(1)    

11.编程主要应该遵循的编程风格及规范有那些


(1)   源程序文档化

标识符命名---见名知意;

注释---注释行1/5~1/3;

标准书写格式

(2)   数据说明

(3)   语句构造:

规范的语言;

标准的控制结构;

避免复杂的循环、嵌套;

(4)   输入输出

(5)   程序效率、安全可靠性。


12.软件测试的过程是什么?

测试-结果分析-排错-可靠性分析

单元测试-集成测试-有效性测试-系统测试-验收测试

13.软件维护类型

(1)   完善性维护:功能的扩充与改进;

(2)   适应性维护:应对新的环境(软硬件配置,数据环境);

(3)   纠错性维护;

(4)   预防性维护。

14.软件项目管理的主要职能


(1)   制订计划;

(2)   建立组织;

(3)   配备人员;

(4)   动员指导;

(5)   监督检验。


15.软件开发组的组织形式

组长制、民主制、层次式。

16.软件项目的风险管理

风险的识别、评估、预防、监控

 

三、设计


(1)系统的数据流、数据字典或用例图及类图

1.教材购销系统 

2.图书管理

3.网上购物系统

4.考务系统

(2)  系统测试

1.白盒测试(参考复旦PPT)

2.等价类划分(参考网上一些案例)

你可能感兴趣的:(软件工程)