数据结构论坛

首页 » 分类 » 分类 » 关于软件工程的总体复习提纲完整文档
TUhjnbcbe - 2024/7/28 16:43:00

第一章

1.软件工程的危机:是指计算机软件在开发和维护过程中时遇到的一系列问题。

软件危机的表现:

(1)对软件开发成本和进度的估计常常很不准确

(2)用户对“已完成的”软件系统不满意的现象经常发生

(3)软件质量往往靠不住

(4)软件没有适当的文档资料

(5)软件成本在在逐年上升

(6)软件开发跟不上计算机应用的迅速普及的速度

软件是数据,程序和相关文档的集合。

2、软件的生命周期:是由软件定义、软件开发和软件维护

软件定义:问题定义(要解决的·问题是什么)、可行性研究(探索此问题是否值得做)、需求分析(目标系统必须做什么,需要记录对目标系统的需求—规格说明书)

开发时期:总体设计(怎样实现目标系统),详细设计(具体实现)、编码和单元测试(写代码),综合测试

软件维护:使软件能够持久满足用户的需要

3、

瀑布模型:是最广泛的过程模型。

使用的目标:用户需求明确

优点:阶段间具有顺序性和依赖性,推辞实现的观点,质量得以保证

缺点:费时间

快速原型模型:适合小型项目,用户需求不明确,是为了获得用户的真正的需求,一单需求确定了,原型则会被抛弃。

优点:快速

增量模型:软件作品是作为一系列的增量结构来设计和编码和集成与测试。分批次向用户提交产品。

优点:能够短时间向用户提交部分工作的产品,逐步增加产品功能,能够使得用户能够适应软件。

缺点;风险大

螺旋模型:使用原型的方式来降低风险,每个阶段都增加了风险分析。适合软件的重用。

目标:适合用在大型项目上。

喷泉模型:面向对象有着迭代1和无缝的特性

RUP把生命周期分为四个阶段:(考题:将产品给用户使用是什么阶段——移交阶段)

初始阶段:建立业务模型,定义最终产品视图,确定项目的范围

精化阶段:设计并确定体系结构,制定项目计划

构建阶段:开发出所有的构件和应用程序,把他们集成用户的产品,并且测试其所有功能。

移交阶段:把开发出来的产品交给用户使用

考题:

第二章

1.可行性研究从那三个方面;

技术可行性、经济可行性、操作可行性

2.可行性研究的过程:1.复查系统的规模和目标2.研究正在使用的系统,3.导出新系统的高层逻辑模型4.进一步定义分析(最重要,以数据流图和数据字典做为基础讨论)5.导出和评价供选择的解法

3.数据流图DFD(作图:银行,医院,飞机机票)

4.数据字典:数据流,数据流分享,数据存储,处理

=意思是等价于;+意思是和;意思是或,中间用

分开;{}表示重复;()意思是可选

数据字典

5.成本/效益分析方法:

货币的时间价值,投资回收期,存收入,投资回收率

考题(原题):

第三章

需求分析:系统必须做什么

1.访谈:调查表和情景分析技术,正式的访谈和非正式的访谈

2.实体—联系图(E—R):数据对象,属性,联系

考题:只有数据对象有属性(错误),联系也会有属性

3.状态转换图:初态用实心圆,终态用空心圆;有3种标准事件:do,exit,entry

可能考试作图:复印机的行为

4.IPO图:输入,处理,输出图,是有IBM公司发展完善的一种图形。

5.层次方框图:用树形的矩形框描述数据的参差结构

6.Warnier图:使用{}和+

考题

1.与用户沟通的方法包括()。

正式访谈

非正式访谈

发放调查表

情景分析

正确答案:A、B、C、D

2.需求分析的任务包括()

确定对系统的综合要求

分析系统的数据要求

导出系统的逻辑模型

修正系统开发计划

正确答案:A、B、C、D

3.从哪些方面验证软件需求的正确性?()

一致性

完整性

现实性

有效性

正确答案:A、B、C、D

二、判断题(共2题)

1、(2分)

访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析。

正确答案:A

2、(2分)

需求分析时软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题

正确答案:A

第五章:

总体设计:系统应该怎么去实现

1.设计原理:模块化(把程序划分成独立命名的且可以访问的模块)

抽象:把事物相似的方面集中起来,忽略他们之间的差异

逐步求精:是人们解决复杂问题采用的基本方法,集中精力去解决主要问题二忽略问题的细节。

信息的隐藏和局部化

模块独立:是模块化,抽象,信息隐藏和局部化的结果。

2.耦合和内聚(考查两者的分类和如何区别耦合与内聚,有例题)

2.1耦合的分类:

耦合级别最弱的是数据耦合,数据耦合为低耦合

控制耦合:中等耦合

特征耦合:数据结构作为参数而被调用的模块只需要使用一部分数据时

公共耦合(可能是高,低,中):两个或者多个模块作用一个公共环境时。

最高程度的耦合是内容耦合(一个模块访问其他模块的内部数据;两个模块有重叠的代码;一个模块有多个入口,意味着一个模块有多个功能)。

原则:经量使用数据耦合,少用控制耦合,闲置公共环境耦合的范围,不用内容耦合

2.2内聚:低内聚(偶然内聚与逻辑内聚、时间内聚)

中内聚:(过程内聚与通信内聚)

高内聚:(顺序内聚与功能内聚)

3.考题:层次图就是层次方框图,本质没有区别(错误)

4.层次图:描绘软件的图

5.HIPO图:也就是对模块进行编号的层次图

6.结构图???

7.面向数据流的方法:交换流(有输入和输出的符号)与事物流(进行了分支,多线路)

