软件需求工程的过程包括:
一:需求:
1,问题定义。要求系统分析员与用户进行交流,弄清“用户需要计算及解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。
2,可行性研究。一方面在于把待开发的系统的目标以明确的语言描述出来,另一方面从经济、技术、法律等多方面进行可行性分析。
二:系统分析和设计
1,需求分析。弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
2,设计(概要设计和详细设计)
三:编码
1,实现:根据选定的程序设计语言完成源代码的编码。
2,测试
四,维护
1.改正性维护,2.适应性维护,3.完善性维护和4。预防性维护
需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。软件需求定义是软件设计开发阶段的输入,为需求被翻译成为可以使软件建构功能的代码发挥作用。
软件设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。软件设计的核心在于把握好那些决定“服务质量”的因素,比如软件的性能,可扩展性,安全性,怎样划分模块的组成,怎样组织和封装软件的组件,以及其他一些虽然不作为软件主要应用的方面但会对其支持方面有所影响的方方面面。软件设计的原理包括抽象,分解和模块化,耦合和内聚,封装,充分性,完整性和原始性。软件设计主要关注软件的兼容性、可扩展性容错性、可维护性、模块化、可靠性、可重用性、健壮性、安全性、可用性和互操作性。耦合和内聚是两个用来评估软件设计质量的方法。
程序编码
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试及系统测试三个阶段进行。测试的方法主要有百合和黑盒两种测试。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
运行维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。
一般仅将需求称为工程,主要原因在于(如图)
如果在需求阶段只需要花费1个时间单位就能够改正的错误;
如果推迟到设计阶段改正就需要5个时间单位;
如果推迟到测试阶段就可能达到20-50个时间单位
如果推迟到运行与维护阶段就可能需要花费200个时间单位。
由此可见第一步的需求分析是十分重要的