您好,欢迎访问三七文档
第11章过程建模软件学院代飞2013.春需求分析常用技术为了降低软件的复杂度,便于对问题的分析和理解,常采用以下技术:1、分解将大问题分解为小问题,通常是自顶而下,不断细化的过程;2、抽象抓住问题的本质特性,从不同抽象层次进行分析,提出解决问题的方案;3、多视点注意从各类开发人员和不同用户的角度考虑问题,才能获得对系统的全面完整的需求。主要内容1.过程建模2.数据流图DFD3.微规格说明4.数据字典5.模块结构图1.过程建模过程建模是结构化分析方法的典型技术,又称为功能分解。主要思想:分而治之思想。将系统看作若干过程(功能)的集合,每个过程又可以分解为子过程(子功能),子过程还可继续分解,直至过程易于理解和计算机化(函数或过程)。分解的结果即是系统的雏形。过程的执行:接收数据、进行数据转换、输出数据结果。过程建模的特点特点系统是过程的集合过程可以被分解为子过程最终的子过程可以被映射为计算实体——函数所有的系统都是由过程构建的过程建模所涉及的主要技术ProcessModelingContextDiagramsDataFlowDiagramsDataDictionariesModuleHierarchy(FDD,PDD)Mini-Specification主要内容1.过程建模2.数据流图DFD1.基本元素2.规则3.层次结构4.层次结构的建立5.DFD的验证3.微规格说明4.数据字典5.模块结构图DFD(DataFlowDiagram)的基本元素数据流图是过程建模所使用的主要建模技术,它使用的基本模型元素有四种:外部实体;过程;数据流;数据存储。外部实体外部实体是指处于待构建系统之外的人、组织、设备或者其他软件系统,它们不受系统的控制,开发者不能以任何方式操纵它们需要进行建模的外部实体是那些和待构建的软件系统之间存在着数据交互的外部实体,它们是待构建系统的数据源或者数据目的地所有的外部实体联合起来构成了软件系统的外部上下文环境LableLableDeMarco-YourdonGane-SarsonLable过程过程是指施加于数据的动作或者行为,它们使得数据发生变化,包括被转换(transformed)、被存储(stored)或者被分布(distributed)可能是由软件系统控制的,也可能是由人工执行的,它重在数据发生变化的效果而不是其执行者可能会表现为不同的抽象层次内容足够细节和具体,能够对其直接进行“编码”处理的过程被称为原始过程(PrimitiveProcess,又称为基本过程ElementaryProcess)LableLableIDDeMarco-YourdonGane-Sarson数据流数据流是指数据的运动,它是系统与其环境之间或者系统内两个过程之间的通信形式数据流可以分割和组合数据字典和ERD通常被用来描述DFD数据流的详细内容DeMarco-YourdonGane-SarsonLableLablexxxxzxywxxxxzxyw数据存储数据存储是软件系统需要在内部收集、保存,以供日后使用的数据集合数据存储的详细内容通常也是用数据字典和ERD来进行描述的DeMarco-YourdonGane-SarsonLableLableID食物订货系统的过程模型(Yourdon)顾客厨房接收、传递顾客的食物订单更新食物销售记录更新库存记录食物销售记录库存记录产生管理报表管理者顾客订单收条食物订单食物销售存货信息格式化的库存数据格式化的食物销售数据日常食物销售日常库存消耗管理报表1、食物订货系统存在几个外部实体?2、食物订货系统的内部过程(功能)有几个?3、食物订货系统存在几个数据存储?食物订货系统的过程模型(Sarson)顾客厨房管理者顾客订单收条食物订单食物销售存货信息格式化的库存数据格式化的食物销售数据日常食物销售日常库存消耗管理报表1接收、传递顾客的食物订单2更新食物销售记录3更新库存记录4产生管理报表D2食物销售记录D1库存记录Return规则过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集应该存在差异。XXXY规则数据流是必须和过程产生关联的,它要么是过程的数据输入,要么是过程的数据输出规则DFD当中所有的对象都应该有一个可以唯一标识自己的名称。过程使用动词外部实体、数据流和数据存储使用名词层次结构建模过程是分而治之思想的体现,故而DFD必须有层次结构;一个比较抽象的过程可以被展开为一个子过程更加具体的DFD图;DFD的层次结构上下文图0层图N层图(N0)上下文图上下文图是DFD最高层次的图,是系统功能的最高抽象。将整个系统看做是一个过程(可以理解为黑盒),这个过程实现系统的所有功能,是系统功能的最高抽象:上下文图中存在且仅存在一个过程,表示整个系统,通常编号为0上下文图中需要表示出所有和系统交互的外部实体,并描述交互的数据流,包括系统输入和系统输出上下文图中不会出现数据存储,因为它是系统内部的功能实现它非常适合于描述系统的应用环境、定义系统的边界食物订货系统的上下文图顾客厨房管理者顾客订单收条食物订单管理报表0食物订货系统自助餐厅在线订餐系统顾客工资系统菜单管理人送餐人员自助餐厅工作人员送餐请求从工资中扣除餐费的请求付款要求菜单内容送餐请求付款请求食物订单菜单食物订单食物订购信息注册从工资中扣除餐费自助餐厅库存系统食物订单可提供的食物信息从工资中扣除餐费的响应更新食物状态0层图位于上下文图下面一层,是上下文图中单一过程的细节描述,是对该单一过程的第一次功能分解是整个系统的功能概图,概括系统的所有功能0层图应该被描述的简洁、清晰,需求工程师要根据系统的复杂度掌握0层图中过程的抽象程度顾客厨房接收、传递顾客的食物订单更新食物销售记录更新库存记录食物销售记录库存记录产生管理报表管理者顾客订单收条食物订单食物销售存货信息格式化的库存数据格式化的食物销售数据日常食物销售日常库存消耗管理报表N层图0层图中的每个过程都可以进行分解,以展示更多的细节。被分解的过程称为父过程(父图);分解后揭示更多细节的DFD图称为子过程(子图);0层图中过程分解产生的子图称为1层图。对N层图的过程分解后产生的子图称为N+1层图(N0),直至最终产生的子图都是原始过程的DFD图。在低于0层图的子图上通常不显示外部实体父过程的输入输出流称为子图的接口流子图中过程的编号需要以父过程的编号为前缀。顾客订单收条食物订单食物销售存货信息1.1接收顾客订单1.3将订单的格式转换为厨房使用的订单格式顾客订单1.2产生顾客收条顾客订单1.4产生食物销售信息1.5产生存货信息顾客订单顾客订单层次结构的建立步骤1.创建上下文图;2.发现并建立DFD片段;3.根据DFD片段组合产生0层图;4.对0层图的过程进行功能分解,产生N层图。创建过程需要多次反复!先全局,后局部先整体,后细节先抽象,后具体1.创建上下文图在需求获取阶段获得的业务需求以及业务需求所决定的项目前景与范围可以用来帮助建立系统的上下文图;建立上下文图,最重要的是要弄清系统的功能范围。2.发现并建立DFD片段从获取的用户需求中寻找和发现系统的功能需求,然后加以归纳和概括,最后在0层图中描述出来是困难的。根据用户的功能需求建立一些DFD片段(DFDFragments)。DFD片断是系统对某个事件的响应过程的DFD描述,它是为系统中发生的重要事件创建的。它将系统对事件的处理看做是一个单一的过程,重点描述这个单一过程与事件外界(包括系统内其他部分和系统外的外部实体)的数据流交互。顾客递交订单管理者查阅报表课程注册系统学术部派课学生注册教员查看班级列表3.根据DFD片段组合产生0层图将DFD片段组合起来得到一个DFD,成为系统的0层图。往往需要多次调整DFD片段的整合结果才能得出对DFD图(尤其是0层图)质量的判定有下面几个准则:1、没有语法错误,遵守各项规则。2、具有良好的语义,过程的功能设置要高内聚、低耦合。3、保持数据一致性,过程的输入流要足以产生数据输出。同时过程的输出流是在充分利用输入数据的基础上产生的,不存在输入数据的浪费。4、控制复杂度,不要一次在图中显示太多的信息。一般情况下,一个图中的过程数量最好控制在5~9(人脑的最佳信息处理量)个。而且图中的数据流数量越少越好,越简洁越好(接口最小化)。课程注册系统的0层图4.功能分解,产生N层图功能分解是一个拆分功能的描述,将单个复杂的过程变为多个更加具体、更加精确和更加细节的过程在功能分解过程当中,最重要的是要保证分解过程的平衡性(Balance),它要求DFD子图的输入流、输出流必须和父过程的输入流、输出流保持一致Pxyaabbp1p2p3p4p5aabbccddeeffgglevelnleveln--11levelnlevelnPxyaabbp1p2p3p4p5aabbccddeeffgglevelnleveln--11levelnlevelnCd4.功能分解,产生N层图在分解产生的子图为下述情景之一时,可以判定其为原始DFD图,此时应该停止持续的功能分解活动:所有过程都已经被简化为一个选择、计算或者数据库操作;所有数据存储都仅仅表示了一个单独的数据实体;用户已经不关心比子图更为细节的内容,或者子图的描述已经详细的足以支持后续的开发活动;每一个数据流都已经不需要进行更详细的切分,以展示对不同数据的不同处理方式;每一个业务表单、事务、计算机的屏幕显示(computeron-linedisplay)和业务报表都已经被表示为一个单独的数据流;系统的每一个最低层菜单选项都能在子图中找到独立的过程。示例使用DFD描述常见的电梯控制系统。一个控制系统控制多个电梯。每个电梯被置于一个相应甬道之中,在卷扬电机的作用下在甬道内做上下运动。甬道内安装有多个传感器,通常每个电梯停靠点一个,用来感应电梯的实时位置。电梯内部和建筑的每个电梯停靠层都设置有指示器,用来告知用户的电梯实时位置和运动状况。电梯内和建筑的每个电梯停靠层都设有按钮,用户可以通过这些按钮提出服务申请并进出电梯。控制系统调度用户的申请,让电梯以最有效的方式满足用户的服务要求。示例:1.建立上下文图示例:2.建立DFD片段示例:2.建立DFD片段示例:3.建立0层图过程1:记录运动目标和服务请求调度过程3:更新电梯位置和指示器控制过程4:更新电梯状态、服务请求调度和卷扬电机控制;过程5:更新电梯状态、移除服务请求、卷扬电机控制和电梯门控制;数据存储D3:电梯位置、电梯状态示例:3.建立0层图DFD的验证验证DFD的语法确保DFD中不会发生语法错误验证DFD的结构验证DFD层次结构之间的一致性验证DFD的语义确保DFD所说明内容的正确性和准确性主要内容1.过程建模2.数据流图DFD3.微规格说明1.结构化英语/伪码2.行为图3.决策表4.决策树4.数据字典5.模块结构图微规格说明的背景在完成功能分解之后,可以建立完整的DFD层次结构。在DFD层次结构中,所有的复杂过程都被解释为一个低层次的DFD子图。在N层DFD图中,最低层次的原始过程却没有得到更为细节的展示。微规格说明是被用来描述过程处理逻辑的技术:结构化英语(StructuredEnglish)行为图(ActionDiagram)决策表(DecisionTable)结构化英语结构化英语是介于自然语言和形式语言之间的一种半形式语言,是自然语言的一个受限制的子集;一般分为两层结构:外层语法较具体,为控制结构(顺序、选择、循环),内层较灵活,表达“做什么”自然语言结构化英语伪码程序语言示例READcustomeraccount-typeandsummaryofcustomermonthlybalancesSELECTCASECASE1(account-typeisNOW)BEGINIFIFdaily-balance300foranygivendayTHENsetservice-chargeto$5ELSEse
本文标题:过程建模_11
链接地址:https://www.777doc.com/doc-5517492 .html