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

    第四章 软件设计概述2014简化版.ppt

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

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

    第四章 软件设计概述2014简化版.ppt

    第四章第四章 软件设计概述软件设计概述4.1 4.1 软件设计的任务软件设计的任务4.24.2软件设计的基本原理概念软件设计的基本原理概念4.34.3模块化设计模块化设计4.3.1分解和模块化4.3.2模块独立性内聚耦合 需求分析:对目标系统的数据、功能和行为建模需求分析:对目标系统的数据、功能和行为建模v设计:把分析阶段的需求说明转换成设计文档。设计:把分析阶段的需求说明转换成设计文档。根据设计结果可进行下一步的编制代码工作了根据设计结果可进行下一步的编制代码工作了 将需求将需求 软件的表现形式软件的表现形式v输出文档:输出文档:软件设计文档软件设计文档v两种主流设计方法:两种主流设计方法:结构化软件设计结构化软件设计面向对象的软件设计面向对象的软件设计4.1 4.1 软件设计的阶段和任务软件设计的阶段和任务v两阶段四任务:两阶段四任务:概要设计文档概要设计文档详细设计文档详细设计文档详细设计详细设计(4.过程设计过程设计详细设计每个模块的算法和数据结构详细设计每个模块的算法和数据结构)概要设计概要设计(总体设计总体设计根据需求确定软件和数据总体框架根据需求确定软件和数据总体框架1.总体结构设计(体系结构总体结构设计(体系结构设计)设计)2.数据设计数据设计3.接口设计接口设计 4.24.2软件设计的基本概念软件设计的基本概念1)1)模块(模块(modulemodule)与构件与构件(component)(component)模块:定义输入、输出和特性的程序实体模块:定义输入、输出和特性的程序实体构件:可重复使用的软件组件构件:可重复使用的软件组件2)2)抽象(抽象(abstractabstract)与细化与细化(refinement)(refinement)抽象:分层次考虑和处理问题抽象:分层次考虑和处理问题(数据和过程数据和过程)细化:从高到低的逐步分解过程细化:从高到低的逐步分解过程3)3)信息隐藏信息隐藏对其它模块隐藏模块内部的数据和过程对其它模块隐藏模块内部的数据和过程一个模块内部(信息数据和过程)对于不需要了解这些信息的模一个模块内部(信息数据和过程)对于不需要了解这些信息的模块来说,是不能访问的块来说,是不能访问的只有为了完成软件的总体功能而必须在模块间交换的信息,才容只有为了完成软件的总体功能而必须在模块间交换的信息,才容许在模块间交换许在模块间交换4 4)软件复用)软件复用充分利用已有的现成构件,不必一切从头开始充分利用已有的现成构件,不必一切从头开始Design with reuse,design for reuse4.34.3模块化设计模块化设计(module design)(module design)4.3.14.3.1模块化模块化4.3.24.3.2分解(分解(decompositiondecomposition)4.3.34.3.3模块独立性(模块独立性(module independencemodule independence)4.3.44.3.4自顶向下(自顶向下(topdown design)自底向上(自底向上(bottomup design)4.3.14.3.1模块模块modulemodulev模块化:模块化:把大型软件划分成一个个小的,相对独立又互相关联把大型软件划分成一个个小的,相对独立又互相关联的模块的模块每个模块完成一个子功能,这些模块集成起来就是构每个模块完成一个子功能,这些模块集成起来就是构成一个整体成一个整体v模块:模块:一个由编辑元素限定的,拥有明确定义的输入,输出特生的程序实体v分解分解v模块化模块化4.3.24.3.2分解分解PartitioningPartitioningv启发:启发:将一个复杂问题分解为几个小问题,减少问题复杂度将一个复杂问题分解为几个小问题,减少问题复杂度v问题的复杂度:问题的复杂度:C(PC(P1 1+P+P2 2)C(P)C(P1 1)+C(P)+C(P2 2)v解题需要的工作量:解题需要的工作量:E(P1+PE(P1+P2 2)E(P)E(P1 1)+E(P)+E(P2 2)v无限制的分解问题,工作量是否越来越小?无限制的分解问题,工作量是否越来越小?模块数模块数接口成本接口成本最小成本区最小成本区M软软件件开开发发工工作作量量总成本总成本模块成本模块成本n解决:权衡合理分解模块!P1P2v分解分为两个方向分解分为两个方向水平分解(水平分解(Horizontal partitioning)垂直分解(垂直分解(Vertical partitioning)模块模块 2 22.12.12.22.2模块模块 1 11.21.21.11.11.31.3模块模块 3 33.13.13.23.2主控模块水平分解垂直分解“Worker”modulesDecisionmakingmodules4.3.24.3.2模块独立性模块独立性module independencemodule independencev模块独立性模块独立性模块分解所必须遵循的准则!模块分解所必须遵循的准则!v内涵:内涵:设计软件结构时,使每个模块具有一个相对独立的子设计软件结构时,使每个模块具有一个相对独立的子功能功能且与其他模块没有过多联系且与其他模块没有过多联系v模块独立性的度量模块独立性的度量内聚(cohesion)模块内部各成分之间的联系耦合(coupling)模块与其它模块间的联系v模块的独立性高模块的独立性高 高内聚,低耦合块内联系强 块间联系弱(一一)内聚内聚弱 强低内聚低内聚 中内聚中内聚 高内聚高内聚 偶然偶然性内性内聚聚逻辑逻辑性内性内聚聚时间时间性内性内聚聚过程过程性内性内聚聚通信通信性内性内聚聚顺序顺序性内性内聚聚功能功能性内性内聚聚n内聚度:模块内部各成分彼此结合的紧密程度。n内聚度按其高低程度可分为七级,内聚度越高越好。(a a)低级内聚度低级内聚度1)1)偶然性内聚偶然性内聚(Coincidental Cohesion)(Coincidental Cohesion)。模模块块内内各各成成分分为为完完成成一一组组功功能能而而组组合合在在一一起起,它它们相互之间即使有关系们相互之间即使有关系,也很松散。也很松散。例例2)2)逻辑性内聚逻辑性内聚(Logical Cohesion)(Logical Cohesion)把几种相关的或功能相似的成分组成一个把几种相关的或功能相似的成分组成一个模块模块每每次次调调用用时时,由由传传送送给给模模块块的的判判定定参参数数来来确确定定模模块应执行那种功能块应执行那种功能 例例3)3)时间性内聚时间性内聚(Temporal Cohesion)(Temporal Cohesion)模模块块包包含含的的诸诸任任务务必必须须在在同同一一时时间间段段内内执执行行,如如一个初始化模块一个初始化模块,终止模块,终止模块下一级例:偶然性内聚模块例:偶然性内聚模块 ARead a;b=b+1;BRead a;b=b+1;CRead a;b=b+1;MRead a;b=b+1;返回例例:逻辑性内聚模块逻辑性内聚模块 读入分数读入分数平平均均/最最高高?计算平均分计算平均分计算最高分计算最高分输出结果输出结果模块模块A参数选择参数选择(平均平均/最高最高)返回(b b)中级内聚度中级内聚度(4 4)过程性内聚过程性内聚(Procedural Cohesion)(Procedural Cohesion)模模块块具具有有过过程程性性内内聚聚度度指指,模模块块内内成成分分彼彼此此相相关关,并且必须按特定的次序执行并且必须按特定的次序执行;(5 5)通信性内聚通信性内聚(Communicational Cohesion)(Communicational Cohesion)模模块块中中各各成成份份都都将将对对数数据据结结构构的的同同一一区区域域进进行行操作操作,以达到通信的目的。以达到通信的目的。例例 过程化内聚模块过程化内聚模块例例 通信内聚模块通信内聚模块(c c)高级内聚度高级内聚度(6 6)顺序性内聚顺序性内聚(Sequential Cohesion)(Sequential Cohesion)模块内的各处理成份均与模块内的各处理成份均与同一功能同一功能相关相关且这些处理必须且这些处理必须顺序执行顺序执行,则称顺序内聚则称顺序内聚。(7 7)功能性内聚功能性内聚(Functional Cohesion)(Functional Cohesion)模块内所有成分形成一个整体模块内所有成分形成一个整体,完成单个功能完成单个功能。模块各成分紧密联系,不可分割!模块各成分紧密联系,不可分割!如:求平方根如:求平方根设设计计软软件件时时,应应识识别别内内聚聚度度的的高高低低,并并通通过过修修改改设设计计尽可能提高模块内聚度尽可能提高模块内聚度,从而获得较高的模块独立性从而获得较高的模块独立性高内聚,低耦合,一个模块,一个功能!高内聚,低耦合,一个模块,一个功能!(二)耦合(二)耦合 couplingcouplingv耦合度耦合度:软件结构中模块间关联程度的一种度量。软件结构中模块间关联程度的一种度量。v耦耦合合的的强强弱弱取取决决于于模模块块间间接接口口的的复复杂杂性性、进进入入或或调调用用模模块块的位置以及通过界面传送数据的多少等的位置以及通过界面传送数据的多少等。弱 强 弱耦合弱耦合 中耦合中耦合 较强耦合较强耦合 强耦合强耦合非直非直接耦接耦合合数据数据耦合耦合特征特征耦合耦合控制控制耦合耦合外部外部耦合耦合公共公共耦合耦合内容内容耦合耦合(a a)弱耦合弱耦合()非直接耦合非直接耦合(NodirectNodirect Coupling)Coupling)两两模模块块中中任任一一个个都都不不依依赖赖对对方方能能独独立立工工作作,这这类耦合度最低。类耦合度最低。()()数据耦合数据耦合(Data Coupling)(Data Coupling)两模块通过参数交换信息两模块通过参数交换信息,信息仅限于数据信息仅限于数据。(3 3)特征耦合特征耦合(Stamp Coupling)(Stamp Coupling)。两模块交换两模块交换的参数是数据结构的参数是数据结构例:弱耦合例:弱耦合数据耦合非直接耦合模块2模块1模块4模块3特征耦合(参数表传递数据结构)(2 2)中耦合)中耦合()()控制耦合控制耦合(Control Coupling)(Control Coupling)传传递递的的信信息息含含有有控控制制信信息息。控控制制耦耦合合通通常常会会增增加加系系统统的的复复杂杂性性,适适当当分分解解模模块块可可望望消消除除控控制制耦合耦合Aflag计算平均分计算最高分输出结果BFlag(c c)强耦合强耦合()()外部耦合外部耦合(External Coupling)(External Coupling)当若干模块当若干模块同一个同一个全局全局变量变量外部耦合尽管需要外部耦合尽管需要,但应限制在少数几个模块上。但应限制在少数几个模块上。()()公共耦合公共耦合(Common Coupling)(Common Coupling)若干模块若干模块访问统一公共数据环境访问统一公共数据环境全全局局数数据据环环境境中中(可可能能含含有有全全局局变变量量、公公用用区区、内内存存公公共共复复盖盖区区、任任何何存存储储介介质质上上的的文文件件、物物理理设设备备等等)。例例()()内容耦合内容耦合(Content Coupling)(Content Coupling)一一个个模模块块使使用用另另 一一模模块块内内部部的的数数据据或或控控制制信信息息;一一个个模块直接转移到另一模块内部等等。模块直接转移到另一模块内部等等。GOTOGOTO语句语句设设计计软软件件时时应应尽尽量量使使用用数数据据耦耦合合,减减少少控控制制耦耦合合,限限制外部环境耦合和公共数据耦合制外部环境耦合和公共数据耦合,杜绝内容耦合。杜绝内容耦合。例:公共耦合例:公共耦合

    注意事项

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

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




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

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

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

    收起
    展开