软件工程辅导课程八事务分析.ppt_第1页
软件工程辅导课程八事务分析.ppt_第2页
软件工程辅导课程八事务分析.ppt_第3页
软件工程辅导课程八事务分析.ppt_第4页
软件工程辅导课程八事务分析.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程,主讲教师:程义月,辅导课程八,事务分析,事务分析,事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在由数据流程图到软件结构的映射方法不同。由事务流映射成的软件结构包括一个接收分支和一个发送分支。 映射出接收分支结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接收流通路的处理逻辑映射成模块。 发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流程图中的每一个活动流通路映射成与它的特征相对应的结构。,事务分析的映射方法,总控,调度,A_CTL,B_CTL,C_CTL,接收通路,C通路,B通路,A通路,建议,对于一个大系统,常常把变换分析和事务分析应用到同一个数据流程图的不同部分,由此得到的子结构形成“构件”,可以利用它们构造完整的软件结构。 一般说来,如果数据流不具有显著的事务特点,最后使用变换分析;反之,如果具有明显的事务中心,则应该采用事务分析技术。,总体设计说明书,引言 总体设计 接口设计 运行设计 系统数据结构设计 系统出错处理设计,案例1,案例2,案例3,小结,数据流图,变换分析,事务分析,模块,软件结构,耦合,内聚,软件工程 第5章 详细设计,详细设计的目的,总体设计,软件结构,程序 模块 文件 数据库 (黑盒级),详细设计,程序流程图,详细的算法过程设计 内部数据结构设计 程序逻辑结构设计,学习内容及目标,结构化程序设计 详细设计的工具 程序流程图 盒图 PAD图 JACKSON程序设计方法 WARNIER程序设计方法 程序复杂度的定量和度量,基本任务,回答的关键问题:“怎样具体地实现这个系统” 主要任务是设计出程序的“蓝图”,供程序员日后根据这个蓝图编写出实际的程序代码。 注意:设计程序的蓝图,不是具体地编写程序。 设计程序主要采用结构化的程序设计方法。,基本步骤,确定模块如何实现 编写详细设计说明书 制定单元测试计划 详细设计评审,什么是结构程序设计,结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。,结构化程序设计,概念 自顶向下逐步求精的设计方法 单入口单出口的控制结构 三种基本结构 优点 符合问题分解,抽象到具体的思路 具有清晰的层次结构,便于阅读和理解 程序的静态结构与动态执行具有较高的一致性 程序的控制结构简单(顺序,循环和分支) 清晰化与模块化便于代码重用 程序的清晰结构便于程序的正确性证明,逐步求精的含义,详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。 总体设计阶段逐步求精的含义:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统,逐步求精的要领,不要急于用计算机指令、数字和逻辑符号去表示对问题的解法,而是用自然语言(或其他工具)描述问题的解法,最开始的描述处于比较高的抽象层次,接着对抽象描述逐步分解,直到描述能被计算机理解为止。,例子逐步求精,读入三个数,找出并打印其中的最大数 一级算法 输入X1,X2,X3 将X1与X2的大数存于MAX中 将X3与MAX的大数存于MAX中 输出 二级求精 将X1与X2地大数存于MAX中 If x1x2 then max=x1 Else max=x2 将X3与MAX的大数存于MAX中 If x3max then max=x3,三种基本结构,例子结构程序设计,问题描述:将AL寄存器中的机器数以二进制串的形式显示在屏幕上。 例:AL10011101,则计算机屏幕上显示字符串:10011101 问题分解 问题1:如何在屏幕上显示1和0 问题2:如何提取出AL的一个位并在屏幕上显示 问题3:能不能将提取位显示用循环实现,以解决AL的所有位? 逐步求精 问题1:MOV DL,1 MOV AH,2 INT 21H ,结构程序设计技术的优越性1,(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。 (2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 (3)不使用GO TO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。,结构程序设计技术的优越性2,(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。 (5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。 (6)程序的逻辑结构清晰,有利于程序正确性证明。,详细设计工具,程序流程图 盒图 PAD图 判定表 判定树,程序流程图,(1)程序流程图又称为程序框图,是早期软件设计的主要工具。 (2)优点: 对控制流程的描绘很直观,便于初学者掌握。 (3)缺点: 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 程序流程图中用箭头代表控制流,因此程序员不受约束,可以完全不顾结构程序设计的精神,随意转移控制。 程序流程图不易表示数据结构。,盒图(N_S图),盒图由Nassi和Shneiderman提出,又称为N_S图,它有以下特点: (1)功能域(即一个特定控制结构的作用域)明确,很容易从盒图上看出。 (2)不可能任意转移控制 (3)很容易确定局部和全程数据的作用域 (4)很容易表现嵌套关系,也可以表示模块的层次结构 (5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计的原则。,盒图,例子盒图(1),问题描述:将AL寄存器中的机器数以二进制串的形式显示在屏幕上。 例:AL10011101,则计算机屏幕上显示字符串:10011101,将AL向左循环移1位,DLAL,屏蔽DL高7位,将DL转换为ASCII码,显示DL中的字符,CX8,CX8,问题2:提取位,问题1:显示,问题3:循环,例子盒图(2),start if p then while q do f end do else block g n end block endif stop,PAD图,PAD图由日本日立公司在1973年发明,它用二维树型结构的图来表示程序的控制流,比较容易翻译成程序代码。主要特点: (1)使用PAD图设计的程序必然是结构化程序 (2)PAD图描绘的程序结构十分清晰。 (3)用PAD图表现程序逻辑,易读、易懂、易记。 (4)容易将PAD图转换成高级语言源程序 (5)PAD图既可用于表示程序逻辑,也可用于描绘数据结构。 (6)PAD图的符号支持自顶向下、逐步求精方法的使用。 (7)PAD图面向高级语言。,PAD图,PAD图优点,PAD图具有以下优点: 使用PAD设计出来的程序必然是结构化程序; PAD图所描述的程序结构十分清晰; PAD图表现的程序逻辑易读、易懂、易记; 容易将PAD图转换成程序; PAD图还可描述数据结构; PAD图支持自顶向下、逐步求精方法的使用。,例子PAD图(1),start if p then while q do f end do else block g n end block endif stop,例子PAD图(2),问题描述:将AL寄存器中的机器数以二进制串的形式显示在屏幕上。 例:AL10011101,则计算机屏幕上显示字符串:10011101,CX8,While CX0,将AL向左循环移1位,DLAL,屏蔽DL高7位,将DL转换为ASCII码,显示DL中的字符,CXCX1,走图,PAD图的结构类似树型结构,如果按照自上而下、自左而右的顺序走树,即可将PAD图转换为相应的算法乃至程序。,判定表,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系,而其它的工具不易表示。 一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。 判定表的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。,判定表,判定表由4部分组成: 所有条件 所有动作 条件组合 对应动作,例子判定表,用判定表描述“检查定货单”的处理逻辑:“如果金额超过1000元而又未过期,则发出批准单和提货单。如果金额超过2000元,但已过期,则不发出批准单和提货单。如果金额低于2000元,则不论是否过期,都发出批准单和提货单,而且对低于2000元已过期的还需发出通知单”。,判定树,. 判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 优点:形式简单,不需任何说明,易看出含义,易于掌握和使用。 缺点:简洁性不如判定表,相同的数据元素往往要重复写多遍,而且越接近树的叶端重复次数越多。,例子判定树,用判定表描述“检查定货单”的处理逻辑:“如果金额超过1000元而又未过期,则发出批准单和提货单。如果金额超过2000元,但已过期,则不发出批准单和提货单。如果金额低于2000元,则不论是否过期,都发出批准单和提货单,而且对低于2000元已过期的还需发出通知单”。,过程设计语言PDL,PDL也称为伪码,是用正文形式表示数据和处理过程的设计工具。 PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。,举例:查找拼错单词的PDL程序,Procedure SPELL CHECK is begin split document into single words look up words in dictionary display words which are not in dictionary treat a new dictionary end SPELLCHCK - Procedure 查找拼错单词 is begin 把这个文件分离成单词 查字典 显示字典中查不到的单词 造一新字典 end 查找拼错单词,PDL程序的主要特征,用PDL写出的程序具有正文格式。在计算机上可做正文处理. PDL程序中会有一些能够标明程序结构的关键字. PDL语言仅有少量的简单语法规则,大量使用人们习惯的自然语言。 使用PDL语言常常按逐步细化的方式写出程序. PDL程序的注释行对语句进行解释,起到提高可读性的作用。,PDL程序的构成,(1)数据说明:PDL程序中指明数据名的类型及作用域.其形式为: declare数据名as限定词 限定词具体的数据结构: scalar纯量 array数组 list列表 char字符 structure结构 (2)子程序结构 procedure子程序名 interface参数表 return end子程序名 PDL语句指各种PDL构造,面向数据结构的程序设计方法,有代表性的有Warnier、Jackson方法。本节介绍Warnier方法,它又称为逻辑地构造程序的方法。这种方法直接从数据结构导出程序设计。 Warnier程序设计方法的目标是导出对程序处理过程的详细描述,主要依据输入数据结构导出程序结构。 Warnier设计方法基本由五个步骤组成: 分析和确定输入数据和输出数据的逻辑结构,并用Warnier图描绘这些数据结构。 依据输入数据结构导出程序结构,并用Wanier图描绘程序的处理层次。 画出程序流程图,并自上而下地依次给每个处理框序号。 分类写出伪码指令。,例子WANIER图,用Wanier图表示学生基本信息文件,将该图的Warnier图作为输入数据结构导出打印学生名册的程序结构图。,例子由WANIER图得到的程序结构图,程序复杂程度的定量、度量,McCabe方法,程序图,(1)概念: 把程序流程图中每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称之为程序图。 程序图的入口点:开始节点后面的那个节点 程序图的出口点:停止节点前面的那个节点,程序图例子,环形复杂度的计算方法,V(G)=m-n+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论