不知不觉就进入了大三的学习,王老师的课还是老样子,要选择一本书进行精读,来支撑和辅助这学期的学习。这次我选择的书是由Stephen Withall编著,曹新宇翻译的《软件需求模式》 。这本书包括准备开始和需求模式目录两个部分,主要目的是帮助决定和定义新的软件系统需要什么,建议添加哪些额外的特性,使系统更好或者更卓越。
大致浏览了一下这本书的目录,前四章写的是准备开始,所有这些内容都是为需求模式在打基础。后面的八章则是详细描述了基础需求模式,信息需求模式等八种需求模式。
这周我学习的是第一章------需求概述。在在深入学习需求模式之前,首先要明确需求是什么。需求就是定义系统需要做什么而不是怎么做。需求针对的应该是要实现的目标,而不应该是实现这些问题的解决方案。一个系统的需求规格是一个文档,它包含了所有的要求实现的目标。一个系统的开发,首先要从定义该系统的需求开始,定义需求就定义了一个系统所有要求实现的功能。
一个新系统的开发大致包括范围,需求,设计,开发,测试,安装等几个阶段。并不是必须一个阶段完成才可以进入下一个阶段,我们需要根据需要做需求,做更多的设计,需求的实现并不是一蹴而就的,有些需求是隐藏的,有些则是随着发展慢慢衍生出来的,因此就有了传统方式与极限方式折衷的增量方式。
需求的一些基本原则,首先是我们一直在说的,需求定义的是问题,而不是解决方案;其次,需求定义的是系统,是一组目标,而不是项目;区分正式与非正式的部分,也就是合同约束和非合同约束部分;避免重复,这一原则旨在要求每一项信息只表述一次。
明确了需求的定义,原则之后,接下来就是需求的过程。需求包括准备,收集信息,编写需求规格草稿,评审规格,评审后修改等五个阶段。其中最重要的是收集信息。信息的主要来源是人,文档和系统,但是最重要的来源还是人。与此同时,对所要实现的系统也要足够熟悉。做好信息的收集是做好需求的基础。
第一章的第五个模块,主要讲了两种敏捷需求流程------增量需求流程与极限需求流程。极限需求由于需要一次性了解到系统所有功能,因此需要在最开始用户编写一个完整的用户的故事,也就是系统要求完成的功能的描述。而对于增量方法,它的前提条件是当且仅当真正开始需要的时候开始需求工作。首先要决定需求要详细到什么程度以及什么时候开始定义每个需求。增量需求介于传统与极限两种方法之间。
通过第一章的学习,我了解到了需求的定义,基本原则,需求流程,简单认识了三种开发方式的区别,加深了对需求的认识,更好的区分了需求与项目。