欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第五章总体设计Word文件下载.docx

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

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

    第五章总体设计Word文件下载.docx

    1、(4) 功能分解,从实现的角度细化逻辑模型 P10(5) 设计软件结构 P11(6) 设计数据库 P12(7) 制定测试计划 P12(8) 书写文档 P1314(9) 审查和复审 P14三、模块化设计原理是软件设计过程中应遵循的基本原理和相关概念。包括:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。1、模块与模块化模块是软件中可独立命名和编制的部件,每个部件称为一个模块,当把所有模块组装到一起时,便可获得满足问题需要的一个解。按照模块的定义,过程、函数、子程序和宏等,都可作为模块。面向对象方法学中的对象是模块,对象内的方法(或称为服务)也是模块。模块是构成程序的基本构件。模块化就是把程序

    2、划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。 模块化的依据:C(P1+P2) C(P1)+C(P2); E(P1+P2) E(P1)+E(P2)C为问题的复杂度,E为解题需要的工作量。P16这个不等式导致“各个击破”的结论-把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。 模块化与软件成本: P18P19 导致一个结论:应该模块化,但不能过分模块化。 模块间关系:层次关系、通信关系-软件结构是模块化的和分层次的层次关系通信关系2、抽象与逐步求精抽象就是抽出事物的本质特性(共性

    3、),而暂时不考虑它们的细节。抽象是人类认识复杂现象和解决复杂问题时使用的思维方法,是控制复杂性的基本策略。抽象要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。 抽象的特点 P22(1) 忽略细节和差异 (2) 分层理解问题 (3) 自顶向下分解模块逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略。按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次结构而设计出来的。通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。 软件工程过程的每一步都是对软件解法的抽象层次的一次精化;P23 随着软件开发工程的推进,在软件结构

    4、每一层中的模块,表示了对软件抽象层次的一次精化。抽象与求精是一对互补的概念。抽象代表有些细节放到更底的层次去考虑;求精代表在设计过程中低层逐步揭示出其高层的细节。抽象使得设计者能够简要说明过程和数据,同时忽略低层细节;求精则帮助设计者在设计过程中逐步揭示出低层细节。-在软件设计中,我们在一层的模块中考虑软件设计的一些细节,而将另一部分软件细节放到更底的层次去考虑3、信息隐藏与局部化 信息隐藏(细节隐藏)(1) 信息隐藏原理指出:设计和确定模块时,应使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的;(2) 模块对其它模块隐藏模块内部的数据和过程,独立模块间仅仅交换

    5、为完成系统功能而必须交换的信息;(3) 提高模块的独立性,减少修改或维护时的影响面 局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。-软件模块设计时信息隐藏很重要。4、模块的独立性模块的独立性是指软件系统中每个模块完成一个相对独立的子功能,并且与其他模块之间关系很简单。独立的模块(1)比较容易开发,(2)比较容易维护。因此在设计软件结构时,应充分考虑模块的独立性。模块独立性的衡量指标是耦合和内聚: 耦合(Coupling):是对软件结构内不同模块之间相互关联程度的强弱的度量。它取决于各个模块之间接口的复杂程度、调

    6、用模块的方式以及哪些信息通过接口传递。模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。在设计软件时应追求尽可能松散耦合的系统。如果模块间联系较少,错误在模块间传播的可能性也随之变小。 耦合度可以分为若干级别:(1) 非直接耦合-两个模块没有直接关系(如模块1和模块2),每一个都能独立地工作而不需要另一个模块的存在。非直接耦合两个模块间的独立性最强。非直接耦合(2) 数据耦合-两个模块彼此间通过参数交换信息,而且交换的信息仅仅是简单的数据。这属于松散耦合。(3) 标记耦合-两个模块通过传递数据结构参数加以联系(不是简单数据,而是记录、数组等),或都与一个数据结构有关系, 则称

    7、这两个模块间存在标记偶合。 数据耦合 标记耦合(4) 特征耦合-把整个数据结构作为参数传递,而被调用的模块只需要使用其中一部分数据元素。P37(5) 控制耦合-一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能。控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。去除模块间控制耦合的方法:a.将被调用模块内的判定上移到调用模块中进行b.被调用模块分解成若干单一功能模块控制耦合 公共环境耦合(6) 外部耦合-一组模块都访问同一全局简单变量,而且不是通过参数传递该全局变量的信息。(7) 公共环境耦合-两个或多个模块通过一个公共数据环境相互作用

    8、。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等等。P37-38公共环境偶合必不可少,但耦合模块的数目应尽量少。(8) 内容耦合-P39内容耦合 模块化设计原则以上给出了几种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:尽量使用数据耦合,少量使用控制耦合和特征耦合

    9、,限制公共环境耦合的范围,完全不允许内容耦合,最终降低模块间接口的复杂性。 内聚(Cohesion):标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。高内聚:模块内部完成单一的处理;低内聚:模块内部各部分关联不紧密,完成分散的多个处理任务;设计时应该力争做到高内聚。内聚度也可以分为若干级别:(1) 偶然内聚-当模块内各部分之间没有联系,或者即使有联系,这种联也很松散,则称这种模块为偶然内聚模块,它的内聚程度最低。(2) 逻辑内聚-把几种相关功能或逻辑上相似的功能组合在一个模块内,每次调用由传给模块的参数确定执行哪种功能。(3) 时间内聚-一个模块包含若干的任务必须

    10、在同一段时间内执行。例如系统初始化模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块。(4) 过程内聚-一个模块内的处理元素是相关的且仅有控制联系,各处理元素必须以特定次序执行。(5) 通信内聚-模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据。(6) 顺序内聚-一个模块内的处理元素既包含数据联系也包含控制联系,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据)。(7) 功能内聚-一个模块中各个部分都是完成某单一功能必不可少的组成部分,或者说该模块中所有部分都是为了完成同一项具体功能而协同工作,紧密联系,不可分割的,则称该模块为功能内聚模块。功

    11、能内聚是最高程度的内聚。 功能内聚 信息内聚信息内聚-这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。 设计原则:设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。 耦合、内聚、模块独立性间的关系:耦合,描述两个或多个模块之间的相互关

    12、联程度;内聚,描述一个模块内部各处理元素之间的互关联程度。耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。内聚与耦合密切相关。同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。所以设计的目标应该是力争高内聚、低耦合。四、启发式规则(模块化设计的经验) P4656五、描绘软件结构的图形工具1、层次图:是用来描绘软件层次结构的图形工具。一个矩形框代表一个模块,方框间的连线表示模块间的调用关系。(注意它和其他类似工具的区别) 示例:P58特点:图形清晰,能表明软件系统组成的模块关系,可粗略估算程序规模;但无法表明模块间的接口关系。2、HIPO图:即层

    13、次图 + 输入/处理/输出图,由一张H图和一组IPO图组成。H图,是给每个模块加上编号的层次图。 P60(关于1.0)、59IPO图,一般采用图3.8(教材P69)形式。要为H图中的每个模块画一张IPO图。通常将HIPO图作为软件结构的描绘,列入设计文档。3、结构图(SC):描述了软件的模块结构,表示了一个系统的层次分解关系;反映了模块间的联系以及块内联系;反映了模块间的信息传递。(1) 组成元素:A 方框,内有名称,表示模块; 直线,表示上层模块对下层模块的调用; 尾部带空心圆的箭头,表示按方向传递的数据信息; 尾部带实心圆的箭头,表示按方向传递的控制信息;表示判定 表示循环(2) 示例:P

    14、63(3) 注意:P66(4) 作用:描述模块间参数交换情况、评价模块间耦合情况、确定模块间的接口。结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。六、结构化设计(SD)方法(面向数据流的设计方法)1、概述SD是一种面向数据流的设计方法,是目前使用最广泛的一种软件设计方法,它可以和SA相衔接。它给出了设计软件结构的一种系统化途径,它提出了“高内聚、低偶合”的评价模块结构质量的具体标准。结构化设计是在模块化、自顶向下逐步细化、结构化程序设计等程序设计技术基础上发展起来的。其基本思想是将系统设计成由相对独立、功能单一的模块组成的软件结构。该方法实施的要点是:(1) 首先研

    15、究、分析和审查数据流图。 从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。(2) 根据数据流图确定数据处理的类型。典型的类型有两种:变换型和事务型。针对两种不同类型分别进行分析处理。(3) 由数据流图推导出系统的初步的软件结构图。(4) 根据结构化设计的原则,利用一些启发式规则改进初步的软件结构图,直到得到符合要求的结构图为止。(5) 修改和补充数据字典。(6) 制定测试计划。2、交换流与事物流变换流 事物流SD方法把信息流(数据流图)映射成软件结构,信息流的类型决定了映射的方法。DFD中的数据流可分为两类:变换型数据流、事务型数据流;可转换为相应的软件结构:变换型结构、事

    16、务型结构。 变换流与变换型结构(1) 变换流:信息沿输入通路流入系统(输入流),同时由外部形式变换成内部形式;进入系统的信息通过变换中心,经加工处理;处理后的数据再沿输出通路变换成外部形式流出系统(输出流)。(2) 变换型结构:变换流的数据流图基本呈线性特征,明显地分为输入、变换(加工)和输出三部分。 事物流与事务型结构(1) 事物流一个事务项(输入的数据),经事务中心(处理)触发成一些处理分支。对于一个特定的事务,只触发一个分支。事物中心的任务是:接收输入数据;分析每个事务以确定它的类型;根据事务类型在若干条活动通路中选取一条。(2) 事务型结构事物流的数据流图呈辐射状特征,有一个输入通路、

    17、一个事务中心和多个处理、输出通路。 在数据流图中变换流和事务流两种结构往往是并存。事物型结构 混合结构3、SD的一般步骤4、在系统结构图中的模块 传入模块-从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。 传出模块-从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。 变换模块-它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。 协调模块-对所有下属模块进行协调和管理的模块。5、变换分析-从变换流到变换型结构的映射过程(1)(3) P7677(4) 确定输入流和输

    18、出流的边界,从而孤立出变换中心;(5) 完成第一级分解,输入流映射成输入模块,变换部分映射成变换(处理)模块,输出流映射成输出模块;顶层增加主控协调模块;(6) 完成第二级分解,从变换中心的边界开始,沿输入流外推,先遇到的为上级模块;沿输出流外推,先遇到的为上级模块;变换部分变为水平模块;第二级分解后的SC图(7) 得到完整的SC图和对应的层次图,变换完成后,对每个模块进行简要的说明。数据流图对应的层次图稍复杂一点的映射例子:P109-110模块的说明:P85-86(8) 根据模块独立性原则和启发式规则,对得到的软件结构进一步优化。对以上得到的软件结构进行模块分解或组合,让模块尽可能高的内聚、

    19、尽可能松散的耦合,最重要的是,要得到一个易于实现、易于测试和易于维护的软件结构。P110111图5.165.196、事物分析-从事物流到事物型结构的映射过程基本步骤与变换分析相同(前三步相同),只是由数据流图到软件结构的变换方法不同:第一级分解,输入通路映射为接收模块、事务中心直接变换为调度模块、每个输出通路映射成一个动作模块,另加一个主控模块;输入分支的第二级分解与变换流的方法类似;对输出分支进行第二级分解(每个分支进行下一级的变换分析或事物分析);第一级分解第二级分解书上的例子:P95注意:P96模块说明:为每一个模块写一份处理说明(IPO图)、为每一个模块提供一份接口说明、确定全局数据结

    20、构和局部数据结构、指出所有的设计约束和限制。关于分层数据流图转换为软件结构图的方法*7、设计的优化:我们努力追求的设计应该是既满足功能和性能的要求,又符合软件设计原理和启发式设计规则。对软件结构的修改越早越好。必要时,可以并行地开发若干个软件结构,通过评比,求得“最佳”结果。结构优化是一个精益求精的过程。优化过程可以在设计的早期,也还要延续到详细设计乃至编码阶段。简洁的程序结构容易测试、容易维护,应该使用尽可能少的模块;只要满足信息要求,应该使用尽可能简单的数据结构。对时间有特殊要求的软件,应根据普遍存在的“百分之二十规则”(即20%的代码占用80%的处理时间,80%的错误出自20%的代码)采

    21、用下述对策:(1) 在不考虑时、空耗费的情况下,设计并精化软件结构;(2) 借用CASE工具模拟分析运行时的性能,定位出低效的部分,加以改进;(3) 详细设计时对最耗时的模块,认真地设计它们的处理过程(算法),以便减少时间的开销;(4) 尽量用高级语言编程以利于软件的优化;(5) 对大量占用计算机系统资源的模块必要时用低级语言重新编码,以提高效率。设计优化的格言-“先让它干起来,再让它快起来”。七、总体设计需书写的文档1、总体设计说明主要内容包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,各模块的

    22、模块说明(用IPO图或其他工具简要描述的各个模块的算法,模块间的接口关系等,见上面),以及需求、功能和模块三者之间的交叉参照关系等等。2、用户手册根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。3、测试计划包括测试策略,测试方案,预期的测试结果,测试进度计划等等。4、详细的实现计划5、数据库设计结果文档书写提示:1 引言1.1 简介(对整个设计说明作综述)1.2 编写目的(本设计说明的编写目的与阅读对象)1.3 定义(提供正确理解本设计说明所必须的术语、缩写词和简写的定义)1.4 参考资料(列举编写本设计说明时所参考的资料或其它资源)2 系统概述2.1 软件的功能概述在此说

    23、明本软件包含哪些主要功能模块,并对每个模块的主要功能进行文字说明。在此引入分析精化的功能级数据流图,作为设计的起点。2.2 系统总体的处理流程,例如: 系统启动时激活身份验证模块; 通过身份验证后进行相应的系统初始化。根据系统配置文件将数据库导入,并设置各全局变量; 系统进入消息循环状态,通过事件驱动机制激活各功能模块,并在指定模块中运行; 各功能模块执行完毕后重新进入消息循环状态; 由关闭系统事件激活关闭系统模块,退出系统。3 概要设计结果3.1 软件层次图(H图)3.2 模块分解说明对H图中的每个模块进行模块说明(卡片形式的IPO图),包括:模块名称、编号、局部数据、内部处理过程说明、接口

    24、设计、设计约束和限制。3.3 出错处理设计 出错输出信息:描述系统可能出现的错误信息。用表格方式说明各种可能的错误或故障出现时,系统输出的信息、含义及处理方法。 出错补救措施:说明错误或故障出现时,可采用的补救措施,如性能降级、恢复及再启动等。 系统恢复设计:描述当系统出现错误和异常时,如何使系统恢复到正常状态。3.4 安全保密设计说明软件的哪些地方要设安全保密处理,如何处理(数据备份、密码管理等等)。3.5 模块间的相互依赖关系说明哪些模块间有相互同步(合作)或互斥的关系。3.6 维护设计说明为方便维护工作而采取的措施。4 数据库设计结果根据前期设计结果,设计出数据库,表结构、表间关系;全局

    25、数据;数据间的相互依赖和制约关系。5 外部接口设计5.1 硬件平台用系统流程图描述最终选择的系统物理实现方案(物理模型),用表格形式对物理模型中元素的规格逐一进行说明。5.2 软件环境说明操作系统平台、数据库及其他软件工具,与其他软件组件的正确连接。5.3 主控用户交互界面6 系统中需求、功能和模块三者之间的交叉参照关系(复审时使用) 参考概要设计说明书(GB85672006)八、本阶段工作总结1、精化数据流图2、根据数据流图,划分边界,用系统流程图描述系统的物理模型,对模型中的元素逐一进行说明3、根据数据流图,用变换分析和事务分析的方法,将数据流图转换成软件结构图(层次图或结构图)4、按照模块化设计的原则、启发式规则等,对得到的软件结构图进行优化5、用IPO图或其他工具简要描述的各个模块的算法6、描述模块间的接口关系7、制定、修改测试计划本章作业 P114 1、3-(3) 对自选项目进行总体设计


    注意事项

    本文(第五章总体设计Word文件下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开