高级框架设计师5需求分析和设计方法课件

上传人:磨石 文档编号:242981713 上传时间:2024-09-13 格式:PPT 页数:121 大小:1.65MB
返回 下载 相关 举报
高级框架设计师5需求分析和设计方法课件_第1页
第1页 / 共121页
高级框架设计师5需求分析和设计方法课件_第2页
第2页 / 共121页
高级框架设计师5需求分析和设计方法课件_第3页
第3页 / 共121页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,高级框架设计师,信息产业部信息化专家 王宝会,议题,导入网络应用数据库应用系统性能需求分析和设计方法开发工具开发方法基于中间件的开发开发管理测试评审方法系统审计信息化基础知识,需求分析和设计方法,软件生存期的阶段划分,(1)可行性研究与计划,(2)需求分析,(3)总体设计 上游,(4)详细设计,(5)实现,(6)集成测试,(7)确认测试 下游,(8)使用和维护,(根据国标计算机软件开发规范),软件生存周期,:,软件产品或软件系统从设计、投入使用到被淘汰的全过程。,新的国际标准定义的软件生存过程(,1995 ISO/IEC 12207,),软件生存期过程,支持过程,组织过程,主要过程,获,取,过,程,供,应,过,程,开,发,过,程,运,行,过,程,维,护,过,程,文,档,编,制,过,程,配,置,管,理,过,程,质,量,保,证,过,程,验,证,过,程,确,认,过,程,联,合,评,审,过,程,审,核,过,程,问,题,解,决,过,程,管,理,过,程,基,础,设,施,过,程,改,进,过,程,培,训,过,程,只考虑,编写程序,涉及整个,软件生存,周期,扩展到,软件工作的范围,企业提出要求,“我们要建立一套完整的商业管理软件系统,包括商品的进、销、调、存管理,是总部-门店的连锁经营模式。通过通信手段门店自动订货,供货商自动结算,卖场通过扫条形码实现销售,管理人员能够随时查询门店商品销售和库存情况。另外,我们也得为政府部门提供关于商品营运的报告。”,我要做什么!,需求分析工作内容注意事项,我要做什么!是指导性的框架,像“雾里看花”般模糊并令开发者感到困惑。,分析需求的具体内容:,业务需求反映了组织机构或客户对系统、产品高层次的目标要求,通常在项目定义与范围文档中予以说明。,用户需求描述了用户使用产品必须要完成的任务,这在使用实例或方案脚本中予以说明。,功能需求定义了开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务,从而满足了业务需求。,非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作接口的具体细节和构造上的限制。,需求分析报告报告所说明的功能需求充分描述了软件系统所应具有的外部行为。“需求分析报告”在开发、测试、质量保证、项目管理以及相关项目功能中起着重要作用。,拨开需求分析的迷雾,需求分析的任务,基本任务:准确地回答“系统必须做什么?”,1.确定对系统的综合需求,(1)系统功能要求,(2)系统性能要求,(3)运行要求,(4)将来可能提出的要求,2.分析系统的数据要求,采用建立“概念模型”的方法,并辅助图形工具,如:层次方框图、Warnier图等。,3.导出系统的逻辑模型,数据流程图、数据字典、主要算法,4.修正系统开发计划,5.开发原型系统,需求分析的步骤,需求获取,需求提炼:分析建模,(,导出软件逻辑模型,),需求描述:编写,需求验证,需求分析过程,1.沿数据流程图回溯,从“输出端”到“输入端”回溯,分析数据元素。,2.用户复查,借助已有的数据流程图,帮助复查,再次完善数据流程图。,3.细化数据流程图,4.修正开发计划,5.书写文档,系统规格说明:系统的概貌、功能要求、运行要求、将来可能的要求。,数据要求:数据字典、图形工具(数据结构的层次图、Warnier图),用户系统描述:初步的用户手册,修正的开发计划,分析追踪数据流程图,用户复查,细化数据流程图,有补充修正,无补充修正,需要分解,不需分解,需求分析的基本过程,需求分析过程,1.概念模型,最常用的表示概念性数据模型的方法:实体联系方法(Entity-Relationship Approach),简称E-R模型。,E-R模型包含三个基本成分:“实体”、“联系”、“属性”,(1)实体:是客观世界中存在的、且可相互区分的事物。它可以是人或物,也可以是具体事物或抽象事物。,例如:教师、学生、课程是实体。,实体用矩形框表示,如:,教师,需求分析过程-概念模型和规范化,(2)联系:客观世界中的事物彼此之间有联系,描述实体与实体之间的关系。联系有三种:,1:1(一对一联系),例如:实体“校长”与“大学”之间的联系为“1:1”,1:N(一对多联系),例如:实体“学校”与“院系”之间的联系为“1:N”,M:N(多对多联系),例如:实体“学生”与“课程”之间的联系为“M:N”,联系用菱形框表示,如:,需求分析过程-概念模型和规范化,(3)属性:属性是实体或联系所具有的性质。通常一个实体或联系由若干属性来刻画。,教师,学生,课程,教,学,1,N,M,N,成绩,需求分析过程-概念模型和规范化,2.范式,第一范式,每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。,第二范式,满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。,第三范式,符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值),一般使用第三范式,避免第三范式,需求分析过程-概念模型和规范化,1.层次方框图,层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。,树形结构的顶层是一个单独的矩形框,它表达完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分解的元素),2.Warnier,图,Warnier图也用树形结构描绘信息,且更丰富,能表达逻辑关系。,需求分析过程-图形工具,需求分析过程-图形工具,3.IPO,图,IPO图是输入/处理/输出图的简称,能够方便地描述输入数据、对数据的处理和输出数据之间的关系。,基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据,1.验证软件需求的四个方面,一致性,完整性,现实性,有效性,2.验证软件需求的方法,3.验证软件需求的软件工具,验证软件需求,引言,任务概述,需求规定,运行环境规定,软件需求说明书,需求工程概述,需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。,需求工程的活动:,需求获取,需求建模,形成需求规格(规约),需求验证,需求管理,需求工程的层次分解示意图,需求工程,需求工程,需求管理,问题,获取,分析,编写规格说明,验证,在需求分析阶段,系统分析员的主要,焦点,是 “,做什么(what),” ,不是 “怎样做(how)”,需求获取,需求获取的目的,清楚地理解所要解决的问题,完整地获取用户需求,需求获取面临的挑战,问题的复杂性和对问题空间理解的不完备性与不一致性,交流障碍,需求易变性,需求获取的常用方法,建立分析小组,领域专家: 主角,系统分析员:导演,客户访谈,问题分析与确认,某出版社系统调查表,编号,提出问题,1,您在哪个部门工作?,2,出版业务流程是什么?,3,您每日都处理那些文件、数据、报表?,4,工作中手工处理特别麻烦的事情是什么?,5,工作中手工处理什么问题解决不了?影响效率的问题有哪些?,6,您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?,7,您的部门需要成本核算和统计的内容有哪些?,8,您的部门采用计算机管理工作情况如何?,9,如何改进业务流程使之更合理?,10,哪些问题是目前传统手工方法根本无法解决的?,11,出版社计算机管理信息系统需要解决什么问题?,需求获取的内容,1.用户需求分类,(1)功能性需求:,定义了系统做什么(描述系统必须支持的功能和过程),(2)非功能性需求(技术需求):,定义了系统工作时的特性,(描述操作环境和性能目标),2. 两类需求包括的内容,(1) 功能,(2) 性能,(3) 环境,(4) 界面,(5) 用户或人的因素,(6) 文档,(7) 数据,(8) 资源,(9) 安全保密,(10)软件成本消耗与开发进度,(11)质量保证,(1) 功能需求,系统做什么?,系统何时做什么?,系统何时及如何修改或升级?,(2) 性能需求,软件开发的技术性指标,例如:,存储容量限制,执行速度、相应时间,吞吐量,硬件设备:机型、外设、接口、,地点、分布、温度、,湿度、磁场干扰等,软件: 操作系统,网络,数据库,(3) 环境需求,有来自其它系统的输入吗?,到自其它系统的输出吗?,对数据格式有规定吗?,对数据存储介质有规定吗?,(4) 界面需求,(5) 用户或人的因素,用户类型?,各种用户熟练程度?,需受何种训练?,用户理解、使用系统的难度?,用户错误操作系统的可能性?,(6) 文档需求,需哪些文档?,文档针对哪些读者?,输入、输出数据的格式?,接收、发送数据的频率?,数据的准确性和精度?,数据流量?,数据需保持的时间?,(7) 数据需求,软件运行时所需的数据、软件。,内存空间等资源。,软件开发、维护所需的人力、,支撑软件、开发设备等。,(8) 资源需求,(9) 安全保密要求,需对访问系统或系统信息加以控,制吗?,如何隔离用户之间的数据?,用户程序如何与其它程序和操作,系统隔离?,系统备份要求?,(10) 软件成本消耗 与开发进度需求,开发有规定的时间表吗?,软硬件投资有无限制,?,系统的可靠性要求?,系统必须监测和隔离错误吗?,规定系统平均出错时间?,出错后,重启系统允许的时间?,系统变化如何反映到设计中?,维护是否包括对系统的改进?,系统的可移植性?,(11) 质量保证,软件需求各组成部分的关系,需求开发与需求管理的界限,软件开发组和其他组织间的重要需求接口,信息化架构设计的目的是:,制定公司完整、集成的信息平台体系架构,使其支撑公司的整体战略、组织结构、组织文化与业务流程。,信息化架构,包括基础设施、使用标准和安全策略、数据资源分布策略、系统集成策略。,信息化架构设计,数字语音视讯网架构,办公自动化系统架构(,OA,),企业资源规划系统架构(,ERP,),呼叫中心系统架构(,Call Center,),分销资源管理系统架构(,DRP,),知识管理系统架构(,KM,),电子商务系统架构(,EC,),决策支持系统架构(,DSS,),客户关系管理系统架构(,CRM,),供应链管理系统架构(,SCM,),解决方案设计,信息技术的三个层面,企业系统,系统架构、核心技术和标准,硬件和系统软件,层面3,层面2,层面1,ERP/Legacy 系统,拓展系统,规划系统,标识码,条形编码,电子数据交换/EDI,事务处理架构,数据架构,通信架构,总体设计说明书,引言,总体设计,接口设计,运行设计,系统数据结构设计,系统出错处理设计,详细设计-基本任务,回答的关键问题:“怎样具体地实现这个系统”,主要任务是设计出程序的“蓝图”,供程序员日后根据这个蓝图编写出实际的程序代码。,注意:设计程序的蓝图,不是具体地编写程序。,设计程序主要采用结构化的程序设计方法。,详细设计-基本步骤,确定模块如何实现,编写详细设计说明书,制定单元测试计划,详细设计评审,详细设计-结构程序设计,1.什么是结构程序设计,结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。,三种基本的控制结构,A,B,exp,B,A,F,T,exp,A,T,F,exp,A,F,T,详细设计-结构程序设计,2.逐步求精的含义,详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。,总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。,详细设计-结构程序设计,3.结构程序设计技术的优越性,(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。,(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。,(3)不使用GO TO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。,(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。,(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。,(6)程序的逻辑结构清晰,有利于程序正确性证明。,详细设计-结构程序设计,详细设计-详细设计说明书,引言,程序系统的组织结构,关键程序的设计说明,总体设计-过程,1.设想供选择的方案,在数据流程图的基础上,一个边界一个边界设想并列出供选择的方案。,不评价这些供选择的方案,2.选取合理的方案,从上一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案。,根据系统分析确定的目标,来判断哪些方案是合理的。,3.推荐最佳方案,综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并为最佳方案制定详细的实现计划。,总体设计-过程,1.设想供选择的方案,在数据流程图的基础上,一个边界一个边界设想并列出供选择的方案。,不评价这些供选择的方案,2.选取合理的方案,从上一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案。,根据系统分析确定的目标,来判断哪些方案是合理的。,3.推荐最佳方案,综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并为最佳方案制定详细的实现计划。,4.功能分解,对流程图进一步细化,进行功能分解,5.设计软件结构,软件结构反映系统中模块的相互调用关系:顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,最下层的模块完成最具体的功能。,软件结构通过层次图或结构图来描绘,可以直接从数据流程图映射出软件结构。,6.数据库设计,7.制定测试计划,8.书写文档,文档包括:,系统说明,用户手册,测试计划,详细的实现计划,数据库设计结果,9.审查和复审,先技术审查,后管理审查,总体设计-过程,总体设计-模块,1.定义,具有四种属性的一组程序语句称为一个模块,四种属性:输入/输出、逻辑功能、运行程序、内部数据。前两个属性又称为外部属性,后两个属性又称为内部属性。,(1)一个模块的输入/输出都是指同一个调用者。,(2)模块的逻辑功能是指模块能够做什么事,表达了模块把输入转换成输出的功能,可以是单纯的输入/输出功能。,(3)模块的运行程序指模块如何用程序实现其逻辑功能。,(4)模块的数据指属于模块自己的数据。,总体设计-模块,2.属性,外部属性:输入/输出、逻辑功能,内部属性:运行程序、内部数据,在结构化系统设计中。人们主要关心的是模块的外部属性,至于内部属性,将在系统实施工作中完成,3.大小,模块有大有小,它可以是一个程序,也可以是程序中的一个程序段或者一个子程序。,4.理想模块(黑箱模块),理想模块的特点:,(1)每个理想模块只解决一个问题。,(2)每个理想模块的功能都应该明确,使人容易理解。,(3)理想模块之间的联结关系简单,具有独立性。,(4)由理想模块构成的系统,容易使人理解,易于编程,易于测试,易于修改和维护。,对用户来说,其感兴趣是模块的功能,而不必去理解模块内部的结构和原理。,总体设计-模块,总体设计-模块,5.模块的理论根据,设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量。对于两个问题P1和P2,如果:C(P1)C(P2),则显然有:,E(P1)E(P2),根据人类解决一般问题的经验,有:,C(P1+P2)C(P1)+C(P2),进而获得:E(P1+P2)E(P1)+E(P2),6.模块的图形及符号,(1)模块的图形:用矩形表示。,模块的名称写在方框内,由一个动词和一个作为宾语的名词组成。例如:,修改库存,(2)模块间通讯的图形,模块间通讯有两种:数据通讯、控制通讯。,数据通讯是一个数据流,它表示了一个经过处理的数据从一个模块传向另一个模块。,总体设计-模块,控制通讯,只传送一个标志,该标志只表达了处理工作的某种状态,而不是由被发送模块真正进行过处理的数据。,A,B,模块间的联结,获得配件库存量,读库存记录,模块间的通讯,配件编号,库存量,无此配件,总体设计-模块,(3)模块间判断调用的图形,一个模块是否调用某一个从属模块,依赖于调用模块中判断的条件。如果条件成立,则产生调用命令。,A,B,C,D,总体设计-模块,(4)模块间循环调用的图形,指一个模块需要循环调用某一个或若干个从属模块。,A,C,总体设计-模块,7.模块设计的基本原则,模块设计的基本原则:降低系统中模块之间的联结程度,提高每个模块的独立性、聚合度。,(1)模块间的联结,两个模块之间的联结有五种形式,按照联结程度由低到高排列为:,数据联结、特征联结、控制联结、公共联结、内容联结。,总体设计-模块,A.,数据联结,如果两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素,称这种联结为数据联结。这是模块之间影响最小的联结关系。,开发货单,计算金额,单价,数量,金额,总体设计-模块,B.,特征联结,如果两个模块都与同一个数据结构有关,则称为特征联结。,计算水费和电费,计算水费,计算电费,住户详情,水费,住户详情,电费,模块之间的特征联结,总体设计-模块,住户详情数据结构中包括“本月用水量”、“本月用电量”。上面的“特征联结”图可改进为下面“数据联结”图。,计算水量和电费,计算水费,计算电费,水费,电费,本月用水量,本月用电量,模块之间的数据联结,总体设计-模块,C.,控制联结,如果模块A向模块B所传递的信息控制了模块B的内部逻辑,那么A和B之间的联结称为控制联结。,控制信息可以看作是一个开关量,它传递了一个控制信息或状态的标志。控制信息不同于数据信息,数据信息一般通过处理过程处理被处理的数据,而控制信息则是控制处理过程中的某些参数。,总体设计-模块,当要查找的库存编号找不到时,经上级模块反馈一个控制信息,要求上级模块打印“无此库存记录”错误信息。,获得库存记录,检索库存记录,库存编号,库存量,打印“无此库存记录”错误信息,总体设计-模块,D.,公共联结,如果两个模块都和同一个公共数据域有关,则称为公共联结。,公用联结是一种不良的联结关系,它给模块的维护和修改带来困难。如公共数据要作修改,很难判定有多少模块应用了该公共数据,故在模块设计时,一般不允许有公共联结关系的模块存在。,A,B,C,公用数据,总体设计-模块,E.,内容联结(病态联结),如果一个模块和另一个模块的内部属性(即运行程序和内部数据)有关,则称为内部联结。,例如:模块A中,TRC:,模块B中,GO TO TRC,模块A与模块B存在内容联结,这是一种最坏的联结。,总体设计-模块,总体设计-模块,设计模块时,应以数据联结为主,辅以特征联结与控制联结,消除公共联结和内容联结。,总体设计-模块,(2)模块的聚合,模块的聚合是指一个模块内部的各个组成部分的紧凑性,其处理动作的组合强度。,聚合的七种形式:,A.,功能聚合,如果一个模块内部的各组成部分的处理动作全都为执行同一个功能而存在,并且只执行一个功能,则称为功能聚合。,判断一个模块是不是功能聚合,只要看这个模块是“做什么”,是完成一个具体的任务,还是完成多任务。,总体设计-模块,B.顺序聚合,如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征:前一个处理动作所产生的输出数据是后一个处理动作的输入数据,称为顺序聚合。,顺序聚合维护起来不如功能聚合方便,要修改模块中的一个功能,会影响到同一个模块中的其他功能。,A,B,C,功能1,功能2,总体设计-模块,C.,通讯聚合,如果一个模块内各组成部分的处理动作都使用相同的输入数据或相同的输出数据,称为通讯聚合。,获得配件单价和库存量,配件编号,库存量,单价,两个工作:,1.按配件编号查询“数据存储”,获得单价。,2.按配件编号查询“数据存储”,获得库存量。,这两个处理动作都使用相同的输入数据,称为通讯聚合。,总体设计-模块,D.过程聚合,如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但他们都受同一个控制流支配,决定他们的执行次序,称为过程聚合。,循环体,计算累积,事务记录,累积销售额,累积订货量,通过循环体,计算两种累积数。,总体设计-模块,E.,暂时聚合,如果一个模块内的各组成部分的处理动作和时间有关,则称为暂时聚合。暂时聚合模块的处理动作必须在特定的时间内完成。,例如:程序设计中的初始化模块。,F.逻辑聚合,如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或无关,则称为逻辑聚合。,一个逻辑聚合模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。,例如:把编辑各种输入数据的功能放在一个模块中。,G.,机械聚合,如果一个模块的内部各组成部分的处理动作彼此没有任何联系,则称为机械聚合。,总体设计-模块,模块聚合性的判断,该模块只能执行一个功能吗?,功能聚合,模块内各组成部分的关系如何?,是,否,次序重要吗?,次序重要吗?,逻辑相似吗?,数据流,控制流,两者都不是,是,是,是,否,否,否,顺序聚合,通讯聚合,过程聚合,暂时聚合,逻辑聚合,机械聚合,总体设计-模块,七种聚合模块的性能比较,总体设计-模块,8.模块设计的其他原则,(1)模块的分解,分解是指把一个模块分解成若干个从属于它的下层模块。,一般按功能分解,分解到成为一个小的功能单一的模块为止。,一般一个模块内包含的语句在3050条左右较好(指高级语言)。,(2)模块的扇出和扇入,模块的扇出指一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内。,模块的扇入是指一个模块的直接上级模块的个数。,在设计中,扇入系数大,说明模块分解得好,通用性强,冗余度低。,(3)模块的控制范围和判断作用范围,模块的控制范围:本身及其所有下级模块。,模块的判断作用范围:被判断调用的模块。,原则:,A.对于任何一个内部存在判断调用的模块,它的判断作用的范围应该是其控制范围的一个子集。,B.,存在判断调用的模块,所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远。,总体设计-模块,总体设计-模块,A,B,C,D,E,F,G,模块G中有一条判断调用D的语句,违反第1条原则,总体设计-模块,A,B,C,D,E,F,G,违反第2条原则,总体设计-模块,A,B,C,D,E,F,G,违反第2条原则,总体设计-模块,A,B,C,D,E,F,G,正确,总体设计-模块,(4)力争降低模块接口的复杂程度,模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。,接口复杂或不一致(即看起来传递的数据之间没有联系),是紧联结或低聚合的征兆,应该重新分析这个模块的独立性。,(5)设计单入口单出口的模块,(6)模块功能应该可以预测,模块的功能应该能够预测,但也要防止模块功能过分局限。,总体设计-面向数据流的设计方法,(一)概念,1.变换流,2.事务流,3.设计过程,1.变换流,外部表示,内部表示,信息,输入流,输出流,变换流,信息流,时间,参看图形,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统。,当数据流具有这些特征时,这种信息流称为变化流。,总体设计-面向数据流的设计方法,2.事务流,T,事务,事务中心,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这种“以事务为中心的”的数据流,成为“事务流”。,处理T称为事务中心,完成以下任务:接收输入数据;分析每个事务以确定它的类型;根据事务类型选取一条活动通路。,总体设计-面向数据流的设计方法,精化数据流程图,流类型,区分事务中心和数据接收通路,区分输入和输出分支,映射成事务结构,映射成变换结构,运用模块设计规则,精化软件结构,导出接口描述和全程数据结构,复查,详细设计,事务分析,变换分析,事务,变换,面向数据流的设计过程,(二)变换分析,1.复查基本系统模型,复查的目的是确保系统的输入数据和输出数据符合实际。,2.复查并精华数据流程图,3.确定数据流程图具有变换特性还是事务特性,只有当遇到有明显事务特性的信息流时,才采用事务分析方法,否则,一般都认为是变换流,采用变换分析的方法。,总体设计-面向数据流的设计方法,4.确定输入流和输出流的边界,从而孤立出变换中心,(1)检查“输入流”的边界,从输入的数据源开始,沿着每一个由数据源传入的数据流的移动方向进行跟踪分析,逐个分析它所经过的处理逻辑功能。如果仅是传入的数据流作形式上的转换,逻辑上没有进行实际的数据处理功能,则这些处理逻辑属于系统的“输入处理部分”。顺着传入的数据流的移动方向,一直跟踪到它被真正地处理为止。,总体设计-面向数据流的设计方法,(2)检查“输出流”的边界,从输出结果的地方开始,逆着每一个传递出去的数据流,由外向里反方向跟踪,逐个分析它的处理逻辑功能,一直反方向跟踪到它被真正地产生出来为止。,(3)得到变换中心,根据前两步的分析结果,画出一个闭环界线,在界线以内的就是变换中心。,总体设计-面向数据流的设计方法,5.完成“第一级分解”,C,m,C,a,C,t,C,e,第一级分解的方法,总体设计-面向数据流的设计方法,控制模块C,m,是抽象出来的,它位于软件结构最顶层,协调控制下属模块。,输入信息处理控制模块C,a,,协调对所有输入数据的接收。,变换中心控制模块C,t,,管理对内部形式的数据的所有操作。,输出信息处理控制模块C,e,,协调输出信息的产生过程。,总体设计-面向数据流的设计方法,6.完成“第二级分解”,所谓第二级分解就是把数据流程图中的每个处理映射成软件结构中一个适当的模块。,完成第二级分解的方法是,从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理逻辑映射成软件结构中C,a,控制下的一个低层模块;,然后沿输出通路向外移动,把输入通路中每个处理逻辑映射成直接或间接受模块C,e,控制的一个低层模块;,最后把变换中心内的每个处理映射成受C,t,控制的一个模块。,总体设计-面向数据流的设计方法,以小见大例:汽车数字仪表板的设计,功能: 通过模 - 数转换实现传感器和微处理机接口;, 在发光二极管面板上显示数据;, 指示每小时英里数,(mph),行驶的里程,每加仑油行驶的英里数,(mpg),等等;, 指示加速或减速;, 如果车速超过55mph ,则发出警告铃声。,面向数据流的设计方法,第一步:,DFD,的分界,先分出,I、P、O,三块,燃料流,传感器信号,SPS,旋转信号,读,旋转信号,收集和求平均,确定加/减速,转换成,转/分,计算里程,计算,mph,超速值,产生,加/减速显示,计算燃料消耗,计算,gph,读和校核,产生,mpg,显示,产生,mph,显示,发出铃声,产生里程显示,SPS,SPS,箭头指示,燃烧流,上箭头,水平线,下箭头,rpm,rpm,gph,mph,mpg,mph,超速值,英里,显示,铃声,mph,显示,mpg,显示,面向数据流的设计方法,一般问题的一级分解方法:,数字仪表板,控制,数据转换,控制,驱动仪表板,接收传感器,信号,M,P,I,O,面向数据流的设计方法,第二步:映射,A,D,C,B,M,I,C,B,D,A,:每个处理直接对应一个下层模块。,P,:由边界向回溯,将每个遇到的处理器映成相应的层模块。,I,:由边界向外推,方法与 类似,O,I,面向数据流的设计方法,数字仪表板,控制,数据转换,控制,驱动仪表板,接收传感器,信号,计算,gph,读燃料流,转换成,rpm,收集,sps,读旋转信号,确定加/减速,计算,mph,计算,mpg,计算里程,加/减速,显示,显示,mpg,显示,mph,显示里程,发出铃声,发光二极管显示,面向数据流的设计方法,数据流图,(Data Flow Diagram),System = data + function,基本符号:,input,Data storage,function,Data flow,output,数据流图,Title and author of requested book;,name of user,Book title;,user name,List of titles,referring to the topic,Topic,Topic,Title,Book,Topic request by the user,Shelves,List of Authors,List of titles,List of topics,Get a,book,Search by topics,Book request by the user,Book,reception,List of books borrowed,Display of list of titles,Author,Title,Book,Book status,Book request,=,Find book position,+,Get a book,数据流图,A,D,C,B,C,m,C,a,C,B,D,A,第二级分解的方法,总体设计-面向数据流的设计方法,7.使用模块的设计原则,对第一次分割得到的软件结构进一步精化。,为了得到一个易于实现、易于测试和易于维护的软件结构,根据软件设计的基本原则和其它启发性原则,对初步分割得到的模块进行再分解或合并。,总体设计-面向数据流的设计方法,(三)事务分析,事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在由数据流程图到软件结构的映射方法不同。由事务流映射成的软件结构包括一个接收分支和一个发送分支。,映射出,接收分支,结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理逻辑映射成模块。,发送分支,的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流程图中的每一个活动流通路映射成与它的特征相对应的结构。,总体设计-面向数据流的设计方法,总控,调度,A_CTL,B_CTL,C_CTL,接收通路,C通路,B通路,A通路,事务分析的映射方法,(四)总结,对于一个大系统,常常把变换分析和事务分析应用到同一个数据流程图的不同部分,由此得到的子结构形成“构件”,可以利用它们构造完整的软件结构。,一般说来,如果数据流不具有显著的事务特点,最后使用变换分析;反之,如果具有明显的事务中心,则应该采用事务分析技术。,总体设计-面向数据流的设计方法,详细设计的工具,详细设计的工具(含义、图例、评价),1.程序流程图,2.盒图(NS图),3.PAD,图,4.判定表,5.判定树,6.过程设计语言(PDL),7.模块开发文件夹,1.程序流程图,(1)程序流程图又称为程序框图,是早期软件设计的主要工具。,(2)优点:,对控制流程的描绘很直观,便于初学者掌握。,(3)缺点:,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。,程序流程图中用箭头代表控制流,因此程序员不受约束,可以完全不顾结构程序设计的精神,随意转移控制。,程序流程图不易表示数据结构。,详细设计的工具,2.盒图(N_S,图),盒图由Nassi和Shneiderman提出,又称为N_S图,它有以下特点:,(1)功能域(即一个特定控制结构的作用域)明确,很容易从盒图上看出。,(2)不可能任意转移控制,(3)很容易确定局部和全程数据的作用域,(4)很容易表现嵌套关系,也可以表示模块的层次结构,(5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计的原则。,详细设计的工具,3.PAD图,PAD图由日本日立公司在1973年发明,它用二维树型结构的图来表示程序的控制流,比较容易翻译成程序代码。主要特点:,(1)使用PAD图设计的程序必然是结构化程序,(2)PAD,图描绘的程序结构十分清晰。,(3)用PAD图表现程序逻辑,易读、易懂、易记。,(4)容易将PAD图转换成高级语言源程序,(5)PAD图既可用于表示程序逻辑,也可用于描绘数据结构。,(6)PAD图的符号支持自顶向下、逐步求精方法的使用。,(7)PAD图面向高级语言。,详细设计的工具,判定表,(Decision Table),表示复杂的条件,(input),组合与应做动作,(output),之间的对应关系。,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其它的工具不易表示。,一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。,判定表的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。,详细设计的工具,判定树,(Decision Tree),判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。,优点:形式简单,不需任何说明,易看出含义,易于掌握和使用。,缺点:简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多。,详细设计的工具,例:航空行李托运费的算法,按规定:重量不超过30公斤的行李可免费托运。,重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;,其它舱位国内乘客收6元/公斤;,外国乘客收费为国内乘客的2倍;,残疾乘客的收费为正常乘客的1/2。,详细设计的工具,判定表,T-左边条件成立;F-条件不成立;空白-不影响,-执行左边动作;空白-不执行,缺点:含义不容易识别,Rules,Rule numbers,Condition rows,Action rows,判定树,用判定树表示计算行李费的算法,行李费算法,行李重量W 30,行李重量W,30,免费,国内乘客,外国乘客,头等舱,其他舱,残疾乘客,正常乘客,(W-30), 2,(W-30), 4,残疾乘客,正常乘客,(W-30), 3,(W-30), 6,头等舱,其他舱,残疾乘客,正常乘客,(W-30), 4,(W-30), 8,残疾乘客,正常乘客,(W-30), 6,(W-30), 12,注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试,过程设计语言PDL,PDL,也称为伪码,是用正文形式表示数据和处理过程的设计工具。,PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。,详细设计的工具,数据字典,(Data Dictionary),名字:定货报表,别名:定货信息,描述:每天一次送检采购员,的需要定货的零件表,定义:,定货报表=零件编号+零件名称,+定货数量+目前价格,+主要供应者,+次要供应者,位置:输出到打印机,数据,结构,struct 定货报表,char,零件编号8;,char,零件名称20;,int,定货数量;,float,目前价格;,struct supplier,主要供应者;,struct supplier,次要供应者;,;,顾客信息 商品信息,X : 英文字母数字; K : 汉字; N :,数字,例:UML 设计,例:,组织机构设计,例:,业务过程设计,例:,数据模型设计,例:,应用系统生成,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!