复 习 提 纲
第一章 软件工程概述
1、分析60年代末出现的软件危机的原因。如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。
答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成
本增加,可靠性降低等。
开发大型软件与编制小程序主要有以下区别:
⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。
⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化的文档,便于开发和维护。
⑶产品。小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。
大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。
2、软件复用的概念及两类软件复用技术:合成技术和生成技术。
答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源 代码、文档等)重复使用的技术。 (1)合成技术
利用部件(component,组件,构件)合成软件系统的技术。
部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。 (2)生成技术
利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。
可复用的模式有两种:代码模式和规则模式。 ①代码模式
可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。各种程序生成器。
②规则模式
利用程序变换系统,把用超高级规格说明语言编写的程序转化成某种可执行语言的程序。IDL——CORBA的接口定义语言。
第二章 需求分析工程 3、简述需求分析工程的重要性。
答:(1)在软件生命周期中,一个错误发现越晚,修复错误的费用越高。
(2)许多错误是潜伏的,且在错误产生后很长一段时间才被检测出。 (3)需求分析中会产生大量错误。
(4)需求分析中的错误多为疏忽、不一致和二义性。 (5)需求错误是可以被检测出来的。
4、掌握和分析Petri网的有关问题;会用可达树分析死锁问题。分析饿死现象并改进。
答:Petri网的局限性
1、令牌缺乏表示信息内容的能力
令牌只是表示动作控制的流向,无法表达信息的内容。 2、缺乏描述选择“使能”变迁的策略
3、Petri网不能描述有定时要求的计算问题,而很多系统的定时问题则很重要。
用可达树分析死锁问题:
若出现叶结点,则系统中有死锁。
分析饿死现象并改进:
P1 t1 P4 t3 P6 t5 t6 t4 P7 t2 P5 P2 P3
图中存在激发序列
修改Petri网,强制它使用一种选择策略,避免了t3在t4激发之前激发两次。如下图:
5、分析、理解电梯运动的Petri网。 PPT第二章49
按下 tmin(C)=0.05 tmax(C)=0.05
tmin=0.1
第三章 软件开发的结构化方法
6、传统的瀑布模型将软件开发分为几个步骤,每一步得到什么结果。
问题定义 可行性研究 综合测试需求分析总体设计详细设计编码单元测试
软件维护问题定义的结果:《问题目标和规模报告书》 可行性研究的结果:《可行性研究报告》。 需求分析的结果:《需求规格说明书》
图 1-1 瀑布模7、简述结构化方法需求分析的综合要求。
答:需求分析阶段的任务主要是确定目标系统必须具备哪些功能。 结构化需求分析的综合要求:
⑴ 功能要求:指系统必须完成的所有功能。
⑵ 性能要求:如联机系统的响应时间,系统的存储容量、健壮性和安全性等方面的要求。
⑶ 运行要求:指系统运行所需要的软硬件环境。 ⑷ 未来要求:指系统将来可能的扩充要求。
⑸ 数据要求:指系统所要处理的数据以及它们之间的联系。 需求分析的结果:《需求规格说明书》
8、能绘制DFD,并能将DFD映射为软件结构图。 PPT第三章18