【系统架构设计师】需求工程

目录

          • [1. 说明](#1. 说明)
          • [2. 软件需求](#2. 软件需求)
          • [3. 需求阶段](#3. 需求阶段)
          • [4. 需求管理](#4. 需求管理)
          • [5. 例题](#5. 例题)
            • [5.1 例题1](#5.1 例题1)
1. 说明
  • 1.软件需求目前并没有统一的定义,但都包含以下几方面的内容。
  • 2.用户解决问题达到目标所需条件或权能(Capability)。系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能。一种反映前两点所述条件或权能的文档说明。
  • 3.它包括功能性需求非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求、质量标准或者设计限制。
  • 4.在经典的瀑布软件过程模型中,将需求分析作为软件开发的第1个阶段,明确指出该阶段的输出成果为用户原始需求说明书软件需求描述规约
  • 5.从这点看,需求阶段首先需要定义用户的原始需求,并与用户、客户达成一致;其次,需要这对原始需求进行分析,给出一个初步的软件解决方案 ,并给出该软件的需求描述规约,以指导后续的软件开发。
  • 6.这两个文档之间存在一个转换过程。
  • 7.p185。
2. 软件需求
  • 1.软件需求包括3个不同的层次:业务需求用户需求功能需求(也包括非功能需求)。
  • 2.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求。
  • 3.用户需求(user requirement)描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望。这两种构成了用户原始需求文档的内容。
  • 4.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。
  • 5.所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。
  • 6.作为补充,软件需求规格说明还应包括非功能需求 ,它描述了系统展现给用户的行为执行的操作等。
  • 7.它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计和实现的约束条件及质量属性。
  • 8.所谓约束是指对开发人员在软件产品设计和构造上的限制,常见的有设计约束和过程约束。
  • 9.质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。
  • 10.多角度描述产品对用户和开发人员都极为重要。
  • 11.开发软件系统最困难的部分就是准确说明开发什么,因为用户往往很难给出完整正确的原始需求,也很难想象出未来的软件应该提供哪些功能,以解决自己的业务问题。
  • 12.这些都需要软件开发人员协助,通过多次的讨论方能最终确认。
  • 13.而如果前期需求分析不透彻,一旦出错,将最终会给系统带来极大损害,并且以后再对它进行修改也极为困难,容易导致项目失败。
  • 14.1987年,Frederick Brooks在"No Silver Bullet:Essence and Accidents of Software Engineering"中,充分说明了需求过程在软件项目中扮演的重要角色。
  • 15.20世纪80年代中期,形成了软件工程的子领域,需求工程(Requirement Engineering,RE)。
  • 16.需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。
  • 17.随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。
  • 18.人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。
  • 19.需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其行为特征和相关约束。
  • 20.需求工程覆盖了体系结构设计之前的各项开发活动,主要包括分析客户要求、对未来系统的各项功能性及非功能性需求进行规格说明。
  • 21.需求工程的目标简单明了:确定客户需求,定义设想中系统的所有外部特征。
  • 22.软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线(Baseline)。这个基线在客户和开发者之间构筑了计划产品功能需求和非功能需求的一个约定(Agreement)。需求约定是需求开发和需求管理之间的桥梁。
3. 需求阶段
  • 1.需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。
  • 2.需求分析:为系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义。
  • 3.形成需求规格(或称之为需求文档化):按照相关标准,生成需求模型的文档描述,用户原始需求书作为用户和开发者之间的一个协约,往往被作为合同的附件;软件需求描述规约作为后续软件系统开发的指南。
  • 4.需求确认与验证:以需求规格说明为输入,通过用户确认、复审会议、符号执行、模拟仿真或快速原型等途径与方法,确认和验证需求规格的完整性、正确性、一致性、可测试性和可行性,包含有效性检查、一致性检查、可行性检查和确认可验证性。
  • 5.需求管理:包括需求文档的追踪管理、变更控制、版本控制等管理性活动。
4. 需求管理
  • 1.需求管理是一个对系统需求变更、了解和控制的过程。需求管理过程与需求开发过程相互关联,当初始需求导出的同时就启动了需求管理规划,一旦形成了需求文档的初稿,需求管理活动就开始了。

  • 2.需求管理的主要活动图:

  • 3.需求管理强调的内容:
    (1)控制对需求基线的变动。
    (2)保持项目计划与需求一致。
    (3)控制单个需求和需求文档的版本情况。
    (4)管理需求和联系链,或管理单个需求和其他项目可交付产品之间的依赖关系。
    (5)跟踪基线中的需求状态。

5. 例题
5.1 例题1
  • 1.题目

    1.软件需求开发的最终文档,通过评审后定义了开发工作的(A),它在客户和开发者之间构筑了产品功能需求和非功能需求的一个
    (C),是需求开发和需求管理之间的桥梁。
    问题1
    A.需求基线
    B.需求标准
    C.需求用例
    D.需求分析
    问题2
    A.需求用例
    B.需求管理标准
    C.需求约定
    D.需求变更

  • 2.解析

    1.软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线(baseline)。
    2.这个基线在用户和开发人员之间就构筑了计划产品功能需求和非功能需求的一个约定(agreement),它是需求开发和需求管理之间的桥梁。

相关推荐
月阳羊9 小时前
【无人机】无人机PX4飞控系统高级软件架构
嵌入式硬件·架构·系统架构·无人机
王佑辉1 天前
【系统架构设计师】独立构件体系结构风格
系统架构
march_birds1 天前
FreeRTOS 与 RT-Thread 事件组对比分析
c语言·单片机·算法·系统架构
张彦峰ZYF2 天前
构建高效复杂系统的关键:架构与模块详解
系统架构
王佑辉2 天前
【系统架构设计师】嵌入式操作系统的定义及特点
系统架构
Tom Boom3 天前
【3. 软件工程】3.1 软件过程模型
职场和发展·系统架构·软件工程
CryptoPP3 天前
基于WebSocket的金融数据实时推送系统架构设计对接多国金融数据API
websocket·网络协议·金融·系统架构·区块链
OpenVINO生态社区5 天前
【汽车传感系统架构:借助传感获取安全】
安全·系统架构·汽车
牛马程序员小邓5 天前
系统架构师备考——软件工程基础知识篇(软件测试&净室软件工程&基于构件的软件工程)
系统架构·软件工程