
1、软件定义:问题定义、可行性研究,需求分析
2、软件开发:总体设计,详细设计,编码和单元测试,综合测试
3、软件维护:改正性维护、适应性维护、完善性维护、预防性维护
4、软件过程:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,Rational 统一过程,敏捷过程与极限编程,微软过程
5、从 3 个方面研究每种解决的可行性:技术可行性、经济可行性、操作可行性
6、软件需求分析阶段的工作:可以分为以下 4 个方面:对问题的识别、分析与综合、编写需求分析文档以及需求分析评审
7、设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立性(耦合、内聚)
8、决定软件可维护性的因素:可理解性、可测试性、可修改性、可移植性、可重用性
一、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后 4 位。一旦实现并测试完之后,
该产品将被抛弃。你打算选用哪些软件生命周期模型?请说明你作出选择的理由。
答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,
一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了
二、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公
司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?。
答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪些模型有
助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。
这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出 3 点结论:第一,旧版本相当于一个原型,通过收集
用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,改公司的软件工程师对字处
理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜
爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。
综上所述,采用增量模型来完成这个项目比较恰当。
三、考虑一个修改磁带上主文件的系统。文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排
列好。然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产
生的新文件存储在磁盘上。最后,系统输出一份修改报告供文件管理员参阅。
请分层次地画出上述主文件修改系统的数据流图。
答:本系统的数据源点和终点都是文件管理员,他既向系统提供修改信息,又接收系统生成的修改报告。系统功能主要有:接收修改信息,
读主文件,校核记录,修改原始记录和产生报告。注意,问题陈述中所描述的“系统安装记录号把修改信息顺序排列好”,是具体的实现方
法。在数据流图中无须描述具体实现方法,因此,在本系统的数据流图中不需要包含“排序”功能。类似地,“文件管理员把修改信息穿孔
在卡片上,系统读入穿孔卡片上的信息”,是系统接收修改信息的具体方法。在数据流图中无须描绘这个具体的实现方案,因此,在本系统
的数据流图中不需要包含“穿卡片”和“读卡片”的功能。
本系统包含的数据存储是:修改信息,主文件和修改后的主文件。
图 2.6 是本系统的基本系统模型,图 2.7 是功能级数据流图。
四、用 Jackson 图描绘下述的一列火车的构成:
一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最