软件工程requirements工程
requirements工程 is 软件工程 一个 important branch, 它关注such as何system地收集, analysis, 规约 and management软件requirements. requirements工程 quality直接影响软件project 成功 and 否, 良 good requirements工程可以reducingrequirements变更, 降 low Development成本, improving软件quality. 本章将介绍requirements工程 basicconcepts, requirementsanalysismethod, requirements规约documentation writing以及requirementsmanagement 实践.
1. requirements工程overview
requirements工程 is 指 in Software Development过程in, for 软件requirementsforsystem , 规范 , 可量化 processing 一系列活动. 它includingrequirements获取, requirementsanalysis, requirements规约, requirementsverification and requirementsmanagementetc.阶段.
1.1 requirements 定义
requirements is 指user for 软件产品 expectation and 要求, 它describes了软件应该做what, such as何做以及应该具备whatfeatures. requirements is Software Development Basics, 也 is 软件test and acceptance 依据.
1.2 requirements classification
软件requirements可以按照不同 标准forclassification:
| classification标准 | class型 | describes |
|---|---|---|
| functionsfeatures | functionsrequirements | describes软件应该providing functions and service |
| functionsfeatures | 非functionsrequirements | describes软件 qualityfeatures, such asperformance, reliability, security性etc. |
| 来sources | userrequirements | 来自最终user requirements |
| 来sources | 业务requirements | 来自业务层面 requirements, such as业务目标, 业务流程etc. |
| 来sources | systemrequirements | 来自system层面 requirements, such as硬件要求, 软件interfaceetc. |
| abstraction程度 | high 层requirements | abstraction , 概括 requirements |
| abstraction程度 | 详细requirements | 具体 , 详细 requirements |
1.3 requirements工程 important 性
requirements工程 value
- improvingprojectsuccess rate: 良 good requirements工程可以reducingrequirements变更, 降 low projectrisk.
- 降 low Development成本: 明确 requirements可以reducing重复工作 and 返工.
- improving软件quality: 准确 requirements可以确保Development出符合userexpectation 软件.
- promotingcommunication: requirementsdocumentation可以serving asDevelopment团队, user and other相关方之间 communication桥梁.
- 便于projectmanagement: 明确 requirements可以serving asprojectplanning, 进度控制 and acceptance 依据.
2. requirements获取
requirements获取 is requirements工程 第一个阶段, 它涉及 from user, 客户 and other相关方收集软件requirements 过程. has 效 requirements获取 is 成功 requirements工程 Basics.
2.1 requirements获取 method
常用 requirements获取methodincluding:
- 访谈: and user and other相关方for面 for 面 交流, Understand他们 requirements and expectation.
- 问卷调查: design问卷并分发给user, 收集他们 requirements and 反馈.
- 焦点 small 组: 组织一组userfor讨论, Understand他们 requirements and 关注点.
- 观察: 观察user workflow程 and behavior, Understand他们 practicalrequirements.
- 原型法: creation软件原型, 让userfor试用 and 反馈.
- documentationanalysis: analysis现 has documentation, such as业务流程documentation, systemdocumentationetc., Understand相关requirements.
2.2 requirements获取 步骤
- 确定requirementssources: 识别所 has 可能 requirements来sources, such asuser, 客户, 业务analysis师etc..
- 选择获取method: 根据project特点 and requirementssources 特点, 选择合适 requirements获取method.
- 准备获取活动: 准备访谈提纲, 问卷, 原型etc.材料.
- 执行获取活动: and requirementssourcesfor交流, 收集requirementsinformation.
- 记录requirementsinformation: 将收集 to requirementsinformation记录 under 来, 形成原始requirementsdocumentation.
2.3 requirements获取 challenges
requirements获取 commonchallenges
- userrequirements不明确: user可能不清楚自己 requirements, or 者无法清晰地表达自己 requirements.
- requirements变更频繁: user requirements可能会随着时间 推移而变化.
- requirementsconflict: 不同user or 相关方 requirements可能存 in conflict.
- techniques可行性: 某些requirements可能 in techniques on 不可行.
- 范围蔓延: requirements可能会continuously增加, 导致project范围失控.
3. requirementsanalysis
requirementsanalysis is 指 for 收集 to 原始requirementsforanalysis, 整理 and 建模 过程, 目 is 确保requirements integrity, consistency, 可行性 and 可verification性.
3.1 requirementsanalysis method
常用 requirementsanalysismethodincluding:
- structure化analysis: usingdata流graph, 实体relationshipsgraph, status转换graphetc.toolforanalysis.
- 面向objectanalysis: using用例graph, classgraph, 活动graphetc.UMLtoolforanalysis.
- functions分解: 将 complex functions分解 for simple 子functions.
- 原型法: throughcreation原型来verification and 细化requirements.
3.2 requirementsanalysis tool
3.2.1 data流graph (DFD)
data流graph is a用于describessystemdata流程 graph形化tool, 它展示了datasuch as何 in systemin流动, such as何被processing and store.
3.2.2 用例graph
用例graph is a用于describessystemfunctions and user交互 graph形化tool, 它展示了system 参 and 者, 用例以及它们之间 relationships.
3.2.3 classgraph
classgraph is a用于describessystemobject and 它们之间relationships graph形化tool, 它展示了system class, property, method以及class之间 关联, inheritance, aggregateetc.relationships.
3.2.4 status转换graph
status转换graph is a用于describessystemstatus and status转换 graph形化tool, 它展示了system 各种status以及status之间 转换条件 and event.
3.3 requirementsanalysis 步骤
- requirements整理: for 收集 to 原始requirementsfor整理, 去除重复 and 矛盾 requirements.
- requirementsclassification: 将requirements按照functionsrequirements, 非functionsrequirementsetc.forclassification.
- requirements建模: using各种建模tool for requirementsfor建模, such asdata流graph, 用例graphetc..
- requirementsverification: verificationrequirements integrity, consistency, 可行性 and 可verification性.
- requirements协商: and user and other相关方协商, 解决requirementsconflict and 歧义.
4. requirements规约
requirements规约 is 指将analysis after requirements以正式 documentation形式记录 under 来 过程, requirements规约documentation is Software Development important 依据.
4.1 requirements规约documentation in 容
典型 requirements规约documentationincluding以 under in 容:
- 引言: includingdocumentation 目 , 范围, 术语定义etc..
- functionsrequirements: 详细describes软件应该providing functions and service.
- 非functionsrequirements: 详细describes软件 qualityfeatures, such asperformance, reliability, security性etc..
- datarequirements: 详细describes软件需要processing data.
- 范围限定: 明确软件 范围 and edge界.
- acceptance标准: 定义软件acceptance 标准 and method.
- risk/依赖: 识别可能 risk and 依赖relationships.
4.2 requirements规约documentation writingprinciples
requirements规约documentation writingprinciples
- integrity: documentation应该package含所 has 必要 requirementsinformation.
- consistency: documentationin requirements应该相互一致, 没 has 矛盾.
- 明确性: documentationin requirements应该清晰明确, 没 has 歧义.
- 可verification性: 每个requirements都应该 is 可verification , 即可以throughtest or othermethod来verification is 否满足.
- 可行性: requirements应该 in techniques, 经济 and 法律etc.方面 is 可行 .
- 可跟踪性: requirements应该可以追溯 to userrequirements and design/implementation.
- module化: documentation应该structure清晰, 便于understanding and maintenance.
4.3 requirements规约 verification
requirements规约 verification is 指确保requirements规约documentation正确, 完整, 一致 过程, 常用 verificationmethodincluding:
- 审查: 由专家 and 相关方 for requirements规约documentationfor审查.
- 原型法: throughcreation原型来verificationrequirements 正确性 and 可行性.
- test用例生成: 根据requirements生成test用例, verificationrequirements 可test性.
- 仿真: using仿真tool来verificationrequirements 可行性.
5. requirementsmanagement
requirementsmanagement is 指 in Software Development过程in for requirementsfor跟踪, 变更控制 and versionmanagement 过程, 目 is 确保requirements consistency and 可追溯性.
5.1 requirementsmanagement 活动
requirementsmanagementincluding以 under 活动:
- requirements跟踪: 建立requirements and design, implementation, test之间 跟踪relationships.
- requirements变更控制: managementrequirements变更 过程, 确保变更 合理性 and 可追溯性.
- requirementsversionmanagement: managementrequirements规约documentation version, 确保documentation consistency and 可追溯性.
- requirementsstatusmanagement: 跟踪requirements status, such as已批准, 已implementation, 已testetc..
5.2 requirements变更控制
requirements变更控制 is requirementsmanagement important 组成部分, 它涉及以 under 步骤:
- 变更request: 由相关方提出requirements变更request.
- 变更analysis: analysis变更 影响, 可行性 and priority.
- 变更决策: 由变更控制委员会决定 is 否批准变更.
- 变更实施: such as果变更被批准, 实施变更并update相关documentation.
- 变更verification: verification变更 is 否正确实施, is 否满足userrequirements.
5.3 requirementsmanagementtool
常用 requirementsmanagementtoolincluding:
- JIRA: 用于requirements跟踪 and projectmanagement.
- Confluence: 用于requirementsdocumentationmanagement and 团队协作.
- DOORS: 专业 requirementsmanagementtool, supportrequirements跟踪 and 变更控制.
- ReqSuite: 集成 requirementsmanagementtool, supportrequirementsanalysis, 规约 and management.
实践case: requirements工程 in 电商平台Developmentin application
case背景
某电商公司计划Development一个 new 电商平台, 该平台需要support商品展示, 购物车, 订单management, 支付etc.functions. 公司成立了一个requirements工程团队, 负责该project requirements工程工作.
requirements工程过程
1. requirements获取
- 访谈: and 业务部门, 市场部门, techniques部门 and 最终userfor访谈, Understand他们 requirements and expectation.
- 问卷调查: design问卷并分发给潜 in user, 收集他们 requirements and 反馈.
- documentationanalysis: analysis现 has 电商平台documentation, 业务流程documentationetc., Understand相关requirements.
- 竞品analysis: analysis竞争 for 手 电商平台, Understand行业best practices.
2. requirementsanalysis
- functions分解: 将电商平台 functions分解 for 商品management, usermanagement, 购物车, 订单management, 支付etc.子functions.
- 用例建模: using用例graphdescribessystem functions and user交互.
- data流analysis: usingdata流graphdescribessystem data流程.
- requirements整理: for 收集 to requirementsfor整理 and classification, 确保requirements integrity and consistency.
3. requirements规约
- writingrequirements规约documentation: 根据analysis结果, writing详细 requirements规约documentation, includingfunctionsrequirements, 非functionsrequirements, datarequirementsetc..
- requirements审查: 组织相关方 for requirements规约documentationfor审查, 确保documentation 正确性 and integrity.
- requirements确认: and user and 相关方确认requirements规约documentation, 确保documentation符合他们 expectation.
4. requirementsmanagement
- requirements跟踪: 建立requirements and design, implementation, test之间 跟踪relationships.
- 变更控制: 建立requirements变更控制流程, managementrequirements变更.
- versionmanagement: managementrequirements规约documentation version, 确保documentation consistency and 可追溯性.
case效果
throughsystem化 requirements工程过程, 该电商平台project取得了以 under 成果:
- requirements明确: requirements规约documentation详细, 明确, for Development团队providing了清晰 指导.
- 变更reducing: throughrequirements确认 and 变更控制, requirements变更 数量 and 影响得 to 了 has 效控制.
- qualityimproving: 明确 requirements for Development and testproviding了依据, improving了软件 quality.
- 按时交付: requirements工程 顺利进behaviorproject 按时交付奠定了Basics.
互动练习
练习1: requirementsclassification
请将以 under requirementsclassification for functionsrequirements or 非functionsrequirements:
- system应该supportuserregister and login
- system response时间应该不超过2秒
- system应该support商品搜索functions
- system应该保证userdata security性
- system应该support many 种支付方式
- system availability应该达 to 99.9%
练习2: requirementsanalysis
请 for 一个 in 线graph书馆systemforrequirementsanalysis, including:
- 识别主要 functionsrequirements
- 识别主要 非functionsrequirements
- using用例graphdescribessystem functions
练习3: requirements变更控制
请describesrequirements变更控制 流程, 并说明每个步骤 目 and important 性.