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

    第4章-软件系统设计课件.ppt

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

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

    第4章-软件系统设计课件.ppt

    1.3 软件生存期(software life cycle)图1.14概要设计规格说明书详细设计规格说明书 软 件 生 存 期软件定义部分软件开发部分软件运行维护部分退役软件维护运行软件需求分析可行性研究问题定义综合测试编码与单元测试详细设计概要设计系统分析报告可行性分析报告初步项目计划需求规格说明书源程序代码测试报告用户手册维护报告 第1章 软件工程引论引言软件生存期2023/1/24 2结束返回图图3.6 3.6 需求分析需求分析模模型型3.1 软件需求分析3.1.5 需求分析模型需求分析模型引言2023/1/24 3结束返回第4章 软件概要设计4.1 软件设计过程软件设计过程4.2 软件设计的基本概念软件设计的基本概念4.3 面向数据流的设计方法面向数据流的设计方法4.4 面向数据结构的设计方法面向数据结构的设计方法4.5 软件概要设计规格说明软件概要设计规格说明与评审与评审第4章 软件概要设计2023/1/24 4结束返回【学习目的学习目的】1.1.掌握解软件概要设计的原则和过程。掌握解软件概要设计的原则和过程。2.2.掌握模块划分的评价准则掌握模块划分的评价准则模块独立性的判别。模块独立性的判别。3.3.掌握结构化设计方法。掌握结构化设计方法。4.4.掌握数据设计和文件设计的原则。掌握数据设计和文件设计的原则。5.5.了解软件概要设计规格说明和设计评审的主要内容。了解软件概要设计规格说明和设计评审的主要内容。6.6.了解了解JacksonJackson系统开发方法和系统开发方法和JacksonJackson程序设计方法。程序设计方法。第4章 软件概要设计2023/1/24 5结束返回【难重点难重点】软件设计从技术上的软件设计从技术上的体系结构设计、体系结构设计、数据结构设计、接口设计和过程设计。数据结构设计、接口设计和过程设计。第4章 软件概要设计2023/1/24 6结束返回4.1 4.1 软件设计的过程软件设计的过程WhoWho 为谁设计,用户是谁?为谁设计,用户是谁?为谁设计,用户是谁?为谁设计,用户是谁?WhatWhat 要解决哪些问题?要解决哪些问题?要解决哪些问题?要解决哪些问题?WhyWhy 为什么要解决这些问题为什么要解决这些问题为什么要解决这些问题为什么要解决这些问题 3W3W图4.1 软件设计前需要考虑的问题软件设计前要考虑的问题:第4章 软件概要设计2023/1/24 7结束返回编编码码测测试试设设计计信息描述功能描述行为描述其他需求总体结构设计数据结构设计过程设计 程序模块集成并确认的软件图4.2 软件开发部分的信息流4.1 4.1 软件设计的过程软件设计的过程软件开发部分包括:软件设计、编码和测试阶段。第4章 软件概要设计2023/1/24 8结束返回4.1.1 4.1.1 软件设计的重要性软件设计的重要性 软件需求分析软件需求分析软件设计软件设计软件设计软件设计做什么做什么怎么做怎么做图4.3 软件设计的作用任务任务任务任务任务任务任务任务第4章 软件概要设计2023/1/24 9结束返回4.1.2 4.1.2 软件设计的方法软件设计的方法图4.4 软件设计的方法结构化设计方法 面向对象设计 (OOD)面向数据流的设计 SD面向数据结构的设计Jackson软件设计方法结构化设计(SD,Structure Design)面向对象设计(OOD,Object Oriented Design)第4章 软件概要设计2023/1/24 10结束返回4.1.3 4.1.3 软件设计的过程概述软件设计的过程概述 软件设计软件设计是一个是一个把把软件需求软件需求变换成变换成软件表示软件表示的过程。的过程。最初最初这种表示只是描绘出软件的总的框架;这种表示只是描绘出软件的总的框架;然后然后进一步细化,在此框架中填入细节;进一步细化,在此框架中填入细节;最后把最后把它加工成在程序细节上非常接近于源程它加工成在程序细节上非常接近于源程序的序的软件表示软件表示。第4章 软件概要设计2023/1/24 11结束返回4.1.3 4.1.3 软件设计的过程概述软件设计的过程概述图4.5 从技术和管理的角度看设计的关系 从从管管理理和和技技术术两两个个不不同同的的角角度度对对软软件件设设计计的的认识,可以用认识,可以用下图表示下图表示。首首先先做做概概要要设设计计,将将软软件件需需求求转转化化为为数数据据结结构构和和软件的系统结构。软件的系统结构。然然后后是是详详细细设设计计,即即过过程程设设计计。通通过过对对结结构构表表示示进行细化,得到软件的详细的数据结构和算法。进行细化,得到软件的详细的数据结构和算法。从从工程管理工程管理的角度来看,软件设计分两步完成。的角度来看,软件设计分两步完成。从从技术观点技术观点来看,软件设计包括:来看,软件设计包括:软件结构设计软件结构设计 数据设计数据设计 接口设计接口设计 过程设计过程设计第4章 软件概要设计2023/1/24 12结束返回4.1.3 4.1.3 软件设计的过程概述软件设计的过程概述软软件件设设计计的的基基本本目目标标是是用用比比较较抽抽象象概概括括的的方方式式确确定定目目标标系系统统如如何何完完成成预预定定的的任任务务。即即软软件设计是件设计是确定系统的物理模型确定系统的物理模型。将需求分析模型转换为软件设计将需求分析模型转换为软件设计 请见图请见图4.64.6第4章 软件概要设计2023/1/24 13结束返回图图图图4.6 4.6 将分析模型转换为设计将分析模型转换为设计将分析模型转换为设计将分析模型转换为设计数据字典数据字典数数据据流流图图实实体体关关系系图图状态转换图状态转换图加加工工规规格格说说明明控控制制规规 格格说说明明数数据据对对象象描描述述过程设计过程设计接口设计接口设计体系结构设计体系结构设计数据设计数据设计将分析模型转换为设计将分析模型转换为设计将分析模型转换为设计将分析模型转换为设计第4章软件概要设计2023/1/24 14结束返回工工资资计计算算系系统统ER图图图图3.123.12数据设计数据设计将实体将实体关系图中描述的对象和关系,以及数据字关系图中描述的对象和关系,以及数据字典中描述的详细数据内容典中描述的详细数据内容转化转化为为数据结构数据结构的定义。的定义。例如:例如:表表4-1 职工基本信息表结构职工基本信息表结构列名(字段名)属性数据类型及长度说明及是否为空id职工号(主键)char(10)Nname姓名varChar(50)Ngender性别nChar(1)Nage年龄IntNwages工资intnduty职称/职务varChar(15)ndid部门代号(外键)Char(10)N第4章软件概要设计2023/1/24 15结束返回图4.7工资计算系统的层次结构图体系结构设计体系结构设计定义软件系统各主要成份之间的定义软件系统各主要成份之间的关系关系,如,如图4.7 过程设计过程设计则是把结构成份转换成软件的则是把结构成份转换成软件的过程性描述。过程性描述。第4章软件概要设计2023/1/24 16结束返回图图4.84.8精品课程网站首页精品课程网站首页例如例如:系统首页及登录界面如:系统首页及登录界面如图图4.84.8。接口设计接口设计根据数据流图定义软件内部各成份之间、软件根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的与其它协同系统之间及软件与用户之间的交互机制交互机制。第4章软件概要设计2023/1/24 17结束返回图图4.94.9系统管理界面系统管理界面管理员登录后,系统管理界面请见管理员登录后,系统管理界面请见图图4.94.9第4章 软件概要设计2023/1/24 18结束返回4.1.3 4.1.3 软件设计的过程概述软件设计的过程概述 从工程管理的角度来看,软件设计分两步完成:概要设计和详细设计要完成的任务:详细设计确立每个模块的实现算法局部数据结构用适当方法表示算法和数据结构的细节。概要设计将软件需求转化为软件体系结构确定系统级接口全局数据结构或数据库模式。图3.19 工资计算系统第一层数据流图图4.7工资计算系统的层次结构图第4章 软件概要设计2023/1/24 19结束返回4.1.4 4.1.4 衡量衡量软件设计的技术标准软件设计的技术标准(1)设计出来的结构应是设计出来的结构应是分层结构分层结构,从而建立软件成份之,从而建立软件成份之间的控制。间的控制。(2)设计应当设计应当模块化模块化,从逻辑上将软件划分为完成特定功,从逻辑上将软件划分为完成特定功能或子功能的构件。能或子功能的构件。衡量设计的技术标准如下:衡量设计的技术标准如下:(3)设计应当既包含设计应当既包含数据抽象数据抽象,也包含,也包含过程抽象过程抽象。(4)设计应当建立具有设计应当建立具有独立功能特征的模块独立功能特征的模块。(5)设计应当建立能够设计应当建立能够降低降低模块与外部环境之间模块与外部环境之间复杂复杂连接连接的的接口接口。(6)设计应能根据软件需求分析获取的信息,建立设计应能根据软件需求分析获取的信息,建立可驱动可驱动可重复可重复的方法。的方法。图4.7工资计算系统的层次结构图第4章 软件概要设计2023/1/24 20结束返回4.1.5 4.1.5 软件概要设计的步骤软件概要设计的步骤 在软件概要设计过程中需要完成的工作:在软件概要设计过程中需要完成的工作:(1)分析需求、制定规范分析需求、制定规范(2)软件系统结构的总体设计软件系统结构的总体设计(3)处理方式设计处理方式设计(4)数据结构和数据库的设计数据结构和数据库的设计(5)可靠性和安全性的设计可靠性和安全性的设计(6)编写概要设计阶段的文档编写概要设计阶段的文档(7)概要设计评审概要设计评审第4章 软件概要设计2023/1/24 21结束返回4.1.5 4.1.5 软件概要设计的任务软件概要设计的任务 思考题思考题:从管理和技术两个不同的角度从管理和技术两个不同的角度分析理解软件设计,两者之间有啥联分析理解软件设计,两者之间有啥联系?系?第4章 软件概要设计2023/1/24 22结束返回 阅读和理解阅读和理解软件需求说明书软件需求说明书,在给定预算范围,在给定预算范围内和技术现状下,确认用户的要求内和技术现状下,确认用户的要求能否实现能否实现。若不能。若不能实现,则需明确实现的条件,从而确定设计的目标,实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。以及它们的优先顺序。根据目标确定最合适的根据目标确定最合适的设计方法设计方法。规定设计文档的规定设计文档的编制标准编制标准,包括文档体系,用,包括文档体系,用纸及样式,记述的详细程度,图形的画法等。纸及样式,记述的详细程度,图形的画法等。规定编码的规定编码的信息形式信息形式(代码体系代码体系),与硬件,操,与硬件,操作系统的接口规约,命名规则等。作系统的接口规约,命名规则等。(1)评审需求与制定规范评审需求与制定规范4.1.6 4.1.6 软件概要设计过程软件概要设计过程 第4章 软件概要设计2023/1/24 23结束返回 在需求分析阶段,已经从系统开发的角度,在需求分析阶段,已经从系统开发的角度,把系统按功能逐次分割成层次结构,使每一部把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定分完成简单的功能且各个部分之间又保持一定的联系,这就是所谓的的联系,这就是所谓的功能设计功能设计。在设计阶段,基于这个功能的层次结构把各在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。它包括:个部分组合起来成为系统。它包括:(2)软件系统结构的总体设计软件系统结构的总体设计4.1.6 4.1.6 软件概要设计过程软件概要设计过程 第4章 软件概要设计2023/1/24 24结束返回 采用某种设计方法,将一个复杂的系统按功能划采用某种设计方法,将一个复杂的系统按功能划分成模块的分成模块的层次结构层次结构。确定每个模块的确定每个模块的功能功能,建立与已确定的软件需求,建立与已确定的软件需求的对应关系。的对应关系。确定模块间的确定模块间的调用关系调用关系。确定模块间的确定模块间的接口接口,即模块间传递的信息。设计,即模块间传递的信息。设计接口的信息结构。接口的信息结构。评估模块划分的质量及导出评估模块划分的质量及导出模块结构模块结构的规则。的规则。4.1.6 4.1.6 软件概要设计过程软件概要设计过程 第4章 软件概要设计2023/1/24 25结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程(3)(3)处理方式设计处理方式设计 确定为实现软件系统的确定为实现软件系统的功能需求功能需求所必需的所必需的算法算法,评估算法的性能。评估算法的性能。确定为满足软件系统的确定为满足软件系统的性能需求性能需求所必需的所必需的算法算法和模块间的控制方式(性能设计)。和模块间的控制方式(性能设计)。确定外部信号的确定外部信号的接收发送形式接收发送形式(接口设计)。(接口设计)。第4章 软件概要设计2023/1/24 26结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程 处理方式设计技术指标:处理方式设计技术指标:周转时间:周转时间:即一旦向计算机发出要求处理的请求之后,从输即一旦向计算机发出要求处理的请求之后,从输入开始,经过处理直到输出结果为止的入开始,经过处理直到输出结果为止的整个时间整个时间。响应时间:响应时间:这是对于实时联机系统的性能需求。当终端用户这是对于实时联机系统的性能需求。当终端用户向计算机发出处理请求之后,从输入开始到输出最终结果向计算机发出处理请求之后,从输入开始到输出最终结果中间的一段时间内,用户需要多次对计算机进行输入输出,中间的一段时间内,用户需要多次对计算机进行输入输出,而一次输入输出的时间就是而一次输入输出的时间就是响应时间响应时间。吞吐量:吞吐量:单位时间内能够处理的数据量叫做单位时间内能够处理的数据量叫做吞吐量吞吐量。这是表。这是表示系统能力的指标。示系统能力的指标。精度:精度:在进行科学计算或工程计算时,运算在进行科学计算或工程计算时,运算精确度精确度的要求。的要求。第4章 软件概要设计2023/1/24 27结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程(4)(4)数据结构设计数据结构设计确定软件涉及的文件系统的结构以及数据库的模确定软件涉及的文件系统的结构以及数据库的模式、子模式,式、子模式,进行数据完整性和安全性的设计进行数据完整性和安全性的设计。确定输入,输出文件的详细的确定输入,输出文件的详细的数据结构数据结构。结合算法设计,确定算法所必需的结合算法设计,确定算法所必需的逻辑数据结逻辑数据结 构及其操作构及其操作。确定对逻辑数据结构所必需的那些操作的确定对逻辑数据结构所必需的那些操作的程序程序 模块模块(软件包)。(软件包)。第4章 软件概要设计2023/1/24 28结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程 确定详细的确定详细的数据结构和使用规则数据结构和使用规则。数据库设计数据库设计数据库的设计数据库的设计指数据存储文件的设计指数据存储文件的设计。定义数。定义数据结构所含的数据项、类型、长度、它们之间的据结构所含的数据项、类型、长度、它们之间的层次或相互关系的表格等。层次或相互关系的表格等。数据的保护性设计数据的保护性设计冗余性设计:冗余性设计:一致性设计:一致性设计:防卫性设计:防卫性设计:第4章 软件系统设计2023/1/24 29结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程(5)(5)可靠性设计可靠性设计 可靠性设计也叫做可靠性设计也叫做质量设计质量设计。在计算机。在计算机使用的过程中,可靠性是很重要的。可靠性使用的过程中,可靠性是很重要的。可靠性不高的软件会使得运行结果不能使用而造成不高的软件会使得运行结果不能使用而造成严重损失。严重损失。软件可靠性简言之是指程序和文档中的软件可靠性简言之是指程序和文档中的错误少。错误少。第4章 软件概要设计2023/1/24 30结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程(6)(6)编写概要设计阶段的文档编写概要设计阶段的文档概要设计阶段完成时应编写以下文档:概要设计阶段完成时应编写以下文档:概要设计说明书概要设计说明书:给出系统目标、总体设计、数:给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。据设计、处理方式设计、运行设计、出错设计等。数据库设计说明书数据库设计说明书:给出所使用数据库简介、数:给出所使用数据库简介、数据模式设计、物理设计等。据模式设计、物理设计等。用户手册用户手册:对需求分析阶段编写的初步的用户手:对需求分析阶段编写的初步的用户手册进行审订。册进行审订。修订测试计划修订测试计划:对测试的策略、方法和步骤提出:对测试的策略、方法和步骤提出明确的要求。明确的要求。第4章 软件概要设计2023/1/24 31结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程 (7)(7)概要设计评审概要设计评审可追溯性:可追溯性:即分析该软件的系统结构、子系统即分析该软件的系统结构、子系统结构,确认该软件设计是否复盖了所有已确定结构,确认该软件设计是否复盖了所有已确定的软件需求,软件每一成份是否的软件需求,软件每一成份是否可追溯可追溯到某一到某一项需求。项需求。接口:接口:即分析软件各部分之间的联系,确认该即分析软件各部分之间的联系,确认该软件的内部接口与外部接口软件的内部接口与外部接口是否已经明确定义是否已经明确定义。模块是否满足模块是否满足高内聚和低耦合高内聚和低耦合的要求。模块作的要求。模块作用范围是否在其控制范围之内。用范围是否在其控制范围之内。第4章 软件概要设计2023/1/24 32结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程 风险:风险:即确认该软件设计在现有技术条件下即确认该软件设计在现有技术条件下和预算范围内和预算范围内是否能按时实现是否能按时实现。实用性:实用性:即确认该软件设计对于需求的解决即确认该软件设计对于需求的解决方案方案是否实用是否实用。技术清晰度:技术清晰度:即确认该软件设计是否以一种即确认该软件设计是否以一种易于易于翻译成代码翻译成代码的形式表达。的形式表达。可维护性:可维护性:从软件维护的角度出发,确认该从软件维护的角度出发,确认该软件设计是否考虑了软件设计是否考虑了方便未来的维护方便未来的维护。第4章 软件概要设计2023/1/24 33结束返回4.1.6 4.1.6 软件概要设计过程软件概要设计过程 质量:质量:即确认该软件设计是否表现出良好的即确认该软件设计是否表现出良好的质量特征质量特征。各种选择方案:各种选择方案:看是否考虑过其它方案,比看是否考虑过其它方案,比较各种选择方案的标准是什么。较各种选择方案的标准是什么。限制:限制:评估对该软件的限制评估对该软件的限制是否现实是否现实,是否,是否与需求一致。与需求一致。其它具体问题:其它具体问题:对于文档、可测试性、设计对于文档、可测试性、设计过程过程.等等进行评估。等等进行评估。第4章 软件概要设计2023/1/24 34结束返回4.1.7 4.1.7 软件详细设计软件详细设计 在详细设计过程中,需要完成的工作是:在详细设计过程中,需要完成的工作是:(1)(1)确定软件各个组成部分内的算法以及各部分确定软件各个组成部分内的算法以及各部分的的内部数据组织内部数据组织。(2)(2)选定某种过程的表达形式来选定某种过程的表达形式来描述各种算法描述各种算法。(3)(3)针对数据库的逻辑设计进行物理设计,设计针对数据库的逻辑设计进行物理设计,设计数据库模式的一些物理细节,数据库模式的一些物理细节,如数据项存储要求、如数据项存储要求、存取方式、建立索引等。存取方式、建立索引等。(4)(4)进行详细设计的进行详细设计的评审评审第4章 软件概要设计2023/1/24 35结束返回4.1.7 4.1.7 软件详细设计软件详细设计 在将需求转换为设计时判断设计好坏的三个在将需求转换为设计时判断设计好坏的三个特征:特征:设计设计必须必须实现分析模型中描述的所有显式需实现分析模型中描述的所有显式需求,必须满足用户希望的所有求,必须满足用户希望的所有隐式需求隐式需求。设计设计必须必须是可读的、可理解的,使得将来易是可读的、可理解的,使得将来易于编程、易于测试、易于维护。于编程、易于测试、易于维护。设计设计应从应从实现角度出发,给出与数据、功能、实现角度出发,给出与数据、功能、行为相关的软件全貌。行为相关的软件全貌。第4章 软件概要设计2023/1/24 36结束返回4.2 4.2 软件设计的基本概念软件设计的基本概念 在讲述本章内容时,会涉及到软件设在讲述本章内容时,会涉及到软件设计中的一些基本概念和基本原理,下面对计中的一些基本概念和基本原理,下面对这些基本概念和基本原理一一介绍。这些基本概念和基本原理一一介绍。第4章 软件概要设计2023/1/24 37结束返回4.2.1 4.2.1 抽象化抽象化 (1)(1)过程抽象过程抽象 在软件工程过程中,从系统定义到实现,在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对每进展一步都可以看做是对软件解决方案软件解决方案的的抽象化过程的一次细化。抽象化过程的一次细化。而在从而在从概要设计到详细设计概要设计到详细设计的过程中,的过程中,抽象化的层次逐次降低。当产生源程序时到抽象化的层次逐次降低。当产生源程序时到达最低的抽象层次。达最低的抽象层次。第4章 软件概要设计2023/1/24 38结束返回4.2.1 4.2.1 抽象化抽象化 (2)(2)数据抽象数据抽象数据抽象数据抽象与过程抽象一样与过程抽象一样,允许设计人,允许设计人员在不同层次上描述数据对象的细节。员在不同层次上描述数据对象的细节。(3)(3)控制抽象控制抽象与过程抽象和数据抽象一样与过程抽象和数据抽象一样,控制抽象,控制抽象可以包含一个程序控制机制而无须规定其内可以包含一个程序控制机制而无须规定其内部细节。控制抽象的例子就是在操作系统中部细节。控制抽象的例子就是在操作系统中用以协调某些活动的同步信号。用以协调某些活动的同步信号。第4章 软件概要设计2023/1/24 39结束返回4.2.2 4.2.2 自顶向下,逐步细化自顶向下,逐步细化 将软件的体系结构按自顶向下方式,将软件的体系结构按自顶向下方式,对各个层次的对各个层次的过程细节和数据细节过程细节和数据细节逐层细逐层细化,直到用程序设计语言的语句能够实现化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的为止,从而最后确立整个的体系结构体系结构。第4章 软件概要设计2023/1/24 40结束返回4.2.3 4.2.3 模块化模块化 软件系统的层次结构正是软件系统的层次结构正是模块化模块化的具体体现。的具体体现。就是说,整个软件被划分成若干单独命名和可就是说,整个软件被划分成若干单独命名和可编址的部分,称之为编址的部分,称之为模块模块。这些模块可以被这些模块可以被组装起来组装起来以满足整个问题的以满足整个问题的需求。需求。把一个大而复杂的把一个大而复杂的软件系统软件系统划分划分成易于理成易于理解的比较单纯的解的比较单纯的模块结构模块结构。第4章 软件概要设计2023/1/24 41结束返回4.2.3 4.2.3 模块化模块化 问题复杂性、开发工作量和模块数之间的关系:我们设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果:C(P1)C(P2)即问题P1的复杂度比P2高,则显然有:E(P1)E(P2)即解决问题P1比P2所需的工作量大。第4章 软件概要设计2023/1/24 42结束返回4.2.3 4.2.3 模块化模块化 另一个有趣的规律,如果:C(P1+P2)C(P1)+C(P2)即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和,则:E(P1+P2)E(P1)+E(P2)即将复杂问题分解成若干个小问题,各个击破,所需要的工作量小于直接解决复杂问题所需的工作量。第4章 软件概要设计2023/1/24 43结束返回4.2.3 4.2.3 模块化模块化 如果模块是相互独立的,当模块变得如果模块是相互独立的,当模块变得越小越小,每个模块花费的每个模块花费的工作量越低工作量越低;但当模块;但当模块数增加数增加时,模块间的时,模块间的联系也随之增加联系也随之增加,把这些模块联,把这些模块联接起来的接起来的工作量也随之增加工作量也随之增加。如如图图4.104.10所示所示。因此,存在一个。因此,存在一个模块个数模块个数M M,它使得总的它使得总的开发成本达到最小开发成本达到最小。第4章 软件概要设计2023/1/24 44结束返回4.2.3 4.2.3 模块化模块化 图图图图4.10 4.10 模块大小、模块数目与费用的关系模块大小、模块数目与费用的关系 第4章 软件系统设计2023/1/24 45结束返回练习题:练习题:练习题:练习题:P101 1P101 1,2 2第4章 软件概要设计2023/1/24 46结束返回4.2.4 4.2.4 模块独立性模块独立性模块的基本属性:功能:即指该模块实现什么功能;逻辑:即描述模块内部怎么做;状态:即该模块使用时的环境和条件。在描述一个模块时,还必须按模块的外部特性与内部特性分别描述。外部特性:模块的模块名、参数表、以及给程序以至整个系统造成的影响。内部特性:完成其功能的程序代码和仅供该模块内部使用的数据。第4章 软件概要设计2023/1/24 47结束返回4.2.4 4.2.4 模块独立性模块独立性软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。见图4.11。用两个准则度量模块独立性。即模块间的耦合和模块的内聚。内聚性:内聚是一个模块内部各个元素彼此结合的紧密程度的度量。耦合性:耦合是模块间互相连接的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。第4章 软件系统设计2023/1/24 48结束返回 模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口是简单的。耦合耦合耦合耦合 模块之间的模块之间的模块之间的模块之间的相对独立性相对独立性相对独立性相对独立性的度量。的度量。的度量。的度量。内聚内聚内聚内聚 模块功能强模块功能强模块功能强模块功能强度的度量。度的度量。度的度量。度的度量。4.2.4 4.2.4 模块独立性模块独立性图4.11 模块独立性第4章 软件系统设计2023/1/24 49结束返回(1)(1)模块模块内聚内聚低功能内聚信息信息内聚内聚通信通信内聚内聚过程过程内聚内聚时间时间内聚内聚逻辑逻辑内聚内聚巧合巧合性内性内聚聚高强弱内聚内聚性性模块独立性模块独立性图图4.12 内聚内聚性性模块模块内聚分为内聚分为7 7级级:第4章 软件系统设计2023/1/24 50结束返回MSTORERECN()TONREADMASTERFILEADD1TOX。ABC 当模块内各部之间没有联系,或者即使有联当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为偶然内系,这种联系也很松散。则称这种模块为偶然内聚模块。聚模块。偶然性内聚偶然性内聚图4.13 偶然内聚偶然内聚第4章 软件系统设计2023/1/24 51结束返回 这种模块是把几种功能组合在一起,每次调用这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。行哪一种功能。调用模块判定读一个记录写一个记录被调用模块逻辑性内聚逻辑性内聚图4.14 逻辑性内聚逻辑性内聚第4章 软件系统设计2023/1/24 52结束返回 这种模块能完成多个功能,各个功能都在同这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入一数据结构上操作,每一项功能有一个唯一的入口点。口点。数据表数据表 查找查找登录登录删除删除修改修改信息性内聚信息性内聚图4.15 逻辑性内聚逻辑性内聚第4章 软件系统设计2023/1/24 53结束返回 如果一个模块内所有成分都完成一个功能如果一个模块内所有成分都完成一个功能则称这样的模块为功能模块。则称这样的模块为功能模块。主控模块主控模块录入录入查询查询打印打印低低功能功能内聚内聚信息信息内聚内聚通信通信内聚内聚过程过程内聚内聚时间时间内聚内聚逻辑逻辑内聚内聚巧合性巧合性内聚内聚 高高强强弱弱 内聚内聚性性模块独立性模块独立性功能性内聚功能性内聚图4.16 功能性内聚功能性内聚第4章 软件系统设计2023/1/24 54结束返回 耦合性是程序结构中各个模块之间相互关联的度量耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。式以及那些信息通过接口。低低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制控制耦合耦合外部外部耦合耦合公共公共耦合耦合内容内容耦合耦合 高高弱弱 强强耦合性耦合性模块独立性模块独立性(2)(2)模块间的耦合模块间的耦合图4.17 耦合性耦合性第4章 软件系统设计2023/1/24 55结束返回(2)(2)模块间的耦合模块间的耦合非直接耦合 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。非直接耦合的 模块独立性最强。主模块主模块ABCEFGXYZ图4.18非直接耦合第4章 软件系统设计2023/1/24 56结束返回(2)(2)模块间的耦合模块间的耦合数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。第4章 软件系统设计2023/1/24 57结束返回(2)(2)模块间的耦合模块间的耦合控制耦合控制耦合 如果一个模如果一个模块通过传送块通过传送开开关、标志、名关、标志、名字等控制参数字等控制参数,明显地控制选明显地控制选择另一模块的择另一模块的功能,就是控功能,就是控制耦合。制耦合。FlagFlagf1f2fn图4.19 控制耦合控制耦合第4章 软件系统设计2023/1/24 58结束返回(2)(2)模块间的耦合模块间的耦合外部耦合外部耦合:一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而不是同一全局数据结构,而且不是通过参而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为数表传递该全局变量的信息,则称之为外部外部耦合。耦合。公共耦合公共耦合:若一组模块都访问若一组模块都访问同一个公共数据同一个公共数据环境环境,则它们之间的耦合就称为,则它们之间的耦合就称为公共耦合公共耦合。公共的数据环境可以是全局数据结构、共享公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。的通信区、内存的公共覆盖区等。第4章 软件系统设计2023/1/24 59结束返回(2)(2)模块间的耦合模块间的耦合 公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。common公共数据区公共数据区ABcommon公共数据区公共数据区AB松散的公共耦合松散的公共耦合紧密的公共耦合紧密的公共耦合图4.20第4章 软件系统设计2023/1/24 60结束返回(2)(2)模块间的耦合模块间的耦合内容耦合 如果发生下列情形,两个模块之间就发生如果发生下列情形,两个模块之间就发生了内容耦合了内容耦合:一个模块直接访问另一个模块的内部数据一个模块直接访问另一个模块的内部数据 一个模块不通过正常入口转到另一模块内部一个模块不通过正常入口转到另一模块内部 两个模块有一部分程序代码重迭两个模块有一部分程序代码重迭(只可能出只可能出现在汇编语言中现在汇编语言中)一个模块有多个入口一个模块有多个入口第4章 软件系统设计2023/1/24 61结束返回4.2.5 4.2.5 控制层次控制层次 控制层次也叫做控制层次也叫做程序结构程序结构,它表明了程序构,它表明了程序构件(模块)的组织情况。控制层次往往用程序的件(模块)的组织情况。控制层次往往用程序的层次(层次(树形或网状树形或网状)结构来表示结构来表示。位于最上层根部是顶层模块,它是程序的位于最上层根部是顶层模块,它是程序的主主模块模块。与其联系的有若干。与其联系的有若干下属模块下属模块,各下属模块,各下属模块还可以进一步引出更下一层的还可以进一步引出更下一层的下属模块下属模块。如下图。如下图所示。所示。第4章 软件系统设计2023/1/24 62结束返回图图4.21 4.21 程序的层次结构图示例程序的层次结构图示例 4.2.5 4.2.5 控制层次控制层次(1)程序结构的深度程序结构的深度 程序结构的程序结构的层次数层次数称为结构的称为结构的深度深度。结构的深度。结构的深度在一定意义上反映了程序结构的规模和复杂程度。在一定意义上反映了程序结构的规模和复杂程度。(2)(2)程序结构的宽度程序结构的宽度 层次结构中层次结构中同一层模块的最大模块个数同一层模块的最大模块个数称称为结构的为结构的宽度宽度。(3)模块的扇入和扇出模块的扇入和扇出扇出扇出表示表示一个模块直接调用一个模块直接调用(或控制)的其它(或控制)的其它模模块数目。块数目。扇入扇入则定义为则定义为调用调用(或控制)一个给定模块的模(或控制)一个给定模块的模块个数。块个数。多扇出多扇出意味着需要控制和协调许多下属模块。意味着需要控制和协调许多下属模块。而而多扇入多扇入的模块通常是公用模块。的模块通常是公用模块。第4章 软件系统设计2023/1/24 63结束返回4.2.5 4.2.5 控制层次控制层次(4)(4)结构划分结构划分 程序结构可以按程序结构可以按水平方向水平方向或或垂直方向垂直方向进行划分。进行划分。水平划分水平划分按主要的程序功能来定义模块按主要的程序功能来定义模块结构的结构的各个分支各个分支。顶层模块是控制模块,用。顶层模块是控制模块,用来协调程序各个功能之间的通信和运行。其来协调程序各个功能之间的通信和运行。其下级模块的最简单的水平划分方法是建立三下级模块的最简单的水平划分方法是建立三个分支:个分支:输入、处理(数据变换)和输出。输入、处理(数据变换)和输出。垂直划分垂直划分也叫做也叫做因子划分因子划分。主要用在程序的。主要用在程序的体系结构中,且工作自顶向下逐层分布:顶层模体系结构中,且工作自顶向下逐层分布:顶层模块执行控制功能,少做实际处理工作,而低层模块执行控制功能,少做实际处理工作,而低层模块是实际块是实际输入、计算和输出的具体执行者输入、计算和输出的具体执行者。第4章 软件系统设计2023/1/24 64结束返回4.2.6 4.2.6 数据结构数据结构 数据结构数据结构是数据的各个元素之间的逻辑关是数据的各个元素之间的逻辑关系的一种表示。系的一种表示。数据结构设计数据结构设计应确定数据的组织、存取方应确定数据的组织、存取方式、相关程度、以及信息的不同处理方法。式、相关程度、以及信息的不同处理方法。数据结构的组织方法和复杂程度数据结构的组织方法和复杂程度可以灵活可以灵活多样,但典型的数据结构种类是有限的,它们多样,但典型的数据结构种类是有限的,它们是构成一些更复杂结构的是构成一些更复杂结构的基本构件块基本构件块。第4章 软件系统设计2023/1/24 65结束返回4.2.6 4.2.6

    注意事项

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

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




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

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

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

    收起
    展开