三九宝宝网宝宝教育学龄段教育

软件设计时什么是需求分析

12月27日 编辑 39baobao.com

[三巧儿的性格分析]恋爱中的女人——说说三巧儿 发帖人: 滚滚红尘 时间: 2001-4-7 17:56:54 《三言》是明代冯梦龙编辑的白话小说集,其第一篇是《蒋兴哥重会珍珠衫》。“第一”总是具有非同寻常的...+阅读

软件需求

对大多数人来说,若要建一幢数百万元的房子,他一定会与建房者详细讨论各种细节,他们都明白完工以后的修改会造成损失,以及变更细节的危害性。然而,涉及到软件开发,人们却变得“大大咧咧”起来。软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的“祸根”(Leffingwell 1997)。可许多组织仍在那些基本的项目功能上采用一些不合规范的方法,这样导致的后果便是一条鸿沟(期望差异)—开发者开发的与用户所想得到的软件存在着巨大期望差异。

在软件工程中,所有的风险承担者(stakeholder)(这个词很有意思,原义是赌金保管者。我看过很多的翻译,有翻译成涉众的,也有的翻译成参与者的,但是我想他的主要意思就是和这个项目有密切相关利益的人)都感兴趣的就是需求分析阶段。这些风险承担者包括客户、用户、业务或需求分析员(负责收集客户需求并编写文档,以及负责客户与开发机构之间联系沟通的人)、开发人员、测试人员、用户文档编写者、项目管理者和客户管理者。这部分工作若处理好了,能开发出很出色的产品,同时会使客户感到满意,开发者也倍感满足、充实。若处理不好,则会导致误解、挫折、障碍以及潜在质量和业务价值上的威胁。因为需求分析奠定了软件工程和项目管理的基础,所以所有风险承担者最好是采用有效的需求分析过程。

软件需求的定义

IEEE软件工程标准词汇表(1997年)中定义需求为:

(1)用户解决问题或达到目标所需的条件或权能(Capability)。

(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。

(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。

需求的层次

下面这些定义是需求工程领域中常见术语的定义说明。

软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明。功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。软件需求各组成部分之间的关系如图所示。

作为补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发人员都极为重要。

值得注意的一点是,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。

Frederick Brooks在他1987年的经典的文章“No Silver Bullet:Essence and Accidents ofSoftware Engineering ”中充分说明了需求过程在软件项目中扮演的重要角色:

开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。

为什么这么说呢,因为在大多数的软件系统中,最终用户可能都不清楚他的需求是什么,这是千真万确的。如果你的用户告诉你需求就是这些了,不要相信他,继续刨根问底,直到你们都筋疲力尽了。

以下为关联文档:

熊猫儿的角色分析熊猫儿初遇沈浪是从兄弟口中得知有两只‘肥羊’路过,所以特意接近想要施展空空妙手。在沈浪眼里,“此人身长八尺,沉眉大眼,腰畔斜插着柄无鞘短刀,手里提着只发亮的酒葫芦,一面高歌...

自我性格的分析从心理学角度写作思路:自己对自己的性格进行分析分析的时候注重心理性格方面。 自己眼中的自己和别人眼中的自己总是不大一样的,在这里,我想谈谈我自己眼中的自己,其实我也算比较自卑的那种...

乐嘉性格色彩测试测试结果分析如何解读测试分数,是上本书的读者提问最多的问题。这回,在解释分数和性格的关系前,需您务必明了在性格色彩中四个最核心的词汇,分别是:动机与行为 性格与个性,所有的探讨基于此,所...

请问软件开发和需求分析一个软件开发项目通常要经历需求分析、设计、编程、测试等几个大的阶段。其中设计又包括整体设计、系统设计(把整体架构变成一块块系统)、详细设计几个环节。详细设计之后软件...

APP开发的需求分析主要包括哪些随着移动互联网的飞速发展,为APP开发市场提供了良好的基础。现如今,大部分企业都需要开发属于自己的APP软件,但为了保证开发出来的APP适应市场需求,以及被用户认可,就必须先对APP...

软件的需求分析怎么写啊1. 引言 1.1 编写目的:编写此文档的目的是进一步定制软件开发的细节问题,便于用户与开发商协调工作.本文档面向的读者主要是项目委托单位的管理人员.希望能使本软件开发工作更...

怎样做软件的需求分析软件需求的定义:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(3)一种反映上面(1)或(2)所描述的条...

如何进行软件需求分析功能: 软件功能又分关键功能,次要功能等。在第二阶段,我们要做的就是分辨并整理关键功能,和次要功能。根据项目的规划,找出当前需要实现的关键功能,与此同时,对于高风险,技术风险大...

如何做好软件项目需求分析软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,通过对应用问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化...

推荐阅读
图文推荐