《软件需求最佳实践》阅读笔记01
这本书主要从软件需求实践中出现的主要问题和困难入手,指出了改造的主要方法,然后逐一说明了需求定义、需求捕获、需求分析与建模、编写规约、需求验证等需求开发活动的任务、要点和具体手段。还对包括需求基线、变更管理、需求跟踪在内的需求管理活动的操作要点进行了阐述。
软件项目实施过程中,会遇到很多的问题,有的甚至许多项目根本无法达到预期的目标,这些问题的根源就是软件需求实践。软件为了让用户参与进来,要充分研究不同用户代表的关注点、利益点。对项目的沟通上一般会出现沟通失真的问题,解决这个问题的有效方法是及时复述。而往往客户的需求会被放大,这时候需求分析人员则有必要对需求进行有效的控制。需求的本质在于业务分析并不是技术分析,构造适当的业务场景也是需求所必须的。需求问题一直是一个很大的困扰,需要透过表象、分析本质、总结经验。软件产品等不同角度都有着相应的需求工作,这些能够为需求分析师提供一个切实有效的视图。要更科学的对不同的软件需求进行分析,就需要根据不同的项目选择不同的线索。流程是联机事物处理系统需求视图的关键线索。
软件需求根据经验来讲可以定义为“业务知识+问题列表+其他因素”。需求的三个层次:业务需求、用户需求和软件需求。业务需求是反映企业/组织对软件系统的高层次目标要求,即软件系统的建设目标,体现在问题和机会两方面,是需求定义的产物;用户需求是指用户使用软件需要完成什么任务,怎么完成的需求,即用户需求是需求捕获的产物;软件需求又称系统需求,是需求分析与建模的产物。一个优秀的需求标准包括:完整性、不失真、有优先级、有技术早期介入等方面。需求工程包括需求开发和需求管理两大范畴,需求开发重点在于开发出高质量的需求规格说明,需求管理重点在于确保开发的软件满足需求。
需求定义就是要确定项目的宏观需求,即定义项目的业务需求,也就是明确的目标和范围。问题分析,就是理解真实世界中的问题和用户需求并提出满足这些多方面的解决方案的过程,要正确定义问题,然后寻找问题的解决方案,但是在确定某个解决方案时,一定要思考是否会引发新问题。