软件工程(三)需求分析
需求分析是软件开发的指南针,开发一个工程时,至少得要知道做的这软件是干什么的吧,委托人的要求是什么,如果是自主开发的话,那么更要考虑需要什么了。需求分析是介于系统分析和软件设计阶段之间的重要桥梁。需求分析的" 个主要阶段:问题分析、需求描述及需求评审。
需求可以从一下几个方面去分析:软件功能需求、用户或人的因素、环境需求、界面需求、数据需求、安全保密需求等。
功能需求是最基本的需求,即软件要实现的基本功能是是什么,这个可以和客户进行商讨,为了克服上述困难,分析人员一般以个别访谈或小组会议的形式开始与用户进行初步沟通。在访谈或会议前,分析人员应该按照以下原则精心准备一系列问题,通过用户对问题的回答获取有关问题及环境的知识,逐步理解用户对目标软件的要求。
在分析的初期,由于分析人员和用户相互陌生,知识领域和工作侧重也各不相同,因此,在他们之间往往横亘着一条泾渭分明的疆界。在疆界的两边,分析人员和用户通过问答和文档进行沟通。
在软件开发的早期快速建立目标软件系统的原型,让用户对原型进行评估并提出修改意见。当原型几经改进最终确定后,它将由软件设计和编码阶段进化成软件产品;或者设计和编码人员遵循原型所确立的外部特征实现软件产品。绝大多数现代软件项目都适于采用快速原型技术。特别是如果软件产品产生大量的动态可视输出,要求大量的用户交互,或者问题领域涉及一些复杂的算法,它们要以进化方式开发,那么分析阶段应该使用快速原型技术。但是,在实际开发过程中可否使用快速原型方法与问题本身的复杂度以及可用的开发工具、环境有关。如果问题非常复杂,在当前工具、环境的支持下开发可运行的原型需要投入太多人力或占用太多时间,那就不宜采用快速原型技术。当然,对复杂度已经降低的某些子问题,尤其是用户界面,仍可使用快速原型技术进行部分分析。对有的软件项目,虽不能构造实际可运行的快速原型,但可采用纸面上的快速原型技术。例如,使用幻灯片演示,向用户直观地描述目标软件系统的外部行为。
在结束需求分析阶段之前,必须形成需求规格说明书。问题分析阶段生成的需求模型构成需求规格说明书的主体。在需求评审阶段,分析人员主要基于以下标准对需求规格说明书的品质进行审查:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。