资源预览内容
第1页 / 共69页
第2页 / 共69页
第3页 / 共69页
第4页 / 共69页
第5页 / 共69页
第6页 / 共69页
第7页 / 共69页
第8页 / 共69页
第9页 / 共69页
第10页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 总体设计 (System Design)1概述v 在完成了软件的需求分析之后,就进入开发阶 段。这一阶段又包括设计、实现(编码)和测试三个 步骤。软件设计是将需求分析所得出的软件“要做什 么”变换为“怎么做”,即要着手软件需求的实现,并 通过“软件设计说明书”反映设计的结果。v 从工程管理的角度来看,软件设计可分为总体 设计和详细设计两个步骤。总体设计是将软件需求转 化为数据结构和软件的系统结构。详细设计即为过程 设计,就是把解法具体化。2总体设计又称概要设计或初步设计。总体设计的 目标是回答“概括地说,系统应如何实现?”这一 问题。P64总体设计的任务有两个:1、概要给出系统的实现方法,划分出组成系统的物理元素。如:程序、文件、数据库、文档等 。2、确定系统的软件结构。即组成系统的各个模块及模块间的关系。31. 总体设计的过程 总体设计通常有两个主要阶段:系统设计阶段(体系 结构设计)和结构设计(模块设计)阶段,就数据库方 面而言还要设计数据结构。 设计步骤: 1.制定规范设计之初,为软件开发团队制定设计时需共同遵守的 规范,以便协调与规范团队合作。规范应包括以下几个方面: 管理规则:操作流程、交流方式、工作纪律等 文档编制标准:文档体系、文档格式、图标格式等 信息编码形式,硬件、操作系统的接口规约,命名规则等 设计目标、设计原则42、体系结构设计 3、软件结构设计-确定最佳方案: 从DFD出发进行任务分解,不同的划分方法即对应不同的 方案。每个合理的方案应配备下列4份资料: 系统流程图 组成系统的物理元素清单 成本/效益分析 进度计划 选择最佳方案并制定详细的实现计划54、软件结构设计 采用模块化思 想进行功能分解,抽象出系统体系结构 :将DFD细化,至每个子功能都明 白易懂,能体现出软件结构;每个模 块完成一个子功能。 主要工具有 层次图及HIPO图等。 5、数据库设计,界面设计,安全设计 ,故障处理设计,可维护设计 6、测试计划 7、书写文档6在完成了需求分析之后,紧接着进行的是系统的 总体设计。总体设计又称为概要设计或初步设计 ,主要目的是通过本阶段的工作,确定系统的实 现方案,完成软件结构设计,划分出构成系统的 功能模块、数据及设计出数据库结构、用户界面 和文档等。 体系结构是软件系统的基本框架,是系统根本性 的东西。就像不同类别的建筑物有不同的建筑风 格一样,类别不同的软件系统的体系结构也是不 同的。通常在软件系统的设计过程中,要求体系 结构应相对稳定,一旦确定就要尽量避免对其加 以改动。一个良好的体系结构对各种不同的个体 需求是普遍适用的,也是高效和稳定的。2.体系结构设计7一、集中式结构 最传统的系统架构,由一台计算机主机和多 个终端设备构成。 见P68页图5-2 主机用以存放所有的软件资源,并完成所有 计算任务。用户只能通过与主机相连的外部基 本无智能的终端设备实现与系统的通信。 优点:稳定性高,保密性高 缺点:不便于扩充8二、客户机/服务器结构 C/S结构是一种分布与集中相结合的结构,系统依靠网络被 分布在多台不同的计算机上,但通过其中的服务器提供集中 式服务。 见P69页图5-3 C/S结构是基于资源不对等,且为实现共享而提出来的。是 以“请求响应”的方式来完成客户机和服务器之间的通讯的, 也称为前台.后台结构,即由前台的客户机接收信息,并经相 应处理后向后台的服务器发出请求。后台的服务器对“请求”进 行处理,将处理的结果以“响应”的方式返回给前台的客户机。 注:客户端和服务器端可以位于不同的计算机上,也可安装 在同一台计算机中。 C/S结构的软件系统一般是基于局域网的,软件应至少包含 客户端和服务器端两部分,进行系统的维护和升级时,工作 量较大。 优点:结构灵活,方便扩充 9三、多层客户机/服务器结构 两层结构 三层结构 B/S结构(见P71页图5-7) B/S结构是基于WEB技术与客户机/服务器结构的 结合而提出来的一种多层结构,其中B是指WEB浏 览器,S是指应用服务器与数据服务器。目前该结 构被广泛的应用与网络商务系统中。B/S结构是基 于浏览器.服务器模式的,因此不局限于局域网, 且进行系统的维护和升级时一般只要完成服务器端 的相关工作即可,工作量相对较小。101.层次结构层次结构是在系统功能分解的基础上提出的 ,即将一个大的任务分解成若干小的任务分层次来 完成。常见的层次结构有树状层次结构和相邻关系 的层次结构。(1)树状层次结构在这种层次结构中,下层是为上层提供服务 ,上层负责调用下层的功能来完成有关任务,一个 高层可对应多个低层,同时多个高层也可对应同一 个低层。11如下图所示,将学生信息管理系统分成三个层次,最 高层次为总控模块,下面一层为子模块,最下一层为孙模 块,低层次模块总是为高层次模块服务的,高层次模块负 责调用低层次模块的功能,这种服务与被服务的关系是不 能颠倒的。学生信息 管理系统新生信 息管理在校生信 息管理学生信息 查询及维护学籍变更奖励情 况管理处罚情 况管理社会工 作管理12(2)相邻关系的层次结构相邻关系的层次结构要 求通讯严格地限制在相邻两层 之间,下层是为上层提供服务 的,上层负责调用下层的功能 来完成有关任务,此种结构的 典型代表是ISO.OSI网络参考 模型,如右图所示。网络协议 层次结构中,相邻两层相互通 讯,相邻的下层为上层提供服 务支持,但下层的功能实现对 于上层来说是不可见的。 应用层表示层数据链路层会话层传输层网络层物理层应用层表示层数据链路层会话层传输层网络层物理层ISO.OSI网络参考模型132.客户机服务器结构客户机服务器结构,即C/S结构。是基于资源 不对等,且为实现共享而提出来的。是以“请求响 应”的方式来完成客户机和服务器之间的通讯的,也 称为前台.后台结构,即由前台的客户机接收信息, 并经相应处理后向后台的服务器发出请求。后台的服 务器对“请求”进行处理,将处理的结果以“响应” 的方式返回给前台的客户机。客户机.服务器结构可以是简单的两层结构,也 可以是多层结构,如下图所示。14图:客户机服务器结构如果是两层结构,软件系统一般是基于局域网的 ,软件应至少包含客户端和服务器端两部分,进 行系统的维护和升级时,工作量较大。如果是多 层结构,软件系统一般是基于浏览器.服务器模式 (B/S)的,因此不局限于局域网,且进行系统的 维护和升级时一般只要完成服务器端的相关工作 即可,工作量相对较小。153.软件结构设计 一、模块化原理v软件设计中一般应遵循以下原则: 分解(模 块化)、抽象、局部化与信息隐蔽、一致性、 完整性和可验证性。v模块是数据说明、可执行语句等程序对象 的集合。模块化设计的基本原理是指把大型 软件按规定的原则划分为一个个较小的相对 独立又相关的模块,每个模块完成一个子功 能,把这些模块集成起来组成一个整体,以 完成指定的功能。v模块化设计的指导思想包括以下几点:161、分解(模块化):分解是将一个复杂的问题分解为几个较简 单的问题,这样可降低复杂度,减少解题的工 作量。设C(x)表示问题x的复杂度,E(x)表示解 决问题x所需的工作量,若P1、P2表示两个问 题,则:若C(P1)C(P2), 则E(P1)E(P2) 由经验得C(P1+P2)C(P1)+C(P2)由不等式 得到不等式 E(P1+P2)E(P1)+E(P2) 17一般地,分解会降低复杂度,减少工作量 。但划分模块的数量越多,模块间联系就越多。虽 然模块本身的工作量减少,但模块间接口的工作量 却要增大,因此总工作量可能增大。所以,应将模 块数控制在最小成本区,就可以使总工作量保持最 小。成本成本 / 模块最小成本区 接口成本软件总成本模块数目182、抽象(Abstraction):模块化的过程是自顶向下由抽象到具体的过程,软件结构顶层的模块控制系统的主要功能,软件结构 底层的模块完成对数据的一个具体处理。用自顶向下 的方法可以简化软件的设计和实现,使系统易于维护 。例:绘图软件包CAD有一个模块为“外设配置”,这是 个抽象化的名称,是对许多输入输出设备进行配置和 管理的。输入设备有键盘、鼠标等,输出设备有绘图 仪、打印机、显示器等。不同设备的驱动程序各不相 同,因而进入“外设配置”这个模块后还应进一步具体 指明配置是哪种设备,分别是哪种型号等,才能使系 统正确工作。193、信息隐蔽和局部化信息隐蔽基本原理:在设计和确定模块时,应 使一个模块内所包含的信息(如过程和数据等) 对于不需要这些信息的其他模块来说,是不可见 或不能访问的。局部化是把一些关系密切具有特 定联系的软件元素放在一起。在设计和确定模块时,尽量设法将可变因素隐敞在 一个或几个局部的模块中。具体做法是:先将可能发生变 化的因素列出,然后在划分模块时将这些因素隐蔽在几个 模块内,使其他模块与这些可变因素无关。这样可避免维 护修改时错误的传递。所列出的因素的任何一个变化仅影 响与其相关的模块,不会影响其他模块,提高了软件的可 维护性。 204.一致性、完整性和可验证性 一致性:在软件开发过程中制定统一的,标准的原则。如文 件格式、工作流程、接口风格等。 完整性:软件系统完全实现系统的功能、性能。 可验证性:在软件开发和维护过程中对每个阶段的进展情况 进行测评,在软件系统运行过程中对每个功能进行验证等。一致性、完整性和可验证性原则应体现在软件设计的整 个过程中。进行软件设计之初,首先应该制订设计时大家应 该共同遵守的标准,即设计规范。如各种文档的编写规范、 设计过程规范和其他相关规范等。同时要建立相关管理机制 ,以实现对规范实施的监督和检查。通过对规范的严格执行 来保证软件设计的一致性、完整性和可验证性得以实现。21二、软件结构设计(模块结构设计)系统体系结构设计完成之后,各模块的功能和在 系统中的位置宏观上已基本确定。模块设计的主要任务 就是设计具有独立功能而且和其他模块间没有过多的相 互作用的模块,即要完成“模块独立”设计。模块独立 是模块化、抽象、信息隐蔽和局部化概念的直接结果。 具有独立模块的软件较容易开发,独立的模块较容易测 试和维护。好设计的关键:每个模块完成一个相对独立的子 功能,并且与其它模块间的接口简单。独立性的度量标准:耦合 2. 同层按照数据传递关系确定,一般从左到右执行; 3. 执行过程:按照数据流向.435. 总体设计的主要方法面向数据流的设 计方法(又称为SD:Structural Design)在总体设计中,主要采用面向数据流的设 计方 法。结构化设计(SD)是一种典型的面向数据流 的软件 总体设计方法。结构化设计方法主要是根据系统分析过程中 得到的数据流图的不同结构特征,映射出软件的初始 结构图,再根据模块设计的基本原则和启发规则进行 软件结构的优化。数据流图中信息流的类型决定了映射的方法. 信息流有变换流和事务流两类.因此数据流图也分为 变换型数据流图和事务型数据流图. 基本思想: DFD 模块结构图441、软件系统的结构特征在需求阶段得到的数据流图所表示的系统结构 特 征,可归纳为两种典型的形式,即变换型和事务型 。 变换型结构:信息沿输入通路进入系统,同时由外部形 式变换为内部形式,进入系统的信息通过变换中心,经过加工 处理后再沿输出通路变换成外部形式离开软件系统,具有这些 特征的数据流称为变换流.内部表示信息变换流传出流传入流外部表示Time事实上所 有信息流 都可归结 为变换流45变换型结构由三个部件组成:有传入路径、变 换 中心和传出路径。流经这三个部分的数据流分别为 传 入流、变换流和传出流。变换 中心传入路径传出路径46 事务型结构当数据沿输入通路(接受路径)到达某一“处理”(事务 中心)时,该“处理”根据输入数据的类型在若干个动作 路径中选一个来执行,这类数据流称为事务流。事务流是指引起、触发或
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号