第四章 总体设计_第1页
第四章 总体设计_第2页
第四章 总体设计_第3页
第四章 总体设计_第4页
第四章 总体设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 总体设计4.1 总体设计的任务411 目的 确定系统怎么做,也就是确定系统应该由哪些部份组成,它们是如何联结在一起的。412 主要内容 1.系统结构设计 确定系统的具体物理实现方案,也就是划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等。 2.软件结构设计 确定组成每一个程序的模块,以及模块间的关系。注对于给定的系统逻辑要求,往往存在着若干种不同的物理实现方案,都能满足这个逻辑。总体设计首先要找出实现目标系统的各种不同物理方案,从中选取合理的方案,并在综合分析比较的基础上选出一个最佳方案向用户推荐,如果用户接受了推荐的方案,分析员应该为这个最佳方案设计软件结构,进行必要的

2、数据库设计,确定测试要求并制定测试计划。4.2 总体设计的过程设想供选择的方案书写文档推荐最佳的方案选取合理的方案功能分解设计软件结构数据库设计制定组装测试计划计划成本 审查和复审进入“软件结构”设计:设计出组成这个系统的所有程序、文件和数据库,以及它们之间的联系。软件结构:由模块组成的层次系统。模块:数据说明、可执行语句等程序对象的集合。例:过程,函数,宏等注教材2.4例子图2.5定货系统的基本系统模型(DFD1)图2.6定货系统的功能级数据流图(DFD2)图2.7把处理事务的功能进一步分解后的数据流图(DFD3)图2.8这种划分自动化边界的方法暗示以批量方式更新库存清单图2.9这种划分自动

3、化边界的方法建议以联机方式更新库存清单注 (1)C/S(Client/Server)结构C/S(Client/Server)结构(又称客户/服务器模式),即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构软件分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的

4、局域网内使用。C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能,是一种客户请求服务、服务器提供服务的处理方式。C/S结构中服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。C/S技术从上世纪90年代初出现至今已经相当成熟,并得到了非常广泛的应用,其结构经历了二层C/S、三层C/S的更迭。(2)B/S(Browser/Server)结构B/S(Br

5、owser/Server)结构,即浏览器/服务器结构,是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。 B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零维护。系

6、统的扩展非常容易。B/S技术是伴随着Internet的普及而来的。需要说明的是,B/S最早并不叫“B/S”,此类应用国外通常叫Web应用,是国内一些公司“创造”了“B/S”这个词。 图:B/S结构示意图4.3 结构化设计(Structured Design)张海藩书中在本阶段所用的方法就是所谓的SD方法:1974年美国的康斯坦丁(L.Constantine)、斯蒂文斯(W.Stevens)、梅约斯(G.Myers)三人联名在IBM系统杂志(IBM System Journal,Vol.13,NO.2)上发表了一篇题为“结构化设计(Structured Design)”的论文,第一次提出了结构化

7、设计的思想,“结构化设计”概括地说就是:用一组标准的工具和准则来确定系统应该由哪些模块、用什么方式联结在一起,才能构成一个最好的软件结构。工具我们在前面已经介绍,下面我们就来学习这些准则,这就是书中所介绍的“5.2 设计原理(P94)”和“5.3 启发规则(P99)”,我们把它概括为:4.4 软件结构设计的基本概念4.4.1 模块化(1)模块 具有四种属性的一组程序语句称为一个模块,这四种属性分别是:输入和输出、逻辑功能、运行程序、内部数据。注(1)输入和输出:输入来源和输出去处都是同一个调用者,也就是一个模块从调用者那里获得输入,然后再把产生的输出返回给调用者;(2)逻辑功能:逻辑功能是指它

8、能够做什么事情,表达了它把输入转换成输出的功能;(3)运行程序:运行程序是指它如何用程序设计语言(PDL)实现这种逻辑功能的;(4)内部数据:内部数据是指属于该模块自己的数据。(5)输入和输出、逻辑功能是模块的外部属性;运行程序、内部数据是模块的内部属性。在“总体设计”阶段仅完成模块的外部属性设计,下一阶段“详细设计”才完成模块的内部属性设计。(2)模块化 模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。注模块及模块间关系的图形表示:(1)模块的图形表示:名称(动词+名词)表达这个模块的功能(2)模块间联结的图形表示:

9、AB模块A中含有调用模块B的逻辑:Call B(3)模块间通讯的图形表示: 模块间的通讯分两种类型:1)数据通讯:它表示一个经过处理的数据从一个模块传向另一个模块;2)控制通讯:它只传送一个标志·,此标志表达了处理工作的某种状态,而不是由发送模块真正进行过处理的数据。获得库存记录检索库存记录(4)模块间判断调用的图形表示:BCBD(5)模块间循环调用的图形表示:ABCD4.4.2 模块独立 开发具有独立功能而且和其它模块之间没有过多相互作用的模块。 那么,怎么来做到模块独立呢?换句话说:影响模块独立的因素主要有哪些?4.4.2.1 Coupling联结(耦合)是对一个软件结构内不同模

10、块之间互连程度的度量(或指两个模块之间的相互依赖关系)。(1) 数据联结 如果两个模块之间的通讯信息仅仅是一个个数据元素,那么这种联结称为数据联结。开发票计算金额注1)尽量减少两个模块间不必要的数据传输; 2)必须消除所有的“游离数据”。(2) 特征联结 如果两个模块都与同一个数据结构有关,那么这种联结称为特征联结。计算水费和电费计算水费计算电费注1)特征联结会使本应毫无关系的模块产生相互依赖性,应尽可能的把不需要的数据去掉,最好修改成数据联结; 2)严禁“捆绑”。(3) 控制联结 如果模块A向模块B所传递的信息控制了模块B的内部逻辑,那么模块A和模块B之间的联结称为控制联结。获得库存记录检索

