“21天好习惯” 第一期-18

软件需求——第一章 软件需求基础知识

1.1 软件需求的定义

  • 软件行业存在这样一个问题,用于描述需求工作的术语没有统一的定义。
  • 对同一项需求,不同的人会有不同的描述,称其为用户需求、软件需求、功能需求、系统需求、技术需求、业务需求或产品需求。
  • 客户对需求的定义,在开发人员看来可能只是高级别的产品概念;而开发人员的需求概念对用户来说也许就是详细的用户界面设计。
  • 需求必须被记录成文档,这一点很重要。

IEEE的软件工程标准术语表则将需求定义为: 用户为解决某个问题或达到某个目标而需具备的条件或能力。系统或系统组件为符合合同、标准、规范或其他正式文档而必须满足的条件或必须具备的能力。

注意:不要一厢情愿地认为项目涉众对需求的理解是一致的。应该事先给出定义,才能保证大家谈论的是同一个问题。

1.1.2 软件需求的层次

软件需求包括3个不同的层次——业务需求、用户需求和功能需求: 除此之外,每个系统还有各种非功能需求。

  • 业务需求(Business requirement)表示组织或客户高层次的目标。
  • 用户需求(user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。
  • 功能需求(funetional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
  • 术语系统需求(system requirement)用于描述包含多个子系统的产品(即系统)的顶级需求。

 

 1.1.3 不属于需求的内容

  • 需求规格说明中不包括(除已知约束外的)设计和实现的细节、项目的计划信息,以及测试信息(Leffingwell和Widrig 2000)。
  • 项目中通常还包括其他类型的需求,如开发环境需求,进度或预算限制,帮助新用户跟上进度的培训需求,或者发布产品使其转入支持环境的需求。 这些都属于项目需求而不是产品需求 

1.2 需求的开发与管理 

需求领域的术语问题,有的作者称其为需求工程(Sommerville和Kotonya 1998);也有人称之为需求管理(Leffingwell和Widrig 2000)。 把软件需求工程划分为需求开发和需求管理,如下图所示。

 1.2.1  需求开发

需求开发可进一步细分为获取(Elicitation)、分析(analysis)、规格说明(specification)和确认(Validation)。

 1.2.2  需求管理

需求管理的任务是“与客户就软件项目的需求达成并保持一致“

下图从另一个角度反映了需求开发与需求管理间的区别

 1.3  所有项目都有需求

  • 需求在软件项目中的重要地位 : 软件系统开发过程中最难的部分是对要开发什么作出准确的判断。
  • 所有概念性工作中最难的是建立详细的技术需求,包括所有与用户、机器和其他软件系统的接口。 在开始开发软件之前,往往无法确定所有的需求。这种情况下,可以采用迭代和增量方法,每次实现一部分需求,得到用户反馈后再进入下一循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值