概要设计与详细设计.ppt_第1页
概要设计与详细设计.ppt_第2页
概要设计与详细设计.ppt_第3页
概要设计与详细设计.ppt_第4页
概要设计与详细设计.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 概述,软件详细设计是软件工程的重要阶段, 软件详细设计细化了高层的体系结构设计,将软件结构中的主要部件划分为能独立编码、编译和测试的软件单元,并进行软件单元的设计,并最终将影响软件实现的成败。优秀的详细设计在提高编码质量、保证开发周期、节约开发成本等各方面都起着非常重要的作用,是一个软件项目成功的关键保证。,2 详细设计的基本任务,详细设计是概要设计的进一步的具体化,主要确定每个模块的具体执行过程,故也称为过程设计。其基本任务有: 为每个模块进行详细的算法设计。 为模块内的数据结构进行设计。 对数据库进行物理设计 。 界面设计。 其它设计。 编写文档。 评审。,3 详细设计流程,在详细设计前需要确认用例文档是否是最终的文档。 保证概念的准确性的前提下,以界面为中心。,4 软件设计的概念和原则,4.1 模块化 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。,模块化是软件设计的一个基本准则 高层模块 从整体上把握 问题,隐蔽细节 复杂问题 较小问题 分解 可减小解题所需的总的工作,分解,在软件设计阶段通常首先要确定模块的外部特性,这就是软件总体设计需要解决的问题。然后再确定模块的内部特性,这就是软件详细设计需要解决的问题。 模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,实现问题的求解。 目前,模块化方法已被广泛接受和应用,特别是在面向对象的软件开发模式中很自然地支持了把系统划分成模块化的思想。,4 软件设计的概念和原则,4.2 模块的独立性 模块独立性是软件系统中每个模块只涉及软件要求的具体子功能而和软件系统中其他的模块接口是简单的。 模块的独立程度可以由模块间的耦合和模块的内聚两个定性标准度量。耦合是衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚是衡量一个模块内部各个元素彼此结合的紧密程度。,软件工程,一个模块内部各个元素之间的联系越紧密,它的内聚性就越高,对应地它与其他模块之间的耦合性就会减低,模块独立性就越强。相反,模块内聚性越低,模块间耦合性就越强,模块的独立性也就越弱。 在软件设计中我们要追求高内聚低耦合的模块,尽量提高模块的独立性 。,软件工程,(1)耦合,耦合是程序结构中各个模块之间相互关联的度量。耦合强弱取决于模块间接口的复杂程度、调用模块的方式以及通过接口的信息。Myers从耦合的机制上将耦合分为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合七种类型。,七种耦合类型关系图,非直接耦合(Nondirect Coupling) 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。 非直接耦合的 模块独立性最 强。,数据耦合 (Data Coupling) 一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。 标记耦合 (Stamp Coupling) 一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。,控制耦合 (Control Coupling) 如果一个模 块通过传送开 关、标志、名 字等控制信息, 明显地控制选 择另一模块的 功能,就是控 制耦合。,外部耦合(External Coupling) 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。,公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。,公共耦合 (Common coupling):,问题: 公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制; 复杂程度随耦合模块的个数增加而增加。,内容耦合 (Content Coupling) 如果发生下列情形,两个模块之间就发生了内容耦合: (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中); (4) 一个模块有多个入口。,例1:A访问C的内部数据或不通过正常入口而转入C的内部。,例2:部分代码重叠(常出现在汇编程序中),例3:一个模块有多个入口(功能),c,内容耦合图,模块设计基础,实际上,模块之间是混合式的耦合,原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。,在面向对象的方法学中,对象是最基本的模块,因此耦合主要指不同对象之间相互关联的紧密程度。一般说来,对象之间的耦合可分为交互耦合和继承耦合两大类。,内聚,内聚是程序结构中模块内各个元素彼此结合紧密程度的度量。根据模块内部构成情况,可以用高、中、低把内聚分成三类。其中高内聚有功能内聚和顺序内聚;中内聚有通信内聚、过程内聚;低内聚有时间内聚、逻辑内聚和偶然内聚。在设计时力争做到高内聚,并辨别出低内聚的模块,然后对其修改,提高模块的内聚程度,从而得到高内聚独立性强的模块。,功能内聚(Functional Cohesion) 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。,信息内聚(Informational Cohesion) 这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。,模块设计基础,信息内聚示例图,信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。,通信内聚 (Communication Cohesion) 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。,过程内聚(Procedural Cohesion) 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。,时间内聚(Classical Cohesion) 时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。,逻辑内聚(Logical Cohesion) 这种模块把几种 相关的功能组合 在一起,每次被 调用时,由传送 给模块的判定参 数来确定该模块 应执行哪一种功 能。,巧合内聚(Coincidental Cohesion) 巧合内聚 (偶然内聚)。当模块内各部分之间没有联系,或者即使有联系,这种联 系也很松散, 则称这种模 块为巧合内 聚模块,它 是内聚程度 最低的模块。,启发式规划,争取低耦合、高内聚(增加内聚 减少耦合) 模块规模适中:过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。 适当控制 深度 = 分层的层数。过大表示分工过细。 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。,在面向对象的方法学中内聚是指同一对象内各个元素彼此结合紧密程度。而类是对具有相同属性和行为的一个或多个对象的描述。所以在面向对象的设计中主要是解决类的内聚性问题。通常在面向对象设计中存在服务内聚、类内聚和泛化内聚3种。,软件工程,5 用户界面设计,用户界面又称人机界面或人机接口 。用户界面设计是软件设计的重要组成部分。 1 用户界面设计的一般原则 用户熟悉原则 一致性原则 可恢复性原则 用户指南原则 用户差异性原则,用户界面设计过程图,2 用户界面设计过程 用户界面设计是以用户为中心,反复迭代的过程。,3 用户界面设计经验,人机界面主要有5种交互方式,即菜单选择、表单填写、命令语言、直接操纵和自然语言。 1. 菜单选择 l 一致性:选择用户熟悉的术语、以一致的方式使用这些术语。 l 简明性: l 把关键词置于菜单条名称的首位: l 建立逻辑上相似的条目组:同一菜单下面每个菜单条目应和其他条目有相似之处。,2. 表单填写,l 使用有意义的标题 l 给出简短的可以理解的说明 l 在表单上使用逻辑序列对字段进行逻辑排序和分组 l 以视觉上有感染力的方式设计表单 l 使用熟悉的字段标签 l 使用一致的术语和缩写 l 在数据输入字段周围定立分界 l 允许光标方便地移动 l 允许简单的错误更正 l 尽可能防止错误 l 当输入无效值后能提供出错信息 l 清楚标出任何一个可选字段。 l 给出单个字段的解释 l 清楚地用信号告知数据输入完成,3.命令语言,l 限制命令数量 l 选择有意义的独特的命令名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论