软件工程需求分析之七种武器(下)

来源:互联网 发布:网站数据库是什么 编辑:程序博客网 时间:2024/05/01 20:34

   背景介绍 

    人物:“我” 

    角色:IT部门系统分析师 

    公司介绍:勤缘电子贸易公司(化名), 年营业额达2亿,主要由销售部门、资材部和IT部门等组成。其中,销售部门负责业务, 资材部负责供应商的开发和采购电子元器件产品,IT部门则负责公司的订单管理系统的开发与实施。 

    系统目的: 该公司本年度把商机管理纳入日程。所谓“商机”是指能为公司带来业绩和利润的客户需求信息。商机一旦提交,公司的销售部、资材部等会就需求完成一些针对该商机而 进行业务的任务。本系统的目的是管理追综该商机及其任务。 

    现状描述: 前段时间经过业务访谈,已经完成了系统的需求捕获工作,确定了商机管理的范围和目标。 

    任务描述:商机追踪系统需求分析。 

    第四种武器: 多情环——传统结构法 

    历史总在发展,今天的软件分析技术已经发展到了后面向对象时代 ,即便如此,我们也不能忘记传统的结构方法。没有别的原因,只要它能解决问题,我们就不会嫌弃它年代久远。我们要明白分析方法本身是没有高低之分,重要的是运用的能否恰到好处。 

    让我们来看看数据流程图(Data Flow Diagram,DFD),它的视角就是从数据处理角度解决问题,可以画出第0层到第N层的数据流程图,每一层也代表着系统的层次结构。 

    我们不能忘记每天都在使用的流程图,流程图是个好东西,它是系统分析员的基本武器。也许我们觉得它很简单,然而我们真的就能画出一幅完美的流程图吗? 

    当你画好一副流程图,用下面的观点去检查它,或许你能做得更好。

  •  明白流程图的作用,它是用来表达业务流程的。所以,画流程图的前提是描述企业业务流程现状。要做到真实,这需要你花大量时间去访谈和调研,不要凭经验也不要凭推测。要如实且真实地反映企业现状是第一位的要求,否则让企业业务人员一眼就会看出破绽, 会大大降低客户对你的信任度。
  •  内在逻辑要清晰。业务动作的来由和去向要分明,遵循一个流程再加一个判断的原则。不要连续几个判断却没有任何动作产生,也不要该判断分支的情况只有强制性的顺序业务动作,这二者的逻辑要经得起推敲,因为流程图的内在逻辑反映了业务运作的规律。
  •  绘制跨部门流程图,角色要分明。角色对应职责,职责产生动作,动作引发结果。
  •  流程图的基本要素要合理,比如业务动作描述要详实,尽量避免产生歧义。条件判断语言使用肯定语句,比如可以写“客户目标价在业务报价范围内”而不要说“客户目标价低于业务报价”,这将导致流程的逻辑走向不同于标准的流向。
  •  关注基本要素, 万不可出现一个条件只出现“是”而不见“否”之类的条件判断。

    请看下面本系统的业务流程图。


