如何准确分析需求

业务驱动的需求思想

要做好软件需求工作,业务驱动需求思想是核心。传统的需求分析是站在技术视角展开的,关注的是“方案级需求”;而业务驱动的需求思想则是站在用户视角展开的,关注的是“问题级需求”。

变更/优化型需求分析任务执行指引

在软件需求分析实践中,用户提出变更、优化型需求也通常都是直接提出“方案级需求”,因此我们需要还原出“问题级需求”

价值需求主线

什么是价值需求?简单来说,就是从黑盒子视角回答“整个软件系统为客户解决了什么问题、创造了什么机会”,“对于系统而言,最关键的干系人有哪些”,“各个重要干系人对系统的关注点是什么?有哪些担心(阻力点)”三个本质性问题。价值需求是组织应用类软件系统需求的灵魂和方向,但在笔者所接触的很多此类需求分析实践中,这部分做得相对薄弱。这将使得项目范围更容易蔓延,客户从中获得的利益与价值不容易呈现,从而导致客户满意度难以有效提升。

功能主线

有人说,组织应用类软件系统就是带一定业务逻辑的增删、改查功能;也有人说,做需求就是先搭菜单结构。这些都是典型的白盒子视角,是从开发视角来说的技术驱动需求理念。这一视角,会让用户对需求分析过程敬而远之,写出的需求文档也将令其望而生畏。

有人说,我们应该先找业务用例,再找系统用例,从用户的角度来“发现”。这虽然是一种“黑盒+灰盒”的视角,但大量实践者苦于难以有效地完成思维角度的切换;另外,这种较小粒度的抽象方法,容易在需求分析过程中陷入树木而忽略森林。

实际上我们还有更好的思考角度和做法,那就是厘清系统中的所有功能是因何而存在的。如果我们站在更宏观的角度上来看,实际上最核心的无外乎以下几个方面:

  1. 通过系统固化、优化业务流程,提升流程执行效率、节约成本、降低风险等。

  2. 通过系统拓展业务的渠道,使其延伸到电话、互联网、移动互联网等通道上。

  3. 通过系统将个人知识、能力转化为组织知识、能力。

  4. 通过系统实现数据的信息化,辅助管理、决策。

业务支持

业务支持最典型的是三类:首先是固化、优化业务流程,因此业务流程是核心;其次是业务延伸到新的通道(诸如手机端),这从本质来说也是一种流程的重构,核心还是业务流程;最后是将个人能力转化为组织能力,而这种能力存在于具体的业务场景中,因此“专家场景”是核心。要梳理出业务支持所需要的功能,简单来说,就是从灰盒子视角回答四个问题:“根据目标和干系人关注点,系统涉及哪些业务流程?”“这些业务流程是如何定义的,需要优化吗?”“系统对流程中所有业务场景都要支持吗?还是只支持一部分?”“有哪些业务场景的工作经验需要模型化?”

系统要支持的是业务,而在业务领域中通常是先制定业务流程,再明确岗位及岗位职责的;只有清晰地梳理出流程,才能更好地分析需求。

管理支持

软件系统对管理的支持,主要可以体现在三个方面:

  1. 事前风险避免,通过增加管理流程;

  2. 事中风险控制,通过“规则”和“审批”;

  3. 事后总结优化,通过“数据分析”。

前两种通常会在业务支持分析中统一处理;第三种则应该独立进行分析。要梳理清管理支持所需的功能,简单来说,就是从灰盒子视角回答三个问题:“管理层用户希望通过系统来实现哪些管理、控制需求?”“希望通过系统做哪些辅助决策?”“要实现这些管理、控制、决策支持,需要哪些信息?用什么方法获得它们?”

业务流程分析与优化

在标识出相关的业务流程之后,接下来的关键任务就是逐个流程进行了解与分析,绘制出流程图,并对关键流程做适度的优化。

业务流程八要素

业务流程分析,最重要的是厘清如图7-5所示的业务流程八要素,包括五个基本要素(分工、活动、协作、产物关系、分支),三个管理要素(审核、规则、异常)。

五个基本要素

当我们分析一个业务流程时,首先需要明确出整个流程中涉及哪些分工、每个角色负责执行什么活动,然后选择合适的流程图将其表示出来。当然,这些活动之间不是独立的,存在顺序执行、并行执行、异步执行等多种可能,这就是“协作关系”,在流程图中就是各个活动之间的连线。而且协作过程不是一成不变的,还需要根据实际情况来进行处理,这就是流程中的“分支”。这也是流程图中的一个重要的要素。另外,在协作过程中,各分工之间需要传递工作产物,流程管理者会制定一些表单、单据格式以明确职责,这就是“产物关系”。在流程图中通常以“数据流”或“文档”的形式来表示。这些就是一个流程中五个基本要素之间的关系,除此之外,管理者还会在流程中引入一些用于控制风险、监控进程的管理元素。

