欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第4章软件总体设计概要课件.ppt

    • 资源ID:91522295       资源大小:1.57MB        全文页数:119页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章软件总体设计概要课件.ppt

    第四章第四章 软件总体设计软件总体设计1【本章引言】p总体设计过程通常由两个阶段组成:系统设计和总体设计过程通常由两个阶段组成:系统设计和结构设计。其中系统设计的任务是确定系统的具结构设计。其中系统设计的任务是确定系统的具体实现方案,结构设计则是确定软件的模块结构。体实现方案,结构设计则是确定软件的模块结构。这两个阶段是紧密联系在一起的,它们执行的效这两个阶段是紧密联系在一起的,它们执行的效果将直接影响到总体设计好坏,乃至整个软件工果将直接影响到总体设计好坏,乃至整个软件工程的合理与否。前一个阶段是后一个阶段的基础,程的合理与否。前一个阶段是后一个阶段的基础,后一个阶段是前一个阶段的发展方向。因此,我后一个阶段是前一个阶段的发展方向。因此,我们在总体设计的整个过程中必须围绕系统设计和们在总体设计的整个过程中必须围绕系统设计和结构设计这两个阶段展开每一项工作。结构设计这两个阶段展开每一项工作。Saturday,May 27,20232第四章 软件总体设计第四章 软件总体设计【本章重点本章重点】p软件设计的概念与原则软件设计的概念与原则;p掌握总体设计的步骤和方法掌握总体设计的步骤和方法;【教学目标教学目标】p掌握软件设计的概念与原则掌握软件设计的概念与原则;p掌握总体设计的步骤和方法掌握总体设计的步骤和方法;p了解总体设计的文档与评审。了解总体设计的文档与评审。Saturday,May 27,20233第四章 软件总体设计第四章 软件总体设计p 4.1 4.1 总体设计概述总体设计概述 p 4.2 4.2 总体设计的图形描述工具总体设计的图形描述工具 p 4.3 4.3 模块化设计模块化设计 p 4.4 4.4 面向数据流的设计方法面向数据流的设计方法 p 4.5 4.5 小结小结p 4.6 4.6 习题习题 Saturday,May 27,20234第四章 软件总体设计软件设计阶段的任务与目标软件设计阶段的任务与目标软件设计阶段的任务与目标软件设计阶段的任务与目标软软件件编编码码前前,必必须须先先进进行行软软件件设设计计。软软件件设设计计是软件开发的关键步骤,直接影响软件的质量。是软件开发的关键步骤,直接影响软件的质量。在在软软件件需需求求分分析析阶阶段段已已经经完完全全弄弄清清楚楚了了软软件件的的各各种种需需求求,较较好好地地解解决决了了所所开开发发的的软软件件“做做什什么么”的的问问题题,并并已已在在软软件件需需求求说说明明书书和和数数据据要要求求说说明明书书中中详详尽尽和和充充分分地地阐阐明明了了这这些些需需求求以以后后,下下一一步步就就要要着着手手实实现现软软件件的的需需求求,即即软软件件设设计计阶阶段段要要解解决决“怎怎怎怎么做么做么做么做”的问题。的问题。Saturday,May 27,20235第四章 软件总体设计 软件设计在开发阶段中的重要性软件设计在开发阶段中的重要性软软软软件件件件设设设设计计计计阶阶阶阶段段段段要要要要解解解解决决决决“如如如如何何何何做做做做”的的的的问问问问题题题题。这这这这显显显显然然然然是是是是整整整整个个个个软软软软件件件件开开开开发发发发过过过过程程程程的的的的核核核核心心心心问问问问题题题题,所所所所有有有有的的的的开开开开发发发发工工工工作作作作都都都都将将将将根根根根据据据据设设设设计计计计的的的的方方方方案案案案进进进进行行行行。系系系系统统统统的的的的总总总总体体体体结结结结构构构构在在在在该该该该阶阶阶阶段段段段决决决决定定定定,因因因因此此此此软软软软件件件件的的的的总总总总体体体体设设设设计计计计决决决决定定定定了了了了系系系系统统统统的的的的质量。质量。质量。质量。软软件件需需求求确确定定以以后后,进进入入由由软软件件设设计计、编编码码、测测试试三三个个关关联联阶阶段段构构成成的的开开发发阶阶段段。开开发发阶阶段段的的信信息息流流如如图图所所示示。在在设设计计步步骤骤中中,根根据据软软件件的的功功能能和和性性能能需需求求等等,采采用用某某种种设设计计方方法法进进行行数数据据设设计、系统结构设计和过程设计。计、系统结构设计和过程设计。Saturday,May 27,20236第四章 软件总体设计Saturday,May 27,20237第四章 软件总体设计p数据设计侧重于软件数据结构的定义数据设计侧重于软件数据结构的定义p系统结构设计定义软件系统的整体结构,是软件开系统结构设计定义软件系统的整体结构,是软件开发的核心步骤。在设计步骤中,建立软件主要成份发的核心步骤。在设计步骤中,建立软件主要成份之间的关系之间的关系p过程设计过程设计则是把结构成份转换成软件的过程性描述则是把结构成份转换成软件的过程性描述则是把结构成份转换成软件的过程性描述则是把结构成份转换成软件的过程性描述在在编编码码步步骤骤中中,根根据据这这种种过过程程性性描描述述,生生成成源源程程序序代代码码,然然后后通通过测试,最终得到完整有效的软件。过测试,最终得到完整有效的软件。Saturday,May 27,20238第四章 软件总体设计p软件设计是后续开发步骤及软件维护工作的软件设计是后续开发步骤及软件维护工作的软件设计是后续开发步骤及软件维护工作的软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定基础。如果没有设计,只能建立一个不稳定基础。如果没有设计,只能建立一个不稳定基础。如果没有设计,只能建立一个不稳定的系统结构的系统结构的系统结构的系统结构Saturday,May 27,20239第四章 软件总体设计软件设计阶段的任务软件设计阶段的任务一、软件设计的任务一、软件设计的任务将将分分析析阶阶段段获获得得的的需需求求说说明明转转换换为为计计算算机机中中可可实实现现的的系系统统,完完成成系系统统的的结结构构设设计计,包包括括数数据据结结构和程序结构,最后得到软件设计说明书。构和程序结构,最后得到软件设计说明书。从从工工程程管管理理的的角角度度来来看看,软软件件设设计计分分两两步步完完成成;分分为为总总体体设设计计(概概要要设设计计)和和详详细细设设计计两两个个阶阶段段。其其工工作作流流程程如图所示。如图所示。首首先先做做概概要要设设计计,将将软软件件需需求求转转化化为为数数据据结结构构和和软软件件的的系系统统结结构构。然然后后是是详详细细设设计计,即即过过程程设设计计。通通过过对对结构表示进行细化,得到软件详细的数据结构和算法。结构表示进行细化,得到软件详细的数据结构和算法。Saturday,May 27,202310第四章 软件总体设计把分析模型转变成软件把分析模型转变成软件Saturday,May 27,202311第四章 软件总体设计Saturday,May 27,202312第四章 软件总体设计p概要设计的基本目的就是回答概要设计的基本目的就是回答“概括地说,概括地说,系统应该如何实现系统应该如何实现”p划分组成系统的物理元素划分组成系统的物理元素-程序、文件、程序、文件、数据库和文档等,另一方面要设计软件的数据库和文档等,另一方面要设计软件的结构,即确定系统中每个程序由哪些模块结构,即确定系统中每个程序由哪些模块组成,以及这些模块相互间的关系组成,以及这些模块相互间的关系总体设计过程总体设计过程总体设计过程总体设计过程Saturday,May 27,202313第四章 软件总体设计p在详细设计过程中,需要完成的工作是:在详细设计过程中,需要完成的工作是:1.确定软件各个组成部分内的算法以确定软件各个组成部分内的算法以及各部分的内部数据组织及各部分的内部数据组织2.选定某种过程的表达形式来描述各选定某种过程的表达形式来描述各种算法。种算法。3.进行详细设计的评审进行详细设计的评审详细设计详细设计Saturday,May 27,202314第四章 软件总体设计总体总体设计设计需求需求 说明书说明书复审复审软件结构软件结构修修 改改详细详细设计设计可接受可接受模块描述模块描述复审复审修修 改改 设计设计说明书说明书软件设计工作流程软件设计工作流程设设计计阶阶段段结结束束要要交交付付的的文文档档是是设设计计说说明明书书,根根据据设设计计方方法法的的不不同同,有有不不同同的的设设计计文文档档。每每个设计步骤完成后,都应进行复审。个设计步骤完成后,都应进行复审。Saturday,May 27,202315第四章 软件总体设计1 1 1 1、划分模块,确定软件结构、划分模块,确定软件结构、划分模块,确定软件结构、划分模块,确定软件结构 开开发发方方法法不不同同,确确定定软软件件结结构构的的方方法法也也不不同同。例例如如SD法法,是是从从分分层层的的DFD图图导导出出初初始始的的结结构构图图,再再对初始的结构图进行改进,获得最终的结构图。对初始的结构图进行改进,获得最终的结构图。一一般般包包括括确确定定系系统统的的软软件件结结构构,分分解解模模块块 ,确确定系统的模块层次关系。定系统的模块层次关系。2 2 2 2、确定系统的数据结构、确定系统的数据结构、确定系统的数据结构、确定系统的数据结构 要要确确定定数数据据的的类类型型,组组织织、存存取取方方式式,相相关关程程度度及处理方式等。及处理方式等。3 3 3 3、设计用户界面、设计用户界面、设计用户界面、设计用户界面 软件设计阶段的任务可分为三部分:软件设计阶段的任务可分为三部分:Saturday,May 27,202316第四章 软件总体设计二、软件设计的目标二、软件设计的目标在设计阶段应达到的目标是在设计阶段应达到的目标是:提高可靠性;提高可维护性;提高可理解性;提高可靠性;提高可维护性;提高可理解性;提高效率。提高效率。软件软件软件软件设计设计设计设计高可靠性高可靠性高可维护性高可维护性高可理解性高可理解性高效率高效率 软件设计的目标软件设计的目标Saturday,May 27,202317第四章 软件总体设计常用的设计方法有:常用的设计方法有:SD法、法、Jackson法、法、HIPO法、法、Parnas法、法、Warnier法等。法等。衡量该目标的准则衡量该目标的准则:1、软件实体有明显的层次结构,利于软件元素间、软件实体有明显的层次结构,利于软件元素间控制控制2、软件实体应该是模块化的,模块具有独立功能、软件实体应该是模块化的,模块具有独立功能3、软件实体与环境的界面清晰、软件实体与环境的界面清晰4、设计规格说明清晰、简洁、完整和无二义性、设计规格说明清晰、简洁、完整和无二义性Saturday,May 27,202318第四章 软件总体设计4.1 总体设计概述 4.1.1 4.1.1 总体设计的任务总体设计的任务p确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。p编写总体设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。选择分解功能与划分模块的设计原则Saturday,May 27,202319第四章 软件总体设计 4.1 总体设计概述 4.1.2 4.1.2 总体设计的步骤总体设计的步骤1设计系统方案2选取合理的方案 3推荐最佳方案 4功能分解5软件结构设计6数据库设计、文件结构的设计7制定测试计划8书写文档9审查和复审Saturday,May 27,202320第四章 软件总体设计软件结构软件结构 软软件件结结构构是是软软件件模模块块之之间间关关系系的的表表示示,它它决决定定了了整整个个系系统统的的结结构构,也也确确定定了了系系统统的的质质量量。模模块块之之间的关系可有多种,但都可以归结为一种层次关系。间的关系可有多种,但都可以归结为一种层次关系。软件结构图是总体设计阶段的主要描述工具,软件结构图是总体设计阶段的主要描述工具,它描述了构成系统的基本元素它描述了构成系统的基本元素模块及模块之间模块及模块之间的调用关系,模块之间的数据传递关系。的调用关系,模块之间的数据传递关系。Saturday,May 27,202321第四章 软件总体设计Saturday,May 27,202322第四章 软件总体设计软件结构的基本概念软件结构的基本概念ABCDEFGHIJKLM模块(模块(模块(模块(Module)模模模模块块块块是是是是程程程程序序序序对对对对象象象象有有有有名名名名字字字字的的的的集集集集合合合合。例例如如,过过程程、函函数数、子子程程序序、宏宏等等,是是构构成成软软件件系系统结构的基本元素。统结构的基本元素。软件结构图软件结构图Saturday,May 27,202323第四章 软件总体设计体系结构设计是软件设计的第一个阶段,该阶段侧重体系结构设计是软件设计的第一个阶段,该阶段侧重于系统宏观结构的设计,而不关心模块的内部算法。于系统宏观结构的设计,而不关心模块的内部算法。杨叔子院子曾这样指点其弟子:杨叔子院子曾这样指点其弟子:文学中有科学,音乐中有数学,漫画中有现代数学文学中有科学,音乐中有数学,漫画中有现代数学的拓扑学。漫画家可以的拓扑学。漫画家可以“几笔几笔”就把一个人画出来,不管怎就把一个人画出来,不管怎么美化或丑化,就是活像。为什么?因为那么美化或丑化,就是活像。为什么?因为那“几笔几笔”不是别不是别的,而是拓扑学中的特征不变量,这是事物最本质的东西。的,而是拓扑学中的特征不变量,这是事物最本质的东西。体系结构是软件系统中最本质的东西:体系结构是软件系统中最本质的东西:软件系统的体系结构分为集中式的层次结构、客户机软件系统的体系结构分为集中式的层次结构、客户机/服务器等。服务器等。Saturday,May 27,202324第四章 软件总体设计一、层次结构一、层次结构Saturday,May 27,202325第四章 软件总体设计Saturday,May 27,202326第四章 软件总体设计二、二、客户服务器模型客户服务器模型(Client/ServerArchitecturalModel)C/S结构是一种分布式模型,采用发请求、得结果的结构是一种分布式模型,采用发请求、得结果的模式:模式:客户机客户机向服务器发出请求向服务器发出请求(数据请求、网页请求、文件数据请求、网页请求、文件传输请求等传输请求等)。服务器服务器响应请求,进行相应的操作,将结果回传给客户响应请求,进行相应的操作,将结果回传给客户机,客户机再将格式化后的结果呈现给用户。机,客户机再将格式化后的结果呈现给用户。C/S结构的应用都由三个相对独立的逻辑部分组成结构的应用都由三个相对独立的逻辑部分组成。用户界面用户界面应用逻辑应用逻辑数据访问数据访问三种逻辑之间的关系三种逻辑之间的关系Saturday,May 27,202327第四章 软件总体设计1.两层客户服务器模型两层客户服务器模型2.(TwoTierClient/ServerArchitecturalModel)服务器服务器1网络网络服务器服务器2服务器服务器M客户客户1客户客户2客户客户N两层两层Client/Server结构结构请求请求结果结果请求请求C/S的工作模式是一种远程过程调用的工作模式是一种远程过程调用(RPC,RemoteProcedureCall)模式,允许客户端和服务器端有不同的软模式,允许客户端和服务器端有不同的软硬平台。硬平台。Saturday,May 27,202328第四章 软件总体设计client1 1client2 2client4 4client3 3Wide-bandwidthnetwokCatalogueservercataloguevideoserverFilmclipfilespictureserverdigitisedphotographshypertextserverhypertextweb例:例:电影图片库的系统的体系结构电影图片库的系统的体系结构sSaturday,May 27,202329第四章 软件总体设计完整的应用包含三个相对独立的逻辑部分,而两层的完整的应用包含三个相对独立的逻辑部分,而两层的C/S结构只有两个端应用。应用逻辑应该映射到哪一端上结构只有两个端应用。应用逻辑应该映射到哪一端上呢?呢?三种情况:三种情况:网网网网络络络络用户界面用户界面客户端逻辑客户端逻辑应用应用服务端逻辑服务端逻辑应用应用客户端客户端用户界面用户界面逻辑应用逻辑应用数据访问数据访问用户界面用户界面逻辑应用逻辑应用数据访问数据访问服务器服务器应用逻辑层的映射情况应用逻辑层的映射情况数据访问数据访问C/S应用应用3C/S应用应用1C/S应用应用2两两层层C/S架架构构将将数数据据表表示示和和处处理理逻逻辑辑分分开开,但但应应用用逻逻辑辑和和两两端端之之一一是是紧紧耦耦合合的的,不不适适宜宜多多用用户户、多多数数据据库库、非非安全的网络环境。安全的网络环境。Saturday,May 27,202330第四章 软件总体设计2.三层三层/多层应用模型多层应用模型(Three/MultiTierModel)第一级是数据库管理结点第一级是数据库管理结点(databasemanagementnode)。第二级或中间级是第二级或中间级是“商业逻辑结点商业逻辑结点”(businesslogicnode),是指具体应用中实施的是指具体应用中实施的程序逻辑和法则。程序逻辑和法则。第三级是用户界面级,强调高效、方便易用的用户界面。第三级是用户界面级,强调高效、方便易用的用户界面。Databasemanagementnode(数据库管理结点)数据库管理结点)businesslogicnode(商业逻辑结点)商业逻辑结点)Security(安全)(安全)Event(事件)事件)Search(搜索)搜索)ClientAClientDClientBClientC服服务务器器客客户户机机第一级第一级第二级第二级第三级第三级Saturday,May 27,202331第四章 软件总体设计客户端客户端用户界面用户界面服务器服务器数据访问数据访问多层应用模型多层应用模型网网络络应用服务器应用服务器1应用逻辑应用逻辑应用服务器应用服务器n应用逻辑应用逻辑在多层模型中,中间层会用到应用服务,包括事务服在多层模型中,中间层会用到应用服务,包括事务服务、消息服务等等。常见的事务服务器有务、消息服务等等。常见的事务服务器有MicrosoftTransactionServer,消息服务器有,消息服务器有MicrosoftMessageQueue。Saturday,May 27,202332第四章 软件总体设计三、分布式对象结构三、分布式对象结构(DistributedObjectsArchitecture)在在C/S模型中,客户和服务器在服务模型中,客户和服务器在服务/请求上的差请求上的差别,在一定程度上限制了系统的灵活性和可扩展性。别,在一定程度上限制了系统的灵活性和可扩展性。采用分布式对象结构采用分布式对象结构:“对象对象(Object)”提供服务的系统组件提供服务的系统组件(SystemComponent)。每个对象在逻辑上是平等的,它们可以互相为对方提每个对象在逻辑上是平等的,它们可以互相为对方提供所需的服务。供所需的服务。提供服务的对象就是服务器,而提出服务请求的对象提供服务的对象就是服务器,而提出服务请求的对象就是客户。就是客户。Saturday,May 27,202333第四章 软件总体设计软件总线软件总线(SoftwareBus)的中间件的中间件(Middleware)即即对象请求代理对象请求代理(ObjectRequestBroker,ORB)分布式对象结构具有很好的开放性和透明性,用分布式对象结构具有很好的开放性和透明性,用户可以非常方便地在总线上添加、更新或删除组件对户可以非常方便地在总线上添加、更新或删除组件对象。象。软件总线软件总线(ORB)O1S(O1)O2S(O2)OnS(On)分布式对象结构Saturday,May 27,202334第四章 软件总体设计4.2 总体设计的图形工具 4.2.1 4.2.1 层次图层次图Saturday,May 27,202335第四章 软件总体设计4.2 总体设计的图形工具4.2.2 HIPO4.2.2 HIPO图图Saturday,May 27,202336第四章 软件总体设计大学教务管理系统大学教务管理系统H图图 Saturday,May 27,202337第四章 软件总体设计IPO图的一个例子图的一个例子Saturday,May 27,202338第四章 软件总体设计 4.2 总体设计的图形工具4.2.3 4.2.3 结构图结构图Saturday,May 27,202339第四章 软件总体设计软件结构图(软件结构图(SCSC图)图)结结构构图图(Structure Chart,SC图图)是是精精确确表表达达软软件件结结构构的的图图形形表表示示方方法法,它它以以特特定定的的符符号号表表示示模模块块、模块间的调用关系和模块间信息的传递。模块间的调用关系和模块间信息的传递。模模模模块块块块(Module):用用矩矩形形框框表表示示,框框中中写写有有模模块块的的名名字字,说说明明模模块块的的功功能能。模模块块是是程程序序对对象象有有名名字字的的集集合。例如:过程、函数、子程序、宏等。合。例如:过程、函数、子程序、宏等。数数数数据据据据:调调用用箭箭头头边边上上的的小小箭箭头头表表示示调调用用时时从从一一个模块传送给另一模块的数据。个模块传送给另一模块的数据。调调调调用用用用:从从一一个个模模块块指指向向另另一一个个模模块块的的箭箭头头表表示示前前一模块对后一模块的调用,一般是上层调用下层。一模块对后一模块的调用,一般是上层调用下层。Saturday,May 27,202340第四章 软件总体设计模块模块5模块模块5模块模块4模块模块4模块模块1模块模块3模块模块2valuesvaluesdatadata模块模块1模块模块2模块模块3valuesdatadata 模块调用图模块调用图Saturday,May 27,202341第四章 软件总体设计 模块间接口的表示模块间接口的表示A A查询学生成绩查询学生成绩B B查找学生记录查找学生记录学学号号查找成功的信查找成功的信息息常常用用尾尾端端带带有有空空心心圆圆的的短短箭箭头头表表示示数数据据信信息息,用用尾尾端端带带有有实实心心圆圆的的短短箭箭头头表表示示控控制制信信息。息。有有的的结结构构图图对对这这两两种种信信息息不不加加以以区区别别,一一律律用用注注有有信信息息名的短箭头来表示,如图所示。名的短箭头来表示,如图所示。数据信息数据信息控制信息控制信息Saturday,May 27,202342第四章 软件总体设计Saturday,May 27,202343第四章 软件总体设计例:画出打印报告的软件结构图。调调用用次次序序为为上上层层调调用用下下层层;同同层层按按照照数数据据传传递递关关系确定;一般从左到右执行。系确定;一般从左到右执行。执行过程即按照数据流向进行。执行过程即按照数据流向进行。报报 告告计计 算算获得编辑获得编辑确认数据确认数据读入读入编辑编辑打印报告头打印报告头打印报告尾打印报告尾打印打印输入输入EOFEOF输入输入已编辑已编辑 已编辑已编辑已编辑已编辑已确认已确认已确认已确认数据数据已确认已确认数据数据计算结果计算结果结果结果日期日期总结果总结果行行行行行打印报告打印报告予以确认予以确认Saturday,May 27,202344第四章 软件总体设计结构图的例子结构图的例子产生最佳解的一般结构产生最佳解的一般结构Saturday,May 27,202345第四章 软件总体设计 4.3 模块化设计4.3.1 4.3.1 模块化与局部化模块化与局部化1 1模块化模块化 模块是数据说明、可执行语句等程序对象的模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名、而且可通过名字集合,模块可以单独被命名、而且可通过名字来访问,例如,过程、函数、子程序、宏等等来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分成若干都可作为模块。模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模个模块,每个模块具有一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功块集成起来构成一个整体,可以完成指定的功能,进而满足问题的要求。能,进而满足问题的要求。Saturday,May 27,202346第四章 软件总体设计“模模块块”,又又称称“构构件件”,一一般般指指用用一一个个名名字字可可调调用的一段程序。它一般具有如下三个基本属性:用的一段程序。它一般具有如下三个基本属性:功能功能 即指该模块实现什么功能,做什么事情即指该模块实现什么功能,做什么事情逻辑逻辑 即描述模块内部怎么做。即描述模块内部怎么做。状态状态 即该模块使用时的环境和条件。即该模块使用时的环境和条件。所所谓谓模模块块的的独独立立性性,是是指指软软件件系系统统中中每每个个模模块块只只涉涉及及软软件件要要求求的的具具体体的的子子功功能能,而而和和软软件件系系统统中中其其他他模模块块的的接接口口是是简简单单的的。即即功功能能专专一一,模模块块之之间间无无过过多多的相互作用的模块。的相互作用的模块。这这种种类类型型的的模模块块可可以以并并行行开开发发,模模块块独独立立性性越越强强,开开发发越越容容易易。独独立立性性强强的的模模块块,还还能能减减少少错错误误的的影影响响,使模块容易组合、修改及测试。使模块容易组合、修改及测试。Saturday,May 27,202347第四章 软件总体设计模块化模块化模块化模块化 模模模模块块块块化化化化就就就就是是是是将将将将系系系系统统统统划划划划分分分分为为为为若若若若干干干干个个个个模模模模块块块块,每每每每个个个个模模模模块块块块完完完完成成成成一一一一个个个个子子子子功功功功能能能能。模模块块化化的的目目的的是是将将系系统统“分分而而治治之之”,模模块块化化能能够够降降低低问问题题的的复复杂杂性性,使使软软件件结结构构清清晰晰,易易阅阅读读、易易理理解解,易易于于测测试试和和调调试试,因因而而也也有有助助于于提提高高软软件的可靠性。件的可靠性。Saturday,May 27,202348第四章 软件总体设计模块化降低软件复杂度的模块化降低软件复杂度的简单证明简单证明令:令: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)将将问问题题(P1+P2)划划分分为为两两个个问问题题P1和和P2后后,其其工工作量和复杂度都降低。作量和复杂度都降低。Saturday,May 27,202349第四章 软件总体设计 并并非非模模块块分分得得越越小小越越好好,因因为为模模块块之之间间接接口口的的复复杂杂度度和和工工作作量量增增加加。显显然然,每每个个软软件件系系统统都都有有一一个个最最佳佳模模块块数数M。注注意意选选择择分分解解的的最最佳佳模模块块数数。右右上上图图描描述了模块化与软件成本的关系。述了模块化与软件成本的关系。软件总成本软件总成本 模块化与软件成本的关系模块化与软件成本的关系成本成本模块模块数目数目模块成本模块成本接口成本接口成本最小成本区最小成本区MSaturday,May 27,202350第四章 软件总体设计4.3 模块化设计4.3.1 4.3.1 模块化与局部化模块化与局部化 2 2局部化局部化 局部化的概念和信息隐蔽概念密切相关。局部化的概念和信息隐蔽概念密切相关。所谓局部化是指把一些关系密切的软件元素所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化据元素是局部化的一个例子。显然,局部化有助于实现信息隐蔽。有助于实现信息隐蔽。Saturday,May 27,202351第四章 软件总体设计 4.3 模块化设计4.3.2 4.3.2 模块化独立性模块化独立性 模块的独立性可以用两个定性的标准来度量:耦合和内聚。耦合是模块之间互相连接的紧密程度的度量,内聚是一个模块内部各个元素彼此结合的紧密程度的度量。Saturday,May 27,202352第四章 软件总体设计 4.3 模块化设计4.3.2 4.3.2 模块化独立性模块化独立性1 1耦合耦合p非直接耦合非直接耦合 p数据耦合数据耦合 p标记耦合标记耦合 p控制耦合控制耦合 p公共耦合公共耦合 p内容耦合内容耦合 Saturday,May 27,202353第四章 软件总体设计耦耦合合性性是是指指软软件件结结构构中中模模块块相相互互连连接接的的紧紧密密程程度度,是是模模块块间间相相互互连连接接性性的的度度量量。模模块块分分解解的的一一个个目目标标是是使使块块间间联联系系尽尽可可能能小小,块块间间联联系系的的大大小小可从三个方面衡量:可从三个方面衡量:数据数据方式方式作用作用少少多多数量数量控制控制混合混合直直接接调调用用过程过程调用调用 方方方方式式式式 块块间间联联系系方方式式有有“直直接接引引用用”或或“用过程语句调用用过程语句调用”作作作作用用用用 块块间间传传送送的的共共用用信信息息(参参数数)类类型型,可可为为“数数据据型型”、“控控制制型型”或或“混混合型合型”(数据数据/控制型控制型)数量数量数量数量 块间传送的共用信息的数量块间传送的共用信息的数量Saturday,May 27,202354第四章 软件总体设计模模块块分分解解的的一一个个目目标标是是使使块块间间联联系系尽尽可可能能小小,达达到到这这个个目目标标可可通通过过以以下下措措施。施。每每个个模模块块用用过过程程语语句句(或或函函数数方方式式等等)调用其他模块。调用其他模块。模块间传送的参数为数据型。模块间传送的参数为数据型。模模块块间间公公用用的的信信息息(如如参参数数等等)尽尽量量少。少。Saturday,May 27,202355第四章 软件总体设计耦合性的几种类型耦合性的几种类型耦合性的几种类型耦合性的几种类型内容耦合内容耦合公共耦合公共耦合控制耦合控制耦合复合耦合复合耦合数据耦合数据耦合高高高高耦合性耦合性耦合性耦合性耦合性耦合性低低低低1 1、内容耦合、内容耦合(contentcouplingcontentcoupling)一个模块直接访问另一模块的内部数据一个模块直接访问另一模块的内部数据一个模块不通过正常入口转到另一模块的内部一个模块不通过正常入口转到另一模块的内部一个模块有多个入口一个模块有多个入口两个模块有部分代码重迭两个模块有部分代码重迭Saturday,May 27,202356第四章 软件总体设计2 2 2 2、公共耦合、公共耦合、公共耦合、公共耦合(C CommonommonC Couplingoupling)若若干干模模块块访访问问一一个个公公共共的的数数据据环环境境,公公共共环环境境可可为为全全局局数数据据结结构构、共共享享的的通通信信区区、内内存存的的公公共共覆覆盖盖区区等等。显显然然,公公共共数数据据区区的的变变化化,将将影影响响所所有有公公共共耦耦合合模模块块,严严重重影影响响模模块块的的可可靠靠性性和和可可适适应应性性,降降低低软软件件的可读性。的可读性。Saturday,May 27,202357第四章 软件总体设计3 3、控制耦合、控制耦合(ControlCouplingControlCoupling)一一个个模模块块传传递递给给另另一一模模块块的的信信息息是是用用于于控控制制该该模模块块内内部部逻逻辑辑的的控控制制信信号号。显显然然,对对被被控控制制模模块块的的任任何何修修改改,都会影响控制模块都会影响控制模块。A BFlagf1f2fn.Saturday,May 27,202358第四章 软件总体设计publicinty;PublicA(stringx)if(x=”true”)y=1;Elsey=0;PublicvoidB()if(y=1)F();/F()是系统自定义是系统自定义的函数的函数ElseG();/G()是系统自定是系统自定义的函数义的函数Saturday,May 27,202359第四章 软件总体设计4 4、复合耦合、复合耦合(StampCoupling)一一个个模模块块传传送送给给另另一一个个模模块块的的参参数数是是一一个个复复合合的的数数据据结结构构。例例如如,包包含含几几个个数数据单项的记录。据单项的记录。5 5、数据耦合、数据耦合(DataCoupling)一一个个模模块块传传送送给给另另一一个个模模块块的的参参数数是是一一个个单个的数据项单个的数据项Saturday,May 27,202360第四章 软件总体设计p 总之,耦合是影响软件复杂程度的一总之,耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:个重要因素。应该采取下述设计原则:p 尽量使用数据耦合,少用控制耦合,尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容限制公共环境耦合的范围,完全不用内容耦合。耦合。Saturday,May 27,202361第四章 软件总体设计 4.3 模块化设计4.3.2 4.3.2 模块化独立性模块化独立性2 2内聚内聚p偶然内聚偶然内聚 p逻辑内聚逻辑内聚 p时间内聚时间内聚 p过程内聚过程内聚 p通信内聚通信内聚 p顺序内聚顺序内聚 p功能内聚功能内聚 Saturday,May 27,202362第四章 软件总体设计块内联系的类型分为七类块内联系的类型分为七类:内内聚聚性性表表示示一一个个模模块块内内部部各各种种数数据据和和各各种种处处理理之之间间联联系系的的紧紧密密程程度度,它它是是从从功功能能的的角角度度来来度度量量模模块块间间的的联联系系。显显然然,块块内内联联系系愈愈紧紧,即内聚性愈强即内聚性愈强,模块独立性愈好。模块独立性愈好。偶然型偶然型逻辑型逻辑型瞬时型瞬时型过程型过程型通信型通信型弱弱弱弱内聚性内聚性内聚性内聚性内聚性内聚性强强强强顺序型顺序型功能型功能型Saturday,May 27,202363第四章 软件总体设计模模块块T T中中的的三三条条语语句句毫毫无无关关系系,A、B、C、D都都不不在在文文件件CARD FILE 中中。模模块块P、Q、R分分别别与与三三条条语语句句有关。有关。PQRMOVEATOBREADCARDFILEMOVECTODT 偶然型模块偶然型模块1、偶然型(Coincidental Cohesion)又称为巧合型,为了节约空间,将毫无关又称为巧合型,为了节约空间,将毫无关系系(或者联系不多或者联系不多)的各成分放在一个模块中。的各成分放在一个模块中。这样的模块显然不易理解,不易修改这样的模块显然不易理解,不易修改。Saturday,May 27,202364第四章 软件总体设计2 2、逻辑型、逻辑型(LogicalCohesion)将几个逻辑上相似的功能放在一个模块中,将几个逻辑上相似的功能放在一个模块中,调用时由调用模块传递的参数确定执行的功能。调用时由调用模块传递的参数确定执行的功能。由于要进行控制参数的传递,必然要影响模块由于要进行控制参数的传递,必然要影响模块的内聚性。的内聚性。调用模块调用模块判定判定读读一一个个记记录录写写一一个个记记录录 逻辑型模块逻辑型模块被被调调用用模模块块Saturday,May 27,202365第四章 软件总体设计3 3、瞬时型、瞬时型(TemporalCohesion)将将需需要要同同时时执执行行的的成成分分放放在在一一个个模模块块中中,因因为为模模块块中中的的各各功功能能与与时时间间有有关关,因因此此又

    注意事项

    本文(第4章软件总体设计概要课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开