第四篇技术篇第19章过程建模本章介绍数据建模关系实体本身的特性,是静止的数据;而过程建模显示了数据将如何被收集和使用,是变动的数据。在这一章节中,我们将重点向大家介绍ERP系统逻辑过程建模的基本概念。第19章过程建模19.1数据流和数据流图19.2数据建模的基本概念19.3过程建模中的外部代理19.4过程建模中的数据存储概念19.5逻辑过程建模中的事件划分19.6构造过程模型第19章过程建模19.1数据流和数据流图19.1.1数据流的概念数据流既可以表示到达一个过程的数据输入,也可以表示来自一个过程的数据输出。它责系统与环境间的通信,或者系统内部中过程间的通信。第18章过程建模19.1.2数据流图的特点(1)数据流图中的过程可以并行操作。几个过程同时执行,与企业工作方式一致;(2)数据流图显示了数据通过系统的流程。箭头表示了数据流通的通路,循环和分支一般不画出。(3)数据流图可以展示不同时间间隔的动态过程。可以包括每小时、每天、每月、每年以及随时发生的过程。第18章过程建模19.1.3数据流图的要素(1)过程——表示需要完成的工作。对输入进行分析加工,产出结果。(2)外部代理——表示系统的边界。信息的提供者和接受者。(3)数据存储——表示文件或数据库。用以存储各类信息数据。(4)数据流——表示数据的输入和输出。数据流是过程处理的对象,是过程的投入和产出。一般以箭头表示。第19章过程建模Gane&Sarson符号:DeMarco/Yourdon符号:过程过程外部外部代理数据存储数据存储Gane&Sarson和DeMarco/Yourdon符号集第19章过程建模19.1.4数据流图中常见的错误(1)黑洞(2)奇迹(3)灰洞第19章过程建模19.1.5数据流图中的数据流1.组合数据流(1)由于数据流内容相似,所以合并相似的数据流。(2)由于输出很多或很多用户自定义的报告和查询在系统实现和使用之前无法预测,所以将所有的报告和查询合并为一个或两个组合数据流。第19章过程建模合理数据流非法数据流需要一个过程在数据存储间移动数据需要一个过程在外部代理间交换数据流外部代理需要一个过程从某一数据存储获得数据外部代理需要一个过程使用(增删改)某一数据存储B1B2DS1B1B2B1B1DS1DS1DS1B1DS1DS2DS1DS2B1非法数据流与合理数据流第19章过程建模2.控制流ERP系统的系统分析员不仅要处理数据流,而且需要对控制流加以区分。控制流就是触发一个过程的条件或非数据事件。一旦该条件达到预先定义的值,系统将自动启动该过程。控制流是系统工作时的一个监督控制条件。第19章过程建模3.分支流、合并流分支数据流表示一个数据流的全部或者部分具有不同的目的地。合并数据流表示不同来源的数据流具有相同的目的地,可以合并为一个报文进行处理。第19章过程建模4.数据流守恒数据流守恒要求任何一个数据流只包括过程真正需要的数据内容。通过在逻辑数据流图实现数据流守恒,对实现业务过程重组(BPR)具有重要作用。我们必须准确定义每个数据流的数据成分,以实现数据流守恒。第19章过程建模19.2数据建模的基本概念系统思想是形式化的系统理论和概念,在系统问题解决中的应用。对我们来说,系统理论和概念不仅有利于理解系统的组织方式和工作方式,而且教会我们在构造系统时应用系统理论和概念。因此,许多系统分析技术都扎根于系统思想。本章就是讲述一种系统分析技术,首先介绍一些逻辑过程模型的基本概念。第19章过程建模19.2.1过程建模中的系统概念1.系统2.功能3.事件19.2.2过程建模中的过程概念1.过程2.基本过程3.逻辑过程第19章过程建模19.2.3过程分解1.过程分解的概念过程分解是一种将系统分解成组件子系统、过程、子过程的技术。每个层次的抽象都揭示了整个系统以及各个子系统所期望的功能细节。2.分解图分解图显示了某一个系统自顶向下的功能分解和结构。它是一种规划工具,用于详细的过程建模。第19章过程建模0系统2另一个功能1一个功能2.2功能的另一活动2.1功能的活动1.2功能的另一活动1.1功能的活动任务2.1.2任务2.1.1任务2.1.3任务2.2.2任务2.2.1任务1.1.2任务1.1.1任务1.1.3任务1.2.2任务1.2.1系统分解图第19章过程建模19.2.4结构化英语和决策表1.结构化英语结构化英语是一种语言和语法。结合了结构化编程和自然英语的相对优点,用于说明过程模型中的基本过程的内部逻辑。第19章过程建模结构化英语对过程逻辑的限制:(1)只能使用强祈使动词。(2)只能使用项目字典中已定义的名称。(3)公式陈述清楚,使用合适的数学符号。(4)不能使用未定义的形容词、副词。(5)开始、结束用块标记和缩进标示(6)应优先考虑用户的可读性。第19章过程建模2.决策表决策表是一张说明一组条件及其对应行动的表格,是复杂逻辑的表格化表示。决策表的组成部分:条件段行动段规则列第19章过程建模结构例子模版顺序结构:简单声明语句无条件顺序执行一个步骤序列[第1步][第2步][第n步]条件或决策结构:一个过程在不同条件下执行不同的步骤if–then-else:指定条件只有两个可能值。若指定条件值为真,则执行第一组步骤;否则,执行第二组步骤If[真值条件]then[第1组步骤]else[第2组步骤]case:指定条件有两个以上可能值。测试条件的值,执行相应的步骤根据[条件]执行:case1:[第1组步骤]case2:[第2组步骤]casen:[第n组步骤]决策表:多个条件组合。测试多个条件的值,确定正确执行步骤决策表规则1规则2规则3规则4[条件1]值1[条件2]值1[条件3]值1[第1组步骤]×[第2组步骤]××[第3组步骤]×结构化英语的结构表(1)第19章过程建模结构例子模版循环结构:一组步骤基于某些条件重复执行do-while:步骤集有条件的基于条件的初始值,重复执行0次、1次、多次dowhile[真值条件]:[步骤集]repeat-until:无论条件的初始值是什么,步骤集都至少执行一次,重复执行1次、多次repeatuntil[真值条件]:[步骤集]结构化英语的结构表(2)第19章过程建模19.3过程建模中的外部代理ERP系统响应系统环境中的事件和条件,其环境包括外部代理,外部代理形成系统的边界,并定义系统与环境的接口。第19章过程建模19.3.1外部代理的概念外部代理是这样一些人、组织部门、其它系统、其它组织,他们位于项目范围之外,但与正在被研究的系统交互。外部代理既提供系统的净输入,又从另一个系统获得净输出。第19章过程建模19.3.2外部代理的内容数据流图中的外部代理一般包括:(1)公司内部的一个部门、办公室、个人,为系统提供净输入或从系统接收净输出。(2)公司之外,为系统提供净输入,或者从系统接收净输出的组织。例如,客户、供应商、银行、政府部门。(3)另一个企业或信息系统。(4)系统的管理员或用户。他们是系统的净输入和系统的净输出的目的地。第19章过程建模19.3.3数据流图中的外部代理外部代理应该用描述性的单数名词描述,例如,供应商、财务信息系统、会计等。为避免在数据流图中出现交叉线,允许在数据流图中重复外部代理。一般的,应该安排在页面的四周,与其系统边界的定义一致。第18章过程建模19.4过程建模中的数据存储概念数据存储是一个数据的“仓库”。又称文件和数据库。既然是数据的“仓库”,就包括整个ERP系统涉及到的所有实体的信息存储。数据存储描述的是企业需要存储的“事物”。第19章过程建模19.5逻辑过程建模中的事件划分过程建模是一种组织和记录数据的结构和流向的技术,记录系统的“过程”或由系统的“过程”实现的逻辑、策略和程序。19.5.1事件划分的概念事件划分的概念是指根据业务事件和对事件的响应将一个系统划分成几个子系统。第19章过程建模19.5.2对用于事件驱动的过程建模策略图的解释(1)上下文数据流图:建立初始的项目范围,显示系统与环境的主要接口。(2)功能分解图:依据功能将ERP系统划分为多个子系统。(3)事件响应或用例清单:确定系统必须响应的业务事件,记录每个事件的需要的或可能的响应。第19章过程建模(4)事件分解图:对每个事件,按照事件的具体细节进行分解。(5)事件图:仅显示事件的处理器和输入输出。(6)系统图:将事件图合并,显示系统的整体概貌(7)基本图:显示某个需要进一步处理细节的事件的所有基本过程、数据存储和数据流第19章过程建模用例清单事件1响应事件2响应事件3响应……系统功能1事件1功能2功能n事件3事件4事件2事件5事件n事件n-1系统事件图事件1事件图事件n分解图第19章过程建模系统图事件1事件2事件n事件3基本图任务2任务1任务3结构化英语或决策表数据结构第19章过程建模19.6构造过程模型19.6.1上下文数据流图上下文数据流图定义系统和项目的范围及边界。由于任何项目范围总是会变化的,所以上下文数据流图也会随之不断变化。第19章过程建模提货单订购程序各类销售报告订购请求各类促销报告各类订购报告各类查询响应新订购客户订单各类客户报告客户服务部潜在客户仓库市场部目前客户财务部客户服务系统客户信用状态上下文数据流图第19章过程建模19.6.2功能分解图功能分解图描述了一个系统自上而下的功能分解结构。ERP系统可以首先被分解为子系统和功能。任何一个父过程都可以有多个子过程,只要结构化该系统对其业务是合理的。第19章过程建模0客户服务系统1促销子系统3运行子系统2订单子系统3.3处理仓库事务1.1处理促销事务3.2处理市场事务3.1处理客户事务2.2生成订单报告2.1处理订单事务1.2生成促销报告功能分解图第19章过程建模19.6.3事件响应或用例清单接下来,我们应该确定系统必须响应的事件,以及如何响应比较合理。我们从本质上将事件分成三类,外部事件、时序事件、状态事件。ERP系统通常响应外部事件和时序事件。状态事件通常与实时系统有关。第19章过程建模发现并确定事件和相应的一种非常成功的方法是用例。用例提供一种将系统的整个范围分解成若干称为用例的较小叙述的方法。用例分析确定并建模业务事件、谁触发事件、系统如何响应事件。用例是从用户角度的确定,由用户或外部系统触发,这些用户或外部系统称为参与者。第19章过程建模参与者事件(用例)触发器响应客户发出订单新客户订单生成“客户订单确认”在数据库中创建“客户订单”和“客户订购的产品”市场部制定一个新的客户关系订购计划来吸引新客户新客户订购程序生成“订购计划确认”在数据库中创建“合同”财务部修改客户的信用状态信用状态修改生成“信用目录修改确认”修改数据库中的“客户”(时间)订单处理后10天(当前日期)在数据库中删除“客户订单”和“客户订购的产品”各部门(月末)(当前日期)生成“月度销售分析报告”、“客户关系分析报告”部分用例清单第19章过程建模19.6.4事件分解图每一个用例都有一个事件处理过程,将它们添加到功能分解图中形成了事件分解图。若整个事件分解图不能在一页显示,可以为子系统绘制独立的页。事件分解图的细分程度不需要超出事件和报告的范围。事件分解图可以作为数据流图的提纲。第19章过程建模处理订单事务生成订单报告订单子系统处理新客户订单事务处理订单修改事务处理订单取消事务处理新的订单事务生成新客户订单报告生成订单分析报告生成季度订单报告事件分解图第19章过程建模1.事件图事件图是一个事件的上下文图,描述事件的输入、输出和数据存储交互。在绘制事件图之前,可以先列出所有可用的数据存储。2.系统图事件图中的任何事件都不是孤立存在的,它们共同组成了系统或子系统。系统图显示了系统或子系统的所有事件。第19章过程建模3.基本图系统图中的某些事件过程可以扩展成一个基本数据流图,进而揭示更多细节。具有较复杂的事件图的事件过程应该扩展成为一个更详细的基本数据流图。