博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

需求分析

Posted on 2013-02-15 21:10  75077027  阅读(362)  评论(0编辑  收藏  举报

软件需求分为三大部分

1)功能需求:指系统需要完成那些事情,不应该做什么.
2)非功能需求:比如可靠性、扩展性、响应时间、性能等等...
3)设计约束:系统对操作系统的要求,硬件环境的要求,技术的可行性,操作的可信性,经济的可行性


需求调查与问题定义

在做需求调查时需要做到
1)What-----应该收集什么信息
2)Where----从什么地方收集
3)How-------用什么机制或技术来收集


需求分析通常包括六个方面

1)绘制系统上下文范围关系图:主要用于定义系统与系统外部实体间的界限和接口的简单模型,他可以为需求确定一个范围.其实就是DFD的0层图
2)创建用户接口原型
3)分析需求的可行性:这个需求我们应该用什么技术解决,他实现后的性能怎么样,是否与其他需求相重合或是矛盾
4)确定需求的优先级:可采用满意度/不满意度指标来说明(满意度1-5 表示当需求被实现时用户的满意程度;不满意度取值同理)
5)需求建立模型
6)使用质量功能调配(QFD):根据需求的理解发现隐藏需求而这些需求是用户也没有想到的需求,系统实现后会给用户一个惊喜,而没实现用户也不会有抱怨


优秀需求具有的特性(十二点) 

1)完整性:每一项需求都必须将所要实现的功能描述清楚.
2)正确性:每一项需求都必须准确地陈述所要开发的功能
3)可行性:每一项需求都必须在已知系统和环境的技术、资源等限制范围内是可以实施的
4)必要性:每一项需求都必须和某项真正用户需求
5)与实现无关性:需求关注的是系统将要做些什么,其后的阶段如设计,关注该系统将怎样来实现
6)划分优先级:给每项需求分配一个可实施的优先级以指明特在产品中的重要程度.
7)无二义性:每项需求对所有相关的读者只能有一个明确统一的解
8)可验证性:每项需求都应能够被人或机器加以验证,否则将无法确定该项需求是否实现
9)正确的层面:每项需求或者一组需求都应包含相应的层面信息,以便据此足以导出下一层产品需求或设计,但不应提供对下一层活动如设计不必要的限制.
10)一致性:需求规格说明一致性是指软件需求不能与其它需求如系统需求、业务需求相矛盾.
11)简洁明了:每一需求都应清晰地对应某一系统功能或用户需要,
12)可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链.


不合格的需求派生的问题(七点) 

1)没有足够用户参与 : 用户不多导致产品无法被接受
2)用户需求的不断增加 : 带来过度的耗费和产品质量的降低
3)模棱两可的需求说明 : 将导致时间的浪费和返工
4)用户增加一些不必要的特性和开发人员画蛇添足
5)过分简略的需求说明 : 以致遗漏某些关键需求
6)忽略用户分类 : 忽略某类用户的需求将导致众多客户的不满
7)不完善的需求说明 : 使得项目计划和跟踪无法准确进行


外包

1.技术外包: 将客户服务均外包给一家或多家公司来负责
2.咨询外包: 指用软件公司的技术为用户的特定需要而进一步地开发新系统,是双方在技术和市场方面的联盟合作
3.测试外包: 把原有的测试部门的大部分测试分到外面去做,仅保留部分和开发互动非常紧密的少数测试人员
4.维护外包: 把旧产品的维护工作交给别的公司,自己则专注新的产品的开发
5.编程外包: 在完成产品设计后,把代码编程的工作外包
6.设计外包: 几乎把所有的开发工作都外包给另一家公司,自己则集中精力做市场


用户体验

图释一:

 

图释二: