- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章结构化设计.ppt
讲授内容:总体设计过程与任务软件设计的优劣标准及其设计原则,结构化设计方法学(Structure Design)。详细设计的内容与方法,详细设计工具,面向数据结构的设计方法(Jackson方法)。 第一节 软件设计的任务和步骤 结构化分析的结果为结构化设计提供了最基本的输入信息。 由数据模型、功能模型和行为模型清楚地表示的软件需求被传送给软件设计者。设计者使用适当的方法完成数据设计、体系结构设计、接口设计和过程设计。 把分析模型转变成软件设计 3.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) 模块化的好处 可以使软件结构清晰; 容易测试和调试; 提高可修改性; 有助于软件开发的组织管理。 3.2.2 抽象 优点:简化了软件的设计与实现,提高了可理解性和可测试性,易于维护。 3.2.3 逐步求精 是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础(如:规格说明技术、设计和实现技术、测试和集成技术)。 定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。[原因:一个人在任何时候都只能把注意力集中在7±2个知识块上。] 求精实际上是细化过程。 抽象和求精是一对互补的概念。抽象能说明数据和过程,并忽略低层细节。它忽略多余的细节同时强调有关的细节,而实现逐步求精。求精在设计过程中揭示出低层细节。 3.2.4 信息隐藏 3.2.6 程序结构 3.2.7 软件过程 第三节 软件体系结构设计 1、层次图和方框图的区别: 层次图中的一个矩形框代表一个模块,方框间的连线代表调用关系;方框图的方框间连线代表组成关系;层次图很适合于自顶向下设计软件的过程中使用。 2、HIPO图是“层次图加输入/处理/输出图”的英文缩写。 结构图和层次图类似,是描述软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头表示模块的调用关系。 概念 对一个软件结构内不同模块之间互连程度的度量。 种类 数据耦合,控制耦合,公共耦合,内容耦合。 数据耦合 控制耦合 公用耦合(公共环境耦合) 内容耦合 概念:标志一个模块内个元素彼此结合的紧密程度。 功能内聚 顺序内聚 通讯内聚 过程内聚 时间内聚 逻辑内聚 偶然内聚 尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。 力求高内聚,通常中等程度的内聚也是可以的,效果和高内聚差不多,但低内聚不要使用。 1 改进软件结构提高模块独立性 通过模块的分解和合并,力求降低耦合提高内聚。 2 模块规模应该适中 一个模块的规模不应过大,最好能写在一页纸内。不要超过60行,最好30行以内。 过大的模块往往分解不充分,但进一步分解不应该降低模块独立性。 过小的模块开销大于有效操作,模块数目过多将使系统接口复杂。 第四节 结构化设计 面向数据流的设计方法 把信息流映射成软件结构,信息流的类型决定了映射的方法。 1、变换流 信息通常以“外部世界”的形式进入软件系统,经过处理以后再以“外部世界”的形式离开系统。由逻辑输入、变换中心、逻辑输出三部分组成。 2、事务流 它完成以下任务: 1)接收输入数据(事务) 2)分析每个事务以确定它的类型; 3)根据事务类型选取一条活动通路。 3、设计过程 二、设计步骤与分析 变化分析是一系列设计步骤的总称。 1、例子:汽车数字仪表扳的设计。假设仪表板将完成下述功能: 1)通过模数转换实现传感器和微处理器的接口; 2)在发光二极管上显示数据; 3)指示每小时的英里数,行驶的里程,每加仑油行驶的英里数等; 4)指示加速或减速; 5)超速警告,如
文档评论(0)