软件工程04结构化设计.pptx
《软件工程04结构化设计.pptx》由会员分享,可在线阅读,更多相关《软件工程04结构化设计.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 结构化设计本章要点l 结构化设计任务、工作内容及步骤l 总体设计的过程l 设计原则、启发规则l 面向数据流的设计方法l 详细设计任务及原则l 代码及用户界面设计l 基于组件的设计方法l 结构化设计说明书结构结构化设计概述p 结构化设计是面向数据流的传统软件开发方法,以数据流为中心构建软件的分析和设计模型。其工具:n 结构图-通过使用矩形和连接线来表示系统的不同模块以及其活动和子活动的工具。适用于变换型结构和事务性结构的目标系统。n 伪代码自然语言和程序设计语言共同表示程序结构。结构化设计的任务n 任务:在设计阶段,主要是将需求分析阶段得到的DFD转换为 软件结构和数据结构。n 目标:划
2、分子系统并使子系统之间是高内聚低耦合的,从而提高软件的可理解性和可维护性。q根据用信息域表示的软件需求,以及功能和性能需求,进行 数据设计数据设计 系统结构设计系统结构设计 过程设计过程设计q q数据设计数据设计侧重于数据结构的定义。侧重于数据结构的定义。q q系统结构设计系统结构设计定义软件系统各主要成份之间的关定义软件系统各主要成份之间的关系。系。q q过程设计过程设计则是把结构成份转换成软件的过程性描则是把结构成份转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软程序代码,然后通过测试最终得到
3、完整有效的软件。件。开发阶段的信息流q q从工程管理的角度来看,软件设计分两步完成。从工程管理的角度来看,软件设计分两步完成。概要设计概要设计,将软件需求转化为数据结构和软件,将软件需求转化为数据结构和软件的系统结构。的系统结构。详细设计详细设计,即过程设计。通过对结构表示进行,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。细化,得到软件的详细的数据结构和算法。详细设计阶段 概要设计阶段体系结构设计模块设计数据库设计用户界面设计需求开发实现与测试数据结构与算法设计系统设计过程示意图结构化设计的工作内容及步骤p结构化设计的工作内容:n 结构化设计首先是根据数据流图类型将问题
4、分析划分为事务型问题和(或)变换型问题,分别将它们映射成事务型或变换型结构图;n 然后对映射得到的结构图进行综合和评价改进;n 最后按照有关规范编写总体设计说明书进行复审。p 结构化设计的工作步骤n 图4-1所示结构化总体设计p准则:n 模块化n 抽象与逐步求精n 信息隐蔽和局部化n 模块独立性p 目标:n 概括地回答系统应该如何实现。总体设计过程1.1.设计系统方案 设计系统方案2.2.选取一组合理的方案 选取一组合理的方案3.3.推荐最佳实施方案 推荐最佳实施方案4.4.功能分解 功能分解5.5.软件结构设计 软件结构设计6.6.数据库设计、文件结构的设计 数据库设计、文件结构的设计7.7
5、.制定测试计划 制定测试计划8.8.编写概要设计文档 编写概要设计文档(1 1)用户手册)用户手册(2 2)测试计划)测试计划(3 3)详细项目开发实现计划)详细项目开发实现计划(4 4)数据库设计结果)数据库设计结果9.9.审查与复审概要设计文档 审查与复审概要设计文档设计原则p 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。p 抽象 软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采用过程化的方法。p 信息隐蔽n 由 parnas
6、方法提倡的信息隐蔽是指,每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。p 一致性n 整个软件系统(文档和程序)的各个模块均应使用一致的概念、符号、术语;接口一致;规格说明与系统行为一致;设计工具、方法和编码风格一致等。总体设计的启发规则p p 将软件的体系结构按自顶向下方式,对各个层次的过程细 将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够 节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。实现为止,从而最后确立整个的体系结
7、构。p p 软件结构包括两部分。软件结构包括两部分。程序的模块结构 程序的模块结构和 和数据的结构 数据的结构p p 软件的体系结构通过一个划分过程来完成。软件的体系结构通过一个划分过程来完成。该划分过程从 该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分 需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个 割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了 问题就解决了程序结构qq程序结构表明了程序各个部件(模块)的组织情况,是软件的过程表示。p p结构图反映程序中模块之间的层次调用关系和联结构图反映程序中模块之间的
8、层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递系和模块间信息的传递p p 模块:模块用矩形框表示,并用模块的名字标模块:模块用矩形框表示,并用模块的名字标记它。记它。p p 模块的调用关系和接口:模块之间用单向箭头模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块。联结,箭头从调用模块指向被调用模块。p p 模块间的信息传递:当一个模块调用另一个模模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行
9、。而被调用模块模块,以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的数据或控制信息回送在执行过程中又把它产生的数据或控制信息回送给调用模块。给调用模块。p p 在模块在模块AA的箭头尾部标以一个菱形符号,表示的箭头尾部标以一个菱形符号,表示模块模块AA有条件地调用另一个模块有条件地调用另一个模块BB。当一个在调用。当一个在调用箭头尾部标以一个弧形符号,表示模块箭头尾部标以一个弧形符号,表示模块AA反复调用反复调用模块模块CC和模块和模块DD。面向数据流的设计方法p 系统结构的两种典型形式:p 系统数据流的两种形式:p 变换型结构p 事务型结构p 变换型数据流p 事务型数据流变换中心
10、输入输出变换型结构事务中心接受路径动作路径基本模型 特征事务型 结构由输入、变换中心和输出三部分组成具有在多种事务中选择执行某类事物的能力T 事务中心 传入变换传出 大型系统DFD中,变换型和事务型结构往往共存变换流示意图信息流输入流 输出流交换流外部表示内部表示系统结构图的组成p p传入模块传入模块 从下属模块取得数据,经过某些处从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。做逻辑输入数据流。p p传出模块传出模块 从上级模块获得数据,进行某些处从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送
11、的数据流叫理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。做逻辑输出数据流。p p变换模块变换模块 它从上级模块取得数据,进行特定它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。它加工的数据流叫做变换数据流。p p协调模块协调模块 对所有下属模块进行协调和管理的对所有下属模块进行协调和管理的模块。模块。AC BX,YZZAC B2 1ACBDA根据内部判断决定是否调用BA按另一判定结果选择调用C或DAB CA根据内在的循环重复调用B、C等模块27初始的SC主模块输入模块 主加工模块 输入
12、模块事务控制模块接受模块 动作发送模块动作1模块 动作2模块 动作3模块由变换分析产生由事务分析产生变换分析设计方法步骤:(1)区分传入、变换中心、传出部分,在 DFD 上标明分界线。B CAD EQPRWU Vabcedrpuwv变换中心 变换中心传入 传入部分 部分传出 传出部分 部分(2)第一级分解(建立初始SC框架)设计顶层和第一层模块。第一级分解的方法MCMT MA MEMCMTMAME第一层顶层c,ec,e u,wu,w传出模块中心变换模块事务分析p p任何情况下都可使用变换分析方法设计软件结构任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时但如数据流具有
13、明显的事务特点时(有一个明显有一个明显的事务中心的事务中心),),以采用事务分析方法为宜。以采用事务分析方法为宜。p p步骤:步骤:(1)在DFD上确定事务中心、接收部分和发送部分。(2)画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块。(3)分解细化接收分支和发送分支,完成初始SC。32初始的SC主模块输入模块 主加工模块 输入模块事务控制模块接受模块 动作发送模块动作1模块 动作2模块 动作3模块由变换分析产生由事务分析产生33事务分析的映射方法总控调度C路径 B路径 A路径A路径BB路径路径CC路径路径接收路径混合型分析p 在实际应用中,一些大型问题往往是两
14、种混合在一起的混合型问题。p 对于混合型问题,一般以 变换型问题为主,首先找出变换中心,设计出结构图的上层;然后根据数据流图的各部分具体类型分别映射得到它们的结构图。p 一般在设计阶段对软件结构进行优化。结构 化总体设计的工具p 系统流程图 表4-1pHIPO 图 图4-19系统流程图符号:系统流程图的作用u 制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,是分析员作进一步分析的依据。u 系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。u 系统分析员可直接再系统流程图上拟出可以实现计算机处理的部分。u 可利用系统流程图来分析业务流程的合理性。绘制注意事项p 物理部
15、件的名称写在图形符号内,用以说明该部件的含义;p 系统流程图中不能出现控制流;p 用以表示信息流 的箭头符号不需要标注名称。p 对于复杂的系统一般采用分层的方式进行描绘。39层次方框图p层次方框图是用树形结构的一系列多层次的矩形框描述数据的层次结构。p树形结构的顶层是一个单独的矩形框,代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分隔的元素)。40某计算机公司全部产品的数据结构产品软件 服务 硬件系统软件处理设备应用软件软件服务硬件维修培训存储器处理机操作系统 编译程序 软件工具IPO表p 层次方框图值说明了软件由哪些模块组成及其控
16、制层次结构,并未说明模块间的信息传递及模块内部的处理。因此需要借助IPO 表。见p105 表4-2。模块的结构设计p 模块包含的4种属性n 输入/出n 逻辑功能-表明模块能做什么事n 运行程序-如何用程序实现其逻辑功能n 内部数据-模块自己的数据p 理想模块的特点n 每个理想模块只解决一个问题;n 每个理想模块的功能都应该明确,易理解;n 理想模块之间的连接关系简单,具有独立性;n 由理想模块构成的系统,易理解、编程、测试、修改和维护。p假设C(x)为描述问题x的复杂度的函数,E(x)为解决问题x的代价函数。根据经验,对于两个问题p1和p2,如果 C(p1)C(p2),p那么 E(p1)E(p
17、2)。p 进一步得出如下推论:p C(p1+p2)C(p1)+C(p2)p E(p1+p2)E(p1)+E(p2)p 因此推断,如果问题P能够分解为n个子问题,那么解决n个子问题的总代价肯定低于直接解决P的代价,因为P太复杂了,简直让人无从下手!44模块化与软件成本成本或工作量模块数量软件总成本接口成本成本/模块M最小成本区域模块独立性p模块的独立性n模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的n一般采用两个准则度量模块独立性。即模块间耦合性和模块内聚性p p具有独立的模块的软件比较容易开发出来具有独立的模块的软件比较容易开发出来p p
18、独立的模块比较容易测试和维护独立的模块比较容易测试和维护n耦合是模块之间的互相连接的紧密程度的度量。n 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。n 模块独立性比较强的模块应是高内聚低耦合的模块。48非直接耦合(Nondirect Coupling)两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。非直接耦合的模块独立性最强。49数据耦合(Data Coupling)一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。标记耦合标记耦合(Stamp Coupling)(Stamp
19、 Coupling)一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。50控制耦合(Control Coupling)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。控制耦合往往是多余的,通常可用数据耦合来代替。51外部耦合(External Coupling)一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而不是同一而不是同一全局数据结构,而且不是通过参数表传递该全全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。局变量的信息,则称之为外部耦合。公共耦合(Common C
20、oupling)若一组模块都访问若一组模块都访问同一个公共数据环境,同一个公共数据环境,则它则它们之间的耦合就称为公共耦合。公共的数据环们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。的公共覆盖区等。52 公共耦合的复杂程度随耦合模块的个数增加而显公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦共耦合有两种情况。松散公共耦合和紧密公共耦合。合。53内容耦合(Content Coupling
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 04 结构 设计
限制150内