如何进行业务需求分析

首先,我们应该明确进行需求分析的目的。我认为,进行业务需求分析的直接目的就是为了进行信息系统的开发,所谓的需求,就是信息系统建设的需求。如果一个业务不需要信息系统就能有效开展,就不需要进行需求分析,直接开展业务就行。进行需求分析,是为开发信息系统服务。是为了让系统开发者明白,需要开发一个怎样的信息系统。如,需要什么样的功能,有什么样的输入输出,有什么样的交互界面,业务处理的规则是什么等等。当然,在需求分析过程中,有可能使得业务人员更加清晰其原来对业务的考虑,进而对其业务进行重新定义。但归根结底,进行业务需求分析还是为了开发出一个信息系统,支持业务的开展。

其次,我们要问,怎样进行业务需求分析,才能有效地表达需求。所谓的有效地表达需求,就是让业务部门知道,他的业务得到了准确而完整的描述,让系统开发部门也明白,看得懂关于业务的描述,从而让技术人员能够开发出符合业务开展需要的信息系统。这是一个很专业的工作。而从事需求分析的人员,必须精通业务和技术两头的工作。否则无法起到一个桥梁的作用,帮助企业把信息系统建立起来,推动业务的发展。他的产出,一定是业务和技术两方面都能看得懂的。产出只有一方能看的懂的东西,不叫业务需求。做业务需求,好比一个翻译器,把业务人员描述的东西,翻译成技术人员能看得动的东西。就好像把英语翻译成汉语一样。如果翻译官的水平不高,翻译的效果可能就会大打折扣。就会出现把Mr Green翻译成绿色先生的情况。

为了能做出有效的业务需求,可以通过一些约定好的方法来进行。通过这些约定好的方法,开发出业务需求产出物。技术人员就能大致地知道想要建立一个什么样的系统。业务部门也知道,他的业务会不会被系统有效地支持。由此,这个约定的,制作业务需求的方法,就很关键。从计算机系统被研制出来到今天,已经产生了很多方法和体系,对于不同的企业,其方法和体系也不尽相同。但都不排除一些共性。做业务需求,首先就得明确一个大家都知道的方法,否则容易产生混乱。如果你这边讲活动,我那讲用例,就无法高效地建立信息系统,支持业务发展了。

本文简要讨论一下,根据工作经验总结出的一个支持需求开发的方法。其实,一篇文章不足以完整描述一套业务需求方法。在此只是基于一个已开发出的企业架构管理系统做一个介绍。说是企业架构管理系统,其实就是一个需求描述和分析的系统。把做业务需求的方法固化到了系统中。通过一个独立的信息系统(工具)来管理(或者说建立)一个具有复杂业务的企业的业务需求,以支持开发整个企业所需要的信息系统。

对于一个如银行这样的大型企业,仅仅靠传统的需求文档,已经很难支持其高效地开发完整的信息系统。所以必须有工具来支持。其实市场上早已有了若干需求管理工具,但是大多数都只是把传统的需求分析文档电子化,然后分了个类。不足以动态支持从需求分析到系统设计的整个过程。我们开发的这个企业架构管理系统,正是基于曾经经历的信息系统建设的经验,把企业建立信息系统的从需求描述到系统设计整个过程进行有效的支持。所有的工作件都得到动态的展示,然后还能有效地分析和管理,十分明确地知道业务是否得到了完整有效描述,系统设计是不是完全支持了业务开展的需要。而不是需要人工去看文档才知道。

我们一开始就需要明确地是,大家约定了什么方法来描述业务需求。这个约定的方法,可以叫做企业架构元模型,如果只是描述业务部分的,叫业务架构元模型,只是描述技术部分的,叫技术架构元模型。这只是一个大概的分类,从细分的角度,还可以分为,应用架构,数据架构的原模型等。所以这些分类,必须是一个完整的,结构清晰的整体,才能有效支持开发企业需要的信息系统。否则将陷于一片混乱。下图为企业架构元模型的一部份。

从图中可以看到,要开发出一个完整的企业信息系统,就要对其进行完整的描述。描述的要素很多。各要数之间的关系也很复杂。大概很少有人能够把所有的要素及其相互之间的关系都记在大脑里面。因此,依靠专业的信息系统来进行记录和管理就很有必要。他保证了方法和规则的唯一性。尽管每个人对系统的理解可能会不一样,但是至少有一个地方整体地记录了所有的环节。从而尽可能地避免了理解上的歧义。从整体上,描述系统的要素很多,一个人只能掌握其中的一小部分,而由系统来保证了所有人的理解是一致的。这就是企业架构系统的作用所在。

基于企业架构系统,相关业务人员和技术人员在上面开展工作,各自发挥出自己的专长,设计出最好的产出成果。然后开发出企业需要的信息系统。保证企业的业务的发展。由此,企业架构系统的功能,就很关键。

首先,他要能够定义 各种元素 ,用以描述所需要建立的信息系统。比如,我们需要把企业的业务分成各个领域,就要能够在系统上定制出“业务领域”的概念,我们还要定义各种流程,就要在系统上定义“活动”,“任务”,“步骤”,“事件”的概念,为了描述系统本身,我们还需要定义出“业务功能”,“系统用例”,“构件”的概念,如此等等。根据不同的情况,定义不同的概念,这是企业架构系统的一个基本功能。这种功能很多工具都有。

