`

需求与设计的区别究竟是什么

阅读更多

需求与设计的区别究竟是什么? 教科书上的经典答案是:需求关注系统“做什么”,设计关注“如何做”,其实这是一个很模糊的说法。


无论是在结构化方法中还是在面向对象的方法中,需求分析的结果既包括了“做什么”也部分包括了“如何做”,只不过描述“如何做”时抽象的层次比较高或者描述了某个局部需求的“如何做”。客户在提出系统需求时,可能对“如何做”提出一些约束条件,比如客户要求必须采用三层结构,必须采用某个中间件等等。在需求描述文档中,一般称为“设计约束”。开发人员进行需求分析后的结果包括了系统构成元素(无论是称为模块还是称为包)的分解,包括了数据流程图或类图等,这实际上也是在定义系统“如何做”,只不过这里描述的“如何做”应是从客户的角度比较容易理解的。


在需求中包括了:
Ø       系统的目标、范围以及与外部的接口;
Ø       系统的功能、操作流程、处理规则;
Ø       系统处理的数据,数据有属性,数据之间有关系,这些数据可以解释为实体或者类;
Ø       对于系统可以划分为子系统,子系统中再分为模块,子系统、模块只是对系统功能进行分类的一种方法;
Ø       系统的设计约束;
Ø       系统的运行环境等。
另外在需求中还包括了:
Ø       子系统或模块之间的接口关系;


这一部分往往是和设计有交叉的,系统分解为子系统、模块,以及他们之间的接口关系在概要设计中往往也是涉及到的。在需求中对系统的分解是从功能的角度,是从逻辑分类的角度进行系统的拆分,而在设计时对系统的拆分是从实现的角度,比如在设计时将系统分为界面层、中间层、数据层。


在需求中尽量不描述“如何做”实际上是避免对设计进行太多的约束与假设,这样会限制设计方案的选择。设计可以认为是一种决策行为,是一种选择行为。需求确定以后,解决的方案可能有多种,如果在需求里描述了“如何做”,实际上就限制了设计只能选择某一种方案,而这种解决方案却很可能不是最优的。所谓的解决方案可针对整个系统,也可能针对某个具体的功能。


原则上“做什么”是由客户提出来,由系统分析人员进行文档化,“如何做”是由开发人员来确定的并进行文档化。


“做什么”与“如何做”在现实中是实际上是迭代进行,交织在一起的。在项目立项之前进行的可行性分析,包括了系统目标与范围的确定,包括了技术路线的论证,包括了成本、风险、进度的估算等等,在上述的行为中,包括了简单的需求与设计。在项目立项之后,采集了客户需求,进行需求分析,然后考虑系统的解决方案,此时还可能需要修改或增加需求。二者交叉或并行执行。


在需求和设计之间划一条明确的界线其实很难,理解了二者的根本区别,企业可以自己硬性地规定一条界线:即哪些内容在需求中描述,哪些内容在设计中描述。

分享到:
评论

相关推荐

    煤矿考勤系统需求分析和设计思路

    煤矿 考勤 需求 需求文档 设计思路 煤矿考勤系统需求分析和设计思路

    概要设计与详细设计的区别

    文档描述了软件设计过程中概要设计与详细设计文档编写内容的区别

    软件开发文档(需求规格说明书,详细设计等)

    在软件开发时用到的一些文档。里面包括需求规格文档,概要设计文档,详细设计文档,测试报告,测试计划,用户使用手册等开发时用到的文档。

    需求调研报告软件需求分析报告模板范例

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别 4 3.2.5 概要设计的评审 4 3.2.6 概要设计格式 4 3.3 软件的详细设计 5 3.3.1 详细设计 5 3.3.2 特例 5 3.3.3 详细设计的要求 5 3.3.4 数据库设计 5 3.3.5 详细...

    初步设计与方案设计的区别.docx

    初步设计与方案设计的区别全文共6页,当前为第1页。初步设计与方案设计的区别全文共6页,当前为第1页。初步设计与方案设计的区别 初步设计与方案设计的区别全文共6页,当前为第1页。 初步设计与方案设计的区别全文共...

    学籍管理系统软件设计说明书

    当前认识人事管理虽然已有,但与我们设计的管理系统软件有很大的区别。我们设计的软件是一种辅助办公室档案管理软件,它应用的汉语程序设计语言实现的系统的软件。目前为止,汉编自动化软件还不成熟,其当前市场基本...

    完美的软件需求分析文档

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别 4 3.2.5 概要设计的评审 4 3.2.6 概要设计格式 5 3.3 软件的详细设计 5 3.3.1 详细设计 5 3.3.2 特例 5 3.3.3 详细设计的要求 5 3.3.4 数据库设计 5 3.3.5 详细...

    软件需求分析报告

    3 2 4 概要设计和需求分析 详细设计之间的关系和区别 4 3 2 5 概要设计的评审 4 3 2 6 概要设计格式 4 3 3 软件的详细设计 5 3 3 1 详细设计 5 3 3 2 特例 5 3 3 3 详细设计的要求 5 3 3 4 数据库设计 5 3 3 5 详细...

    .ntf与.nsf区别 及 刷新设计与取代设计

    Notes数据库是个文档型数据库...因此,如果有个数据库,可以作为模板,将修改好的设计刷新到目前正在使用的数据库中,既可以事先测试保证质量,又可以不断地增加功能,满足日益变化的需求,这样才算是理想的解决方案。

    初步设计与方案设计的区别(1).docx

    建筑工程除按建设部《关于批准<建筑工程设计文件编制深度的要求>通知》(建设〔1992〕102号)规定外,还应满足以下要求: 初步设计与方案设计的区别(1)全文共3页,当前为第2页。初步设计图纸 初步设计与方案设计的区别...

    数据库设计与优化.pdf

    主键的选择还要注意组合主键的字段次序,对于组合主键来说,不同的字段次序的主键的性能差别可能会很大,一般 应该选择重复率低、单独或者组合查询可能性大的字段放在前面。 1.3.4 外键的设计 外键作为数据库对象,...

    宿舍局域网设计.docx

    考虑到学生的经济情况和对网络的应用需求与家庭用户有所区别,宿舍的布局和网络接入方式也有较大差别,应当对组建学生宿舍网进行应用需求和设备需求等方面的分析和规划。确立组建宿舍网的原则,选定一种既经济又实用...

    传统电子设计与EDA设计的比较

    1.功能强大: VHDL支持行为描述、结构描述和混合描述,能够满足各种复杂数字电路设计需求,同时还支持模拟仿真,可以通过软件验证设计的正确性。 2.通用性好: VHDL语言是工业标准,凡大型EDA软件都支持VHDL语言的设计...

    软件设计规范

    也就是说,需求分析之前的需求是要明确,让什么人来设计软件,然后为他们选择合适的语言。软件生成除了代码生成,还包括另外一个意思:软件构造。这在前面已经论述过了。只是,这里的软件构造机制已经在语言中奠定了...

    数据库设计与优化.docx

    通过分析、比较与综合各种常见的数据库规范化设计方法,一般将数据库设计分为以下六阶段:需求分析阶段;概念设计阶段;逻辑设计阶段;物理设计阶段;数据库实施阶段;数据库运行维护阶段。(如下图所示) 二、 需求...

    一个BS架构软件的原型设计

    答复:你所说的UE调研,其实已经包含在需求调研中了,当然也体现在原型上了,这个过程没有独立做,肯定不会做到很完善,但是项目管理与产品设计是有区别的,比如: 产品设计,除注重产品功能外,还有很如用户体验、...

    电子商务(B2C)网站需求设计方案.docx

    电子商务(B2C)网站需求设计方案 电子商务(B2C)网站需求设计方案全文共13页,当前为第1页。 简介: 这是老邢在2021年年初做的一份B2C网站的需求方案。当初是要把社区和ERP等做成一个可分可合的一个整体,即各位...

    软件开发需求文档模

    3.2.4 概要设计和需求分析、详细设计之间的关系和区别 4 3.2.5 概要设计的评审 4 3.2.6 概要设计格式 4 3.3 软件的详细设计 5 3.3.1 详细设计 5 3.3.2 特例 5 3.3.3 详细设计的要求 5 3.3.4 数据库设计 5 3.3.5 详细...

    信息系统分析与设计---需求的传统描述方法

    传统开发方法和面向对象开发方法的区别;数据流图的概念和作用及表示方法;数据流图的抽象水平;评估数据流图质量的方法;处理的详细描述方法;数据流、数据存储、数据元素的定义方法;在进行节点和网络通信前期设计...

    基于ensp的千人冗余型校园/企业网络规划与设计

    文件中包含了千人网络设计规划的topo图及其完整的配置(2份,区别就是第二个加了无线网络规划设计WiFi)该topo适合了解并熟知单个组网技术的小伙伴并想将学习的单个技术组合起来的应用的小伙伴。场景适用于毕设、校园/...

Global site tag (gtag.js) - Google Analytics