一、基本原理
软件的定义: 软件是程序以及开发、使用和维护程序需要的所有文档。 软件工程的定义: 软件工程是知道计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 1。用分阶段的生命周期计划严格管理 二、传统途径 (1)。生命周期个阶段的基本任务 1。问题定义 “要解决的问题是什么?” 2。可行性研究 “对于上一个阶段所确定的问题有行得通的解决办法吗?” 可行性研究阶段应该导出系统的高层逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地评估系统的成本和效益,对建议的系统进行仔细的成本/效益分析是这个阶段的主要任务之一。 可行性研究的结果是使部门负责人作出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入更多的人力物力。及时终止不值得投资的工程项目,可以避免更大的浪费。 3。需求分析 “为了解决这个问题,目标系统必须做什么” 主要是确定目标系统必须具备哪些功能。 用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确的表达出他们的要求,更不知道怎么利用计算机解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。 因此,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。 在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。 软件工程使用的结构分析设计方法为每个阶段都规定了特定的结束标准,需求分析阶段必须提出完整的系统逻辑模型,经过用户确认之后才能进入下一个阶段。这就可以有效地防止和克服急于着手进行具体设计的倾向。 4。总体设计 “概括地说,应该如解决这个问题?” 首先,应该考虑几种可能的解决方案。 (1)低成本的解决方案 系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在充分权衡 各种方案的利弊的基础上,推荐一个较好的胸,并且制定实现所推荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另一项主要工作。 上面的工作确定了解决问题的策略以及目标系统需要哪些程序。 结构设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。 总体设计的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描述软件的结构。 5。详细设计 总体设计阶段以比较详抽象概括的方式提出了解决问题的办法。纤细设计阶段的任务就是把解决办法具体化。 “应该怎样具体地实现这个系统呢?” 这个阶段的任务是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包括必要的细节,程序员可以根据他们写出实际的程序代码。 通常用HIPO图(层次图加输入/处理/输出图)或PDL语言(过程设计语言)描述详细的结果。 6。编码和单元测试 这个阶段的主要任务是写出正确的容易理解、容易维护的程序模块 程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时使用汇编语言),把详细设计的结果翻译成选定的语言书写的程序,并且仔细测试编写出的每一个模块。 7。综合测试 这个阶段的关键任务是通过各种类型的测试及相应的调试使软件达到预定的要求。 最基本的测试是集成测试和验收测试。 所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。 所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户参与下)对目标系统进行验收。 必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。 通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。 8。软件维护 维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。 |
回复Comments
作者:
{commentrecontent}