其次,各元素定义好以后,还需要描述各元素之间的关系。上图中所有的连线,就是关系的一种示意。具体的关系的表达,还需要在架构系统内部进行详细的定义。比如我们可以通过列表的形式,来描述各元素之间的关系。一方面是便于使用者进行查阅,一方面是让系统能够根据规则自动进行相互间逻辑的检查,从而保证了一致性。

对于大部分人来说,不会关心系统所有的方面,对于业务专家,他只关心业务逻辑是什么样的,甚至他只关心其所涉及的领域的业务逻辑,比如风险专家只关心风险模型。资产负债管理专家关心资金转移定价。而应用架构专家关心交易线,数据专家只关心数据模型,系统设计人员关心有哪些构件、接口、工作流,项目管理专家只关心项目进展,而企业高管,只关心有哪些业务组件 等等。因此,架构系统需要根据不同的人群建立不同的视图,只展现其所关心的那部分工作内容,而不是把所有的信息全部都展现给他,否则会产生干扰和信息冗余。当然,也会存在那种关心所有要素的人员,要么确实在信息系统建设方面很资深,要么就是好奇打酱油的。本人虽然一直关心所有的要素,但至今也没能够把所有的要素和关系理清晰。不过在架构系统的帮助下,整体功能一定会井然有序。

把所有元素和关系表达清楚,仍然不能保证信息的完整性,因为你不知道他所表达的业务的逻辑对还是不对。靠眼睛看能解决一部分问题,但毕竟有限。如果等系统建设好了才发现逻辑错误,或者在系统开发过程中发现错误,耽误的功夫就比较大了。因此,我们在需求分析阶段,就希望知道业务需求提供的信息是否是充分和必要的。为此,架构系统提供了一个模拟仿真功能。用报表,流程引擎,规则引擎的方式方法,把目标系统模拟地运行分析一遍,看看哪个环节出会出问题。最终形成一个完整的经过严格验证的图纸。这样业务人员能很直观地知道为他所设计的系统是什么样,技术人员也很放心地明白他所拿到的开发需求是经过了严格验证的。

定义元素,定义关系,建立视图,模拟仿真,是架构系统的几个核心功能,根据这些功能,就能开发出业务需求,支持业务信息系统的建设。此外还有系统管理,版本管理,用户管理,报表功能等一些通用功能。

通过架构系统,我们能够有效地进行业务的描述,分析,仿真,系统的设计等工作。以保证信息系统建设的成功。当然,关键的因素,还是人的因素。系统是起到一个帮助的作用,人的智慧的发挥,才是最重要的,不用心去做,再好的系统也是屠龙刀而已。

时间: 2024-08-03 04:48:55

如何进行业务需求分析的相关文章

教科书里讲的业务/需求分析

最近读了几本BA的书,学到了很多方法论.案例.工具.但是,很多方法论和案例都来自美国作者.美国项目,多数情况是不太符合中国项目的实际情况的.比如,要坐下来跟业务人员讨论业务,想办法发现业务目标,再做流程改进.这一点对于2B的应用或服务来说是极其困难的. 现实情况是,软件/IT部门服务于业务部门,业务部门不懂技术但非常强势,软件/IT部门话语权不高,外在表现大概会有需求频繁变更,做不切实际的发布计划,技术不得不做很多的妥协,或者陷入需求变更的泥潭. 另一种常见情况是,软件/IT部门将项目外包出去,

[开源]OSharpNS 步步为营系列 - 3. 添加业务服务层

什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个框架使用最新稳定版的.NetCore SDK(当前是.NET Core 2.2),对 AspNetCore 的配置.依赖注入.日志.缓存.实体框架.Mvc(WebApi).身份认证.权限授权等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

Oracle SQL性能优化

转载自:http://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection ta

SQL优化经验

SQL 优化经验总结34条 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection tabl

实现IT服务弹性伸缩的利器

随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战.比如电商.在线教育等企业经常推出一些秒杀.抢红包活动,在特定时间段对资源的利用处于高峰期,之后基本处于空闲. 几年前,我们从申请采购到应用部署上线都只能人工操作,需要提前几个月开始规划.如今通过云平台能很好实现资源按需动态管理,运维人员可在云平台上根据实际业务需求申请或释放资源.但申请到虚拟机之后,还是需要按照传统方式从人工部署应用系统,根据工作规范一步步操作,这种方式还

Oracle 性能优化

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.(2)      WHERE子句中的连接顺序.:ORACLE采用自下而上的顺

大型企业私有云建设思路解析

在以AWS.Google.阿里等为代表的公有云发展的同时,很多大型企业出于数据安全性.系统稳定性.软硬件自主权.对自主可控以及TCO低的考虑,更加倾向于建设企业私有云来承载内部业务信息系统的运行. 构建企业私有云并非是一蹴而就的,正如Gartner的副总裁Tom Bittman所述"部署私有云并不是简单地对硬件进行采购,而是一场革新".对于企业私有云而言,其建设同样应遵循信息系统建设的通用方法,即事先分析 规划.事中落地实现以及事后运维管理.本文从企业私有云建设需求分析,企业私有云建设

Oralce数据库的优化

1.选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表 (intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2.WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子