- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章软件的设计原理
第三章 软件设计原理 计算机信息工程学院 2004年9月 1.软件的总体结构主要回答的问题 软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面 2. 软件设计的问题 4. 软件设计分为两个阶段: (1)概要设计(总体设计) 确定软件的结构以及各组成成分 (子系统或模块)之间的相互关系。 (2)详细设计 确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。 4.2.1 软件体系结构 软件体系结构包括两部分: (1)过程构件(模块)的层次结构 (2)数据构件 控制结构(程序结构) 控制结构是软件模块间 关系的表示 控制结构图示: 1. 控制结构的层次规则 只有一个顶层(0层)模块 0层外任一模块都会在它 的邻层存在一模块与它有关 同层模块间不发生联系 2. 软件结构度量术语 4.2.2 软件过程 软件过程用以描述各模 块的处理细节(算法的详 细描述),包括对下层模 块控制的操作细节。 4.2.3 模块化 (Modularity) 模块化是好的软件设计的一个基本准则 高层模块 从整体上把握 问题,隐蔽细节 复杂问题 较小问题 分解 可减小解题所需的总的工作 模块化和软件成本 分解、信息隐藏和模块独立性,是实现模块化设计的重要指导思想。 4.2.4 抽象(Abstraction) 抽象化 软件系统进行模块设计时,可有不同的抽象层次。 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。 在较低的抽象层次上,则采用过程化的方法。 (1) 过程的抽象在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。 ? 在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。 ? 在从概要设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低抽象层次。 例: 开发一个CAD软件的三层抽象 抽象层次Ⅰ. 用问题所处环境的术语来描述这个软件:该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个CAD软件实现……。 抽象层次Ⅱ. 任务需求的描述。CAD SOFTWARE TASKS user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; end. 在这个抽象层次上,未给出“怎样做”的信息,不能直接实现。 抽象层次Ⅲ. 程序过程表示。以2-D (二维)绘图生成任务为例: PROCEDURE:2-D drawing creation REPEAT UNTIL (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; …… (2) 数据抽象在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。例如,在CAD软件中,定义一个叫做drawing的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为: TYPE drawing IS STRUCTURE DEFIND number IS STRING LENGTH(12); geometry DEFIND …… notes IS STRING LENGTH(256); BOM DEFIND END drawing TYPE; 数据抽象drawing本身由另外一些数据抽象,如geometry、BOM (bill of materials) 构成 定义drawing的抽象数据类型之后,可引用它来定义其它数据对象,而不必涉及drawing的内部细节 例如,定义:blue-print IS INSTA
文档评论(0)