考题:将DFD转换为软件结构图(S-C)(数据流图)

第六章

详细设计(根本目标是确定应该怎样具体实现所要求的系统)

1.过程设计工具

1.1程序流程图(菱形-选择,矩形-处理,圆角矩形-开始或者停止)

1.2盒图(必考),PAD图(三条边满足三角形),PAD与盒图之间的转换,判定树(例题,水费),PDL(伪代码)

1.3.jackson图(火车的构成例题)

1.4流图(圆表示结点,箭头线表示控制流)

考题:计算环形复杂度,有三种方法(例题)

1.5Halstead方法(根据运算符和操作符来度量程序的复杂程度)

N=N1+N2

N1表示运算符出现的总次数,N2表示操作数出现的总次数,N表示总长度

例题

考题.书上3题和第8题(必考)

画出流图-原题,判断逻辑

第七章:实现(编码和测试)

1.工程和科学计算:FORTRAN语言和ASK

商业领域:COBOL语言

系统和实时应用领域:C语言和Ada语言

知识和推理:PROLOG语言

组合问题领域:LISP

2.测试:是为了发现程序中的错误,而不是表明程序是正确

考题:

1.白盒测试:是为了测试程序的逻辑功能

黑盒:检查功能是否正常使用。

2.测试步骤:模块测试(单元测试,子系统测试,系统系统(集成测试),验收测试(确认测试))

1.3集成测试(与接口有关):非渐增测试方法(分别测试每个模块);渐增测试方法(结合测试)

考题:哪一个集合方法适合小型项目?非渐增

1.4确认测试是属于黑盒测试

两种方法Alpha(用户来检查,开发者在一旁知指导),Beta方法(用户自行进行操作)

1.5白盒测试技术(逻辑覆盖,控制结构技术)

逻辑覆盖:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖(最强)

控制结构技术:基本路径测试(画出流图-计算环形复杂度-确定线性独立路径的基本组合)

1.5黑盒测试技术

等价划分(最常用黑盒技术)

因果图

1.6边界值分析

0-10选出0,1,11

调试的方法:

蛮干法,回溯法,原因排除法

考题:下列哪一个属于调试?

1.7软件可靠性

软件的可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功运行运行的概率

软件可用性定义:程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。

1.8估算平均无故障时间的方法

例题:考题P

第8章:维护

软件不仅仅是改正开发程序的错误

软件活动4个活动:

改正性维护(诊断和改正错误)

适应性维护(配合环境修改软件的活动)

完善性维护(增加新功能或者修改已有的功能---占比最大

预防性活动

例题

打补丁(改正性),硬件平台发生改变(适应性),qq升级(完善),杀毒软件更新(完善)

程序模块越小,接口则会越多。

软件再生工程过程:库存目录分析,文档重构,逆向工程(从现存的代码中抽取有关数据,恢复设计结构),代码重构,数据重构,正向工程(创造或者改革,推翻原有的代码,重新设计)

考题:哪一个是更新开发新系统(逆向工程)

把与硬件及操作系统有关的代码放到某些特定的程序模块中。

正确答案:A

2、(2分)

采用防错程序设计技术,在程序中引入自检能力。

正确答案:A

3.

使用先进的软件开发技术。

正确答案:A

尽量用可重用的软件构件来组装程序。

正确答案:A

5、(2分)

用CASE环境或程序自动生成工具来自动生成一部分程序。

正确答案:A

6、(2分)

用数据库系统代替文件系统来存储需要长期保存的信息。

正确答案:A

7、(2分)

尽量减少程序模块的规模。

正确答案:B

8、(2分)

进行总体设计时加强模块间的联系。

正确答案:B

9、(2分)

尽可能使用高级语言编写程序。

2

正确答案:A

总分:2分

10、(2分)

尽可能利用硬件特点来提高程序效率。

正确答案:B

11、(2分)

选用时间效率和空间效率尽可能高的算法。

正确答案:B

12、(2分)

编码时尽量多用全局变量。

正确答案:B

13、(2分)

在开发过程中尽量保证各阶段文档的正确性。

正确答案:A

14、(2分)

测试完程序后,删去程序中的注解以缩短源程序长度。

正确答案:B

15、(2分)

在分析用户需求时同时考虑维护问题。

正确答案:A

简单题:p对一个已经有的软件进行重大修改,选择文档两份,应该选择,(程序的规格说明,源程序的清单)

第9章:面向对象的

类,封装(信息的隐藏),继承(减少程序中的多余的信息),多态性,重载性

1.类图—对象模型

杂货铺p,在p模型建立(类与继承)

考题:抽象类()

考题:

1.1小汽车和奔驰小汽车(包含)

图书馆和电子期刊(聚集)

丈夫与妻子(关联)

班级与学生(聚集)

1.2类与类的实例化

清华大学学生(类)

日本(实例)

王教授(实例)

功能模型-和数据流图

考试:下列功能模型(数据流图和用例图)

动态模型(状态图+时序图)

13.软件项目管理

估算功能点:p

DI=FI的和

TCP=o.65+0.01*DI

考题:

请计算一个软件的功能点

FP=UFP*TCP

可能考题:记住公式Boehm简单模型

E=3.2*KLOC^(1)

COCOMO2模型是BOehM简单模型

甘特图(Gantt):形象的描绘任务分解的情况

基线:IEEE把基线定义为,已接通过正式复审的规格说明和中间产品

能力成熟度模型:CMM分为5种阶段

初始级—可重复级-已定义级—已管理级—优化级

1
查看完整版本: 关于软件工程的总体复习提纲完整文档