图:商机追踪流程图

 

    第五种武器: 霸王枪——面向数据法 

    采用此种方法的基本观点在于所有的信息系统最终都转化为对数据的操作,而操作就分为“增、查、改、删(Create、Retrieve、Update、Delete,CRUD) ”, 当你看到某个事物或实体缺少了其中一个方法时, 本能的反映应该是觉得该事物遗漏了一个需求处理,自然要和用户提出并做出相应的用例分析。 

    典型的面向数据的分析设计包含了OLTP(Online Transaction Processing,联机事务处理)和OLAP(Online Analytical Processing,联机分析处理)这两大类的企业应用系统,以数据存储、收集维护、使用为中心的系统可用性和可伸缩性的重要程度甚至大于界面标准。 

    OLTP系统,实现的核心是SQL和关系数据库系统,关注的主要问题是现实的过程里面需要记录和操作的各种数据,有哪些人需要数据,他们又如何对数据进行处理。该环境中,用户的行为特点是利用MIS从数据库中进行数据的存储操作,且操作的频率高而每次操作时间短,故对性能提出了要求,数据库级别和SQL级的优化是例行任务。 

    OLAP系统关注的则是数据的分析,从中得到报表和商务决策,找出规律而不是数据的CRUD处理。近年来OLAP和数据挖掘对企业的价值越来越大,商务智能和数据挖掘系统的需求分析方法也是自树一帜。归纳起来是要把企业决策的非结构化转为结构化,以做企业的Dashborad(罗盘)和各部门的KPI(Key Performance Index,关键价值点)分析为主要诉求点。 

    OLTP建立在数据库上,而OLAP建立在数据仓库上, 商务智能(Business Intelligence,BI)建立在数据挖掘上。如果说OLTP的报表只能让你“知其然”,则OLAP报表让你“知其所以然”,BI报表让你“知其将来然”。 

    商机追踪的KPI是商机达成率,它的维度是客户、业务员、部门、商机类型,而度数值是商机达成数量。通过这四个维度建立数据仓库, 并透过分析商机历史和现状,以及通过数据挖掘知识预测商机的未来趋势和努力方向,为企业决策层进入理性的决策依据,从而产生项目的直接经济效益,使商务智能系统不再是停留在纯报表展示上,这会成为“一把手”不可或缺的决策依据,同时,也是业务人员进行业务活动的及时行动指南针。 

    分析报告表明BOM类型的商机是利润率更高、近效果更好的,因此,该类型商机是业务部门需要重点处理的。而其他类型的商机则可能费力不讨好,我们都知道80/20法则,而商务智能系统则会告诉我们何为20%,何为80%。 

    总之,商业智能系统的规划包括总体构建、建设推广、自动分析、高效报表四个阶段,最终达到业务数据的全面集成,能够及时地、有针对性地完成分析和预测报告。

    第六种武器: 离别钩——面向服务(SO)法 

    Wiki百科是这样解释SOA(Service-Oriented Architecture,面向服务架构)的:“因特网环境下企业业务集成的需要,通过连接能够完成特定任务的、独立功能的一种软件系统架构。” 

    据Garnter预计,到2008年大多数的企业将使用面向服务的方法和架构来规划部署新的企业系统。 

    SOA乍一看是件新事物,根据认识论我们会问自己What、Why、How的问题。 

    SOA是什么? 

    SOA是一种组件模型,它将应用程序的不同功能单元化。我们看到,传统的WEB/Http技术完成了人与信息沟通的使命,它是一种B2C的应用,而SOA基于XML/SOAP/WSDL的面向服务体系,则能够使信息系统之间交互和沟通, 导致了B2B/EAI/CB2C的服务网络应用。系统间呈现松耦合、整合和协同度高的特点。本质上处于SOA环境的系统个体能在沟通基础上形成协同工作,很好地实现协同商务。 

    SOA有什么好处? 

    服务驱动方法能使企业体验到业务和IT上的好处,如下:

  •  业务方面


    效率: 业务流从传统“蜂窝式”重复的流程向高度利用共享服务应用转变。 

    响应:迅速适应和传递关键业务服务来满足市场需求为客户、雇员和合作伙伴带来更高水准的服务。 

    适应性: 降低了业务的复杂度,从而节约时间和资金。

  • IT方面:复杂性减低,容易管理; 服务的可重用性增强使项目交付更及时;能有效集成现有系统。

    目前商业企业信息化存在的问题,大多是封闭运行状态导致企业间上游供应商和下游客户信息不对称,无法协同和更好地满足消费者的协同需求和企业间商务协同与智能化的需求。同时,IT信息化标准不健全,包括电子交换接口标准、业务流程单据标准、票据格式标准等等。 

    SOA的出现能够有效地解决传统技术带来的系统封闭厂商依赖度强、耦合度高、扩展性差的问题,因为基于开放标准HTTP/SOAP/WSDL技术更容易扩展组合和变更,符合业务发展变化快的特点。 

    如何用SOA的方法建立系统? 

    SOA的构建遵循如下步骤:建模、组装、部署、管理、控制。 

    建立基于SOA的系统要注意三个原则:

  •  业务驱动服务,服务驱动技术。
    从抽象层次看,服务是业务和技术的中间层。
  •  业务敏捷是基本的业务需求。
    提供响应变化需求的能力是新的“元需求”。
  •  应变而变的SOA。
    IBM是随需而变,招商银行是因您而变, SOA是为变化而生,,到底为谁而变?SOA作为一种服务是因客户变而变。


    SOA依照协议进行访问,客户只需要服务却不需要知道服务在哪里,客户只要知道完成了,不需要知道你做了什么。 

    从技术层面上讲, 面向服务的实现是在于寻址、自举和通信协议三大机制的基础之上的。服务的寻址问题解决了服务如何才能被客户访问到的问题;服务的自举则是种机制,解决了新的服务如何被客户了解,如自己的功能参数和返回结果;通信协议则解决了异质网络间客户和服务的通信问题。 

    解决了此三个问题, 就可以构建一个分布式的、低耦合的、动态可扩充和发展规律的面向服务的基础架构,面前典型代表就是基于UDDI和SOAP的Web Service。

   第七种武器:拳头 

    就算你手中没有刀也没有剑, 但只要你敢于”亮剑”, 亮出你的拳头, 这已是最好的武器 。需求分析本是个动词.它特别在乎实践。在实践中,你的分析能够让用户信服,得到客户和同事的认可就是最好的需求分析实践。 

    好的系统分析师都有一个明显的特质: “ 自信” , 他们总是能够坚持自己的想法, 即使面对不同意见, 也能去说服对方。我见过很多近乎偏执的系统分析师 , 我知道如果不偏执,就不会有感染力和说服力, 而缺乏说服力, 会让你的分析报告大打折扣, 这是优秀的系统分析师所不允许出现的。 

    记得在一次需求分析讨论会上,我与公司老总的观点产生了严重的分歧: 主要对系统的概念上发生了理解上的偏差,我没有因为他是“领导”,而主动“投降”,我一直坚持自己的观点,直到他说“你是个好的工作伙伴”。 

    “所谓商机,就是客户在特定时间内给业务的需求信息”,我如此强调道。 

    “ 那你第一次输入是商机,而紧接着其他部门的输入是商机还是任务呢? 商机和任务概念没有很清楚啊。” 我们老总直陈我的问题点。 

    我回答道:“商机本来就是由业务录入,后面的就是各部门处理商机的任务了,不存在‘第一次’和‘第二次’的问题。” 我明白他没有搞清楚商机和任务之间的关系。于是我在白板上画了一张模型图, 画出了商机和任务的概念关系,先有了“商机”再由它引发了“任务”, 关联关系为一对多, “一个商机肯定要有很多任务去跟近才能化商机为业绩,化业绩为利润, 因为新商机才能引发了新的任务,这两个对象的关系要理清!” 我据理力争。 

    …… 

    “我基本明白了你说的这两个事物的区别和联系了。很好,你是个很好的工作伙伴。” 

    我知道,他的意思是很欣赏我的“固执已见”。如果不这样,我们会缺乏一次真正探讨需求问题的机会。 换句话说,如果我不能坚持自己的观点,那就背离了一个系统分析的责任。 

    之所以讲出这段“个人故事”,并非自卖自夸,实乃自省之得。也许在很多时候,我们真的要敢于坚持到底,才能离真理更近一些。 

    据说香港李嘉诚曾在他的长江商学院开学典礼上给他的学员特别提起三个词:“优术”,“悟道”,“取势” 。作为运用信息技术为商业业务做需求分析的系统分析师们应当能够早日超越”术”, 到达“悟”的境界,就让我们用心去”悟”一次。

原创粉丝点击