11、库存记录注1)控制联结的形式:b)描述性标志:描述数据的状态或性质形容词+名词a)控制性标志:要求执行非正常的动作或与该模块功能不相关的事情动词 2)使用控制联结的原则:a)使用描述性标志b)消除控制性标志 (4) 公共联结 如果两个模块都和同一个公用数据域有关,那么这两个模块之间的联结称为公共联结。ACEBD公用数据码相机注1)“公用数据域”的概念来自FORTRAN中的公用语句COMMON。所有程序和函数都能够存取公用数据域,比如:Pascal中的全程变量,PowerBuilder中全局变量、共享变量、例子变量; 2)如果有n个公用数据元素存在于m个模块中,那么总的“公共联结”关系个数R:(

12、5) 内容联结 如果一个模块和另一个模块的内部属性有关,那么这种联结称为内容联结(也称病态联结)。注Coupling设计原则:1)应以数据联结为主,特征联结为辅,必要时才建立控制联结和公共联结,完全不用内容联结;2)在建立模块间的数据联结时,要消除“游离数据”;在建立模块间的特征联结时,要严禁“捆绑”;在建立模块间的控制联结时,要避免使用控制性标志,而使用描述性标志;3)尽量少用混合形式。4.4.2.2 Cohesion 组合(内聚)是指一个模块内各个元素彼此结合的紧密程度。(1) 功能组合 如果一个模块内部所有组成部分全部为执行同一功能而存在,并且只执行一个功能,那么这种组合称为功能组合。注

13、1)判断一个模块是不是功能组合,可从它的名称看它是否执行一个简单的功能:a)名称:动词+单数名词;b)为上级模块完成单一的任务; 2)例:读库存记录、打印发货单、确定事务类型、计算实发工资; 3)功能组合模块是一个纯“暗盒”模块。(2) 顺序组合 受同一个数据流支配,执行顺序重要 如果一个模块内部所有组成部分执行的几个功能有这样的特征,前一个功能所产生的输出数据是下一个功能的输入数据,那么这种组合称为顺序组合。ABC注1)顺序组合模块维护不太容易,它不完全是一个 “暗盒”; 2)顺序组合模块的内容包含了一个线性、有序的数据转换链。(3) 通讯组合受同一个数据流支配,执行顺序不重要如果一个模块内

14、部所有组成部分都使用相同的输入数据或产生相同的输出数据,那么这种组合称为顺序组合。获得配件价格和库存量注1)通讯组合模块往往和输入输出有关:读文件记录、排列、打印、写记录记录等等。 2)通讯组合模块的缺点:产生多余联结、产生重复功能等。(4) 过程组合受同一个控制流支配,执行顺序重要如果一个模块内部的若干个功能各不相同,彼此也没有什么关系,但它们都受同一个控制流支配来决定它们的执行次序,那么这种组合称为过程组合。(因若干个功能受同一个控制流支配而聚集在一个模块里。一般是若干个处理动作的公共过程单元,比如循环体、判断过程。)销售事务处理计算累积销售统计设初值(5)时间组合受同一个控制流支配,执行

15、顺序不重要如果一个模块内部的若干个处理动作必须在同一时间段内执行完成,那么这种组合称为时间组合。例宏定义、函数声明、数据结构声明、*.h文件。(6) 逻辑组合如果一个模块内部的若干个处理动作在逻辑上相似,但功能却彼此不同或无关,那么这种组合称为逻辑组合。(7) 偶然组合如果一个模块内部的若干个处理动作彼此没有任何关系,那么这种组合称为偶然组合。注力求高内聚,低耦合。4.4.3 模块的分解(Factoring) 仅有模块化和模块独立这两项原则还是不够的,但是我们已经知道高内聚低耦合是我们设计软件结构的指路明灯;当你设计出初步的软件结构后,应该审查分析这个结构,运用各种手段,力求降低耦合提高内聚。

16、(1) 模块分解的作用:1)模块太大; 2)使模块容易理解; 3)避免产生相同功能的模块; 4)提供通用性强的模块; 5)简化程序设计。 (2) 模块分解的原则:按功能分解直到无法作出明确的功能定义为止。(3) 经验分解数据:一个模块内包含的语句条数在 30条左右,不应超过60条。4.4.4 模块的扇出与扇入(1)模块的扇出(Fan-Out)模块的扇出系数 模块的扇出是指一个模块拥有的直接下级模块的个数。注统计规律:模块的扇出系数应控制在7以内,平均扇出系数是3或4。(2)模块的扇入(Fan-In)模块的扇入系数 模块的扇入是指一个模块的直接上级模块的个数。注尽可能的加大模块的扇入系数。4.4

17、.5 模块的控制域和作用域(1)模块的控制域(控制范围):是指这个模块本身以及所有直接或间接从属于它的模块的集合。(2)模块的作用域(判断作用范围):是指受该模块内一个判断影响的所有模块的集合。(也就是该模块内存在着判断调用语句,而所有受到该判断逻辑影响的模块,就是该模块的作用域。)注E.Yourdon 和L.Constantine设计原则: 1)作用域应该是控制域的子集;E控制域作用域ABFCGDE 2)存在作用域的模块所在的层次,不要与那些属于作用域的模块所在的层次相隔过远理想的是作用域都是直接下属模块。4.5 面向数据流的设计方法4.5.1 数据流类型数据在DFD中流径特征(1)变换流进入系统中的数据所流经的路径几乎是一样的。(2)事务流进入系统中的数据所流经的路径不完全是一样的。4.

温馨提示

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

评论

0/150

提交评论