《软件需求十步走》阅读笔记01
通过阅读软件需求十步走的第一章,是对软件需求的反思。思考是人类的天性,而反思是人类对过去认为正确的思考结果的一种质疑。软件需求分析对于软件至关重要,但从时间,人力,物力等的投放上不那么重要。表现在时间上是大量的软件开发项目中需求分析所花费的时间占整个软件开发项目时间,表现在人力资源投入上是很多时候从事需求分析的人员是搞不了软件开发的人员去搞需求分析,表现在整个开发组织对需求分析事不重视,事后挑问题。
学会反思需要勇气。
痛定思痛寻根源。“软件危机”的解决之道是软件工程,“需求危机”的解决之道是需求工程。手握“软件工程”和“需求工程”两把利剑,才能确保软件项目的成功。软件需求分析从业务需求开始,在用户需求分析的基础上进行的功能需求分析和非功能需求分析,软件需求分析的工作成果是软件需求规格说明书,,软件需求规格书主要是由功能需求分析和非功能需求分析构成。
用户不是神,用户说的也不一定完整,准确。那么需求分析人员会想当然的认为这就是来自客户的完整准确需求,并且顺理成章的在此基础上展开需求分析工作。从表面看合乎逻辑,但实际上结果并不和逻辑,因为从用户那里或得的需求只是局部而不是整体。我们必须要明白用户的问题是什么,用户的目标是什么,用户的服务对象是什么,用户的技能水平是什么样的,用户所说的事项的依据是什么等信息。
需求会发生变化,需求变化一是需求增加和减少的变化,二是需求由原先的变成现在的。变化是比完整性和准确性还让软件项目相关人员无比纠结的事,变化会带来一系列文档,代码的变化,工作量也会随之增加。找到需求变化的根源,才能更好的控制需求的变化,才能为需求变化预留充足的余量。需求变化的根源在于错把客户作为变化根源,而客户服务的对象才是变化的根源。
自然语言的语义二义性一直被认为是是使得需求分析和软件开发人员造成认识不一致的根本原因。自然语言的二义性可以通过表格,图形等方法加以补强,减少二义性。
软件需求是天平,业务和软件是这个天平上的两个砝码,要想平衡业务和技术就要进行整体思考。