如何准确分析需求

业务驱动的需求思想

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

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

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

价值需求主线

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

功能主线

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

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

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

  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.mzph.cn/news/140863.shtml

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

相关文章

头歌答案--爬虫实战

目录 urllib 爬虫 第1关:urllib基础 任务描述 第2关:urllib进阶 任务描述 requests 爬虫 第1关:requests 基础 任务描述 第2关:requests 进阶 任务描述 网页数据解析 第1关:XPath解析网页 任务描述 第…

通过 Elasticsearch 和 Go 使用混合搜索进行地鼠狩猎

作者:CARLY RICHMOND,LAURENT SAINT-FLIX 就像动物和编程语言一样,搜索也经历了不同实践的演变,很难在其中做出选择。 在本系列的最后一篇博客中,Carly Richmond 和 Laurent Saint-Flix 将关键字搜索和向量搜索结合起…

Hafnium之准虚拟化接口

安全之安全(security)博客目录导读 目录 一、HF_INTERRUPT_ENABLE 二、HF_INTERRUPT_GET 三、HF_INTERRUPT_DEACTIVATE 四、HF_INTERRUPT_RECONFIGURE Hafnium

基于Python实现,调用百度通用翻译API-详解

概述 在工作上需要各个国家语言的翻译方面很多地方用的上。 获取API权限: 登录百度账号,在个人信息界面,包括修改密码、绑定手机、身份人证等 https://api.fanyi.baidu.com/api/trans/product/desktop?req=developer 百度翻译开放平台 在开发者中心:需要开通个人账号…

redis之org.springframework.data.redis.RedisSystemException: Error in execution

背景 在运行某系统时,在测试类向redis中存入某值,然后取出。 一、遇到的问题 报错: org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: …

【算法练习Day47】两个字符串的删除操作编辑距离

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 两个字符串的删除操作编辑距…

Vue的计算属性

Vue的计算属性,是一种架构设计中的权衡结果。现在的前端架构,上规模的都是类似于MVVM风格的。在这种架构下,会存在一种情况,从后台取回的数据不能直接展示,需要满足一定条件时做一些临时性的转换,将原本的数…

3个ui自动化测试痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验,由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的,然后在慢慢的接触 U…

找工作的网站都有哪些

吉鹿力招聘网作为一家知名的招聘网站,因其功能完善和用户隐私保护而备受用户青睐。它不仅可以与企业直接沟通,还可以提供在线聊工作的机会。通过吉鹿力招聘网,用户可以自主选择工作地点、时间和工作类型,大大提高了找到合适工作的…

基于JavaWeb+SSM+基于微信小程序的“生鲜食品”团购平台生鲜商城系统的设计和实现

基于JavaWebSSM基于微信小程序的“生鲜食品”团购平台生鲜商城系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 生鲜食品是我们生活中的必需品,为了确保食品的新鲜…

Azure 机器学习 - 使用受保护工作区时的网络流量流

目录 环境准备入站和出站要求方案:从工作室访问工作区方案:从工作室使用 AutoML、设计器、数据集和数据存储方案:使用计算实例和计算群集方案:使用联机终结点入站通信出站通信 方案:使用 Azure Kubernetes 服务方案&am…

个人开发常用idea插件

idea重装后必须要配置的几项: Maven: File-->Settings-->Maven字体: IDE字体设置:File-->Settings-->Appearance,设置成Consolas,Size:18代码字体设置:File-->Setti…

Django知识点

目录 一、三板斧的使用 二、全局配置文件 三、静态文件的设置 四、request对象的方法 五、pycharm链接数据库 六、Django链接数据库 七、orm介绍 一、三板斧的使用 三个方法: HttpResponse renderredirect def index(request):print(request)return HttpR…

lightdb oracle模式支持sys_refcursor类型

背景 在业务产品中,存在Oracle移植过来的函数以及存储过程。它们把sys_refcursor作为参数的类型。 LightDB 23.4版本对此进行了支持。 示例 准备环境 create database test_oracle with lightdb_syntax_compatible_type oracle; \c test_oracle准备数据 crea…

云计算、大数据技术的智慧工地,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式

智慧工地是利用物联网、云计算、大数据等技术,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式。 智慧工地架构: 1、终端层: 充分利用物联网技术、移动应用、智能硬件设备提高现场管控能力。通过RFID、传感器、摄像头、手机等终…

Mongodb 中,与索引相关的监控指标

Mongodb为集合添加索引,能够提高查询的效率,减少查询过程中检索文档的数量,改变文档检索的方式。 索引,采用集合中的一部分数据,构建了B tree,支持mongodb的高效检索。除$indexStats命令外,mong…

RK3568平台开发系列讲解(Linux系统篇)Linux 目录结构

🚀返回专栏总目录 文章目录 一、VFS二、分区结构三、挂载 mount四、目录结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们从目录管理入手,会更直观的理解 linux 的目录结构。 一、VFS Linux 所有的文件都建立在虚拟文件系统(Virtual File System ,VFS…

【LittleXi】C程序预处理、编译、汇编、链接步骤

【LittleXi】C程序预处理、编译、汇编、链接步骤 C程序 #include<stdio.h> int main(){int x1,y1;printf("xy%d",xy); }1、预处理 将头文件引入进来、除去注释、宏定义下放 执行指令 g -E esc.c -o esc.i 2、编译 将处理好的代码编译为汇编代码.s 执行…

移动端性能专项测试之内存 - 进阶篇

在 Android 系统中内存作为重要的资源&#xff0c;一直是开发及测试关注的重点&#xff0c;内存不足或者内存资源滥用都会导致严重的问题。本篇文章将会从底层出发给大家介绍 OOM&#xff08;Out Of Memory&#xff09;和 LMK&#xff08;Low Memory Killer&#xff09;等内存相…

c++-哈希

文章目录 前言一、unordered系列关联式容器1、unordered_map2、性能测试 二、哈希1、哈希概念2、哈希冲突3、哈希冲突解决3.1 闭散列3.2 开散列3.3 字符串Hash函数3.4 哈希桶实现的哈希表的效率 三、哈希表封装unordered_map和unordered_set容器1、unordered_map和unordered_se…