领域建模

在信息系统需求分析中,数据主线的重点在于范围与关系,也就是哪些数据要纳入系统,它们之间的关系是什么,而领域建模正是解决这两个问题的关键。

类图基础

领域建模的结果需要选择一个模型来表示,可选的模型只有两个:E/R图和类图。由于E/R图只能描述关联关系,而类图能够呈现出更多关系,因此强烈建议使用类图。下面我们简单介绍一下类图。

在执行领域建模任务时,首先标识系统中的主业务流程,针对每个主业务流程绘制出领域类图片段(包括识别过程数据、识别自然数据、识别描述类数据三步),然后将它们合并成整个系统的领域模型(第四步)。前三步所采用的方法是“四色建模法”,它是领域建模实践中最有效的方法之一

彩色建模法

彩色建模法的创造人Peter Coad把领域类分成了过程数据(Moment Interval,也译为时刻)、自然数据(Party、Place、Thing)、角色数据(Role)、描述类数据(Description)4种,并且分别使用红、绿、黄、蓝4种颜色的即时贴来表示

使用的时候,将采用“红→绿、黄→蓝”的顺序执行,也就是先标识过程数据,然后标识自然数据(同时考虑角色数据),最后标识描述数据的顺序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/170720.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻量封装WebGPU渲染系统示例<27>- 浮点RTT纹理(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/FloatRTT.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如下: const floatRTT { diffuse: { uuid: "rtt0", rttTe…

【Maven教程】(十):使用 Hudson 进行持续集成—— 从Hudson的安装到任务创建 ~

Maven 使用 Hudson 进行持续集成 1️⃣ 持续集成的作用、过程和优势2️⃣ Hudson 简介与安装3️⃣ 准备 Subversion 仓库4️⃣ Hudson 的基本系统设置5️⃣ 创建 Hudson 任务5.1 Hudson 任务的基本配置5.2 Hudson 任务的源码仓库配置5.3 Hudson 任务的构建触发配置5.4 Hudson …

竞赛选题 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景🚩 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率(Accuracy)3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测 目录 分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-LSTM粒子群算法优化长短…

开源知识库软件xwiki在Windows下的安装

文章目录 开源知识库软件-xwiki在windows上的部署0、参考文档1、前置环境准备1.1、Windows版本及系统配置1.2、JDK11安装1.3、Tomcat9安装1.4、MySQL5.7数据库的安装 2、xwiki安装3、配置3.1、修改配置支持对文档内容进行搜索 4、问题解决4.1、附件无法上传问题4.1、附件无法下…

带头双向循环链表

文章目录 概述初始化销毁插入删除遍历打印 概述 带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势…

【Spring Boot】035-Spring Boot 整合 MyBatis Plus

【Spring Boot】035-Spring Boot 整合 MyBatis Plus 【Spring Boot】010-Spring Boot整合Mybatis https://blog.csdn.net/qq_29689343/article/details/108621835 文章目录 【Spring Boot】035-Spring Boot 整合 MyBatis Plus一、MyBatis Plus 概述1、简介2、特性3、结构图4、相…

Unity中Shader雾效的实现方法一

文章目录 前言一、在片元着色器中使用如下公式计算最终的颜色 lerp(雾效颜色,物体颜色,雾效混合因子)1、获取雾效颜色2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定&am…

【OpenCV实现图像:用OpenCV图像处理技巧之白平衡算法】

文章目录 概要加载样例图像统计数据分析White Patch Algorithm小结 概要 白平衡技术在摄影和图像处理中扮演着至关重要的角色。在不同的光照条件下,相机可能无法准确地捕捉到物体的真实颜色,导致图像呈现出暗淡、色调不自然或者褪色的效果。为了解决这个…

基于SSM的网络直播带货网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Java 之集合框架的详细介绍

文章目录 总的介绍1. **Collection 接口**2. **List 接口**3. **Set 接口**4. **Map 接口**5. **HashMap、LinkedHashMap、TreeMap**6. **Queue 接口**7. **Deque 接口** ArrayList 类1. **创建 ArrayList:**2. **添加元素:**3. **插入元素:*…

深度学习基于python+TensorFlow+Django的花朵识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经…