软件工程-第8章修改ppt课件_第1页
软件工程-第8章修改ppt课件_第2页
软件工程-第8章修改ppt课件_第3页
软件工程-第8章修改ppt课件_第4页
软件工程-第8章修改ppt课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程软件工程第8章面向过程的构造化设计 软件设计是后续开发步骤及软件维护任务的软件设计是后续开发步骤及软件维护任务的根底。假设没有设计,只能建立一个不稳定的根底。假设没有设计,只能建立一个不稳定的系统构造。系统构造。 软件系统进展模块设计时,可有不同的笼统层次。软件系统进展模块设计时,可有不同的笼统层次。 在最高的笼统层次上,运用问题所处环境的言语概在最高的笼统层次上,运用问题所处环境的言语概括的描画问题的解法;括的描画问题的解法; 在较低的笼统层次上,将提供更详细的处理方案。在较低的笼统层次上,将提供更详细的处理方案。8.1 软件设计的根本概念和原理 1 1过程笼统过程笼统 过程笼统是指

2、具有明确和有限功能的指令序列。过过程笼统是指具有明确和有限功能的指令序列。过程笼统的命名暗示了这些功能,但隐藏了详细的细节。程笼统的命名暗示了这些功能,但隐藏了详细的细节。 在软件工程中,从系统定义到实现,每进展一步在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件处理方法的笼统化过程的一次细都可以看做是对软件处理方法的笼统化过程的一次细化。化。 2 2数据笼统数据笼统 数据笼统是描画数据对象的冠名数据集合。数据笼统是描画数据对象的冠名数据集合。 在不同层次上描画数据对象的细节,定义与该数据在不同层次上描画数据对象的细节,定义与该数据对象相关的操作。对象相关的操作。 体系构造是程序构

3、件模块的构造或组织、这些体系构造是程序构件模块的构造或组织、这些构件交互的方式以及这些构件所用数据的构造。构件交互的方式以及这些构件所用数据的构造。 构造图:反映程序中模块之间的层次调用关系和联络:构造图:反映程序中模块之间的层次调用关系和联络:它以特定的符号表示模块、模块间的调用关系和模块它以特定的符号表示模块、模块间的调用关系和模块间信息的传送。间信息的传送。 模块:模块用矩形框表示,并用模块的名字标志它。模块:模块用矩形框表示,并用模块的名字标志它。 模块的调用关系和接口:模块之间用单向箭头结模块的调用关系和接口:模块之间用单向箭头结合,箭头从调用模块指向被调用模块。合,箭头从调用模块指

4、向被调用模块。 模块间的信息传送:当一个模块调用另一个模块时,模块间的信息传送:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以调用模块把数据或控制信息传送给被调用模块,以使被调用模块可以运转。而被调用模块在执行过程使被调用模块可以运转。而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块中又把它产生的数据或控制信息回送给调用模块 软件被划分为独立命名的构件,称之为模块。这些软件被划分为独立命名的构件,称之为模块。这些模块可以被组装起来以满足整个问题的需求。模块可以被组装起来以满足整个问题的需求。阅历阅历1 1:任务量:任务量E(P1+P2)E(P1)+E(

5、P2)E(P1+P2)E(P1)+E(P2)阅历阅历2 2:本钱本钱本钱本钱 / / 模块模块最小本钱区最小本钱区接口本钱接口本钱软件总本钱软件总本钱模块数目模块数目8.2 软件总体设计的义务和目的v在总体设计阶段中应从系统开发的角度出发,将系统逐次分割成层次构造,系统被表达为一个构造明晰层次清楚的模块组合,每个模块完成各自相对简单的功能,并且他们之间都坚持一定的联络,另外还定义这个系统与外部系统的接口。v这一阶段要从需求分析转化到设计模型 8.2 软件总体设计的义务和目的从分析模型转化到设计模型的元素对应关系 分析模型元素分析模型元素转化成设计模型转化成设计模型的元素的元素形状转换图、控制规

6、格阐明、处置规格阐明过程设计数据流图接口设计数据流图体系构造设计实体联络图、数据对象描画、数据字典数据设计8.3 软件体系构造设计v根据数据变换的性质,我们可以把数据流图分为变换型和事务型两类,所以,构造化设计也被分为变换设计、事务设计以及两者相结合的综合设计。8.3.1根本概念v面向数据流的设计方法,把信息流映射成软件体系构造,不同的信息流选用不同的映射方法,总体来说,有以下两种类型的数据流:v变换流 v事务流 8.3.1根本概念v变换流v变换流表达的是数据从输入到加工,再到输出的普通步骤,数据首先需求输入过程,由外部方式变换成内部方式,这种内部方式适宜进展加工处置;然后经过变换中心,将输入

