软件工程PPT教学课件第五章 总体设计

上传人:痛*** 文档编号:48345276 上传时间:2022-01-04 格式:PPT 页数:47 大小:521.50KB
返回 下载 相关 举报
软件工程PPT教学课件第五章 总体设计_第1页
第1页 / 共47页
软件工程PPT教学课件第五章 总体设计_第2页
第2页 / 共47页
软件工程PPT教学课件第五章 总体设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
第五章第五章 总体设计总体设计(System Design)开始考虑开始考虑“How”,但仍属高层设计(确定黑盒关系),但仍属高层设计(确定黑盒关系)1. 过程过程1、确定最佳方案:、确定最佳方案: 从从DFD出发进行任务分解,不同的划分方法即对应出发进行任务分解,不同的划分方法即对应 不同的方案。每个合理的方案应配备下列不同的方案。每个合理的方案应配备下列4份资料:份资料: 系统流程图系统流程图 组成系统的物理元素清单组成系统的物理元素清单 成本成本/效益分析效益分析 进度计划进度计划 选择最佳方案并制定详细的实现计划(主要技术详选择最佳方案并制定详细的实现计划(主要技术详见第十三章)见第十三章)1. 过程过程2、结构设计、结构设计 模块化思想:模块化思想: 将将DFD细化,至每个子功能都明白易懂;每细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一个模块完成一个子功能;每层模块合成一个高一级的功能。级的功能。 主要工具有主要工具有 System Design Hierarchy及及HIPO图等。图等。3、数据库设计、数据库设计 模式设计:确定物理数据库结构模式设计:确定物理数据库结构 子模式设计:用户使用的数据视图子模式设计:用户使用的数据视图 完整性、安全性设计完整性、安全性设计 优化优化5、书写文档、书写文档系统说明系统说明用户手册用户手册测试计划测试计划详细实现计划详细实现计划数据库设计结果数据库设计结果 6、审查、复审、审查、复审4、测试计划、测试计划 (详见第七章)(详见第七章)1. 过程过程2.模块化原理模块化原理(Modularization) 模块化就是把程序划分成独立命名而且可独立模块化就是把程序划分成独立命名而且可独立访问的模块,每个模块完成一个子功能。访问的模块,每个模块完成一个子功能。 把这些模块集成起来构成一个整体,可以完成把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。指定的功能,满足用户的需求。 模块化是解决一个复杂问题时自顶向下逐层把模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。它是软件解决软件系统划分成若干模块的过程。它是软件解决复杂问题所具备的手段,不但可以降低问题复杂复杂问题所具备的手段,不但可以降低问题复杂性,还可以减少开发工作量,从而降低开发成本,性,还可以减少开发工作量,从而降低开发成本,提高软件生产率。提高软件生产率。2.模块化原理模块化原理模块的概念:模块的概念:在软件的体系结构中,模块是可组合、分解和更换在软件的体系结构中,模块是可组合、分解和更换的单元,具有以下几种基本属性:的单元,具有以下几种基本属性:接口:指模块的输入输出。接口:指模块的输入输出。功能:模块实现的功能。功能:模块实现的功能。逻辑:内部如何实现及所需数据。逻辑:内部如何实现及所需数据。状态:模块的运行环境,调用与被调用关系。状态:模块的运行环境,调用与被调用关系。逻辑属性反映内部特性,其它属性反映模块的外部逻辑属性反映内部特性,其它属性反映模块的外部特性。特性。1、模块化原理根据:、模块化原理根据: 问题问题P的复杂度的复杂度C(P),工作量,工作量E(P) 如果如果C(P1)C(P2),则,则E(P1)E(P2)经验经验1:C(P1+P2)C(P1)+C(P2) E(P1+P2)E(P1)+E(P2)2.模块化原理模块化原理经验经验2:成本成本成本成本 / / 模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目2.模块化原理模块化原理2.模块化原理模块化原理2、抽象、抽象(Abstraction): 忽略细节,分层理解问题,自顶向下层忽略细节,分层理解问题,自顶向下层层加细。层加细。 抽象与逐步求精、模块化密切相关,可抽象与逐步求精、模块化密切相关,可提高软件的可理解性。提高软件的可理解性。例:例:开发一个开发一个CAD软件,实现一个二维绘图系统软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。的全部功能,供低级计算机辅助设计使用。2.模块化原理模块化原理抽象层次抽象层次I I:用问题所处环境的术语来描述这个:用问题所处环境的术语来描述这个软件。软件。 该软件包括一个计算机绘图界面,向绘图员显该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个视图都可以用这个CADCAD软件实现软件实现。2.模块化原理模块化原理 抽象层次抽象层次IIII:任务需求的描述。列出:任务需求的描述。列出“What”而而不是不是“How”。 CAD SOFTWARE TASKS: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END2.模块化原理模块化原理 抽象层次抽象层次IIIIII:程序过程表示。以:程序过程表示。以2-D2-D绘图生成任务绘图生成任务为例为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs) Digitizer interface task; DETERMINE drawing request CASE Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectioning task; END; END REPETITION; END PROCEDURE. 2.模块化原理模块化原理3、信息隐蔽、信息隐蔽(Information hiding) 局部化(一个模块内的信息对于不局部化(一个模块内的信息对于不需要这些信息的模块,不能访问),需要这些信息的模块,不能访问), 它为软件系统的修改、测试及以它为软件系统的修改、测试及以后的维护都带来好处。后的维护都带来好处。在这个抽象层次上,给出了初步的过程表示,在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作所用的术语都已面向软件,而且模块化的工作已经开始显露。已经开始显露。2.模块化原理模块化原理4、模块独立性、模块独立性(Module independence) 模块独立模块独立模块化、抽象、信息隐蔽模块化、抽象、信息隐蔽、局部化局部化 好设计的关键:每个模块完成一个相对好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简独立的子功能,并且与其它模块间的接口简单。单。 容易开发、测试、维护。容易开发、测试、维护。 2.模块化原理模块化原理 耦合耦合(Coupling) 不同模块间的互联程度的度量。不同模块间的互联程度的度量。 模块间耦合高低取决于接口的复杂性、调用的方式及模块间耦合高低取决于接口的复杂性、调用的方式及传递的信息。传递的信息。Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 独立性的度量:独立性的度量:耦合耦合(Coupling)&内聚内聚(Cohesion) (Yourdon & Constantine,1978)2.模块化原理模块化原理例例1:A访问访问C的内部的内部数据或不通过正数据或不通过正常入口而转入常入口而转入C的内部。的内部。ABCDA:goto C1C:C1: 独立性由弱到强排列为:独立性由弱到强排列为: 内容耦合内容耦合(Content Coupling): One module modifies another.2.模块化原理模块化原理例例2:部分代码重叠:部分代码重叠(常出现在汇编程(常出现在汇编程序中)序中)B A例例3:一个模块有:一个模块有多个入口(多个功多个入口(多个功能)能)A:entry 1:entry 2:2.模块化原理模块化原理 公共耦合公共耦合 (Common coupling):公共数据环境公共数据环境Data are accessible from a common data store. Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1问题:问题: 公共部分的改动将影响所有调用它的模块;公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;公共部分的数据存取无法控制; 复杂程度随耦合模块的个数增加而增加。复杂程度随耦合模块的个数增加而增加。2.模块化原理模块化原理 控制耦合控制耦合(Control coupling): 模块之间传递有控制信息(可能为数据),被调用函模块之间传递有控制信息(可能为数据),被调用函数通过控制信息有选择地执行块内某一功能。数通过控制信息有选择地执行块内某一功能。 One module passes parameters to control the activity of another module.ABFlagF2F1FnFlag接口单一,但仍然影响被控模块的内部逻辑。接口单一,但仍然影响被控模块的内部逻辑。 数据耦合数据耦合(Data coupling): 模块之间通过参数(数据)交换信息。模块之间通过参数(数据)交换信息。 模块之间至少存在数据耦合。模块之间至少存在数据耦合。 Only data are passed. It is easy to trace data and make changes.原则:原则:尽量使用数据耦合;尽量使用数据耦合; 少用控制耦合;少用控制耦合; 限制公共耦合的范围;限制公共耦合的范围; 完全不用内容耦合。完全不用内容耦合。2.模块化原理模块化原理2.模块化原理模块化原理 低内聚:低内聚: 巧合内聚、逻辑内聚、时间内聚巧合内聚、逻辑内聚、时间内聚 巧合内聚巧合内聚(偶然内聚,偶然内聚,Coincidental cohesion):): 一个模块完成一组任务,关系松散。一个模块完成一组任务,关系松散。 一个模块内的各处理元素之间没有任何联系。一个模块内的各处理元素之间没有任何联系。 Unrelated functions, processes, or data are found in the same module (for convenience). 内聚内聚 (Cohesion): The elements of a module are directed to perform the same task.模块内部各个元素彼此结合的紧密程度。模块内部各个元素彼此结合的紧密程度。.2.模块化原理模块化原理 逻辑内聚逻辑内聚(Logical cohesion):): 一个模块完成的任务在逻辑上相同一个模块完成的任务在逻辑上相同/相似相似 Logically related functions or data are placed in the same module. 例如把编辑各种输入数据的功能放在一个模块中,通例如把编辑各种输入数据的功能放在一个模块中,通过参数确定该模块完成哪一个功能。过参数确定该模块完成哪一个功能。A:Read inputsfrom diskfrom tapefrom 例如:例如:2.模块化原理模块化原理 时间内聚时间内聚(Temporal cohesion):): 一个模块内所有任务必须在同一时间完成。一个模块内所有任务必须在同一时间完成。 The functions are related only by the timing involved.例如:系统的初始化例如:系统的初始化问题:不同功能混在一个模块中,有时共用部分问题:不同功能混在一个模块中,有时共用部分 编码,使局部功能的修改牵动全局。编码,使局部功能的修改牵动全局。2.模块化原理模块化原理 中内聚:中内聚:过程内聚、通信内聚过程内聚、通信内聚 过程内聚过程内聚(Procedural cohesion):): 模块内各元素相关,必须以特定次序执行。模块内各元素相关,必须以特定次序执行。(程序流程图划分模块)(程序流程图划分模块) Functions are grouped together in a module to ensure a certain order of performance.例如:例如:enter datacheck datamanipulate data2.模块化原理模块化原理 通信内聚通信内聚(Communicational cohesion):): 模块中所有元素使用同一个模块中所有元素使用同一个I/OI/O。 All the functions in a module operate on or produce the same data set.例如:从同一磁带上读取不相干的数据例如:从同一磁带上读取不相干的数据 可能破坏独立性。可能破坏独立性。2.模块化原理模块化原理 高内聚:高内聚:顺序内聚、顺序内聚、功能内聚功能内聚 顺序内聚顺序内聚(Sequential cohesion):): 所有元素与同一功能密切相关,顺序执行。所有元素与同一功能密切相关,顺序执行。前一功能前一功能元素的输出是后一功能元素的输入。元素的输出是后一功能元素的输入。(数据流图划分模块)(数据流图划分模块) The output from one part of a module is the input to the next part. 功能内聚功能内聚(Functional cohesion):): 所有元素属于一个整体,完成同一功能。所有元素属于一个整体,完成同一功能。缺一不可。缺一不可。 Every processing element is essential to the performance of a single function.3.启发式规则启发式规则2. 模块规模适中:模块规模适中: 过大不易理解;太小则接口开销过大。过大不易理解;太小则接口开销过大。 注意分解后不应降低模块的独立性。注意分解后不应降低模块的独立性。模块的大小准则:模块的大小准则:最好在最好在50150条语句左右,条语句左右,便于理解。便于理解。1. 争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合) 提高模块独立性。提高模块独立性。3. 适当控制适当控制 深度深度 = 分层的层数。过大表示分工过细。分层的层数。过大表示分工过细。 宽度宽度 = 同一层上模块数的最大值。同一层上模块数的最大值。 过大表示系统复杂度大。(扇出过大表示系统复杂度大。(扇出 )3.启发式规划启发式规划3.启发式规划启发式规划 扇出扇出 = 一个模块直接一个模块直接调用调用控制的模块数。控制的模块数。 3 fan-out 9AA的扇出的扇出AA的扇入的扇入 扇入扇入 = 直接调用该模直接调用该模块的模块数块的模块数在不破坏独立性的前提在不破坏独立性的前提下,下,fan-in 大的比较好。大的比较好。3.启发式规划启发式规划 深度、宽度、扇入、扇出。深度、宽度、扇入、扇出。TDMABC扇入扇入扇出扇出深深度度宽度宽度 较好的软件结构:顶层扇出多,中层扇出比较较好的软件结构:顶层扇出多,中层扇出比较少,底层高扇入。少,底层高扇入。3.启发式规划启发式规划3.启发式规划启发式规划4、作用域在控制域内、作用域在控制域内 控制域控制域MACB直接直接/间接从属于它的集合间接从属于它的集合 M的控制域为的控制域为 M,A,B,C 作用域:作用域:M中的一个判定所影响的模块。中的一个判定所影响的模块。例如:例如:A: if then goto B1 B: B1: 作用域在控制域内作用域在控制域内A: if then goto M1 M: M1: goto C1 作用域超出了控制域作用域超出了控制域上例中上例中A的作用超出了控制域。的作用超出了控制域。改进方法之一,可以把改进方法之一,可以把A中的中的 if 移到移到M中;中; 方法之二,可以把方法之二,可以把C移到移到A下面。下面。3.启发式规划启发式规划5、降低接口的复杂程度、降低接口的复杂程度 模块的结构准则:模块的结构准则:接口要简单、清晰及含义明确,便于理接口要简单、清晰及含义明确,便于理解,易于实现、测试与维护。解,易于实现、测试与维护。 接口复杂接口复杂/不一致,可能表明紧耦合,低内聚,模块的独不一致,可能表明紧耦合,低内聚,模块的独立性差。立性差。6、单出单入,避免内容耦合。、单出单入,避免内容耦合。7、模块功能可预测、模块功能可预测 相同输入必产生相同输出。相同输入必产生相同输出。 反例:模块中使用全局变量或静态变量,反例:模块中使用全局变量或静态变量, 则可则可 能导致不可预测。能导致不可预测。作业:你自己负责设计的作业:你自己负责设计的MIS界面中可能遇到哪些类型的界面中可能遇到哪些类型的耦合和内聚?耦合和内聚? 对列出的每种类型试举一例。对列出的每种类型试举一例。4.图形工具图形工具1、Hierarchy和和HIPO 描绘软件层次描绘软件层次 结构。结构。例:例:BooKMisInterface编辑编辑2.0打印打印3.0录入录入1.0检索检索4.0删除删除2.3修改修改2.2添加添加2.1书名书名4.1分类分类4.2作者名作者名4.3出版社出版社4.4自然自然科学科学4.2.14.图形工具图形工具注意:注意: 这里的这里的hierarchy表现软件的结构,而非数据结构;表现软件的结构,而非数据结构; 每个矩形框代表一个模块,每个矩形框代表一个模块,框内名字体现该模框内名字体现该模块的功能。块的功能。 连线表示连线表示“调用调用”而非而非“组成组成”。模块间的控模块间的控制关系:制关系:统率、从属;统率、从属; 所谓所谓HIPO,即对每个模块附一张,即对每个模块附一张IPO图。每个图。每个IPO图中应明确标出对应模块的编号。图中应明确标出对应模块的编号。4.图形工具图形工具2、结构图、结构图(Structured Diagram) 描绘软件结构描绘软件结构 符号:符号:数据传递;数据传递;控制信息;控制信息;或;或;循环循环. .例:例:BAMM1M2M3CD注:此图一般注:此图一般不入文档,仅不入文档,仅用于检查设计用于检查设计的正确性和模的正确性和模块独立性。块独立性。4.图形工具图形工具须检查;须检查; 每个传递的数据是否每个传递的数据是否必须必须? 完成模块功能所必须的数据是否完成模块功能所必须的数据是否都传递了都传递了? 传输的数据是否只与传输的数据是否只与单一单一的功能有关?的功能有关? 是否目的明确?是否目的明确?5.面向数据流的设计方法面向数据流的设计方法(结构化方法(结构化方法SD:Structural Design)基本思想:基本思想: DFD System Hierarchy1、Data Flow 的分类的分类 变换流变换流(Transform Flow): (信息)外部(信息)外部内部内部 外部外部Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTime事实上所事实上所有信息流有信息流都可归结都可归结为变换流为变换流5.面向数据流的设计方法面向数据流的设计方法 事务流事务流(Transaction Flow)T = Call one of the several subroutines depending on the type of the incoming transaction request.当信息流具有明显当信息流具有明显的的“发射中心发射中心”时时(“以事务为中以事务为中心心”),可归结为),可归结为事务流。事务流。 TTransactionrequest Action paths Transaction center2. 设计过程设计过程: P.685.面向数据流的设计方法面向数据流的设计方法3、分析设计、分析设计 变换分析变换分析例:例:P.96 汽车数字仪表板的设计汽车数字仪表板的设计功能:功能: 通过模通过模 - 数转换实现传感器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据;在发光二极管面板上显示数据; 指示每小时英里数指示每小时英里数(mph),行驶的里程,每加行驶的里程,每加仑油行驶的英里数仑油行驶的英里数(mpg)等等;等等; 指示加速或减速;指示加速或减速; 如果车速超过如果车速超过55mph, 则发出警告铃声。则发出警告铃声。5.面向数据流的设计方法面向数据流的设计方法第一步:第一步:DFD分界,先分出分界,先分出I、P、O三块三块燃料流燃料流 传感器信号传感器信号SPS旋转信号旋转信号读读旋转旋转信号信号收集收集和求和求平均平均确定确定加加/ /减减速速转换转换成成转转/ /分分计算计算里程里程计算计算mph,超超速值速值产生产生加加/ /减减速显示速显示计算计算燃料燃料消耗消耗计算计算gph读和读和校核校核产生产生mpg显示显示产生产生mph显示显示发出发出铃声铃声产生产生里程里程显示显示SPS SPS箭头指示箭头指示燃烧流燃烧流上箭头上箭头水平线水平线下箭头下箭头rpmrpmgphmphmpgmph超速值超速值英里英里显示显示铃声铃声mph显示显示mpg显示显示注:注:SPS 信号信号/秒秒 rpm转转/分分 gph加仑油加仑油/时时5.面向数据流的设计方法面向数据流的设计方法一般问题的一般问题的一级分解方一级分解方法:法:数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号MPIO5.面向数据流的设计方法面向数据流的设计方法第二步:映射第二步:映射ADCBMICBDA:每个处理直接对应:每个处理直接对应一个下层模块。一个下层模块。P:由边界向:由边界向回溯回溯,将,将每个遇到的处理器映每个遇到的处理器映成相应的层模块。成相应的层模块。I:由边界向:由边界向外推外推,方,方法与法与 类似类似OI5.面向数据流的设计方法面向数据流的设计方法例:例: 数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号计算计算gph读燃料流读燃料流转换成转换成rpm收集收集sps读旋转信号读旋转信号确定确定加加/ /减速减速计算计算mph计算计算mpg计算计算里程里程加加/ /减速减速显示显示显示显示mpg显示显示mph显示显示里程里程发出发出铃声铃声发光二极管显示发光二极管显示5.面向数据流的设计方法面向数据流的设计方法第三步:修改第三步:修改 本着高内聚、低耦合的原则。本着高内聚、低耦合的原则。例:精化后的数字仪表板系统的软件结构。例:精化后的数字仪表板系统的软件结构。5.面向数据流的设计方法面向数据流的设计方法注:每个模块应附一简要说明描述注:每个模块应附一简要说明描述 进出该模块的信息(接口描述);进出该模块的信息(接口描述); 模块内部的信息;模块内部的信息; 过程陈述,包括主要判定点及任务等;过程陈述,包括主要判定点及任务等; 对约束和特殊特点的简短讨论。对约束和特殊特点的简短讨论。5.面向数据流的设计方法面向数据流的设计方法 事务分析事务分析MIIISABCIIISBAC接受分支接受分支发送分支发送分支5.面向数据流的设计方法面向数据流的设计方法3、SD的总体过程:的总体过程:“变换变换”“事务事务”精化数据流图精化数据流图流类型流类型区分事务中心和区分事务中心和数据接收通路数据接收通路区分输入和区分输入和输出分支输出分支映射成事务结构映射成事务结构映射成变换结构映射成变换结构用启发式设计规用启发式设计规则精化软件结构则精化软件结构导出接口描述和导出接口描述和全程数据结构全程数据结构复复 查查详细设计详细设计变换分析变换分析事务分析事务分析优化的前题是优化的前题是:“Get it to work, then make it fast.”
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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