在本学期的学习课程中,我们也学习软件需求分析的相关课程。为了更好地学习该科目,同时也为了拓展自己的知识层面,特意挑选了《软件需求模式》来进行阅读。

在本周的课余时间,我也对《软件需求模式》进行了简单的阅读。对软件需求的相关知识有了更进一步的了解。

    需求无处不在,在我们的日常生活当中,我们也会有各种各样的生活需求。而需求放到了软件行业,就成了软件需求。在我们大学生活当中,由于缺少对软件行业的了解,缺少对于软件工程的了解,我们对于软件需求也只能停留在纸面的阶段,只有当我们真正步入软件行业,才能充分了解和认识到软件需求的重要性。

1、需求的定义

需求就是定义系统需要做什么而不是怎么做。

简单地说,需求就是明确我们的目标,即我们要去做什么,而不是如何实现我们的目标。不同的人会有不同的需求,我们应当把需求尽量做到一致。即最大化的统一我们的目标,把我们需要或者想要去做的事情统一起来,形成我们一致的目标,同时也确定系统的边界。

2、定义需求的基本原则

①定义问题,而不是解决方案

我们在定义需求的时候,定义的是我们所遇到的或者要解决的问题,而不是定义解决问题的方案。在定义需求的阶段,我们只要定义出存在的问题,并不需要定义完整的解决方案。

②定义系统,而不是项目

简单来说,我们在定义需求的时候,只是定义了一个系统,而没有定义整个项目。可以说我们定义的系统是包含在项目当中的,一整个项目当中可以有很多很多个系统。

③区分正式和非正式部分

为了用户以及我们彼此之间更好的沟通与理解,我们应当在不同的场合采用不同的方式。而区分好正式和非正式则是很好的方法。

④避免重复

重复的越多,就越容易增大工作量,也更容易出现错误。所以我们必须尽量的避免重复。

3、需求流程的分类

①传统需求流程

有一个专门的需求阶段,交付一份详细的需求规格,然后开始设计和开发系统。这就是传统的定义需求的方法。具体包括以下五个步骤:

准备、收集(或引出)信息、编写需求规格草稿、评审规格、评审后修改。

②敏捷需求流程(分为极限需求流程和增量需求流程)

敏捷需求流程的两个指导原则:

原则1:区分问题和解决方案是重要的

原则2:定义需求后,一定要记录它以便别人可以找到

    在不同的情况之下,我们就需要考虑不同的情景,采用不同的方法,同时也参考不同的需求模式。使用不同的需求模式,能使我们或者客户的需求更容易让人理解,使编写需求变得更加容易。在我们的学习阶段,要做的是了解更多的需求,增加自己的阅历,才能在以后的工作当中更加得心应手。