7、的数据加工成一种新的数据形状;接着再经过输出通道变换成外部方式。当数据流图具备这些特性时,这种信息流我们就称为变换流。 8.3.1根本概念v变换流8.3.1根本概念v事务流 v当输入的信息流可以引发多个不同的事务活动流程,并且数据流图中有一个事务调度中心,那么我们称这种信息流为事务流。8.3.1根本概念v事务流 8.3.1根本概念不同的信息流对应的分析方法是不同的,我们需求根据数据流图中的流的类型分别进展变换分析或事务分析,从数据流图到最终的软件体系构造的分析设计过程如下图 8.4 过程设计 在计算机技术开展的初期,由于计算机硬件条件的限制,导致对运算速度与存储空间都有要求,这样开发人员追求高

8、效率,把程序的可了解性、可扩展性等要素被放到第二位。 随着计算机运用规模也越来越大,运用和开发越来越普及,计算机硬件与通讯技术得到了高速开展,程序设计不再是一两个程序员可以完成的义务。编写程序不能再以片面追求高效率为第一要求,而要综合思索程序的可靠性、可扩展性、可重用性和可了解性等要素。正是这种开展刺激了程序设计方法与程序设计言语的开展。8.4 过程设计v过程设计的目的除了要使开发出来的程序满足功能、性能上的要求,同时也要满足代码简约明了易懂的要求。v过程设计的好坏决议了最终代码的质量。随着程序规模与复杂性的不断增长,人们探求出新的程序设计方法。v专家证明了只用顺序、选择、循环这三种根本控制构

9、造,即可实现任何单入口/单出口的程序。 v以下引见几种构造设计的工具: 8.4.1程序流程图 程序流程图是人们对处理问题的方法、思绪或算法的一种描画。它的优点在于:采用简单规范的符号,画法简单;构造明晰,逻辑性强;便于描画,容易了解。8.4.1程序流程图流程图采用以下的一些根本符号: 8.4.1程序流程图例如:运用程序流程图判别某个整数x能否为质数的算法 8.4.1程序流程图 传统的程序流程图是一种非构造化的程序算法设计工具,它有以下一些缺陷:它无法对嵌套进展明晰地表达,尤其当嵌套比较复杂的时候;程序流程图无法制止GOTO语句;程序流程图会使程序员过早地思索程序的控制流程,它不是逐渐求精的好工

10、具。 8.4.2盒式图N-S 传统的程序流程图是一种非构造化的程序算法设计工具,它有以下一些缺陷:它无法对嵌套进展明晰地表达,尤其当嵌套比较复杂的时候;程序流程图无法制止GOTO语句;程序流程图会使程序员过早地思索程序的控制流程,它不是逐渐求精的好工具。 8.4.2盒式图N-SNassi和Shneiderman提出的盒式图N-S,它把整个程序写在一个大框图内,这个大框图由假设干个小的根本框图构成,在盒式图N-S中,有三种根本控制构造的N-S图 8.4.2盒式图N-S以下图为判别某个整数x能否为质数的算法设计图: 8.4.2盒式图N-SN-S盒式图实践上是程序流程图去掉控制流线的变种,它有以下特

11、点:功能表达明确;容易确定部分数据和全局数据的作用域;容易表达模块的层次与嵌套关系;容易培育程序员养成构造化分析问题和处理问题的习惯。N-S盒式图的缺陷在于,获得构造严密的同时,牺牲了一定的灵敏性,不便于进展算法的调整优化,假设问题较为复杂,作图的难度会加大。8.4.3PAD图问题分析图PADProblem Analysis Diagram,由日本日立公司于1973年发明,它用二维树形构造的图表示程序的控制流,将这种图转换为程序代码比较容易。以下是PAD的根本符号。8.4.3PAD图同样是上面那个断定质数的例子 8.4.3PAD图PAD图的优点在于:用PAD图可以容易读懂程序所要表达的逻辑,P

12、AD图是二维树型构造的图形,程序从图中最左边上端的结点开场执行,自上而下,从左到右顺序执行;PAD是一种程序构造可见性好、构造独一、易于编制、易于检查和易于修正的详细设计表现方法,用PAD可以消除软件开发过程中设计与制造的分别,也可消除制造过程中的客观性;PAD图所描画的程序构造非常明晰。图中最左边的竖线是程序的主线,即第一层控制构造,随着程序层次的添加,PAD图逐渐向右延伸,每添加一个层次,图形向右扩展一条竖线,PAD图中竖线的总条数就是程序的层次数;既可用于表示程序逻辑,也可用于描画数据构造。 8.4.4PDL言语PDLProgram Design Language也称为伪码,它是用正文方

