`

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

阅读更多

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


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


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


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


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


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


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


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

分享到:
评论

相关推荐

    UI设计需求单(模板).docx

    7. **项目简要介绍**:这部分通常包含项目背景、目标用户群体、主要功能以及与其他产品或服务的区别,帮助设计师理解项目的大致方向。 8. **原型图**:原型图是设计流程的早期阶段,它展示了产品的基本布局和交互。...

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

    总之,概要设计与详细设计在软件开发过程中扮演着不同的角色,它们共同确保软件系统不仅满足功能需求,而且具备良好的结构和可实施性。正确理解和运用这两个设计阶段,能够提高软件开发的效率和质量,降低后期维护的...

    求开发与需求管理_做什么_重点

    - **需求跟踪**:建立需求跟踪矩阵,关联需求与设计、编码、测试等后续环节,确保需求的落实和验证。 - **需求变更控制**:设立需求变更流程,评估变更影响,批准变更请求,更新需求文档,保持需求管理的有序性。 ...

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

    概要设计文档紧接着需求规格说明书,它提供了系统整体架构和主要模块的高层次描述,如模块划分、模块间的关系、数据结构设计和算法选择等。概要设计文档的目的是为了让团队成员对系统的总体架构有一个清晰的理解,并...

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

    下面将详细阐述该系统的需求分析和设计思路。 1. **需求分析**: - **安全性**:由于煤矿作业环境特殊,考勤系统需具备高可靠性,能够确保数据的安全存储,防止意外丢失或篡改。同时,考虑到井下可能存在的通信...

    普通设计师和优秀设计师的区别到底在哪

    根据给定的信息,本文将详细探讨普通设计师与优秀设计师之间的区别。虽然提供的部分内容无法解析,但我们可以基于标题、描述及标签来构建相关的知识点。 ### 普通设计师与优秀设计师的区别 #### 一、设计理念与...

    现代主义设计与后现代主义设计的联系与区别.ppt

    现代主义设计与后现代主义设计是20世纪建筑设计领域中的两个重要流派,它们各自具有独特的理念和风格,同时也存在着一定的联系。 现代主义设计起源于20世纪中叶,核心理念是“形式追随功能”(Form Follows ...

    系统需求分析说明 页面设计说明 系统功能图 用户需求 网站建设

    系统需求分析和页面设计说明 在软件开发和网站建设中,系统需求分析和页面设计说明是两个紧密相连的重要步骤。系统需求分析是指对系统的需求进行分析和定义,以确定系统的功能和性能要求。页面设计说明则是根据系统...

    产品设计与需求分析.pptx

    在这个过程中,我们需要理解产品与项目之间的区别,明确需求的来源和管理方法,以及如何通过有效的沟通和技术实施来构建满足用户需求的产品。 首先,产品与项目的核心差异在于它们的服务对象。项目通常是为了满足...

    产品设计与需求分析教材.pptx

    产品设计与需求分析是IT行业中至关重要的环节,它们构成了从概念到实际产品的桥梁。在这份教材中,主要探讨了如何从一个产品的UI设计出发,深入到需求分析和业务规划,最终实现产品的成功开发和市场推广。 首先,...

    东北大学需求分析和系统设计期末复习

    ### 东北大学需求分析与系统设计期末复习知识点详解 #### 1. 迭代增量开发定义及示例 - **定义**: 迭代增量开发是一种软件工程方法论,通过逐步迭代和完善的方式,不断地向最终产品添加功能或改进现有功能。这种...

    (完整版)需求分析与设计课后答案.docx

    需求分析与系统设计是软件开发过程中的关键步骤,它们之间的界限在于需求分析关注的是系统"做什么",而系统设计则关注"如何做"。需求分析阶段主要理解用户的需求,确定系统的目的和功能,而设计阶段则是将这些需求...

    Lotus新建拷贝,刷新设计与替换设计的区别

    在实际应用中,应根据具体需求选择合适的操作方式,比如在开发环境中,可能更倾向于使用刷新设计或替换设计来快速迭代设计,而在生产环境中,新建拷贝和新建复本则能提供更好的数据保护和可用性。

    整车功能设计-功能需求编写

    这些技术文件对系统的要求会传递到各系统需求设计中,指导软硬件的开发,确保最终整车功能的实现。 以车外人脸识别功能为例,这一功能旨在提供无钥匙进入和个性化的驾驶体验。其功能定义包括在驾驶员接近车辆时,...

    教学设计与教案的区别简案与详案的区别.pdf,这是一份不错的文件

    教学设计与教案是教育领域中两个重要的概念,虽然它们在一定程度上有相似之处,但存在着显著的差异。教学设计是一个系统性的过程,它涉及到对学习行为目标的设定、学生特性和需求的分析、教学环境的考虑,以及教学...

    需求分析与解决方案设计ch06.ppt

    需求分析与解决方案设计是软件开发过程中的核心环节,它的质量直接影响到最终产品的成功与否。确保开发人员能够准确理解用户需求是这一过程的关键。本文件详细介绍了如何进行需求获取和管理,以及如何找到合适的用户...

    需求开发(用户、产品需求规格说明书)企业级CMMI3标准

    用户需求说明书主要记录了用户对于系统的期望和要求,是与用户沟通的基础,它应清晰、简洁且易于理解。而产品需求规格说明书则进一步细化了这些需求,包括了产品设计和实现的具体细节,是开发团队实施开发的依据。 ...

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

    初步设计与方案设计是工程设计过程中的两个关键阶段,它们虽然紧密相关,但在设计深度、内容及目标上有明显的区别。 方案设计是设计的初期阶段,它主要关注的是创新和概念的形成。在这个阶段,设计者需要对项目的...

    视频播放器需求分析说明书

    - **编写目的**:旨在为视频播放器软件提供全面的用户需求分析,确保软件功能、性能与界面符合用户期望,指导后续的设计与开发工作。目标读者包括客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员...

Global site tag (gtag.js) - Google Analytics