3.1-软件设计--模块化

上传人:小** 文档编号:56431686 上传时间:2018-10-12 格式:PPT 页数:200 大小:4.72MB
返回 下载 相关 举报
3.1-软件设计--模块化_第1页
第1页 / 共200页
3.1-软件设计--模块化_第2页
第2页 / 共200页
3.1-软件设计--模块化_第3页
第3页 / 共200页
3.1-软件设计--模块化_第4页
第4页 / 共200页
3.1-软件设计--模块化_第5页
第5页 / 共200页
点击查看更多>>
资源描述

《3.1-软件设计--模块化》由会员分享,可在线阅读,更多相关《3.1-软件设计--模块化(200页珍藏版)》请在金锄头文库上搜索。

1、软 件 设 计 Software Design,第 三 章 Chapter 3,第三章 软件设计,3.1 软件设计概述,3.2 软件体系结构设计,3.3 模块分解,3.5 详细设计描述工具,3.6 用户界面设计,3.4 面向数据流的设计方法*,3.1 软件设计概述,3.1.1 软件设计在开发阶段中的重要性,3.1.2 软件设计阶段的任务,3.1 软件设计概述,软件需求分析阶段解决了所开发的软件“做什么”的问题;软件设计阶段要解决软件“怎么做”的问题。,3.1.1 软件设计在开发阶段中的重要性,软件 设计,编码,软件 测试,开发阶段信息流图示,软件需求确定以后,进入由软件设计、编码、测试三个关联

2、阶段构成的开发阶段。在设计步骤中,根据软件的功能和性能需求,采用某种设计方法进行系统结构设计、数据结构设计、过程设计和界面设计。,系统结构设计用于定义软件系统的整体结构,是软件开发的核心步骤。在设计步骤中,建立软件主要成份之间的关系。 数据设计侧重于数据结构、数据库、文件的定义。 过程设计则是把结构成份(模块)转换成软件的过程性描述。 界面设计是对系统边界的描述,是用户和系统进行交互的工具。 在编码步骤中,根据这种过程性描述,生成源程序代码,然后通过测试,最终得到完整有效的软件。 软件设计决定了软件质量。,3.1.2 软件设计阶段的任务,一、软件设计的任务将分析阶段获得的需求规格说明转换为计算

3、机中可实现的系统,完成软件的数据设计、系统结构设计、过程设计和界面设计,最后得到软件设计说明书。,总体 设计,复审,修 改,详细 设计,模块描述 (过程描述),复审,修 改,软件设计工作流程图示,一般地,从工程管理的角度,软件设计分两步完成:总体设计(概要设计)和详细设计。其工作流程如图所示。,设计阶段结束时要交付的文档是设计规格说明书。根据设计方法的不同,有不同的设计文档。每个设计步骤完成后,都应进行复审。,首先做概要设计,将软件需求转化为软件的系统结构、数据结构、用户界面;然后是详细设计,即过程设计,通过对过程模块的详细描述,得到软件详细的数据结构和算法。,1、确定软件结构,划分子系统模块

4、好的软件结构可以使软件的开发过程流畅自如,同时也能为软件的部署带来好处。合理的模块划分可以降低软件开发的浮渣度,同时也能提高软件的可重用性。,软件设计阶段的任务可分为四部分:,软件设计的目标,2、确定系统的数据结构数据结构的建立对于信息系统而言尤为重要。要确定数据元素的类型,组织、存取方式以及处理方式等。,软件设计阶段的任务可分为四部分:,软件设计的目标,三类设计任务,3、过程设计通过对过程模块的详细描述,得到软件详细的数据结构和算法。,软件设计阶段的任务可分为四部分:,三类设计任务,4、用户界面设计作为人机接口的用户界面起着越来越重要的作用,它直接影响到软件的寿命。,软件设计阶段的任务可分为

