1、计划
在开发之前,我们需要把软件所要解决的问题进行汇总。包括用户需求,软件使用的现实环境。从技术、预算和因素等方面确定软件的可实现性,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本、可取得的效益和开发进度作出估计,制订开发计划。
2、分析
软件需求分析就是对所要开发的软件的设想。它是一个把用户需求用软件开发工程语言所表达出来的过程。这个阶段较重要的是要和用户一起确定需解决的问题,建立软件的逻辑模型。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。确定出适合的方法后,就可以设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,再对每个子系统和详细模块进行具体设计定义。
3、设计
软件设计可以分为概要设计和详细设计两个阶段。软件设计的主要任务就是将软件分解成模块,并设计出能够解决需求的、可执行程序的程序单元。
概要设计就是结构设计,其主要目标就是给出软件的模块结构。详细设计的主要任务就是设计模块的程序流程、算法和数据结构以及数据库。常用方法还是结构化程序设计方法。
4、编码
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。当前在软件开发中除了专用场合已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
5、测试
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。而设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。这需要根据现实情况进行选择。
6、维护
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。
一个软件在投入使用以后,运行多久,维护工作就要持续多久。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发过程是一个回旋反复的过程,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户也可能会提出一些需要来修改需求说明书