软件工程复习

发布 2022-01-11 22:25:28 阅读 9333

第一章。

1、 软件产品的概念、特征p1-3

软件就是一个信息转换器,它的功能不外是产生、管理、获取、修改、显示或转换信息。它担任着双重角色,首先,它是一种产品,表达了由计算机硬件体现的计算潜能;其次,它又是开发和运行产品的载体,是计算机控制(操作系统)、信息通信(网络)的基础,也是创建和控制其他软件(软件工具和开发环境)的基础。

软件产品的特征:

1) 软件是一种逻辑实体,具有抽象性。 (2) 软件的生产与硬件不同。

(3) 软件产品不会“磨损”

2、 软件危机的原因、解决的途经p5-7

软件危机的原因:

从客观上来看,软件不同于硬件,它的生产过程和产品都具有明显的“不可视”特征,这就导致在完成编码并且上机运行之前,对于软件开发过程的进展情况较难衡量,软件产品的质量也较难进行先期评价,因此,对于开发软件的过程进行管理和控制比较困难。

从主观上分析,导致软件危机发生的另一大原因,可以归于在计算机系统发展的早期,软件开发的“个体化”特点,主要表现为忽视软件需求分析的重要性、忽视软件的可理解性、文档不完备、轻视软件的可维护性、过分强调编码技巧等等方面。

解决的途经:

从管理层面上考虑,应当注意推广和使用在实践中总结出来的开发软件的成功的技术和方法,并且探索更好的、更有效的技术和方法,注意积累软件开发过程中的经验数据财富,逐步消除在计算机系统早期发展阶段形成的一些错误概念和做法。

从技术角度考虑,应当开发和使用更好的软件开发工具,提高软件开发效率和开发工作过程的规范化程度。

3、 软件工程的定义、要素、基本原则p8-9

软件工程是指导软件开发和维护的工程学科。

将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程。即将工程化方法应用于软件开发与维护过程中。

软件工程应当包括三个要素:方法、工具和过程。

基本原则:1) 用分阶段的生命周期计划严格管理软件工程过程。

2) 坚持在软件工程过程中进行阶段评审。

3) 实行严格的产品控制。

4) 采用现代的开发技术进行软件的设计与开发。

5) 工作结果应当是能够清楚地审查的。

6) 开发小组的人员应该“少而精”。

7) 承认不断改进软件工程实践的必要性。

4、 软件工程过程的层次划分、软件工程的四种基本活动p10-11

软件工程过程的层次划分:

软件工程的四种基本活动:

1) 软件规格说明(2) 软件开发(3) 软件确认(4) 软件演进。

5、 软件工程过程模型的概念及几种常见的软件过程模型p12-18

软件工程过程模型的概念:用以覆盖软件开发过程中的基本活动,确定所涉及的过程、方法、工具的策略称为软件工程过程模型。

常见的软件过程模型:线性顺序模型、原型模型、快速应用开发模型、演化软件过程模型。

6、 软件重用技术p18-19

包括知识重用、方法重用、软件成分重用。

7、 软件工程活动可以大略划分为几个阶段?p25-26

软件工程的三个阶段: 定义、开发、检验交付与维护。

第二章。8、 可行性研究与分析主要从哪几个方面考虑p28

1)经济可行性 (2) 技术可行性 (3)法律可行性 (4)对不同的方案进行评估抉择。

第三章。9、 需求分析的任务、步骤、原则p38-40

需求分析的主要任务:是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求。

需求分析的步骤:

1)、通过调查研究,获取用户的需求。

2)、除去非本质因素,确定系统的真正需求。

3)、描述需求,建立系统的逻辑模型。

4)、书写需求说明书,进行需求复审。

需求分析都必须遵循以下基本原则:

(1) 能够表达和理解问题的数据域和功能域。

(2) 能够将复杂问题分解化简。

(3) 能够给出系统的逻辑表示和物理表示。

10、 数据建模、功能建模、行为建模相关概念、方法p40-51

要建立系统的实体模型,通常可按如下步骤进行:

1) 对系统的数据域和功能域进行分析,确定系统中所涉及的实体。

2) 确定系统中各实体之间的联系。

3) 确定各实体及联系的属性。

数据建模的其他图形工具

1. 层次方框图。

2. warnier图。

数据流图是描述软件系统中数据处理过程的一种有力的图形工具。

分层数据流模型的建立方法:1. 建立顶层数据流图 2. 数据流图的分层细化。

行为模型的常用的分析方法有:状态迁移图、时序图和petri网。

11、 判定表、判定树的使用p53-54(没什么说)

12、 结构化需求分析技术p55

结构化分析方法,简称sa方法,一种面向数据流进行需求分析的方法。

13、 软件需求规格说明主要内容?从哪几个方面对需求进行验证?p57-58

软件需求规格说明主要内容:

1) 引言(2) 项目概述(3) 具体需求。

哪几个方面对需求进行验证:

1)验证需求的一致性 (2)验证需求的完整性。

3)验证需求的有效性 (4)验证需求的现实性

第四章。14、 模块化、耦合性、内聚性、抽象、信息隐蔽概念p60-64

模块化概念: 模块化是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能。

耦合性概念:耦合性是对一个软件结构内部不同模块间联系紧密程度的度量指标。

内聚性概念:内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。

抽象概念: 抽象是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。

