`
yiyeqinghuasoon
  • 浏览: 643901 次
文章分类
社区版块
存档分类
最新评论

需求的问题,是一个简单的问题

 
阅读更多

需求决定了软件做什么,要提供什么功能。
软件工程初期的一般过程是,软件开发的计划,确定要实现的目标和进度等,然后就是需求规格说明书,该说明书要得到用户的认可。用户往往提供了一份要求的说明,开发人员在这个基础上进行了加工和整理。此后的开发过程,都是围绕着需求规格说明书进行进一步地细化,直至开发出产品。当然,测试计划中也要针对需求进行验证,看看是否满足了用户的要求。
一般来说,用例视图可以很好地表现需求。用例图中,若干角色actor与系统提供的用例(功能)之间的连接关系。
以下是参考《IEEE推荐的软件需求规格说明的方法(IEEE 830-1998)》的一个系统规格说明书SRS模板:

一、引言

(一) 目的
(二) 文档约定
(三) 预期的读者和阅读建议
(四) 产品的范围
(五) 参考文献

二、综合描述

(一) 产品的前景
(二) 产品的功能
(三) 用户类型和特征
(四) 运行环境
(五) 设计和实现上的限制
(六) 假设和依赖

三、外部接口需求

(一) 用户界面
(二) 硬件接口
(三) 软件接口
(四) 通信接口

四、系统特性

(一) 说明和优先级
(二) 激励/响应序列
(三) 功能需求

五、其它非功能需求

(一) 性能需求
(二) 安全设施需求
(三) 安全性需求
(四) 软件质量属性
(五) 业务规则
(六) 用户文档

六、其它需求

附录A:词汇表
附录B:分析模型
附录C:待确定问题的列表
另外,《GB9385-88计算机软件需求说明编制指南》也为软件需求实践提供了规范化的方法。
需求的问题,是一个复杂的问题
有些时候,需求的问题会变得很复杂的。尤其是在做行业软件或者ERP的时候,你遇到不同的客户,每个客户都有他的想法或要求,而且有些客户没有明确的思路,有些则有他们很固执的思路,一时间仿佛需求是没完没了的。或许你的软件已经是一个产品,那么究竟对什么功能进行取舍,对什么功能要增加进软件的核心,对什么功能采用二次开发,都是需要仔细判断的事情。
1、需求的重复和变更
对于比较大的系统,客户不可能一次性地把需求完全提清楚。这是必须容忍的。只要你不断沟通和了解,用户需求就会不断增加。有些公司采用的方法是在需求规格说明书上让客户签字,然后严格按照该说明书来实现。如果以后客户有新的要求,则要另外考虑。但在另一方面,客户永远是上帝 ,一个软件的成功,应该是用户用得非常流畅和满意。
2、有些需求无法实现
和客户的沟通也很重要。什么是必须满足的需求,而另外一些需求可能暂时不能提供实现,这也需要解释清楚。
3、实现的功能和客户原来提出的需求会有所差别
很多软件的问题最后总结下来是因为需求没有明确。开发人员没有认准客户究竟需要什么。这时候只能修改软件。

需求的问题,是一个技术的问题
每个需求的特性可体现在很多方面:如优先级、有效性,效率,灵活性,完整性,互操作性,可靠性,健壮性,可用性;可维护性,可移植性,可重用性,可测试性等。
确定需求优先级:可以粗略地分为三级:
高一个关键任务的需求,必须在此版本实现;只有在这些需求上达成一致意见,软件才会被接受;必须完美地实现
中支持必要的系统操作,最终所要求的,但如果有必要,可以延迟到下一版本;实现这些需求将增强产品的性能,但如果忽略这些需求,产品也是可以被接受的;需要付出努力,但不必做得太完美
低功能或质量上的增强,如果资源允许的话,实现这些需求会使产品更完美;实现或不实现均可;可以包含缺陷
更精确的优先级设定如下表:
权值11 1 1
需求收益代价价值价值%成本成本%风险风险%优先级
<需求><1-9><1-9><><><1-9><><1-9><><>
其中各权值按实际情况而定,不能确定按1取值。
收益:实现此需求对用户的益处;
代价:未实现此需求对用户的损害;
价值=收益*收益权值+代价*代价权值
价值%=价值/(总价值)*100%
成本:实现此需求所需的各种成本;
成本%=成本/(总成本)*100%
风险:实现此需求所承担的风险,特别是技术上的;
风险%=风险/(总风险)*100%
优先级=价值%/(成本%*成本权值+风险%*风险权值)
最后按需求优先级排序,优先实现高优先级的需求。
风险的控制和避免:
对需求将可能面临的风险要有充分的估计并尽量避免风险的发生及其所造成的损失。建立风险跟踪 ,保持对危害最大的几项风险的控制,并在开发过程中周期性地更新风险跟踪项目。

需求的问题,是一个管理的问题
需求取得:市场销售部门、技术支持或客户服务所得到的需求,或者开发人员内部通过对业务的分析归纳得出的一些要改进的功能。
对需求进行管理的环节应该尽可能精简。最好直接由系统分析来做。经过很多环节的筛选,需求可能已经走样了。纸面上只有一两句话的需求,背后有你看不到的真正想法存在。 所以应该主动走出去寻找需求,应该选择最典型的客户进行访问。领会他们的管理思路和改革方向。
需求决策:对于相互矛盾的需求,在同类用户中由产品代表决策;对于不同类用户要根据重要性作适当折衷;对于用户的特别喜好要根据用户的重要性决定;用户中领导的需求要服从最终实际使用的用户需求;当开发者想象中的产品通常要服从用户的需求,但并不表示用户总是对的。
需求分析:分析需求的各个特性,制作出需求分析规格说明书。
需求评审:由相关人员共同对需求进行评审。
需求变更:如果遇到需求的变更,需要及时作出调整,即使与开发部门联系,提出变更的建议,并分析可能产生的影响,如对产品稳定性的影响。变更的需求需要严格的测试。
版本控制:确定需求文档版本,确定单个需求文档的版本;
需求跟踪:需求的跟踪记录需求的状态,包括未定义、放弃、需完善、已定义、实现中、待测试、测试中、完成、放弃实现等
需求管理工具:曾经看到过的工具有Rational Requsite Pro 4.5版。需要用Word 97支持。但对中文的支持不够好。

分享到:
评论

相关推荐

    软件需求分析方法总结

    撰写优秀的需求没有一个简单的公式。很大程度上,它是从过去的需求问题中得来的教训与经验。这儿有几条当你写作软件需求时应记在心上的原则: 保持句子和段落简短。 从开发者的立场来看,检查需求陈述是否足够...

    软件需求分析学习资料(含一个示例)

    软件需求分析学习资料(含一个示例)需求分析

    最少费用购物问题 动态规划

    一个花瓶的价格是5 元。为了吸引顾客,商店提供了一组优惠商品价。优惠商品是把一种或多种商品分成一组,并降价销售。例如,3 朵花的价格不是6 元而是5 元。2 个花瓶加1 朵花的优惠价是10 元。设计一个算法,计算出...

    电子商务系统需求分析

    本需求文档说明描述了“电子商务系统”项目的要求,作为系统设计、项目目标及项目验收的依据。需求分析详细描述了用户对功能的需求、对性能的需求以及对...网站管理人员:这一类人不存在使用问题,只需简单培训即可.

    第七章 需求工程之获取需求

    获取是一个综合性协作和分析的过程,其活动 包括收集、发现、提炼和定义需求 获取的目的是为了发现业务需求、用户需求、 功能需求和非功能需求及其他类型信息 需求获取可能是软件开发各个方面最具有挑战 性、最关键...

    论文研究-一种面向控制软件需求分析的方法.pdf

    针对这一问题, 提出了一种分析控制软件需求的方法和一个名为SPARDL的建模语言, 并制作了一套SPARDL工具。SPARDL可以描述周期性的控制系统, 首先将需求文档转换为SPARDL模型, 且提供了图形化的表示方法; 然后运用原型...

    航空订票系统需求分析说明书

    为用户,系统分析人员和程序员提供了一个交流平台,便于加强三方对需求的理解和交流; 预期的读者以及阅读目的: 项目经理,项目组成员:初步判断目标软件是否能满足用户的期望,并将此作为设计软件的基本出发点; ...

    ActionView问题需求跟踪工具 v1.12.0(支持二次开发).zip

    ActionView是一个基于laravel reactjs实现的面向中小企业的、开源免费的、类Jira的问题需求跟踪工具。 特点: 1、支持用户创建项目,项目不仅可引用全局配置方案,也可自定义本地方案,实现了全局配置方案和本地...

    Python编程语言的集成开发环境(IDE)或文本编辑器自然语言处理技术构建一个简单的聊天机器人(附详细操作步骤).txt

    这个简单的聊天机器人使用了一个预定义的问题和对应的回答列表。当用户输入问题时,机器人会根据问题在列表中的位置返回相应的回答。如果用户的问题不在预定义的问题列表中,机器人会返回一个默认的回答。 你可以...

    一个简单语言的编译程序设计与实现.rar

    1、定义一个简单的文法,描述程序设计语言,包括变量说明语句、算术表示和赋值语句;可扩展包括逻辑布尔表达式、选择语句和循环语句等; 设计该文法的编译程序,包括词法分析器、语法分析器、中间代码生成器、中间...

    超市管理系统-需求规格说明书.doc

    它说明了本产品的各项功能需求、性能需求和数据要求,明确标识各功能的实现过程,阐述实用背景及范围,提供客户解决问题或达到目标所需的条件或权能,提供一个度量和遵循的基准。 1.2 Scope 范围 在各个行业中,当...

    蚁群算法旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    基因遗传算法解决旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    解决旅行商问题的若干算法测评.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    模拟退火算法,求解旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    人工智能实验-遗传算法解决旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    优先队列式分支限界法解决旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    不同的启发式算法解决多旅行商问题.zip

    TSP问题在物流中的描述是对应一个物流配送公司,欲将n个客户的订货沿最短路线全部送到。如何确定最短路线。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n...

    论文研究-基于综合微观分析的装备体系需求开发方法.pdf

    将构成装备体系需求映像的上层需求与下层需求看成一个二维的概念平面, “分析解释”上层需求指标的上层需求模型从“宏观约束"角度指导下层需求开发, “分析解释”下层需求指标的下层需求模型从“微观机制”角度解决...

Global site tag (gtag.js) - Google Analytics