软件工程——原理、方法与应用(第二版)肖孟强电子教案 03.pptVIP

软件工程——原理、方法与应用(第二版)肖孟强电子教案 03.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 软件设计 学习目标 : 了解软件设计的任务 掌握模块划分的评价准则——模块独立性的判别 掌握结构化设计方法 掌握一些常用的详细设计工具 了解界面设计的设计问题、设计过程和设计指南 第3章 软件设计 教学内容 3.1 软件设计的任务 3.2 软件结构设计 3.3 描绘软件结构的图形工具 3.4 面向数据流的设计方法 3.5 详细设计 3.6 人机界面设计 3.7 面向数据结构的设计方法 本章小结 3.1 软件设计的任务 软件设计是一个把软件需求转换成软件表示的过程,软件设计分为两个阶段: 概要设计:将软件需求转换为软件结构和数据结构,并编写概要设计说明书; 详细设计:通过对软件结构的细化,得到软件的详细的算法和数据结构,产生描述软件的详细设计文档。 3.1 软件设计的任务 概要设计又称为初步设计或总体设计,概要设计的基本任务有: ①制定规范 ②软件系统结构的总体设计 ③处理方式设计 ④数据结构设计 ⑤可靠性设计 ⑥编写概要设计阶段的文档 ⑦概要设计评审 3.2 软件结构设计 3.2.1 软件设计过程 1.设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计划 8.书写文档 9.审查和复审 3.2 软件结构设计 3.2.2 软件结构设计基本原理 1.抽象 (1)过程抽象 (2)数据抽象顶层模块是控制模块,用来协调程序 (3)控制抽象 2.逐步求精 3.信息隐蔽 4.局部化 3.2 软件结构设计 3.2.3 模块化 模块具有3个基本属性: (1)功能:模块实现的功能(含该模块调用的子模块的功能)。 (2)逻辑:描述模块内部怎么做。 (3)状态:模块使用时的环境和条件。 模块具有内部和外部两个特性: (1)外部特性:模块的名字、参数表等。 (2)内部特性:完成模块功能的程序代码和模块内部数据。 采用模块化的原理可以使软件结构清晰,原因主要有以下3方面: (1)程序错误通常局限在有关模块及其接口中。 (2)修改错误只会涉及少数模块。 (3)可以协同完成大型程序,各个部分的并行开发,提高生产效率。 3.2 软件结构设计 3.2.4模块独立性 是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。 一般采用两个准则度量模块独立性,即模块与模块间的耦合性和模块内部的内聚性。 1.藕合性 藕合是程序结构内不同模块之间相互关联程度的度量。它是由模块间接口的复杂程度、调用模块的方式及通过接口传递的信息类型决定的。 藕合划分为7类,按照从弱到强依次为:非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合及内容耦合,其模块独立性依次变弱。如下图所示。 3.2 软件结构设计 图3.1 耦合性与模块独立性关系 3.2 软件结构设计 2.内聚性 内聚性标志一个模块内部各元素彼此结合的紧密程度。内聚也划分为7类,按照从弱到强依次为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚及功能内聚,如图所示。 3.2 软件结构设计 人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得出了一些启发式规则,如: 改进软件结构,提高模块独立性; 模块规模应该适中; 深度、宽度、扇出和扇入都应适当; 模块的作用域应该在控制域之内; 力争降低模块接口的复杂程度; 设计的模块应是单入口单出口; 模块功能应该可以预测。 3.3 描绘软件结构的图形工具 3.3.1 层次图和HIPO图 层次图用来描绘软件的层次结构,很适于在自顶向下设计软件的过程中使用。在图3.9中已经非正式地使用了层次图。 3.3 描绘软件结构的图形工具 在层次图(H图)里除了最顶层的方框之外,每个方框都加编号。编号规则和第2.4节中介绍的数据流图的编号规则相同,例如,图3.10加了编号后得到图3.10。像这样带编号的层次图称为HIPO图(层次图加输入/处理/输出图的英文缩写)。 3.3 描绘软件结构的图形工具 3.3.2 结构图 1.结构图的符号 (1)方框代表模块,框内注明模块的名字或主要功能。 (2)方框之间的大箭头或直线表示模块的调用关系。 (3)带注释的小箭头表示模块调用时传递的信息及其方向。尾部加空心圆的小箭头表示传递数据信息,加实心圆的小箭头表示传递控制信息。 (4)选择结构:如

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档