我们将从客户调研现场拿回来的需求,经过一番功能角色分析,整个系统的整体脉络与轮廓已经被勾画出来。在这个过程中,我们首先将系统划分成了几个功能模块(如果系统规模较大,还应先划分为几个子系统,然后再划分出各个功能模块)。然后,我们为每个功能模块绘制用例图。用例图是站在用户角度去观察的系统,即系统为用户提供了哪些功能,这就是功能分析。同时,这些功能是为哪些用户服务的,这就是角色分析。我们绘制的用例图应当能够为用户所理解,这也是UML其中的一项核心思想——与客户形成统一的、能够相互理解的语言,这对于需求分析过程中与客户的沟通是大有好处的。

但形成对系统的整体轮廓,对于软件的需求分析来说是远远不够的。许多软件最终失败的非常重要的原因就是对需求分析过于草率、浮于表面,而没有深入细致地去分析,往往到了项目后期才把需求搞懂,才发现真正的需求与起初的认识大相径庭,才恍然大悟需求原来是这样,而往往那时已经追悔莫及了。这样的经历相信你也有过吧。所以,我们一定要沉下气来认真仔细地做需求分析,一定要做到位。

同样,细化需求也需要一定的方法与思路。一般来说,我们可以有两个方向细化需求:业务流程分析与业务领域分析。这里,我们先谈谈业务流程分析吧。

如果我们现在做的需求分析是一个企业信息化管理系统,毫不疑问,我们的软件系统就是在模拟企业已有的那些业务流程。在现实世界中,企业是按照怎样的流程来管理,我们的软件就应当去模拟这样的流程。但是,我们的软件不可能也不必要完全去模拟这样的流程,在这个流程中的有些环节是应当由软件去模拟的,但有些环节则是应当在系统之外,由人工去完成的。我们进行流程分析,就是要求分析哪些是系统之内的,哪些是系统之外的。

我曾经做过一个疑点信息库系统。该系统模拟的原有业务流程是这样的:高层纪检方面的领导通过信访、举报、数据查询分析等方式发现了一批问题,然后将这批问题制作成一套调查清册,亲自或者交由下级相关单位,下到基层去调查问题。直到调查工作完成以后,才从基层回到自己单位,填写调查工作底稿,详细描述调查情况,并结束调查工作。

首先,我们应当抛开软件实现,对这样一个流程进行梳理,形成这样一个步骤: 
1. 高层领导通过信访、举报、数据查询分析等方式发现一批问题; 
2. 将这批问题制作成一个调查清册; 
3. 自查或将清册下派给下级去调查; 
4. 下到基层执行调查; 
5. 从基层回到自己的单位,填写调查工作底稿,详细描述调查情况,并结束调查工作。

然后,在对原始需求分析的基础上,分析我们的软件能做什么事: 
第一步:信访和举报虽然有自己的操作流程,但那些都在这个系统之外,在这个系统中仅仅只需录入最后的结果。数据查询分析过去只是业务人员在相关业务系统中根据自己的经验执行各种查询,现在则可以上一套数据采集和分析系统,提高数据分析的质量。 
第二步:形成调查清册,可以在系统中设计一个功能实现。 
第三步:自查或下派,可以在系统中设计一个流程实现。 
第四步:下到基层执行调查,由于网络条件等因素的限制,业务人员不可能也不必要在系统中去完成调查,只需要执行一个标志调查工作开始的操作,并打印或导出调查清册,然后去基层调查。最终,这部分被设计成一个“开始实地核查”的操作,并提供打印导出功能。 
第五步:调查人员从基层回到自己的单位都是系统外的事情,而填写调查工作底稿,详细描述调查情况,并结束调查工作,则是系统内的功能。最终,这部分被设计成一个“调查完结”功能,标志调查工作结束,并提供工作底稿的填写功能。

计算机信息化管理并不是万能的,它并不能代替现实世界中的所有工作。因此,我们进行业务流程分析,就是要分析业务流程中哪些是需要信息化管理的,而哪些则不需要。信息化管理过细,无疑会加重基层业务人员的负担(这也正是为什么许多基层业务人员会排斥信息化系统的原因),而适当的信息化管理则可以提高工作效率。试想一下,如果你工作中的每一个步骤都必须在计算机中操作一下,怎么不让人烦呢?而如果在工作中一旦需要先查一个什么信息,或者需要计算一下,系统立即可以替你完成这些工作,或者那些过去基本靠吼的操作,现在立马通过信息化就传递过去了,怎么不让人舒心呢?我们做信息化管理,不是要加重人的负担,而应是降低人的负担。以这样的思路去进行流程分析才能设计出优秀的、人见人爱的管理系统出来。因此,我做需求分析,最喜欢下到基层去了解基层业务人员的需求,去分析怎样设计流程才能提高他们的工作效率,而避免加重他们的负担。“水能载舟,也能覆舟。”一套系统是否能顺利推行下去,基层人员是否支持往往起到十分重要的作用。

