首页 > 代码库 > 构建之法学习(8)
构建之法学习(8)
第8章 需求分析
人们为了解决现实社会和生活中的各种问题,要求助于软件。
1. 获取和引导需求(Elicitation)
2. 分析和定义需求(Analysis & Specification)
3. 验证需求(Validation)
4. 在软件产品的生命周期中管理需求(Management)
对软件的需求,也可以从不同角度做下面的划分。
1. 对产品功能性的需求:要求产品必须实现某些功能。例如,学校的选课软件只允许有学生身份的用户浏览并选择课程,同时要求学生选择某一门课时必须要满足“先修课”的要求,等等。
2. 对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件,例如,开发过程必须产生某种类型的文档,必须在某个时间点达到某个状态,必须对源代码施以某种约束(安全性核查、代码版权核查、代码规范和支持文档的核查)。
3. 非功能性需求:这也叫“服务质量需求”(Quality of Service Requirement),例如,股票交易系统必须在一定时间内返回用户查询结果(它对时间的要求要比“科技文献检索”网站要高),火车票购票系统、大学选课软件必须能支持一定数量的用户同时访问,等等。
4. 综合需求:有些需求并不是单单一个软件模块就能满足,例如,“购物网站必须在24小时内把货物发送到用户手中”,这个需求牵涉到软件系统、货物派送系统、送货部门、监控系统等不同部门的功能和执行能力。软件团队和客户代表要在需求阶段把这些问题定义清楚。
获取用户需求——用户调查
软件开发的过程,就是“用户最需要的东西”在下面这一链条中传送、转换、实现、扭曲或丢失的过程。
1. 焦点小组(Focus Group)
2. 深入面谈(In-depth Interview)
3. 卡片分类(Card Sorting)
4. 用户调查问卷(User Survey)
5. 用户日志研究(User Diary Study)
6. 人类学调查(Ethnographic Study)
7. 眼动跟踪研究(Eye Tracking)
8. 快速原型调研(Quick Prototype)
9. A/B测试(A/B Testing)
构建之法学习(8)