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

    理解软件设计过程抽象与逐步求精优秀PPT.ppt

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

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

    理解软件设计过程抽象与逐步求精优秀PPT.ppt

    软软 件件 工工 程程教学目的:理解软件设计过程、抽象与逐步求精、教学目的:理解软件设计过程、抽象与逐步求精、模块化与信息隐藏等概念。模块化与信息隐藏等概念。教学重点:几个软件设计的基本概念。教学重点:几个软件设计的基本概念。教学难点:教学难点:模块划分与软件损耗的关系。模块划分与软件损耗的关系。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:第第8章章 软件设计基础软件设计基础 软软 件件 工工 程程第第8 8章章软件设计基础软件设计基础软软件件设设计计阶阶段段的的工工作作是是以以需需求求分分析析阶阶段段的的成成果果为为前前提提和和基基础础的的,即即经经过过系系统统分分析析小小组组签签字字认认可可的的需需求求规规格格说说明明书书及及有有关关技技术术文文档档。经经过过软软件件工工程程师师们们多多年年的的努努力力,一一些些软软件件设设计计技技术术、质质量量评评估估标标准准和和设设计计表表示示法法逐逐步步形形成成并并用用于于软软件工程实践。件工程实践。软软件件设设计计是是软软件件工工程程的的重重要要阶阶段段。软软件件设设计计过过程程是是对对程程序序结结构构、数数据据结结构构和和过过程程细细微微环环节节逐逐步步求求精精、复复审审并并编编制制文文档档的的过过程程,本本章章探探讨讨与与软件设计有关的主要概念。软件设计有关的主要概念。软软 件件 工工 程程8.1 8.1 软件设计基本概念软件设计基本概念 8.1.1 8.1.1 软件设计过程软件设计过程一般认为,软件开发阶段由设计、编码和测试一般认为,软件开发阶段由设计、编码和测试三个基本活动组成,其中三个基本活动组成,其中“设计设计”活动是获得活动是获得高质量、低耗费、易维护软件的一个最重要环高质量、低耗费、易维护软件的一个最重要环节。节。需求分析阶段获得的需求规格说明书包括对将需求分析阶段获得的需求规格说明书包括对将要实现的系统在信息、功能和行为等各个方面要实现的系统在信息、功能和行为等各个方面的描述,这是软件设计的基础。对此不论接受的描述,这是软件设计的基础。对此不论接受何种软件设计方法都将产生何种软件设计方法都将产生:系统的总体结构设计(系统的总体结构设计(architectural design););系统的数据设计(系统的数据设计(data design););系统的过程设计(系统的过程设计(procedural design)。)。软软 件件 工工 程程8.1.1 8.1.1 软件设计过程软件设计过程图图8-1-1 开发阶段的信息流开发阶段的信息流功能描述功能描述行为描述行为描述其他需求其他需求程序程序模块模块总体结构设计总体结构设计设计设计编码编码信息描述信息描述过程设计过程设计数据设计数据设计集集成成并并确确认认的软件的软件测试测试 软软 件件 工工 程程8.1.1 8.1.1 软件设计过程软件设计过程软件设计也可看作将需求规格说明逐步转换为软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。软件源代码的过程。从工程管理的角度软件设计可分为概要从工程管理的角度软件设计可分为概要(preliminary)设计和具体()设计和具体(detail)设计两大步)设计两大步骤。骤。概要设计是依据需求确定软件和数据的总体框概要设计是依据需求确定软件和数据的总体框架,具体设计是将其进一步精化成软件的算法架,具体设计是将其进一步精化成软件的算法表示和数据结构。表示和数据结构。而在技术上,概要设计和具体设计又由若干活而在技术上,概要设计和具体设计又由若干活动组成,除总体结构设计、数据结构设计和过动组成,除总体结构设计、数据结构设计和过程设计外,很多现代应用软件,还包括一个独程设计外,很多现代应用软件,还包括一个独立的界面设计活动。立的界面设计活动。软软 件件 工工 程程8.1.2 抽象与逐步求精抽象与逐步求精抽象是限制困难性的基本策略。抽象是限制困难性的基本策略。“抽象抽象”要求要求人们将留意力集中在某一层次上考虑问题,而人们将留意力集中在某一层次上考虑问题,而忽视那些低层次的细微环节。忽视那些低层次的细微环节。软件设计过程应当是在不同抽象级别上考虑和软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。最初,应在最高抽象级别上,处理问题的过程。最初,应在最高抽象级别上,用面对问题域的语言叙述用面对问题域的语言叙述“问题问题”,概括,概括“问问题解题解”的形式,而后不断地具体化,不断地用的形式,而后不断地具体化,不断地用面对过程的语言描述问题,最终,在最低的抽面对过程的语言描述问题,最终,在最低的抽象级别上给出可干脆实现的象级别上给出可干脆实现的“问题解问题解”,即程,即程序。序。软软 件件 工工 程程8.1.2 8.1.2 抽象与逐步求精抽象与逐步求精软件工程过程的每一步都是对较高一级抽象的解作一次进一软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。步具体化的描述。在系统定义阶段,软件系统被描述为基于计算机的大系统的在系统定义阶段,软件系统被描述为基于计算机的大系统的一个组成部分;一个组成部分;在软件规划和需求分析阶段,软件用问题域约定的习惯用语在软件规划和需求分析阶段,软件用问题域约定的习惯用语表达;表达;从概要设计过渡到具体设计时,抽象级再一次降低;从概要设计过渡到具体设计时,抽象级再一次降低;编码完成后达到了抽象的最低级。编码完成后达到了抽象的最低级。在上述由高级抽象到低级抽象的转换过程中,伴随着一连串在上述由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象。的过程抽象和数据抽象。过程抽象把完成一个特定功能的动作序列抽象为一个过程名过程抽象把完成一个特定功能的动作序列抽象为一个过程名和参数表;和参数表;数据抽象把一个数据对象的定义(或描述)抽象为一个数据数据抽象把一个数据对象的定义(或描述)抽象为一个数据类型名。类型名。软软 件件 工工 程程【例【例8.1】考虑适用于低级】考虑适用于低级CAD的图形软件包的图形软件包抽象抽象 该该CAD软件系统配有能与绘图员进行软件系统配有能与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工可视化通信的图形界面,能用鼠标代替绘图工具,画各种直线和曲线;能完成全部几何计算具,画各种直线和曲线;能完成全部几何计算以及全部截面视图和协助视图的设计。图形设以及全部截面视图和协助视图的设计。图形设计的结果存在图形文件中,图形文件可包含几计的结果存在图形文件中,图形文件可包含几何的、正文的和其他各种补充设计信息。何的、正文的和其他各种补充设计信息。自不待言,在这一抽象级别上,用问题域本自不待言,在这一抽象级别上,用问题域本身的术语来描述问题的解。身的术语来描述问题的解。软软 件件 工工 程程【例【例8.1】考虑适用于低级】考虑适用于低级CAD的图形软件包的图形软件包抽象抽象 CAD软件任务;软件任务;用户界面子任务;用户界面子任务;创建二维图形子任务;创建二维图形子任务;显示图形子任务;显示图形子任务;管理图形文件子任务;管理图形文件子任务;end CAD.在在这这一一抽抽象象级级别别上上,给给出出了了组组成成CAD软软件件任任务务的的全全部部主主要要子子任任务务,尽尽管管术术语语已已与与问问题题域域有有所不同,但仍旧不是实现所用的语言。所不同,但仍旧不是实现所用的语言。软软 件件 工工 程程【例【例8.1】考虑适用于低级】考虑适用于低级CAD的图形软件包的图形软件包抽象抽象(仅以(仅以“创建二维图形子任务创建二维图形子任务”为例)为例)PROCEDURE 创建二维图形创建二维图形 REPEAT UNTIL DO WHILE 数字仪接口任务;数字仪接口任务;推断作图恳求:推断作图恳求:线:画线任务;线:画线任务;圆:画圆任务;圆:画圆任务;END;软软 件件 工工 程程【例【例8.1】考虑适用于低级】考虑适用于低级CAD的图形软件包的图形软件包 DO WHILE 键盘接口任务;键盘接口任务;选择分析或计算:选择分析或计算:协助视图:协助视图任务;协助视图:协助视图任务;截面视图:截面视图任务;截面视图:截面视图任务;END;END REPEAT;END PROCEDURE.软软 件件 工工 程程【例【例8.1】考虑适用于低级】考虑适用于低级CAD的图形软件包的图形软件包在这一抽象级别上,给出了初步的过程性表示,在这一抽象级别上,给出了初步的过程性表示,此时全部术语都是面对软件(比如接受此时全部术语都是面对软件(比如接受do while结构)并且模块结构也起先明朗。求结构)并且模块结构也起先明朗。求精过程还可接着下去,直至产生源代码。精过程还可接着下去,直至产生源代码。软软 件件 工工 程程数据抽象数据抽象数数据据抽抽象象与与过过程程抽抽象象一一样样,能能使使设设计计者者按按不不同同的具体程度表示数据对象。的具体程度表示数据对象。仍仍以以CAD软软件件为为例例,我我们们可可定定义义一一个个称称为为drawing(图)的数据对象:(图)的数据对象:TYPE drawing IS STRUCTURE DEFINED number IS STRING LENTH(12);geometry DEFINED notes IS STRING LENTH(256);bom DEFINEDEND drawing TYPE;软软 件件 工工 程程数据抽象数据抽象在在此此,drawing被被表表示示为为一一种种结结构构,其其各各个个组组成成部部件件本本身身又又可可为为某某种种数数据据抽抽象象,比比如如geometry(几几何何图图形形)和和bom。一一旦旦抽抽象象数数据据类类型型drawing定定义义完完毕毕,即即可可用用类类型型名名干干脆脆说说明明数数据据对对象象,而而不不必必涉涉及及其其内内部部构构造造的的细细微微环环节节,例如,可用语句例如,可用语句:blueprint IS INSTANCE OF drawing;或或 schematic IS INSTANCE OF drawing;说明说明blueprint和和schematic具有具有drawing的一切特性。的一切特性。blueprint蓝图,蓝图,schematic简(略)图。简(略)图。软软 件件 工工 程程数据抽象数据抽象在抽象数据类型的定义中可以附加一组操作的在抽象数据类型的定义中可以附加一组操作的定义,用以确定在此类数据对象上可进行的操定义,用以确定在此类数据对象上可进行的操作。以抽象数据类型作。以抽象数据类型drawing为例,可以定义擦为例,可以定义擦除(除(erase)、存储()、存储(save)、分类()、分类(catalog)和)和拷贝(拷贝(copy)等操作。)等操作。很多程序设计语言都供应了对抽象数据类型的很多程序设计语言都供应了对抽象数据类型的支持,支持,Ada 的程序包机制是对数据抽象和过程的程序包机制是对数据抽象和过程抽象的双重支持抽象的双重支持 软软 件件 工工 程程逐步求精逐步求精关于关于“逐步求精逐步求精”,N.Wirth曾经做过如下说曾经做过如下说明:明:“我们应付困难问题的重要方法是抽象,因此,我们应付困难问题的重要方法是抽象,因此,对一个困难的问题不应当马上用计算机指令、对一个困难的问题不应当马上用计算机指令、数字和逻辑符号来表示,而应当用较自然的抽数字和逻辑符号来表示,而应当用较自然的抽象语言来表示,从而得出抽象程序。抽象程序象语言来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用某些合对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。对抽象适的记号(可能是自然语言)来表示。对抽象程序做进一步分解,进入下一个抽象层次,重程序做进一步分解,进入下一个抽象层次,重复这一精化过程直到程序能被计算机接受为止。复这一精化过程直到程序能被计算机接受为止。这时的程序可能是用某种高级语言或机器指令这时的程序可能是用某种高级语言或机器指令书写的。书写的。”软软 件件 工工 程程过程求精与数据求精过程求精与数据求精因因为为求求精精的的每每一一步步都都是是用用更更为为具具体体的的描描述述替替代代上上一一层层次次的的抽抽象象描描述述,所所以以在在整整个个设设计计过过程程中中产产生生的的,具具有有不不同同具具体体程程度度的的各各种种描描述述,组组成成了了系系统统的的层层次次结结构构。层层次次结结构构的的上上一一层层是是下下一一层的抽象,下一层是上一层的求精。层的抽象,下一层是上一层的求精。在在过过程程求求精精的的同同时时自自然然伴伴随随着着数数据据的的求求精精,无无论论是是过过程程还还是是数数据据,每每一一步步细细化化都都蕴蕴涵涵着着某某些些设设计计决决策策,因因此此设设计计人人员员必必需需驾驾驭驭一一些些基基本本的的准则,比较各种可能的候选方案。准则,比较各种可能的候选方案。软软 件件 工工 程程8.1.3 模块化与信息隐藏模块化与信息隐藏软软件件总总体体结结构构(下下一一节节探探讨讨)体体现现了了模模块块化化思思想想,即即把把软软件件划划分分为为可可独独立立命命名名和和编编制制的的部部件件,每每个个部部件件称称为为一一个个模模块块,当当把把全全部部模模块块组组装装到到一起时,便可获得满足问题须要的一个解。一起时,便可获得满足问题须要的一个解。“模模块块化化是是唯唯一一对对软软件件中中的的程程序序进进行行智智能能化化管管理的一个属性理的一个属性”。软软 件件 工工 程程8.1.3 模块化与信息隐藏模块化与信息隐藏假设:假设:函数函数C(X)问题问题X的困难性;的困难性;函数函数E(X)求解问题求解问题X须要花费的工作量(时间);须要花费的工作量(时间);对于问题对于问题P1和和P2,假如,假如:C(P1)C(P2)则有则有:E(P1)E(P2)结论:解决一个困难问题总比解决一个简洁问题耗费结论:解决一个困难问题总比解决一个简洁问题耗费 更多的工作量。更多的工作量。同时同时 有:有:C(P1+P2)C(P1)+C(P2)结论:由结论:由P1、P2组合而成的问题的困难性往往比考虑组合而成的问题的困难性往往比考虑 单个问题困难性的和更大。单个问题困难性的和更大。于是有:于是有:E(P1+P2)E(P1)+E(P2)软软 件件 工工 程程8.1.3 模块化与信息隐藏模块化与信息隐藏图图8-1-2 模块与软件耗费模块与软件耗费最小成本最小成本区域区域MO软件总成本软件总成本用于接口的成本用于接口的成本每个模块成本之和每个模块成本之和模块总数模块总数成本或成本或工作量工作量 软软 件件 工工 程程1 1信息隐藏信息隐藏信息隐藏原理告知我们,模块应当设计得使其信息隐藏原理告知我们,模块应当设计得使其所含信息(过程和数据)对于那些不须要这些所含信息(过程和数据)对于那些不须要这些信息的模块不行访问;每个模块只完成一个相信息的模块不行访问;每个模块只完成一个相对独立的特定功能;模块之间仅仅交换那些为对独立的特定功能;模块之间仅仅交换那些为完成系统功能必需交换的信息,即模块应当独完成系统功能必需交换的信息,即模块应当独立。明显,模块独立的概念是模块化、抽象、立。明显,模块独立的概念是模块化、抽象、信息隐藏和局部化等诸多概念的干脆结果。信息隐藏和局部化等诸多概念的干脆结果。软软 件件 工工 程程信息隐藏原理的好处信息隐藏原理的好处它不仅支持模块的并行开发,而且还可削减测它不仅支持模块的并行开发,而且还可削减测试和后期维护的工作量。因为测试和维护阶段试和后期维护的工作量。因为测试和维护阶段不行避开地要修改设计和代码,模块对大多数不行避开地要修改设计和代码,模块对大多数数据和过程处理细微环节的隐藏可以削减错误数据和过程处理细微环节的隐藏可以削减错误向外传播。此外,整个系统欲扩充功能亦只需向外传播。此外,整个系统欲扩充功能亦只需“插入插入”新模块,原有的多数模块无须改动。新模块,原有的多数模块无须改动。软软 件件 工工 程程2 2内聚度(内聚度(cohesioncohesion)内聚度是前述信息隐藏和局部化概念的自然扩内聚度是前述信息隐藏和局部化概念的自然扩展,它标记一个模块内部各成分彼此结合的紧展,它标记一个模块内部各成分彼此结合的紧密程度。密程度。内聚度按其凹凸程度可分为七级,内聚度越高内聚度按其凹凸程度可分为七级,内聚度越高越好。越好。软软 件件 工工 程程1 1)偶然性内聚)偶然性内聚低级内聚低级内聚偶然性内聚(偶然性内聚(coincidental cohesion)。是指一个模块内各成分)。是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。常见的偶然性内聚情形是,当程序员写完一个程序后很松散。常见的偶然性内聚情形是,当程序员写完一个程序后发觉有一组语句多处出现,于是为节约内存便将这组语句单独发觉有一组语句多处出现,于是为节约内存便将这组语句单独组成一个模块。组成一个模块。XYZW 软软 件件 工工 程程2 2)逻辑性内聚)逻辑性内聚低级内聚低级内聚假如一个模块完成的诸任务逻辑上相关,则称之为逻假如一个模块完成的诸任务逻辑上相关,则称之为逻辑性内聚(辑性内聚(logical cohesion)例如:一个模块产生全部与类型无关的输出,即为逻例如:一个模块产生全部与类型无关的输出,即为逻辑性内聚。辑性内聚。又如:模块又如:模块X、Y分别调用分别调用A、B,A、B相像,将其合相像,将其合并为模块并为模块AB,模块,模块AB即为逻辑性内聚。即为逻辑性内聚。XYSABXYSAB 软软 件件 工工 程程3)时间性内聚时间性内聚低级内聚低级内聚假如一个模块包含的诸任务必需在同一时间段假如一个模块包含的诸任务必需在同一时间段内执行(例如一个初始化模块),则称之为时内执行(例如一个初始化模块),则称之为时间性内聚(间性内聚(temporal cohesiontemporal cohesion)。)。以上三种内聚形式通常认为是低级内聚。以上三种内聚形式通常认为是低级内聚。软软 件件 工工 程程4 4)过程性内聚)过程性内聚中级内聚中级内聚过程性内聚(过程性内聚(procedural cohesion)模块的过程性内聚度是指,模块内成分彼此相模块的过程性内聚度是指,模块内成分彼此相关,并且必需按特定的次序执行;关,并且必需按特定的次序执行;过程内聚模块的各组成功能由限制流联结在一过程内聚模块的各组成功能由限制流联结在一起。起。软软 件件 工工 程程5 5)通信性内聚度)通信性内聚度中级内聚中级内聚通信性内聚(通信性内聚(communicational cohesion)。)。模块的通信性内聚度是指,模块中各成分都将对数模块的通信性内聚度是指,模块中各成分都将对数据结构的同一区域进行操作,以达到通信的目的。据结构的同一区域进行操作,以达到通信的目的。例如,模块例如,模块A的处理单元是由同一数据文件的数据的处理单元是由同一数据文件的数据产生不同的表格产生不同的表格模块模块A从文件从文件FILE读出数据读出数据1.由数据产生报表一由数据产生报表一2.由数据产生报表二由数据产生报表二 软软 件件 工工 程程6 6)依次性内聚)依次性内聚 高级内聚高级内聚依次性内聚(依次性内聚(sequential cohesion)。假如一个模块内的各处理成分均与同一功能相假如一个模块内的各处理成分均与同一功能相关,且这些处理必需依次执行,则称依次内聚;关,且这些处理必需依次执行,则称依次内聚;通常,一个处理成分的输出是另一个处理成分通常,一个处理成分的输出是另一个处理成分的输入。例如:的输入。例如:1.输入系数输入系数2.求方程的根求方程的根3.打印方程的根打印方程的根求一元二次方程求一元二次方程根的模块根的模块 软软 件件 工工 程程7 7)功能性内聚)功能性内聚高级内聚高级内聚功能性内聚(功能性内聚(functional cohesion)。)。假如模块内全部成分形成一个整体,完成单个假如模块内全部成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程度的功能,则称功能内聚,功能内聚是最高程度的内聚形式。内聚形式。例如,一个模块仅完成一个矩阵的输出,就是例如,一个模块仅完成一个矩阵的输出,就是一个具有功能性内聚的模块。一个具有功能性内聚的模块。设计软件时,应当能够识别内聚度的凹凸,并设计软件时,应当能够识别内聚度的凹凸,并通过修改设计尽可能提高模块内聚度,从而获通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。得较高的模块独立性。软软 件件 工工 程程3 3耦合度耦合度耦合度是对软件结构中模块间关联程度的一种度量。耦合度是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的困难性、进入或调用模块耦合的强弱取决于模块间接口的困难性、进入或调用模块的位置以及通过界面传送数据的多少等。的位置以及通过界面传送数据的多少等。与内聚度正好相反,在设计软件时应追求尽可能松散耦合与内聚度正好相反,在设计软件时应追求尽可能松散耦合的系统。因为对这类系统中任一模块的设计、测试和维护的系统。因为对这类系统中任一模块的设计、测试和维护相对独立。由于模块间联系较少,错误在模块间传播的可相对独立。由于模块间联系较少,错误在模块间传播的可能性也随之变小。能性也随之变小。模块间的耦合程度干脆影响系统的可理解性、可测试性、模块间的耦合程度干脆影响系统的可理解性、可测试性、牢靠性和可维护性。牢靠性和可维护性。耦合度也可以分为七级耦合度也可以分为七级 软软 件件 工工 程程1 1)非干脆耦合)非干脆耦合最松散的耦合最松散的耦合耦合度也可以分为七级:耦合度也可以分为七级:假如两模块中任一个都不依靠于对方能独立工假如两模块中任一个都不依靠于对方能独立工作,则称这两模块为(作,则称这两模块为(nodirect couplingnodirect coupling),),这类耦合度最低。例如:这类耦合度最低。例如:XYAB无关系无关系 软软 件件 工工 程程2 2)数据耦合)数据耦合数据耦合(数据耦合(data couplingdata coupling)假如两模块间通过参数交换信息,而信息仅限假如两模块间通过参数交换信息,而信息仅限于数据,则称这两模块为数据耦合。一般软件于数据,则称这两模块为数据耦合。一般软件系统中都存在数据耦合,它是完成大多数功能系统中都存在数据耦合,它是完成大多数功能所必需的。例如:所必需的。例如:AB通过参数通过参数传递数据传递数据 软软 件件 工工 程程3 3)特征耦合)特征耦合特征耦合(特征耦合(stamp coupling)介于数据耦合和限制耦合之间的是特征耦介于数据耦合和限制耦合之间的是特征耦合(合(stamp coupling)。例如,传递了求平)。例如,传递了求平均成果以外的参数:均成果以外的参数:producereport cardscalculateaverage printreport cardstudengt recordaverragestudengt recordaverrage 软软 件件 工工 程程4 4)限制耦合)限制耦合限制耦合(限制耦合(control coupling)。)。假如两模块间通过参数交换信息,此时若传递假如两模块间通过参数交换信息,此时若传递的信息中含有限制信息,则耦合度上升为限制的信息中含有限制信息,则耦合度上升为限制耦合。限制耦合通常会增加系统的困难性,有耦合。限制耦合通常会增加系统的困难性,有时适当分解模块可消退限制耦合。时适当分解模块可消退限制耦合。软软 件件 工工 程程5 5)外部耦合)外部耦合外部耦合(外部耦合(external coupling)。)。当若干模块均与同一个外部环境关联(例如,当若干模块均与同一个外部环境关联(例如,I/O处理使全部处理使全部I/O模块与特定的设备、格式和模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合。通信协议相关联),它们之间便存在外部耦合。外部耦合尽管须要,但应限制在少数几个模块外部耦合尽管须要,但应限制在少数几个模块上。上。软软 件件 工工 程程6 6)公共耦合)公共耦合公共耦合(公共耦合(common couplingcommon coupling)当若干模块通过全局的数据环境相互作用时,当若干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。全局数据环境中可能它们之间存在公共耦合。全局数据环境中可能含有全局变量、公用区、内存公共覆盖区、任含有全局变量、公用区、内存公共覆盖区、任何存储介质上的文件、物理设备等何存储介质上的文件、物理设备等。软软 件件 工工 程程7 7)内容耦合)内容耦合内容耦合(内容耦合(content coupling)。)。最高耦合度是内容耦合,出现内容耦合的情形最高耦合度是内容耦合,出现内容耦合的情形包括:当一个模块运用另一个模块内部的数据包括:当一个模块运用另一个模块内部的数据或限制信息;一个模块干脆转移到另一个模块或限制信息;一个模块干脆转移到另一个模块内部,等等。内部,等等。软软 件件 工工 程程8.1.3 8.1.3 模块化与信息隐藏模块化与信息隐藏一般来说,设计软件时应尽量运用数据耦合,一般来说,设计软件时应尽量运用数据耦合,削减限制耦合,限制外部环境耦合和公共数据削减限制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。耦合,杜绝内容耦合。值得指出,模块化设计的思想适用于任何软件值得指出,模块化设计的思想适用于任何软件系统的设计。当某些软件系统(照实时软件等)系统的设计。当某些软件系统(照实时软件等),因不能容忍子程序调用引起的时间开销而必,因不能容忍子程序调用引起的时间开销而必需以整块软件的形式出现时,软件设计仍旧应需以整块软件的形式出现时,软件设计仍旧应当以模块化设计的思想为指导,直至编码时再当以模块化设计的思想为指导,直至编码时再改用代入式(改用代入式(in line)方法。这样,源程序中)方法。这样,源程序中虽不含明显的模块,但模块化设计所带来的大虽不含明显的模块,但模块化设计所带来的大部分好处却已被系统获得。部分好处却已被系统获得。软软 件件 工工 程程教学目的:理解软件设计的概念,驾驭几种设计技术教学目的:理解软件设计的概念,驾驭几种设计技术和工具,了解设计规格说明和评审。和工具,了解设计规格说明和评审。教学重点:几种设计技术和工具。教学重点:几种设计技术和工具。教学难点:教学难点:判定表。判定表。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:教学题目教学题目 8.1.48.1.6,8.2,8.3 软软 件件 工工 程程8.1.4 8.1.4 软件总体结构设计软件总体结构设计软件总体结构(软件总体结构(software architecture)应当包)应当包括两方面内容:括两方面内容:1)由系统中全部过程性部件(即模块)由系统中全部过程性部件(即模块)构成的层次结构,即程序结构;构成的层次结构,即程序结构;2)对应于程序结构的输入输出数据结构。对应于程序结构的输入输出数据结构。软件总体结构设计的目标就是产生一个模块化软件总体结构设计的目标就是产生一个模块化的程序结构并明确各模块之间的限制关系,此的程序结构并明确各模块之间的限制关系,此外还要通过定义界面,说明程序的输入输出数外还要通过定义界面,说明程序的输入输出数据流,进一步协调程序结构和数据结构。据流,进一步协调程序结构和数据结构。软软 件件 工工 程程8.1.4 8.1.4 软件总体结构设计软件总体结构设计软件总体结构(软件总体结构(software architecture)应当包)应当包括两方面内容:括两方面内容:1)由系统中全部过程性部件(即模块)由系统中全部过程性部件(即模块)构成的层次结构,即程序结构;构成的层次结构,即程序结构;2)对应于程序结构的输入输出数据结构。对应于程序结构的输入输出数据结构。软件总体结构设计的目标就是产生一个模块化软件总体结构设计的目标就是产生一个模块化的程序结构并明确各模块之间的限制关系,此的程序结构并明确各模块之间的限制关系,此外还要通过定义界面,说明程序的输入输出数外还要通过定义界面,说明程序的输入输出数据流,进一步协调程序结构和数据结构。据流,进一步协调程序结构和数据结构。软软 件件 工工 程程1.1.结构演化结构演化图图8-1-3 8-1-3 结构演化结构演化软软件件“解解”S1S4S2待待解解问问题题S3P1 P2P4P3 软软 件件 工工 程程2.2.同一个同一个“问题问题”的多种软件的多种软件解解图图8-1-4 对应于同一问题的各种软件结构对应于同一问题的各种软件结构问题问题P结构结构1结构结构2结构结构3M1M2M3M4M1M2M3M4M1M2M3M4MMM 软软 件件 工工 程程3.表示程序结构的工具表示程序结构的工具类树图(类树图(tree like diagram)Warnier Orr图图Jackson图图最常见的是如图最常见的是如图8-1-5所示的类树图。为便于探所示的类树图。为便于探讨,下面定义几个有关的术语和度量。讨,下面定义几个有关的术语和度量。软软 件件 工工 程程4.4.有关程序结构的术语有关程序结构的术语图图8-1-5 有关程序结构的术语有关程序结构的术语Mabcdemfgihopqrntjks扇出扇出扇入扇入宽度宽度深度深度 软软 件件 工工 程程4.有关程序结构的术语有关程序结构的术语一个软件的深度(一个软件的深度(depth)限制的层数;限制的层数;一个软件的宽度(一个软件的宽度(width)其限制的层数和跨其限制的层数和跨度;度;一个模块的一个模块的“扇出数扇出数”(fan out)该模块干该模块干脆限制的其他模块数;脆限制的其他模块数;一个模块的一个模块的“扇入数扇入数”(fan in)指能干脆限制)指能干脆限制该模块的模块数。该模块的模块数。软软 件件 工工 程程4.有关程序结构的术语有关程序结构的术语假如一个模块限制另一个模块,称前者为假如一个模块限制另一个模块,称前者为“主控主控”模块,后者为模块,后者为“从属从属”模块。在图模块。在图8-1-5中模块中模块M主主控模块控模块a、b、c,模块,模块d从属模块从属模块a,因此也从属,因此也从属M。此外,软件结构中还有两个重要的特性,即可见域此外,软件结构中还有两个重要的特性,即可见域和连通域。和连通域。模块的可见域模块的可见域该模块可干脆或间接引用该模块可干脆或间接引用 的一组模块;的一组模块;模块的连通域模块的连通域仅包括该模块可干脆引用仅包括该模块可干脆引用 的模块。的模块。软软 件件 工工 程程8.1.5 数据结构设计数据结构设计数据结构描述各数据重量之间的逻辑关系,数数据结构描述各数据重量之间的逻辑关系,数据结构一经确定,数据的组织形式、访问方法、据结构一经确定,数据的组织形式、访问方法、组合程度及处理策略等随之而定,所以数据结组合程度及处理策略等随之而定,所以数据结构是影响软件总体结构的重要因素。构是影响软件总体结构的重要因素。数据结构与程序结构一样,也可以在不同的抽数据结构与程序结构一样,也可以在不同的抽象级别上表示。以栈为例,作为一个抽象数据象级别上表示。以栈为例,作为一个抽象数据类型,在概念级上只关切类型,在概念级上只关切“先进后出先进后出”特性,特性,而在实现级上则要考虑物理表示及内部工作的而在实现级上则要考虑物理表示及内部工作的细微环节,比如,用向量实现,或用链表实现细微环节,比如,用向量实现,或用链表实现等。等。软软 件件 工工 程程8.1.5 8.1.5 数据结构设计数据结构设计数据结构对程序结构和过程困难性有干脆的影响,从数据结构对程序结构和过程困难性有干脆的影响,从而在很大程度上确定了软件的质量。而在很大程度上确定了软件的质量。数据设计的目标是为在需求规格说明中定义的那些数数据设计的目标是为在需求规格说明中定义的那些数据对象选择合适的逻辑表示,并确定可能作用在这些据对象选择合适的逻辑表示,并确定可能作用在这些逻辑结构上的全部操作(包括选用已存在的程序包)。逻辑结构上的全部操作(包括选用已存在的程序包)。数据抽象和信息隐藏两个概念是数据设计的基础。数据抽象和信息隐藏两个概念是数据设计的基础。通常,数据设计方案不是唯一的,有时需进行算法困通常,数据设计方案不是唯一的,有时需进行算法困难性分析、综合各种因素之后才能从多种候选方案中难性分析、综合各种因素之后才能从多种候选方案中筛选出最佳的设计方案。筛选出最佳的设计方案。软软 件件 工工 程程8.1.6 软件过程设计软件过程设计过程设计紧跟在数据结构和程序结构设计之后,其基过程设计紧跟在数据结构和程序结构设计之后,其基本任务是描述模块内各处理元素和推断元素的依次,本任务是描述模块内各处理元素和推断元素的依次,图图8-1-6展示了模块展示了模块B的内部过程。的内部过程。过程说明过程说明图图8-1-6 模块模块B的内部结构的内部结构模块模块B 模块模块B程序结构程序结构 软软 件件 工工 程程8.1.6 8.1.6 软件过程设计软件过程设计所谓过程,应包括有关处理的精确说明,诸如所谓过程,应包括有关处理的精确说明,诸如事务的依次、推断的位置和条件、循环操作以事务的依次、推断的位置和条件、循环操作以及数据的组成,内部变量和外部变量的引用问及数据的组成,内部变量和外部变量的引用问题等等。题等等。过程设计也应遵循过程设计也应遵循“自上而下,逐步求精自上而下,逐步求精”的的原则和单入口单出口的结构化设计思想。原则和单入口单出口的结构化设计思想。过程设计的任务是描述算法的细微环节。结构过程设计的任务是描述算法的细微环节。结构化程序流程图、盒图(化程序流程图、盒图(N-S图)、判定表和判定图)、判定表和判定树,以及过程设计语言(树,以及过程设计语言(PDL)、)、PAD图等是人图等是人们常常运用的工具。们常常运用的工具。软软 件件 工工 程程8.2 软件过程设计技术和工具软件过程设计技术和工具 8.2.1 结构化程序设计结构化程序设计 结构化程序设计定义:是程序设计技术,它接受自顶结构化程序设计定义:是程序设计技术,它接受自顶向下逐步求精的设计方法和单入口单出口的限制构件。向下逐步求精的设计方法和单入口单出口的限制构件。结构化程序设计的思想,应当在软件设计中体现出来,结构化程序设计的思想,应当在软件设计中体现出来,但这并不解除为效率或其他缘由对结构化程序设计作但这并不解除为效率或其他缘由对结构化程序设计作一点修正。随着面对对象、软件重用等新的软件开发一点修正。随着面对对象、软件重用等新的软件开发方法和技术的发展,更现实、更有效的开发途径可能方法和技术的发展,更现实、更有效的开发途径可能是自顶向下和自底向上两种方法有机地结合。是自顶向下和自底向上两种方法有机地结合。软软 件件 工工 程程8.2.2 图形表示法图形表示法1流程图(也称为程序框图)是最常用的一种表示法,流程图(也称为程序框图)是最常用的一种表示法,“依次依次”、“分支分支”和和“循环循环”三个基本限制构件用三个基本限制构件用流程图表达的形式如图流程图表达的形式如图8-2-1所示。所示。F其次个任务其次个任务依次结构依次结构then部分部分else部分部分do while循环循环第一个任务第一个任务T分支条件分支条件If then else结构结构循环条件循环条件循环体循环体TF图图8-2-1 流程图构件流程图构件 软软 件件 工工 程程8.2.2 图形表示法图形表示法2盒图也称为盒图也称为N-S图或图或Chapin图。这种表达方式图。这种表达方式取消了流程线,它强迫程序员以结构化方式思取消了流程线,它强迫程序员以结构化方式思索和解决问题。索和解决问题。第一个任务第一个任务其次个任务其次个任务第三个任务第三个任务依次结构依次结构else部分部分then部分部分条件条件FTif-then-else结构结构do-while部分部分循环条件循环条件循环结

    注意事项

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

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




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

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

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

    收起
    展开