13、式表示数据和处置过程的设计工具。PDL具有严厉的关键字外部语法,用于定义控制构造和数据构造;另一方面,PDL表示实践操作和条件的内部语法通常又是灵敏自在的,以便可以顺应各种工程工程的需求。因此,普通说来PDL是一种“混杂言语,它运用一种言语(通常是某种自然言语)的词汇,同时却运用另一种言语(某种构造化的程序设计言语)的语法。 8.4.4PDL言语PDL程序的构成 PDL程序的构成类型子类型数听阐明declareas详细的数据构造:scalararraylistcharstructure子程序构造procedureinterfacereturnend分程序构造beginend8.4.4PDL言语

14、PDL程序的构成 顺序构造选择型if thenelseend ifif thenelse if thenelseend ifWHILE循环型loop while end loopUNTIL循环型loop until end loopCASE型case of,default :end case8.4.4PDL言语同样是上面那个断定质数的例子,用PDL表示如下:procedure 断定质数declare x,n,j as 整型简单变量从键盘读入x将变量n赋值为x1/2将变量i赋值为2loop while i=n+1输出:x是质数else输出:x不是质数end ifend断定质数8.4.4PDL言语

15、PDL具有下述特点:它运用关键字的固定语法,为了使构造明晰和可读性好,通常在一切能够嵌套运用的控制构造的头和尾都有关键字,例如,ifend if、loopend loop等。它运用自然言语的自在语法,来描画详细的处置逻辑。它需求对数据进展阐明。应该既包括简单的数据构造(例如简单变量和数组),又包括复杂的数据构造(例如,链表或层次的数据构造)。它需求对模块定义和调用的技术进展阐明。 8.4.5断定表 断定表(decision table),是指一个表格,用于显示条件和条件导致动作的集合。断定表是分析和表达多逻辑条件下执行不同操作的情况的工具。假设数据流图的加工需求依赖于多个逻辑条件的取值,运用断

16、定表来描画比较适宜。8.4.5断定表 一张断定表通常由四部分组成,左上部列出的是一切的条件,左下部为一切能够的操作,右上部分表示各种条件组合的一个矩阵,右下部分是对应于每种条件组合应有的操作。 8.4.5断定表 以学生的奖学金评定为例,阐明断定表的运用。奖励的目的在于鼓励学生的品学兼优,此处置功能是要合理确定奖学金评定等级。决议受奖的条件为:成果优秀占70或50以上,成果为中或中以下占15或20以下,团结纪律为优或中。奖励方案为一等奖、二等奖、三等奖三种。由于受奖条件有些是相容的,相互组合的项较多。描画此学生奖励政策的断定表如下表所示:8.4.5断定表条件各门功课的成果等级比率优秀=70% 优

17、秀=50%-中以下15% 中以下20% -综合素质评分优 中 奖励方案一等奖 二等奖 三等奖 8.4.5断定表v断定表的优点:可以将复杂的问题按照各种能够的情况全部列举出来,简明并防止脱漏。因此,利用断定表可以设计出完好的测试用例集合。v在一些数据处置问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。断定表很适宜于处置这类问题。 8.4.6断定树 断定树是断定表的变种,也能明晰地表示复杂的条件组合与应做的动作之间的对应关系。断定表虽然能明晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工具的人要了解

18、它需求有一个简短的学习过程。此外,当数据元素的值多于两个时,断定表的简约程度也将下降。8.4.6断定树一个支持自行开发、购买决策的决策树 8.4.6断定树 断定树易于掌握和运用,它方式简单,不需任何阐明,一眼就可以看出其含义。从缺乏方面来看,断定树虽然比断定表直观,但简约性却不如断定表,数据元素的同一个值往往要反复画出多遍,而且越接近树的叶端反复次数越多。此外还可以看出画断定树时分枝的次序能够对最终画出的断定树的简约程度有较大影响。8.5 Jackson设计方法 MAJackson提出了一类至今仍广泛运用的软件开发方法,该方法有时也称为面向数据构造的软件设计方法。这一方法从目的系统的输入、输出数据构造入手,导出程序框架构造,再补充其它细节,就可得到完好的软件体系构造。对于输入、输出数据构造明确的中小型系统,这个方法比较有效。Jackson设计方法也可与其它方法结合,用于模块的详细设计。8.5 Jackson设计方法Jackson构造图是Jackson方法提供的工具。虽然实践运用的数据构造种类繁多,但是数据元素间的逻辑关系只需顺序、选择和反复三类。三类Jackson构造图 8.5 Jackson设计方法(1)顺序构造顺序构造的数据

温馨提示

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

评论

0/150

提交评论