软件工程2008-2.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件设计 软件设计的主要任务是解决怎么做,如何实施软件需求,将需求规格转换为体系结构,划分出程序的模块组成,模块间的相互关系。确定系统的数据结构,即组成系统的元素、程序、文件、数据库、文档等。 软件设计是将软件需求表示转换为软件表示的一个过程。分为: 总体设计 详细设计 总体设计 总体设计的基本目的就是回答“概括地说,系统应如何实现“?”这个问题,因此总体设计又称概要设计。 通过这个阶段的 工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在后面详细设计。 总体设计阶段的另一项任务是设计软件的结构,也就是要确定系统中每个程序是有那些模块组成的,以及这些模块相互之间的关系。 总体设计的过程 设想供选择的方案 选取合理方案 模块划分和功能分解 设计软件结构 数据库设计 制定测试计划 编写文档 审查和复审总体设计文档 设想供选择的方案 在需求分析阶段得出的数据流图是总体设计的极好出发点。 模块划分与功能分解 模块划分的目的: 进行功能分解,把复杂的功能划分成简单的、小的子功能,尽量降低每个模块的成本; 尽量减少模块间的接口数目,接口数目太多将导致接口成本增加。 把复杂的功能进一步分解成简单的功能,是设计高质量软件必须遵循的模块化原理。 详细设计 任务:根据总体设计提供的文档,确定每一模块的算法,内部的数据组织,选定工具清晰正确地表达算法。编写详细设计说明书,详细测试用例与计划。 详细设计要产生软件的过程说明,即对软件结构中的每一个模块提供处理细节,包括事件的顺序、判定点的精确位置、重复操作、数据组织与结构。 详细设计说明相当于其他工程领域中的蓝图。他为程序员提供足够的信息,以便在编码阶段编制源代码。 详细设计的工具 图形工具:图形工具以图示的方式表示软件的过程细节。常用的图形工具有流程图、盒图、PAD图。 表格工具:判定表和判定树 语言工具:其中被称为结构化英语或伪代码的过程设计语言PDL得到广泛应用; 说明:各种工具的目的只有一个,就是能够提供对设计的无歧义的描述,也就是应该能指明流程控制、处理功能、数据组织以及其他方面的实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。 自顶向下逐步求精 这个方法是由沃思(N.Wirth)提出的。其原理是先定义一个软件控制程序(或称为主程序、驱动程序),它调用许多子程序,每个子程序完成一项任务。每个子程序又可以自顶向下而分解。这个逐步求精的过程可一直进行到每条指令能用某种程序设计语言的语句来表示。 结构化程序设计 这个方法是由狄克斯切(E.Dijkstra)提出的。其结论是:具有一个入口和一个出口的任何程序都能用三种控制结构来构造。 顺序结构 选择结构 循环结构 这三种结构都只有一个入口和一个出口,用它们构成的软件可读性和可维护性大大提高。 标准: 1、耦合性:是模块间的相对独立性的度量。 2、内聚性:是模块功能强度的度量。 耦合性: (1)无直接耦合 ????指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。 ???(2)数据耦合 ????指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 ? ??(3)标记耦合 ????指两个模块传递的是数据结构,如:高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。 ?? 耦合性: ? (4)控制耦合 ????指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某些功能。 ???(5)公共耦合 ????指通过一个公共数据环境相互作用的那些模块间的耦合。公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及任何存储介质上的文件、物理设备等。 ???(6)内容耦合 ????这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合,这种情况往往出现在汇编程序设计中。 内聚性 (1)偶然内聚 ??指一个模块内的各处理元素之间没有任何联系。 ? (2)逻辑内聚 ????指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 ??? (3)时间内聚 ?把需要同时执行的动作组合在一起形成的模块为时间内聚模块。 ? 内聚性 ??(4)通信内聚 ????指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输人数据或者产生相同的输出数据。 ?(5)顺序内聚 ????指一个模块

文档评论(0)

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

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

1亿VIP精品文档

相关文档