Project stakeholders:
项目干系人/项目涉众:参与软件项目或受软件影响的人
主要包括:
客户,用户,需求分析员,开发人员,测试人员,文档编制人员,法律人员,生产人员(制造包含软件的产品),其他人员(市场策划,营销,技术支持等)
需求工程:
包含着与发现、记录和维护计算机系统的需求相关的所有活动。“工程”意味着应该采用系统的和可重复的技术来确保系统需求是完整的,一致的和相关的。
RE是从系统工程角度定义。从业务系统角度,可以看作系统分析。
ENGLISH:Requirements are a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system.
软件需求的三个层次:
业务需求Business~:反应组织或客户对系统、产品高层次的目的要求;(项目远景与范围文档)
用户需求User~:描述用户使用产品必须完成的任务;(使用实例文档Use-case)
功能需求Functional~和非功能需求:描述系统展现给用户的行为和执行的操作等;(软件需求规范和模型)
需求规格说明书:要得到客户的认可;为开发人员提供指导;
需求定义的要点:
定义“做什么”,不描述“怎么做”
软件需求规格说明(SRS)重点描述产品应达到和满足的功能与非功能需求特性
软件开发与运行环境,开发进度,产品成本,培训需求等内容应该在项目需求中进行定义
需求开发和管理:
软件需求工程领域划分为需求开发和需求管理。
需求开发:产生经过验证的SRS
Elicitation 获取;Analysis 分析;Specification 规范说明;Validation 验证
需求管理:以SRS为基线,对需求变更进行控制和管理
(基线:已通过正式评审和批准的规约或产品,他将作为进一步开发的基础,只能通过正式的变更控制过程来改变。)
Version Control 版本控制;Change Control 变更控制;Requirements Tracing 需求跟踪;Status Tracking 状态跟踪
每个项目都有需求:
核心问题不在于写需求,而是判断需求;
如果项目团队写的需求得不到干系人的认可,则开发人员无法确定自己的工作是否令干系人满意;
不知道需求,则何时完工,是否满足目标等情况就无法确定
劣质需求产生的原因:
认识不到位;易变性;不确定性;
没有抓住主要矛盾;没有强调质量(SRS不符合要求);
分析不全面;设计没有反映实际情况。
高质量需求过程的好处:
需求缺陷和产品缺陷更少;后期和维护返工减少等
优秀需求的特点:
完整性Completeness
正确性Correctness
可行性Feasibility
必要性Necessity
优先性Priority
无二义性Unambiguity
可验证性Verifiablity
完全性Integrity
一致性Consistency
可修改性Modifiable
可跟踪性Traceability