5、四部分:,二、软件设计的目标 在设计阶段应达到的目标是:提高可靠性;提高可维护性;提高可理解性;提高效率。,衡量该目标的准则: 1、软件实体有明显的层次结构,有利于软件的维护。 2、软件实体应该是模块化的,且每个模块具有独立功能。 3、软件实体与外部环境的界面清晰。 4、设计规格说明清晰、简洁、完整和无二义性。,常用的设计方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等;还有面向对象的设计方法(OOD)。,3.2 软件体系结构设计,3.2.1 软件体系结构的基本概念,3.2.2 几种典型的软件体系结构,3.2.3 体系结构设计原则,3.2.1 软件体系结构的基本

6、概念,起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件规模的扩大,对总体的系统结构设计和规格说明比数据结构和算法的选择明显重要得多。 当着一个软件被划分为若干个模块,并且模块之间相互作用,形成一个整体时,它就具有了体系结构。 软件的体系结构定义:为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式,以及这些模式的约束组成。,软件体系结构的意义主要体现在如下3个方面: 重用:人们希望系统能够重用以前的代码和设计,从而提高开发效率。 扩展:人们希望在系统能够保持结构稳定的前提下很容易地扩充功能和提高性能。 简洁:好的架构一定易

7、于理解、易于学习、易于维护。,所谓软件架构师实际上就是软件的总体设计者。 一般地,应用程序的功能模块划分:用户界面(user interface)、业务逻辑(business logic)和数据存储(data storage)。 其中,,用户界面是应用程序呈现给最终用户的使用界面,与用户直接打交道的部分,用于表现和描绘数据。 业务逻辑是应用程序的核心部分,处理业务流程和数据,是真正实现应用程序的功能模块。 数据存储是业务逻辑部分所需处理或已处理结果的存储,是保存运算结果部分。,用户界面,数据存储,业务逻辑,基于宿主机的计算模型 客户/服务器(C/S)模型 三层C/S结构模型 浏览器/服务器(B

8、/S)模型 异构结构模型(C/S与B/S混合软件体系结构),集中型:,分布型:,优秀的开发者常常会使用一些体系结构模式(architecture pattern)作为软件系统结构设计策略。这里重点介绍集中型和分布式结构。,3.2.2 几种典型的软件体系结构,基于宿主机的计算模型(集中式),用户界面、业务逻辑和数据存储功能都集中在大、中/小型机上实现(用户通过哑终端来共享大、中/小型机的资源)。,数据表示,业务逻辑,数据存储,单层应用模型,仓库模型(The repository model)也称“容器模型 ”,是一种集中式的模型。各子系统可以直接访问中央数据仓库存储的共享数据。子系统之间紧密耦合

9、。,仓库模型(The repository model),各子系统共享中央数据库中的数据共享容器模型 各子系统可以有自己的数据库,子系统之间通过消息传递实现数据交换。,适宜命令控制系统、CAD系统,仓库模型的主要优缺点: 优点:1.共享大数据量的有效方法。2.子系统不必关心其它的子系统如何使用它所产生的数据。3.易于将新子系统集成,若新子系统也采用相同规范 。,缺陷:1.为了共享数据 ,各子系统必须有一致的数据视图 ,不可避免地会影响了整个系统的性能。2.子系统的改变,使产生的数据结构也可能发生改变。3.统一的数据库 结构(备份、安全、访问控制和恢复的策 ),将影响子系统的效率 。,客户/服务

10、器(C/S)模型(分布式),随着PC机诞生和应用,用户界面和部分的业务逻辑被移到了PC端。服务器端(后台)负责数据管理,客户机(前台)完成与用户的交互任务。,业务逻辑,数据存储,数据表示,业务逻辑,数据库服务器,C/S结构的优缺点,便于进行快速应用开发,市场上有很多这样的工具,如PB、Delphi、Visual Basic、Visual C+等。C/S结构具有响应速度快,操作界面设计个性化,直观、简单、方便的特点。 C/S结构不足: 开发成本高,软件维护和升级困难,因此,新技术不能轻易应用。 需要专门的客户端安装程序,分布功能弱。 兼容性差,软件移植困难。,完整的应用包含三个相对独立的逻辑部分

