软件工程开发技术 西安电子科技大学出版社 ch4软件设计.ppt

软件工程开发技术 西安电子科技大学出版社 ch4软件设计.ppt

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

第四章 结构化软件设计 4.1 软件设计的基本概念与原理 模块 相对独立 组成:数据说明、执行语句 表现:函数、子程序、过程 类对象 特征 输入/输出 接口 功能 内部数据 程序代码 逻辑 状态 运行环境 总体设计的概念和原理──模块化 模块化的目的 模块化:把程序划分成为若干个模块,独立完成若干个功能,在把他们组成一个集体,可以完成指定的功能,满足问题的要求。 “各个击破”原则 使软件结构清晰;使软件容易测试和调试,从而提高软件的可靠性;提高软件的可修改性 但不能无限分割 总体设计的概念和原理──模块化 总体设计的概念和原理──模块化 模块化的程度与软件成本的关系 抽象与逐步求精 抽象与逐步求精:忽略细节,分层理解问题,自顶向下层层加细。 抽象层次Ⅰ:可使用自然语言,配合使用面向问题的专业术语,概括地描述问题的解法 抽象层次Ⅱ:任务需求的描述。列出“What”而不是“How” 抽象层次Ⅲ:程序过程表示。 在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露 软件工程的先辈们已将抽象化思想用于软件设计的不同方面 例:开发一个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; …… 抽象与逐步求精(续) 启示:模块化和抽象层次思想相结合,可以使从不同的角度来看系统 最高层次的模块:反映了整体的解决方案,隐藏了那些可能扰乱视线的细节,能够看到一个系统所要完成的主要功能。 更低的抽象层次:反映了某部分更多的细节 信息隐蔽(Information hiding) 信息隐蔽:应用模块化原理时,一个重要原则就是将信息尽量隐藏在相应的处理模块中。该项技术最早是由Parnas提出的 核心内容:一个模块中所包含的信息,不允许其他不需要这些信息的模块使用。 有效的模块化可以通过定义一组相互独立的模块来实现,这些独立的模块彼此间仅仅交换那些为了完成相应功能必须的信息 抽象帮助定义构成软件的结构,而信息隐蔽则可定义和实施对模块的过程细节和局部数据结构的存取限制 信息隐藏的图示说明 信息隐蔽 String password; void setPassword(String pswd) {password=pswd;} boolean verifyPassword(String userinputpswd) {...} ??模块的独立性 模块之间的耦合性 不同模块间的联系紧密程度的度量 越小越好 模块的内聚性 模块内部各元素间相互结合的紧密程度的度量 越大越好 影响耦合的因素 联系的作用 模块相互之间的影响程度,取决于传送的信息流的类型,通常包括三种:数据型、控制型和混合型 传送的信息流是数据型时耦合度最低 如果一个模块直接转移到另一模块的某点上,就影响了两个模块的控制。通常通过传递参数来传递控制,如传递一个开关量来告诉另一模块做何工作,即控制型的信息流。──耦合度很高 当一个模块修改另一个模块的代码时,对修改者,修改的代码是当作数据来处理的,而

文档评论(0)

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

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

1亿VIP精品文档

相关文档