zoukankan      html  css  js  c++  java
  • 《需求工程——软件建模与分析》04

    一、需求捕获过程

    需要捕获的包含内容为:需求内容、需求来源、需求方法、执行获取、记录成果。下面将分点阐述其中包含的内容:

    (一)需求内容:

    (1)需求。主要表现为用户对系统的期望及目标,在获取中体现为涉众的问题、期望、观点、看法和态度等。

    (2)问题与描述。主要用于承载和解释需求的问题域特性,表现为现实世界的业务运行情况。

    (3)环境与约束。这属于一种特殊的问题域特性,其主要来源于涉众的描述和对应用环境的观察。

    (二)获取信息来源:

    (1)涉众。这是获取信息的主要来源,可以为业务代表、领域专家等。

    (2)硬数据。主要为登记表格、单据、报表等定量文档,备忘录、日志等定性文档。

    (3)相关产品。例如竞争对手的同类产品,或者 与本类产品的协同产品。

    (4)重要文档。包括系统规格说明文档,竞争产品的规格说明、协作产品的规格说明。这将会成为重要的文档依据。

    (5)相关法律法规、行业技术标准。主要将其作为系统参考。

    (三)获取信息方法

    (1)传统获取方法。包括问卷调查、面谈、文档分析等。

    (2)集体获取方法。包括头脑风暴会议、JAD(joint application development,联合应用开发)、JRP(joint requirement planning,联合需求计划)登。

    其中,在实际的学习中,我们就尝试过头脑风暴会议,按照步骤先写出问题、目标(’三尖刀’原则:目标、好处、度量)、涉众分析,由于是第一次进行相关讨论会议,团队之间缺少默契,掌握知识也有所差距。因此,我们采取非结构化形式,即任意提出自己的观点的形式保障了整个会议的顺利进行。头脑风暴的会议过程中,较大的收获就是,能够保障问题思考的全面性,提出了较为合理的分析方案。

    (3)原型

    主要应用于某些需求模糊、不确定,是一种发现并且可视化高级别的技术。主要分为两种:

    ①水平和垂直的原型

    水平原型也称“行为原型”,探索预期系统的一些特定行为,从而达到细化需求的目的。可以让用户通过原型考虑系统功能的有效性,使用户探讨的问题更加具体化。

    垂直原型也称“结构化原型”或者“概念的证明”,仅开发一部分功能,降低现阶段可能存在的开发风险。

    ②抛弃型原型或者进化型原型

    分类依据为原型存在的生命周期。

    抛弃型原型,顾名思义此原型并不作为最终产品的一部分。仅用于在探索一些问题时,试探性做出类似原型。因此不应花费太多精力。

    进化型原型,利用软件迭代开发的特点,在已经清楚地定义了需求的情况下,通过渐进式开发出产品。因此对代码质量要求较高。

    (4)模型驱动

    常见有面向目标的方法、面向场景的方法、面向用例的方法。

    (5)认知方法

    通过认知的方法获取用户无法用言语表达的需求。常见有任务分析、协议分析等。

    (6)基于上下文的方法

    通过注重用户在一定环境下的表现行为,从而获取到信息。主要包括:观察、民族志、话语分析等。

    (四)执行获取

    (五)记录结果

    二、需求获取注意事项

    (一)合理的组织方案

    一般组织方式为:确定系统边界、制定上下文图、系统用例图,通过遍历上下文图和系统用例图获取活动。有了整体的组织方案,还可将来自众多涉众的信息集成。

    (二)维护项目前景和范围

    用户在获取活动过程中,常常会表达出各种各样的信息,因此需求工程师需要清楚项目的前景和范围,从而引导、控制获取过程。

    (三)接收获取信息的不稳定性

    万事万物都具有其变化性,因此需求难免是不断变化的。

    (四)控制探索性工作

    对需求的可行性,进行深入和广泛的研究,在保障成本的情况下,尽可能满足用户需求。

    (五)防止遗漏

    为了保障需求的全面性,最好每一个涉众代表都能够表达出自己的需求,并将其进行细化,通过多种方法进行获取。检查边界值和布尔逻辑(逻辑或、逻辑与、逻辑非)。

    (六)结束获取

    需求信息获取肯定不是一蹴而就的,必定存在需求的更改及变化。但为满足开发工期,以及防止需求过于繁杂而导致项目失败。应该采取迭代开发,新出现的需求优先级较低,可以将其放在下一个阶段的开发过程中。

  • 相关阅读:
    android 11中报new Handler()已过时
    My WelcomeApplet
    设计模式(五):抽象工厂方法(多个工厂方法的组合)
    [Redis知识体系] 一文全面总结Redis知识体系
    RocketMq的事务消息发送方法,消息零丢失的实现方式,代码流程讲解,干货分享
    充血枚举的用法
    Rocketmq的启动jvm配置解析-runbroker.sh
    springboot+mybatis整合,基本框架
    rabbitmq单机入门安装教程(ubuntu环境 亲测有效)
    常用表单验证插件
  • 原文地址:https://www.cnblogs.com/somedayLi/p/8746440.html
Copyright © 2011-2022 走看看