网站大量收购闲置独家精品文档,联系QQ:2885784924

[第5章结构化设计.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第5章结构化设计

复旦大学计算机科学与工程系 本科生课程 软件工程 第5章 总体设计   传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作划分为概要设计和详细设计这样两个阶段。 引言— 设计人员把分析的结果?设计图纸 程序员拿着设计图纸编写代码 5.1.2 结构化设计与结构化分析的关系 结构化分析的结果为结构化设计提供了最基本的输入信息。两者的关系如图所示。 5.1.2 结构化设计与结构化分析的关系 结构化设计方法的实施要点 (1) 研究、分析和审查数据流图。 (2) 根据数据流图决定问题的类型:变换型和事务型。针对两种不同的类型分别进行分析处理。 (3) 由数据流图推导出系统的初始结构图。 (4) 利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。 (5) 根据分析模型中的实体关系图和数据字典进行数据设计,包括数据库设计或数据文件的设计。 (6) 在上面设计的基础上,并依据分析模型中的加工规格说明、状态转换图进行过程设计。 (7) 制定测试计划。 5.2 结构化设计的原理 结构化设计(Structured Design,简称SD)是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法 强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则 分为概要设计和详细设计两大步骤 概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是:将系统分解成模块,确定每个模块的功能、接口(模块间传递的数据)及其调用关系,并用模块及其对模块的调用来构建软件的体系结构 详细设计是对模块实现细节的设计,采用结构化程序设计(Structured Programming,简称SP)方法 SA、SD和SP构成完整的结构化方法体系 5.2.1 模块化 模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。 按照模块的定义,过程、函数、子程序和宏等,都可作为模块。 有人说,模块化是为了使一个复杂的大型程序能被人的智力所管理,软件应该具备的惟一属性。如果一个大型程序仅由一个模块组成,它将很难被人所理解。 设函数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) 这个不等式导致“各个击破”的结论——把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。 这就是模块化的根据 结构化分析方法中的抽象与分解 抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输出 分解:将系统不断分解为子系统、模块…… 随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构) 5.2.5 模块的独立性 1.耦合度:模块同模块的联系称为块间的联系(模块的耦合度) 2.内聚度:一个模块内部各成份的联系称为块内的联系(模块的内聚度) 耦合度按从强到弱的顺序可分为几种类型: (6)独立耦合:模块间没有信息传递时,属于非直接耦合 (5)数据耦合:指两个模块彼此交换数据 (两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素) (4)控制耦合:一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。 (3)特征耦合   介于数据耦合与控制耦合之间。当把整个数据结构作为参数传递而被调用的模块是需要其中一部分数据元素时。 (2)公共耦合:两个以上的模块共同引用一个全局数据项 (1)内容耦合:当一个模块直接修改或操作另一个模块的数据或者直接转入另一个模块时,就发生了内容耦合。 耦合是影响软件复杂程度的一个重要因素。在软件设计中应该采取下述设计原则: 尽量使用数据耦合,少用控制耦合,限制外部耦合和公共耦合的范围,完全不用内容耦合。 练习:分析下图模块间的耦合类型 内聚度按强度从低到高有以下几种类型: (1)偶然内聚:模块内的各个任务没有什么有意义的联系,它们之所以能构成一个模块完全是偶然的原因。 (2)逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。 (3)时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。 (4)过程内聚:如果一个模块内部的处理成份是相关的,而且这些处

文档评论(0)

tiantiande + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档