十、我们应当怎样做需求分析:业务流程分析(上)相关推荐

  1. 怎样做需求分析:业务流程分析

    我们将从客户调研现场拿回来的需求,经过一番功能角色分析,整个系统的整体脉络与轮廓已经被勾画出来.在这个过程中,我们首先将系统划分成了几个功能模块(如果系统规模较大,还应先划分为几个子系统,然后再划分出 ...

  2. 我们应当怎样做需求分析:业务领域分析

    在需求分析工作中,最后一项分析工作就是业务领域分析啦.业务领域分析,就是对需求分析中涉及到的业务实体,以及它们相互之间关联关系的分析.前面我们谈到了功能角色分析,或者说用例分析,它是从整体的角度对整个 ...

  3. 读《我们应当怎样做需求分析》后

    阅读博客--我们应当怎样做需求分析? 链接地址:http://blog.csdn.net/yqmfly/article/details/7679781 发表一篇阅读笔记,说明本学期<软件需求与分 ...

  4. 《我们应该怎样做需求分析》阅读笔记

    认识: 软件需求分析是贯穿软件项目从出生到成长或者死亡的,我们必须搞清楚到手的软件是为了什么要做什么做成什么样,通过顾客的描述彼此的合作分析需求与业务逻辑,不断改进从而实现软件在合理范围内符合顾客要求 ...

  5. 【飞秋】做需求分析一点心得

    1.需求分析前的准备 在软件开发过程中,需求分析可以说是核心任务之一,就像一支将要远航的船队,要在指定时间内到达目录地,他们需要一条正确的航线,才能到达目的地,如果航线有误,他们将会误时到达,或是不回 ...

  6. 《我们应当怎样做需求分析》阅读笔记

    在阅读<我们应当怎么做需求分析>这篇文章后,我了解到了许多有关软件需求的相关知识与内容. 文中主要说了三项重要的内容,分别是需求调研.需求分析以及需求确认.而我恰好也觉得这些就是本学期&l ...

  7. 我们应当怎样做需求分析:非功能需求

    我曾经看过许多关于需求分析的书籍,老外写的,国人写的,都有.但我总体就是一个感觉:累.各种各样的分析.各种各样的视图,让人眼花缭乱.为什么会这样呢?不得不说,需求分析是一个太宽泛的概念了,不同的行业( ...

  8. 我们应该怎样做需求分析?(一)需求调研

    摘自 百度文库 链接:https://wenku.baidu.com/view/1e2bab73f46527d3240ce0cb.html 一. 我们应当如何做需求分析?    需求分析不是一蹴而就的 ...

  9. 《我们应当怎样做需求分析》读书笔记

    <我们应当怎样做需求分析>读书笔记 <我们应当怎样做需求分析>这篇博客的作者以自己的经验和教训告诉我们怎样解决项目中的需求问题.要解决需求问题,就要从需求调研.需求分析.需求确 ...

最新文章

  1. [视频]怎样提升asp.net mvc 软件的性能 - 微软免费视频Improving ASP.NET MVC Application Performance...
  2. Docker(一):Docker的安装与常用命令
  3. VTK:PolyData之IntersectionPolyDataFilter
  4. vue中mixin的一点理解
  5. d3.js 简介和安装
  6. KXD黑夜模式流星滑落个人主页HTML源码
  7. 科一主观题刷题 0308
  8. codeforces 451C. Predict Outcome of the Game 解题报告
  9. 网络 应用层 | HTTP的认识及实现(模拟实现一个简单的服务器)
  10. pythontk界面显示函数中的变量值_简单易学,西门子触摸屏3种修改变量值的方法!博图Wincc V14组态...
  11. iview table增加一行减少一行_iView学习笔记(二):Table行编辑操作
  12. 推特称攻击者利用其 API 匹配用户名和电话号码
  13. 初始化请求例子_当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?
  14. 拓端tecdat|数据下的隐形眼镜初体验
  15. 虚幻4服务端linux,UE4 虚幻4教程 服务端构建后启动错误的解决方法
  16. 如何把PDF拆分成单页文档
  17. typora导出pdf文件缺失
  18. EDM设计案例分享:6款引人入胜的夏日邮件营销模板分享
  19. 机器学习葡萄酒质量_通过数据和机器学习制作出更好的啤酒和葡萄酒
  20. 区块链、NFT 与元宇宙中的稀缺性技术

热门文章

  1. 使用python+selenium获取网易云指定歌曲评论
  2. 怎么用python画火柴人_如何用ai绘制火柴人的教程
  3. 计算机图形学基础-图形的表示和数据结构
  4. MATLAB怎么样绘制扭转减震器,基于MATLAB的汽车减震系统仿真建模
  5. Python数据分析 1-5 NumPy中ufunc函数(一)主要介绍NumPy中常用的通用函数:基本数学函数、三角函数和反三角函数和统计类函数
  6. 全网最好开源springboot开发的erp模板下载
  7. 淘宝API接口( item_detail - 淘宝商品详情查询)
  8. Ubuntu安装webmin,并更改为中文界面
  9. C语言字符串围棋盘放麦粒,围棋高手(民间)用C编写的围棋程序。
  10. 【马春杰杰】使用FPGA实现任意分频、二分频