软件需求工程解析
老师上课讲解了关于软件需求的金字塔
这让我认识到了软件需求的重要性,就像金字塔所显示的那样,在需求阶段付出一个单位的时间,经过层层递增之后,到最后维护的时候可能会付出两百个单位的时间
用这个金字塔来形容从需求分析到最后维护分析的过程,从而分析整个开发过程以及开发过程中是否规范的利与弊。
软件需求分析在一个软件中是非常重要的,无论这个软件是大是小,它是这个软件开发的基础。
需求分析是为了明确用户和客户的需要是什么,需要我们的软件做什么,解决什么问题,软件作成什么样子,最终达到什么效果。
这差不多也就是项目所要达到的目标。有了目标之后,我们才开始对需要解决的问题进行详细的分析,弄清楚问题的要求。
包括需要输入什么数据,得到什么结果,最后应输出什么,处理过程中需要遵循什么准则等等,最后整理出软件需求规格说明书。
软件项目属于工程项目,而软件需求规格说明书就相当于工程的设计效果图,我们是通过这个设计效果图来与客户达成一致,也便于开发人员有一个明确的开发目标。
如果缺少了这张效果图,我们辛辛苦苦开发出来的软件有可能最终不是客户所需要的效果,而导致反工。
对于需求工程的定义个范畴:需求阶段=纸上谈兵。随着开发阶段的不断深入,产生的人工制品也就不断增多。
要进行修改,则需要考虑的东西就越多,代价越大。需求工作是用户需求到技术解决方案的转换,所以被称为“需求工程”。
需求工程主要包括需求开发和需求管理两个主要范畴。
需求开发:收集、分析、整理、编写、验证需求的全过程,重点在于开发出高质量的需求规格说明书。
需求管理:对需求的变化全过程进行跟踪。重点在于确保开发的软件满足需求的定义。
有了需求、设计效果图、逻辑模型、具体实现的描述,我们就可以根据系统的特点以及公司的人员情况来确定最后采用什么开发语言,由哪个项目组去编码实现。
到这里,我们的软件开发金字塔也就基本开发完成。
从金字塔中我们可以看出对于一个软件来说,需求的重要性,它是一个软件产生的根本原因,在需求阶段所花费的时间和精力,将会决定开发这个软件所需要的整体时间和精力。