`
tboss
  • 浏览: 43233 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

需求入门: 需求工程=需求开发+需求管理

 
阅读更多

上图是需求工程的组成部分,从图中可以看出,需求工程划分为两个部分:需求开发和需求管理。需求开发又分为需求获取(Elicitation)、需求分析(Analysis)、编写规约(Specification)和需求验证(Validation)。需求管理又分为基线管理、变更管理、需求跟踪。

下面我将分别介绍一下上面各个主要组成部分主要的工作内容,以便那些不熟悉需求的人员读后能够从总体上把握需求所涉及的工作内容。

需求开发

需求开发活动包括以下几个方面:

  1. 确定产品所期望的用户分类。
  2. 获取每类用户的需求。
  3. 了解实际用户任务和目标以及这些任务所支持的业务需求。
  4. 分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息。
  5. 将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件。
  6. 了解相关质量属性的重要性。
  7. 商讨实施优先级的划分。
  8. 将所收集的用户需求编写成规格说明和模型。
  9. 评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。

实际工作中很难一次性得到完全正确的需求,所以以上步骤并不是严格顺序执行到底的,它是一个不断反复的过程。这些步骤也不是完全顺序的,很可能需要迭代的进行。基于项目的产品需求开发过程可能如下图所示:

下面就需求开发每个活动进行简单介绍:

需求获取

在《软件需求的三个层次》中介绍了三个层次的需求,在需求获取中,这些需求都是我们需要获取的,我们需要收集问题域的描述,要求解决的问题列表,以及了解系统的行为或约束。

信息来源

  • 客户(实际的和潜在的)
  • 用户(实际的和潜在的)
  • 已有系统及其文档
  • 领域专家
  • 相关技术标准和法规

取技术

  • 阅读背景资料
  • 用户访谈、调研
  • 需求讨论会
  • 现场观摩

需求分析

需求分析是指通过对需求获取中获得的问题域的研究,获得对该领域特性及存在其中的问题特性的透彻理解并用文档说明。

  • 不需要等到需求完全捕获后开始,在“业务需求”充分理解下,并且收集了本质的“用户需求”之后就可以开始进行需求分析
  • 交替进行,先把握“用户需求”主要部分,然后在分析的基础上引入系统级的需求(系统的涉及与实现角度),并且分析模型,成为开发人员之间、开发人员与客户之间达成共识的一个平台
  • 分析的基础上,就会发现更多的不明确项,更多待捕获的信息,这时就可以生成第二次的需求调研计划、问题和素材

编写规约

  • 规格说明书是对需求分析结果的文档化过程
  • 需求规约必须与实际开发紧密结合,否则很容易造成与开发脱离
  • 为需求规约定义统一的格式是一个很重要的工作
  • 规约内容必须严谨、正确、无歧义

需求验证

  • 不重视需求验证工作会在系统交付时,客户发现不是这样的,导致不期望的需求变更
  • 提高需求质量的重要手段有:需求评审、需求确认和原型验证《需求方法之-原型开发》

需求管理

需求管理活动包括:

  1. 定义需求基线(迅速制定需求文档的主体)。
  2. 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。
  3. 以一种可控制的方式将需求变更融入到项目中。
  4. 使当前的项目计划与需求一致。
  5. 估计变更需求所产生影响并在此基础上协商新的承诺(约定)。
  6. 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。
  7. 在整个项目过程中跟踪需求状态及其变更情况。

软件需求的三个层次

分享到:
评论

相关推荐

    软件工程常用文档模板及示例:可行性分析报告、开发计划、需求分析文档、

    软件工程常用文档模板及示例:项目计划、需求分析、概要设计、详细设计、用户操作手册、测试计划、测试分析报告、开发进度报告、项目开发总结报告、软件维护手册等 目录 软件工程项目管理所有阶段文档模板,供入门级...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    软件开发教程 软件工程基础入门教程 软件工程概论 第3章 需求分析(共97页).ppt

    3.1 需求分析的任务 3.2 需求获取的技术 3.3 需求规格说明书 3.5 需求验证 3.4 需求分析技术 结构化技术 形式化技术

    Reversing:逆向工程揭密

    本书共有13章和三个附录,涵盖了逆向工程的基础知识、应用、开发和拓展的方方面面问题。其中第5章、第9章和附录A、B、C由韩琪翻译,第3章、第11章和第13章由杨艳翻译,第7章、第8章和第10章由王玉英翻译,第4章和第6...

    「区块链快速入门到开发实战」宣讲会

    正式开课前夕,欢迎参加「区块链快速入门到开发实战」开班宣讲会活动!本次活动将为你全方位介绍技术训练营概况,了解目前 IC 生态赛道现状和官方扶持计划,交流区块链行业的岗位需求与创业就业经验,让开发者迅速...

    odoo16开发入门教程

    它是一系列开源商业应用套件,能满足公司的大部分应用需求,例如企业基本的进销存、采购、销售、MRP生产制造、预算管理、WMS仓库库存管理、企业招聘、员工合同、休假、午餐管理、条码、商店、论坛、车队管理、客户...

    华为硬件开发流程.pdf

    详细描述了华为的硬件开发流程(包括硬件开发过程简介,硬件工程师职责与基本技能,硬件开发规范化管理等等),值得广大电子信息学生及硬件入门者学习,如有违规,请联系撤销

    vue3+pinia+element-plus搭建的模板工程

    通过清晰的架构和优雅的代码,您可以轻松地管理和定制全局配置,节省宝贵的开发时间,让您专注于构建出色的功能和用户体验。 无论您是一名经验丰富的开发者还是刚入门的新手,这个Pinia+Vue3+Element Plus+Webpack ...

    TeamFoundationServer原理与入门:第一部分

    作为一名软件开发人员,在我的职业生涯中,我经常会用到支持软件开发过程的大量开发工具,如版本控制工具、漏洞跟踪包、生成脚本语言、单元测试框架和需求分析工具等等。在.NET平台上,大量的支持工具能够很好地独立...

    Rational 新手入门 doc

    今日的工程团队——无论他们是电子、化工、机械、软件或其他技术领域的专门团队——都比以往更加需要在项目生命周期中管理需求、变更、版本、测试,以及其他任务。您需要最好的产品来帮助您自动化这些管理任务及交付...

    linux项目工程资料-Linux 驱动开发入门与实战-第2 版.zip

    这使得Linux成为了一种非常适合企业级应用的操作系统,可以根据企业的特定需求进行定制和优化。 安全性:Linux操作系统在安全性方面表现出色,具有强大的访问控制和安全机制。这使得Linux成为了一种非常适合用于...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    爬虫开发技巧总结和入门教程知识点总结.docx

    爬虫工程化:将爬虫开发作为一个工程来管理,包括但不限于版本控制、持续集成/持续部署(CI/CD)、容器化部署(如Docker)等。 大数据处理与存储:当爬取数据量巨大时,需要了解如何利用Hadoop、Spark等大数据处理...

    java 工程师修炼之道

    Java 开发一直是当前互联网领域最火热的开发技能之一,Java 工程师也一直是需求量非常大的开发职位。本书主要针对一名合格的Java 工程师的必备技能做了大纲性的总结和阐述。本书内容包括了工程化、常用开发框架、...

    Google.Android开发入门与实战

    为了承载这些数据应用及快速部署,手机功能将会越来越智能,越来越开放,为了实现这些需求,必须有一个好的开发平台来支持,在此由Google公司发起的OHA联盟走在了业界的前列,2007年11月推出了开放的Android平台,...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 ...

    网上鲜花店管理系统论文

    在后台能实现管理员的登录、管理员对商品的分类发布、商品的管理、用户信息的管理、订单管理、管理员管理等。真正实现从商品的发布到商品的购买一系列的网上销售鲜花的功能。 本系统基于Internet的互联网网络,以B/S...

Global site tag (gtag.js) - Google Analytics