11、,而两层的C/S结构只有两个端应用。应用逻辑应该映射到哪一端上呢? 三种情况:,两层C/S架构将数据表示和处理逻辑分开 ,但应用逻辑和两端之一是紧耦合的 ,不适宜多用户、多数据库,是非安全的网络环境。,三层C/S结构,随着中间件技术的发展,出现了三层C/S结构。与二层C/S结构相比,增加了一个应用服务器。,数据库服务器,数据库服务器,应用服务器,表示层,数据层,功能层,Internet Intranet,三层C/S结构风格,表示层:应用的用户接口部分,担负找用户与应用间的对话功能。用于检查用户从键盘等设备输入的数据,显示应用输出的数据。 功能(或业务逻辑)层:将具体的业务处理逻辑编入程序中,并

12、确认用户对应用和数据库存取权限的功能 数据层:数据库管理系统,负责管理数据库数据的读写。,在多层模型中,中间层会用到应用服务,包括事务服务、消息服务等等。常见的事务服务器有Microsoft Transaction Server,消息服务器有Microsoft Message Queue。,浏览器/服务器(B/S)风格,基于Web的B/S风格其实也是一种客户机/服务器风格,只不过它的客户端是浏览器。为了区别传统的C/S风格,才特意称其为B/S风格。它实际上是一种三层应用结构的一种实现方式,即:浏览器/Web服务器/数据库服务器。,数据库服务器,Internet Intranet,Web服务器,

13、表示层,数据层,功能层,数据库,B/S结构的优缺点,B/S结构具有分布式、基于Web、开放性和适应性的优势,它使业务扩展简单,维护方便。 但与C/S结构相比,B/S结构也有许多不足之处: 个性化特点明显降低,实现个性化设计要求难。 缺乏对动态页面的支持能力,没有集成有效的数据库处理能力; 扩展能力差,安全性难以控制; 数据查询等响应速度远低于C/S结构; 数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。,C/S与B/S混合的软件体系结构,“内外有别”模型 企业内部用户通过局域网直接访问数据库服务器,软件系统采用C/S结构;企业外部用户通过Internet访问

14、Web服务器,通过Web服务器再访问数据库服务器,软件系统采用B/S结构。,数据库 服务器,Internet Intranet,Web服务器,企业 内部,企业 外部,C/S结构,B/S结构,查询浏览PC,查询浏览PC,修改维护PC,修改维护PC,Internet 用户,内部局域网,企业 内部,企业 外部,“查改有别”模型 不管用户是通过什么方式(局域网或Internet)连接到系统,凡是需要执行维护和修改数据操作的,就使用C/S结构;若只是执行一般的查询和浏览操作,则使用B/S结构。,数据库 服务器,Intenet Intranet,Web服务器,企业 内部,企业 外部,C/S结构,B/S结构

15、,查询浏览PC,查询浏览PC,修改维护PC,修改维护PC,Internet 用户,内部局域网,C/S结构,案 例,背景:电力系统精简机构,变电站向无人、少人和以点带面方向发展(“减人增效”)变电综合信息管理系统。 功能需求:包括变电运行所需的运行记录、图形开票、安全生产管理、生产技术管理、行政管理、总体信息管理、技术台帐管理、班组建设、学习培训、系统维护等功能。 体系结构设计:充分考虑变电站分布管理需要,采用“内外有别”模型。,本系统采用C/S与B/S混合的软件体系结构(“内外有别”)。,Intenet Intranet,县调,地调,省调,Internet用户,Web服务器,变电站 内部,B/S结构,中央控制室,系统管理员,变电站 内部局域网,站长、其他,C/S结构,数据库 服务器,变电站 外部,在架构设计中,系统划分方式通常有两种:横向划分和纵向划分,其中: 纵向划分是将系统划分成若干层,每个层完成一定的处理功能,如数据存储层、商务逻辑层和应用表达层等。 横向划分是将系统按照商业逻辑进行划分,例如将一个网上书店系统划分为进货、销售、库存管理、员工管理等。,一般地,,分布式对象结构(Distributed Objects Architecture),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号