第总体设计学习.pptx
《第总体设计学习.pptx》由会员分享,可在线阅读,更多相关《第总体设计学习.pptx(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 重点和难点重点:软件设计过程中应遵循的基本原理;面向数据流的设计方法难点:变换分析、事务分析法的过程和应用第1页/共87页2 前言前言 软件设计概述软件设计概述需求评审通过以后,软件过程进入到设计阶段,设计结果又将是实现的直接依据;软件系统设计是把软件需求“变换”为用于构造软件的蓝图;“输入”是需求分析各种模型元素“输出”是软件设计模型和表示软件设计是后续开发步骤及软件维护工作的基础,如果没有设计,只能建立一个不稳定的系统结构。第2页/共87页3 软件设计的目标和任务软件需求:解决“做什么”软件设计:解决“怎么做”软件设计的任务:以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结
2、果反映在“设计规格说明书”文档中。软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。第3页/共87页4 将需求分析摸型转换为软件设计软件结构设计以需求分析中得到的数据流图为基础而进行。第4页/共87页5 软件设计的两个阶段软件设计分为两个阶段:概要设计、详细设计。概要设计也称总体设计,确定软件的结构以及各组成成分(子系统或模块)之间的相互关系(接口)。概要设计的主要任务是:方案设计:考虑系统的总体布局(集中、分布),c/s或b/s模式;将系统划分成模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面,即模块间传递的数据。概要设计阶段的主要任务是通过数
3、据流图来确定系统的结构图,并且对这些结构图进行分析和细化。在概要设计阶段,结构化设计主要采用面向数据流的设计方法。第5页/共87页6 软件设计的两个阶段第二阶段:详细设计(过程设计)确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评审。第6页/共87页7 5.1 总体设计的过程第7页/共87页8 5.2 设计原理模块化抽象逐步求精信息隐蔽和局部化模块独立第8页/共87页9 5.2.1 模块化(Modularity)模块,在程序中是数据说明、可执行语句等程序内容的集合。该集合一般是因完成一个功能放在一起。在形式上,它可以是高级语言中
4、的一个过程、函数和子程序等。在软件的构架中,模块是可以组合、分解和更换的单元。模块具有以下几种基本特点:(1)接口:指模块输入与输出。(2)功能:是模块存在的必要条件,模块必然是为实现某个功能而延生的。(3)逻辑:指模块内部的算法逻辑。功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。第9页/共87页10 模块化的优点 采取自顶向下的方式,逐层把软件系统划分成若干可单独命名和可编址的部分“模块”,每个模块完成一个特定的子功能,“分而治之”;所有模块按某种方法组成一个整体,完成整个系统所要求的功能。软件系统就是通过这些模块的组合来实现。模块化是软件解决复杂问题所具备的手段。l模块化使软件
5、容易测试和调试,因而有助提高软件的可靠性。l模块化能提高软件的可修改性。l模块化有助于软件开发工程的组织管理。第10页/共87页11 模块化与软件成本的关系第11页/共87页12 抽象(Abstraction)什么是抽象?认识复杂事物和现象时,抽出事物本质的共同特性而暂不考虑它们的细节。软件开发中的抽象过程的抽象数据的抽象宜宾学院计算机学宜宾学院计算机学院院08级学生级学生宜宾学院计算机宜宾学院计算机学院学生学院学生宜宾学院宜宾学院软件开发实际上就是一个从软件开发实际上就是一个从高层次抽象高层次抽象到到低层次抽低层次抽象象逐步过渡的过程。逐步过渡的过程。第12页/共87页13 5.2.3 逐步
6、求精逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。可把逐步求精看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。逐步求精是一种自顶向下的设计策略,按这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。第13页/共87页14 自顶向下,逐步求精的基本思想l将功能、信息的说明分为多个层次,最高层也最抽象 仅仅只是概念性地描述功能或信息,不提供功能的内部工作情况或信息的内部结构;l设计者从最高层开始,仔细推敲,进行功能和信息的细化,给出下层实现的细节;l随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的程序。第14页/共87页1
7、5 结合了模块化和逐步细化思想建立的软件结构图第15页/共87页16 5.2.4信息隐蔽和局部化信息隐蔽:在设计和确定模块时,使得一个模块内包含的信息(过程或数据),不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。具体讲有两个方面:()软件内部的过程,在外部是不应该直接被调用的()模块内部的数据,必须严格设计其可见性公共受保护私有局部化:将一些关系密切的软件元素物理地放得彼此靠近。第16页/共87页17 5.2.5 模块独立1、什么是模块独立性(module independence)模块只完成系统要求的相对独立的功能l符合信息隐蔽原则l模块间关联和依赖
8、程度尽量小 2、模块独立的优点容易开发、测试和维护第17页/共87页18 3、衡量模块独立性的两个准则 耦合性(coupling):也称为块间联系,一个模块被连接到系统其它模块的程度。内聚性(cohesion):也称为块内联系或模块强度,模块独立性愈高,则块内联系越强,块间联系越弱。第18页/共87页19 耦合性(coupling)也称块间的联系。是对软件系统结构中,各模块间相互联系紧密程度的一种度量。设计目标:低耦合第19页/共87页20 模块间耦合强度耦合强弱,表现出相应的模块间接口的复杂程度。耦合强弱,表现出相应的模块间接口的复杂程度。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦
9、合,不用内容耦合。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦合,不用内容耦合。第20页/共87页21 无直接藕合两个模块没有直接关系,模块独立性最强。第21页/共87页22 数据耦合属松散耦合。一模块访问另一模块时,通过数据参数交换输入、输出信息。第22页/共87页23 控制藕合模块之间传递的是控制信息(如开关、标志、名字等),控制被调用模块的内部逻辑。第23页/共87页24 控制耦合举例第24页/共87页25 特征耦合两个模块通过传递数据结构(日期)加以联系,或都与一个数据结构有关系,则称这两个模块间存在特征耦合。可能出现的情况:当把整个数据结构作为参数传递时,被调用的模块虽然只需
10、要使用其中的一部分数据元素,但实际可以使用的数据多于它真正需要的数据,这将导致对数据访问失去控制,第25页/共87页26 特征耦合举例说明:l“住户情况”是一个数据结构,图中模块都与此数据结构有关。l“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。第26页/共87页27 将特征耦合修改为数据耦合举例第27页/共87页28 公共环境耦合一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。公共数据区指:l全局数据结构。l共享通讯区。l内存公共覆盖区等第28页/共87页29 公共环境耦合举例模块 A、B、C 间存在错综复杂的联系第29页/共87页3
11、0 内容耦合有下列情况之一的。是最不好的耦合形式!第30页/共87页31 内聚性(cohesion)又称块内联系。指一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越设计目标:高内聚第31页/共87页32 模块间内聚的类型第32页/共87页33 巧合内聚(偶然内聚)块内各组成成份在功能上是互不相关的。模块模块 M 中的三个语句没有任何联系。中的三个语句没有任何联系。缺点:可理解性差,可修改性差缺点:可理解性差,可修改性差第33页/共87页34 逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 总体 设计 学习
限制150内