软件需求十步走---阅读笔记01
软需求分析对于软件开发至关重要,但从时间,人力,物力,财力的投放上却显得不那么重要。表现在时间上是大量的软件开发项目中需要分析所花时间占整个软件开发项目时间不到百分之10;表现在人力资源投入上是很多时候从事需求分析的人员是搞不了软件开发的人员去搞需求分析;表现在整个开发组织上是软件开发组织对需求分析事前不重视,事后挑问题。这就必然会导致需求分析水平低,软件开发质量低,用户抱怨多的问题出现。
当下软件需求分析方法非常的多,但是真正使软件需求做到完整,准确,清晰,变化可控的几乎没有,人们需要拿出勇气找到真正解决软件需求完整,准确,清晰,变化可控的办法。
大量的需求分析方法,工具在软件项目中的应用,取得了一定的成效,但问题依然存在。当前这些方法和工具主要定位基于软件需求分析成果面向后端的系统设计和代码的转化。垃圾进,垃圾出是当前对需求工程的力图通过面向软件开发后端的方法和工具的研究和颜值来解决软件项目存在问题未能取得成效的再合适不过的解读。
软件需求的核心:
任何事物都会面临从哪里来,是什么,到哪里去这三大终极命题。从哪里来是事物的核心和几点,是什么是讲事物的构成问题,到哪里去是讲事物的价值问题,而从哪里来是讲事物的本源问题。软件需求的核心是业务需求,而软件需求规格说明书是软件需求工作的目标。业务是检验软件的唯一标准没离开了业务的软件什么也不是。
完整性和准确性:
需求分析首先要从思想观念上转变过来,是需求分析人员根据用户提出的问题,在对用户业务资料和现场调研的基础上,用逻辑思维方法和系统科学方法对用户业务加以分析和研究,找出业务的内在要素,结果,关系,然后告诉用户业务的整体。
需求变化的根源:
需求变化的根源是在于错把客户作为变化根源,岂知客户的对象才是变化的根源。形式逻辑中的假设方法某种程度上是应对变化的一种方法。
软件需求的描述方式:
软件需求的描述方式在强调无二义性。二义性是指编制软件需求的人想表达的意思和阅读软件需求的人理解的意思要一直,达到这一目标最好的方法是总和运用自然语言,原型,表格,图形,模式等方式。
软件需求的完整性:
软件需求是天平,业务和软件是这个天平上的两个砝码,要想平衡业务和技术要进行整体思考。软件需求的完整性=业务需求的完整性+用户需求的完整性+系统需求的完整性。软件需求分析人员就如同媒人一样用逻辑的红绳将业务“孔雀女”和软件“凤凰男”撮合在一起成双成对。
业务向系统的映射:
大量的软件产品的应用,就体现了我们业务的映射,只是业务和系统之间的映射是在需求分析阶段说清楚,讲明白,还是在软件系统开发过程中不断地沟通修正,不断的打补丁来补充整。业务系统和软件系统是一体两面,是同一个抽象体在两个世界的投射。
软件需求的验证和测试:
软件需求的验证是软件需求风险控制的一个手段,要珍重用基于工程经验的验证方式。