软件开发过程的6个阶段
计划
对所要解决的问题进行总体定义,包括了解用户的要求及实际环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。制订完成开发任务的实施计划。
软件测试的目的是以较小的价值发现尽可能多的错误。要实现谁人目标的关头在于设计一套出色的测试用例(测试数据和预期的输出成绩组成了测试用例)。如何才能设计出一套出色的测试用例,关头在于明白测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,根据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关头是以较少的用例覆盖尽可能多的内部程序逻辑成绩。白盒法和黑盒法根据的是软件的功能或软件行为形貌,发现软件的接口、功能和结构错误。其中接口错误包括内部/内部接口、资张曼玉源管理、集成化以及系统错误。黑盒法用例设计的关头同样也是以较少的用例覆盖模块输出和输入接口。黑盒法。
软件需求分析就是回答做什么的问题。它是一个对用户的需求进行往粗取精、往粗取精、正确明白,把它用软件工程开发语言(形式功能规约,即需求规格申明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格申明书文档并终究得到用户的认可。需求分析的首要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求申明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和具体设计申明书,数据库或数据结构设计申明书,组装测试计划。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用今后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的那五年至十年期间。在那段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,还要解决某些维护工作本身独有的问题。做好软件维护工作,不仅能清扫障碍,使软件能一般工作,并且还可以使它扩展功能,提高性能,为用户带来显着的经济效益。遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
软件设计可以分为概要设计和具体设计两个阶段。实际上软件设计的首要任务就是将软件分解成模块是指能实现某个功能的数据和程序申明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序申明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,进行模块设计。概要设计就是结构设计,其首要目标就是给出软件的模块结构,用软件结构图表示。具体设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码
软件编码是指把软件设计转换成计算机可以接管的程序,即写成以某一程序设计语言表示的"源程序清单"。充实了解软件开发语言、工具的特性和编程风格,有助于开发工具的挑选以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的语言了,取而代之的是面向对象的开发语言。并且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试
分析
维护
设计
维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用今后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
在实际开发过程中,软件开发其实不是从步进行到后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求申明书等。