信息隐蔽概念:信息隐蔽是指一个模块将自身的内部信息向其他模块隐藏起来,以避免其他模块不恰当的访问和修改,只有对那些为了完成系统功能所必须的数据交换才被允许在模块间进行。

15、 体系结构设计的主要任务、采用的工具、设计的原则p64-69

体系结构设计的主要任务:

1. 软件体系结构设计2. 数据结构和数据库设计。

3. 系统可靠性、安全性设计 4. 编写文档,参加复审。

体系结构设计采用的工具: hipo图结构图。

体系结构设计的原则:

1) 降低模块的耦合性,提高模块的内聚性。

2) 保持适中的模块规模。(模块中的语句数最好保持在10~100之间)

3) 模块应具有高扇入和适当的扇出。

4) 软件结构中的深度和宽度不宜过大。

5) 模块的作用域应处于其控制域范围之内。

6) 尽量降低模块的接口复杂度。

16、 数据流图的类型、作用及设计p70-74

数据流图的类型: 变换型数据流图事务型数据流图。

数据流图的作用: 描述软件系统中数据处理过程的一种有力的图形工具。

17、 详细设计的主要任务、采用的工具p74-86

主要任务:1) 确定每个模块的具体算法。

2) 确定每个模块的内部数据结构及数据库的物理结构。

3) 确定模块接口的具体细节。

4) 为每个模块设计一组测试用例。

5) 编写文档,参加复审。

采用的工具: 程序流程图 n-s图 pad图 pdl语言。

第五章。18、 程序设计语言的分类、特性p88-92

分类: 面向机器语言和高级语言两大类。

特性: 程序设计语言具有心理、工程和技术三大特性。

19、 软件效率、程序复杂度及度量方法p95-99

软件效率:主要取决于需求分析阶段模型的生成、设计阶段算法的选择和编码阶段语句的实现。

程序复杂度:程序复杂度主要研究对象是程序结构的清晰性和非结构化程度。

度量方法:环形复杂度,文本复杂度,交点复杂度。

第六章。20、 软件测试的目的和基本原则p100-101

软件测试的目的:测试的目的是在软件投入生产运行前,尽可能多的发现软件中的错误,以便及时纠正,避免在软件运行时才暴露出错误而造成无法弥补的损失。

21、 软件测试的方法、白盒测试技术和黑盒测试技术有哪些?测试用例设计p104-115

软件测试的方法:分析方法(包括静态分析法与白盒法)与非分析方法(称黑盒法)。

白盒测试技术:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖点覆盖,边覆盖,路径覆盖。

黑盒测试技术:等价类及其划分,边界值分析,因果图法,错误推测法。

22、 软件系统测试步骤及采用的方法p118-124

软件系统测试步骤:单元测试,集成测试,确认测试,系统测试。

采用的方法:

第七章。23、 对象、类、消息、方法、继承性、封装性、多态性的概念p132-139

对象: 对象是指现实世界或者概念世界中的任何事物。

类: 类是具有相同结构特征的对象的结构抽象。

消息: 消息用来请求对象执行某一处理或回答某些信息的要求。

方法: 方法是类中操作的实现过程。

继承性: 子类自动继承父类的所有**并且可以进行任意的覆盖和扩充。

封装性: 程序将存储数据的变量和对数据的处理封装起来,从程序外部不能直接访问数据,而必须通过对外公开的方法进行访问。

多态性: 多态性是指同一种事物可以有多种不同的形态或含义,也可以认为是从不同的角度观察同一事物。

24、 面向对象建模的三种模型及它们之间的关系p148-149

面向对象建模的三种模型: 对象模型、动态模型和功能模型。

它们之间的关系: 对象模型描述系统中的类及其关系,属于系统的静态结构;动态模型描述在系统功能的实现过程中系统对象之间的交互过程;功能模型类似于系统的高层数据流图,抽象了系统的主要功能。

25、 面向对象技术的基本特点p142

继承性封装性多态性。

26、 现代的面向对象的软件工程的主要特点p149-150

1. 用灵活多变的“迭代”的生命周期模型代替一成不变的僵硬的瀑布模型。

2. 强调多视图多角度的系统建模。

3. 强调软件体系结构设计。

4. 强调持续改进软件过程的必要性。

27、 rup过程的定义及关键价值观p150-152

rup:是一种软件工程化过程,提供了在开发组织中分派任务和责任的规范化方法。

关键价值观: (1) 迭代的生命周期。(2) 需求管理。 (3) 基于构件的体结构。 (4) 可视化软件建模。(5) 验证软件质量。(6) 控制软件的变更。

28、 uml五类图形及三种主要元素p153-154

uml五类图形:1.用例图 2.静态图 3.行为图 4.交互图 5.实现图。

三种主要元素:基本构造块、规则、公共机制。

29、 框架及软件重用技术p155-160

框架能重用**、设计、分析。

第八章。30、 业务建模的主要内容p166

1 业务用例模型。

2 业务分析模型。

3 业务愿景:包含业务目标、范围、前景等。

4 业务体系结构:包括组织结构和业务结构。

5 补充的业务规格说明:主要的业务规格外的非关键的业务要求。

6 业务规则:包含了业务进行的约束和条件。

7 业务词典:包含了业务系统中的主要业务术语及解释。

软件工程复习

单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...

软件工程复习

软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...

软件工程 复习

1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...