当前课程知识点:软件工程 > 第7章 需求获取 > 7.4 需求工程过程 > 讲课视频
下面我们介绍需求工程过程
以及在需求过程中
所涉及到的各种活动
它的本质 特征和性质
在需求工程过程中
最重要的工程活动包括
需求抽取 需求分析
需求规约 需求管理和需求验证
其中需求抽取的工作
主要目标是为了主动与干系人
协同工作
找出他们的需求
识别潜在的冲突
磋商解决矛盾的冲突
定义系统的范围和边界
这项活动的实质
就是要了解待解决的问题
和它所属的应用领域
我们要确保该问题的解决
是有商业价值的
右边的漫画我们可以看到
需求抽取的过程就很像
这个漫画中小男孩
向他妈妈提出的四个问题
妈妈要他打扫房间
他问的第一个问题就是
我为什么要打扫房间
这是对需求的
顶层目标的一个提问
其次他又问
当前打扫房间的流程
是什么样子的
这是对当前业务流程的
一个抽取过程
之后他又问
难道做作业
不比打扫房间更重要吗
这是在跟他妈妈征求
两条需求之间
哪个优先级更高的问题
最后他问妈妈的是
我怎么知道我的房间算是干净
还是没干净
这是在问妈妈
需求验收的一个标准
目前有很多种需求抽取方法
供大家使用
根据参与人员的能力 偏好
待了解需求的内容
以及应用领域的特性
我们可以选择协同工作
面谈 问卷 观察 原型
文档分析 概念建模 角色扮演
检查列表等形式的抽取方法
可以多种方法混用
根据我们之前对上百家
中国的软件企业
所采用的需求获取方法的
应用现状调研结果来看
其中 按照受欢迎程度排序
最受欢迎的几种方法包括
焦点会议的方法 原型法
文档分析法 问卷法
参与设计 被动观察等等
抽取需求之后
进入需求的分析阶段
在分析阶段
最主要的目标就是要对产品
及其与环境的交互
进行更深入的分析
识别系统需求
设计软件体系结构
建立需求与体系结构
组件之间的关联
在体系结构设计实现过程中
进一步识别矛盾冲突
并通过干系人之间的磋商 协调
解决这些矛盾
需求分析的实质问题
是要进行概念建模
选择常用的建模语言
并进行功能和信息的建模
需求分析的主要的关键的
一个问题
就是要实现体系结构设计
与需求的适配
通过评估需求的满足度
来评价体系结构设计的质量
我们之前的调研结果反映
目前在工业界应用最广泛的
几种需求建模方法包括
非UML的图形建模模型
UML模型 表结构 用户故事
和自然语言文档
概念建模方法的选择
首先取决于语言的表达能力
其次取决于语言的沟通效率
和记忆水平
我们选择需求建模的语言时
必然选择一个
学习成本相对较低
而且沟通效率较高的语言
需求验证是对其它需求工程
活动的质量保证
它通过数学的形式化工具
或者工程化的测试过程
来确保系统满足干系人的要求
常见的需求验证方法包括
评审 原型模型验证
和确认测试等方法
对刚刚提到的
几种需求验证方法
从错误识别 时间开销
和工作成本进行对比分析
我们可以发现
其中
原型验证和基于测试的验证
对错误的识别率较高
测试验证的工作成本较少
原型和测试验证
时间开销也相对较低
因此
这二者是首选
需求管理贯穿从需求获取
到软件系统下线的全过程
它涉及软件配置管理
需求追踪 影响分析
和版本控制等多个方面
需求追踪
主要是描述和追踪
一条需求的来龙去脉
包括向前追踪到软件制品
向后追踪到需求的来源
建立需求的跟踪举证
是管理需求追踪关系的
一个有效的手段
变更请求管理
目前已经成为软件过程管理的
一个必不可少的环节
有系统化的工具
和方法学的支持
是现在实现广泛应用的
一个需求活动之一
需求属性管理
是对需求项目的细化的管理
其中最主要的属性包括
需求的优先级
需求的状态等等
-1.1 软件无处不在
--讲课视频
-1.2 软件的本质特性
--讲授视频
-1.3 软件工程的产生与发展
--讲授视频
-1.4 软件工程的基本概念
--讲授视频
-1.5 软件质量实现
--讲授视频
-1.6 业界人士谈软件工程
-测验题--作业
-讨论题
--讨论题
-作业题
--第一张 作业题
-2.1 编程过程与规范
--讲课视频
-2.2 良好的编程实践
--讲课视频
-2.3 Python集成开发环境
--讲课视频
-2.4 代码静态检查
--讲课视频
-2.5 代码性能分析
--讲课视频
-2.6 结对编程实践
--讲课视频
-2.7 刘贺谈软件工程
--讲课视频
--讨论
-测验题--作业
-作业题
--第二章 作业题
-3.1 单元测试概述
--讲课视频
-3.2 黑盒测试方法
--黑盒测试方法
-3.3 白盒测试方法
--基本概念
--代码覆盖标准
--基本路径测试
-3.4 单元测试工具
--单元测试工具
--html
-测验题--作业
-作业题
--第三章 作业题
--作业题附件
-4.1 软件过程
--讲课视频
-4.2 软件过程模型
--讲课视频
-4.3 敏捷开发过程
--讲课视频
-4.4 微软公司开发过程
--邹欣经理自我介绍
--微软开发过程之一
--微软开发过程之二
-测验题--作业
-5.1 团队组织与管理
--讲课视频
-5.2 项目沟通管理
--讲课视频
-5.3 软件项目计划
--讲课视频
-5.4 软件项目估算
--讲课视频
-测验题--作业
-讨论题
--讨论
-6.1 敏捷开发之Scrum
-- 敏捷开发之Scrum
--html
-6.2 用户故事与估算
--讲课视频
-6.3 团队协作工具Tower
-6.4 配置管理
--讲课视频
-6.5 配置管理工具Git
--讲课视频
-测验题--作业
-作业题--作业
-7.1 需求工程师
--讲课视频
-7.2 需求定义
--讲课视频
-7.3 需求的类型
--讲课视频
--讲课视频(2)
-7.4 需求工程过程
--讲课视频
-7.5 需求的主要来源
--讲课视频
-7.6 需求获取技术
--讲课视频
--讲课视频二
--讲课视频三
-7.7 撰写需求文档
--讲课视频
-测验题--作业
-讨论题
--讨论
-8.1 用例建模概念
--讲课视频
-8.2 用例建模过程
--讲课视频
-8.3 用例建模精讲
--讲课视频
-8.4 建模工具介绍
--讲课视频
-8.5 微信抢票应用案例
--讲课视频
-测验题--作业
-讨论题
--讨论
-9.1 面向对象分析
--讲课视频
-9.2 CRC卡片分拣法
--讲课视频-1
--讲课视频-2
-9.3 面向对象设计
--讲课视频-1
--讲课视频-2
-9.4 类图建模
--讲课视频-1
--讲课视频-2
-第9章 面向对象分析与设计--测验题
-讨论题
--讨论
-10.1 顺序图概念
--讲课视频
-10.2 顺序图建模
--讲课视频
-10.3 顺序图风格
--讲义视频
-10.4 状态建模
--讲课视频
-10.5 状态图
--讲课视频
-10.6 状态图精讲
--讲义视频
-测验题--作业
-讨论题
--讨论
-11.1 软件体系结构概念
--讲授视频
-11.2 软件设计原则
--讲授视频
-11.3 软件体系结构风格(一)
--讲授视频
-11.4 软件体系结构风格(二)
--讲授视频
-11.5 软件体系结构风格(三)
--讲授视频
-11.6 软件设计过程
--讲授视频
-11.7 Web系统架构设计
--讲授视频
-11.8 数据库选择策略
--讲授视频
-测验题--作业
-作业题
--html
--html
--html
-作业题--作业
-12.1 交互设计概述
--讲授视频
-12.2 交互设计目标
--讲授视频
-12.3 GUI设计原则
--讲课视频
-12.4 KLM效率模型
--Video
-12.5 Fitts定律
--讲授视频
-12.6 交互设计过程
--讲授视频
-测验题--作业
-13.1 软件测试概念
--讲课视频
-13.2 软件测试类型
--讲课视频
-13.3 软件功能测试
--讲课视频
-13.4 软件性能测试
--讲课视频
-测验题--作业
-14.1 软件部署与交付
--讲课视频
-14.2 软件演化与维护
--讲课视频
-测验题--作业
-第一部分:基础知识
-第二部分:编程与测试(选做)