在图1.1生命期模型中,第一个阶段有时又称为计划期,中间四个阶段总称为开发期,最后一个阶段称为运行期。表 l.2概括地列出了每个阶段的基本任务、工作结果(即提交的文档)以及参加人员。
表1.1 ? 可行性研究与计划阶段 可行性研究与计划阶段的基本任务:搞清问题的性质,确定系统的目标和规模,从技术、经济和社会因素等方面分析论证本软件项目的可行性,并最终产生一份可行性分析报告。 可行性研究的结果:使用部门负责人做出是否继续进行这项工程的决定的重要依据。
? 需求分析和规格说明阶段(简称需求分析阶段) 分析阶段的基本任务:理解用户的需求,并将用户的需求用书面形式表达出来。 分析阶段产生的文档:需求规格说明书(简称需求说明书),它明确地描述了用户的要求。需求说明书是以后各阶段工作的基础。 ? 设计阶段 设计阶段的基本任务:要在需求说明书的基础上建立软件系统的“结构”,包括数据结构和模块结构。 设计阶段的内容:概要设计(或称为总体设计)和详细设计,前者主要考虑模块的分解,后者考虑每个模块内部的细节。 设计阶段产生的文档:模块说明书、数据库或文件结构说明等。
? 编程阶段 编程阶段的任务:按模块说明书的要求为每个模块编写程序。 ? 测试阶段 测试阶段的任务:发现并排除错误。 测试通常又可分为模块测试、集成测试和系统测试等几步。 ? 运行与维护阶段 运行阶段与维护的任务:运行软件并对软件继续排错和修改扩充。 由此可见,作为一名称职的软件开发人员,光会编程是不够的,他还必须掌握分析、设计、测试等方法和工具,学会编写上述各种文档。
1.3 软件质量的评价
软件工程学的最终目标是获得高质量的软件,所以如何评价软件质量是一个重要的问题。以前,对小型程序,人们一般比较强调程序的正确性和效率,近年来随着软件规模的增大和复杂性的上升,对问题的看法已发生了变化。目前,软件质量的定义倾向于从可维护性、可靠性、可理解性和效率等方面对软件作较全面的评价。 · 可维护性(Maintainability) 在软件运行期中,对软件所作的修改 、完善 和适应性修改,总称为“维护”,它涉及再分析、再设计、再编程、再测试等活动。 “可维护性”通常包括了“可读性”(Readability)、“可修改性”(Modifiability)、“可测试性”(Testability)等含义。为了使软件具有较好的可维护性,早在开发期的各个阶段就应采取一系列技术措施。这样做虽然开发期的工作量也许会大些,但考虑到维护工作在整个生命期中所占的比例(见图1.2),总的看来还是值得的。
· 可靠性(Reliability) 可靠性通常包括正确性和健壮性这两个相互补充的方面。 ª 正确性是指软件系统本身没有错误,所以在预期的环境条件下能够正确地完成期望的功能,毋庸置疑,正确性对系统正常发挥作用是完全必要的。 ª “健壮性”的含义是指:当系统万一遇到意外时(具体是什么意外,事先是很难预料的)能按某种预定的方式作出适当的处理。 · 可理解性(Understandability) 可理解性通常是指简单性和清晰性,对于同一用户要求,解决的方案可以有多个,其中最简单、最清晰的方案往往被认为是最好的方案。 |