欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    概要设计.ppt

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

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

    概要设计.ppt

    第4章 总体(概要)设计,本章重要知识点:软件体系结构概要设计任务与步骤软件设计的基本概念面向数据流的设计方法面向数据结构的分析设计方法概要设计文档评审,对软件需求有了完整、准确、具体的理解之后,就要通过设计来实现该需求。传统的软件工程方法学采用结构化设计技术,完成软件设计工作。结构化设计可分为两个阶段:概要设计和详细设计。,概要设计主要解决的问题:从黑盒级划分出组成系统的物理元素(程序,文件,数据库,文档等);设计出组成软件的主要模块及其之间的关系.详细设计主要解决的问题:设计实现模块的算法和数据结构.,4.1软件体系结构4.1.1概述,软件体系结构(Software Architecture,SA)定义软件系统实现的蓝图,从一个较高抽象层次考虑组成系统的构件及其之间的交互,以及构件及其交互形成的拓扑结构关系。体系结构的设计过程1)系统结构化:分解成子系统,划分子系统之间的通信.2)控制建模:建立各部分之间的控制关系的一般模型.3)模块分解:子系统进一步分解成模块.,常见软件体系结构风格,以数据为中心的体系结构;数据流体系结构;调用和返回体系结构;面向对象体系结构;层次式体系结构。,数据存储,客户软件,客户软件,客户软件,客户软件,客户软件,客户软件,数据为中心的体系结构,过滤器,过滤器,过滤器,数据流体系结构,过滤器,用户界面层,应用层,实用层,核心层,表示构件,层次式体系结构,体系结构设计的定量分析,目前在体系结构设计质量定量分析方面的研究尚处于起步阶段。Asada提出了伪定量技术的简单模型帮助设计者确定体系结构满足预定义的“好”标准的程度.这些标准称为设计量纲(Design Dimension),包括软件的质量属性:可靠性、安全性、可维护性、可测试性、可移植性、可复用性等。,Asada提出的简单模型可分为:频谱分析(Spectrum analysis)模型设计选择分析(Design selection analysis)模型贡献分析(Contribution analysis)模型,Belady将软件设计分为两个阶段:,多样化(Diversification):获得所有可选事物和未加工的设计材料,如构件、解决方案和知识;收敛(convergence):设计者从设计材料中选择和组合合适元素,以满足设计目标。这是一个不断删除的过程。,数据字典,状态转换图,控制规格说明,数据流图,处理规格说明,实体关系图,数据对象描述,过程设计,接口设计,体系结构设计,数据设计,分析模型转变成软件设计示意图,4.1.2系统构成,体系结构的三个标准模型:1.容器模型:适合于数据是由一个子系统产生而由其他子系统使用的情形。2.客户机/服务器模型:是一个分布式系统模型,数据和处理过程可分配在多个处理器之中。3.抽象机模型:有时叫做分层模型,是用来建立子系统的接口模型。,4.1.2控制模型,1集中式控制:一个子系统被指定为系统控制器来负责管理其他系统的执行。调用返回模型:自上而下的子过程模型,控制始于子程序层次的顶层,在调用过程中,控制逐步传递到更低的层次中。该模型只适用于顺序执行的系统。管理者模型:一个系统组件被指定为系统管理者,它控制其他系统过程的启动、终止和协调。一个过程就是一个能和其他过程并发执行的子系统或模块。,2事件驱动系统:通过外部产生的事件来驱动系统。广播模型:在这些模型中,理论上事件是广播到所有子系统的。任何能处理该事件的子系统都会响应。中断驱动模型:该模型专门用于实时系统中,由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。,1概要设计的主要任务系统分析员审查软件计划、需求分析,提出最佳推荐方案。确定模块结构,划分功能模块。编写概要设计说明书、用户手册、测试计划,选用相关的软件工具来描述软件结构,选择分解功能与划分模块的设计原则。,4.2概要设计的任务与步骤,概要设计过程分两个主要阶段:系统设计阶段:确定系统的具体实现方案;结构设计阶段:确定软件结构。2.典型的总体设计过程包括9个步骤:1)设想供选择的方案2)选取合理的方案通常至少选取低成本、中等成本和高成本的三种方案。,对每个合理的方案都应该准备下列4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。3)推荐最佳方案综合分析对比各种合理方案的利弊,推荐一个最佳方案,并制定详细实现计划。用户和有关技术专家应该认真审查分析员所推荐的最佳方案。,4.)功能分解对程序(特别是复杂的大型程序)的设计,通常分为结构设计和过程设计。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构需要从实现角度把复杂功能进一步分解为一系列简单功能。,5.)设计软件结构 一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘,第5.4节将介绍这些图形工具。从数据流图映射出软件结构,这就是第5.5节中将要讲述的面向数据流的设计方法。6)设计数据库与文件结构7)制定测试计划,8)书写文档系统说明:主要包括系统构成方案,物理元素清单,成本/效益分析等。用户手册:根据总体设计阶段产生的初步的用户手册。测试计划包括测试策略,测试方案,预期的测试结果,测试进度计划等。详细实现计划数据库设计结果9)审查和复审进行技术审查和管理复审。,4.3软件设计的概念和原理,模块化抽象逐步求精信息隐藏和局部化模块独立(耦合和类聚),4.3.1.模块化与模块独立,1)模块(Module)是由边界元素限定的相邻的程序元素的序列,且有一个总体标识符来代表它(如过程、函数、子程序名等),是构成程序的基本构件.2)模块化(Modularity)即把程序划分成若干个相对独立的模块,每个模块完成一定功能,集成起来形成一个整体,完成系统的功能。软件体系结构(Software Architecture,SA)体现了模块化。SA包括构件(模块)的层次结构、构件间的交互方式和构件的数据结构等。,模块化的根据:C(P1)C(P2)(问题P1和P2复杂程度)E(P1)E(P2)(工作量(时间)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)结论:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。,3.模块的划分,模块化与软件成本关系图结论:模块的数量应该适当(最小成本区)。,4.模块化的优点软件结构清晰,容易设计、阅读和理解;开发过程中便于组织管理(“分而治之”的思想).5.Meyer提出评价模块化的5条标准:模块的可分解性、可组装性、可理解性、连续性和保护性。,4.3.2抽象与逐步求精,1.抽象(Abstraction)即忽略事物之间的差异而对其共同本质特征加以集中和概括。软件开发过程是一个逐步求精,由抽象到具体的渐进过程(问题定义需求分析概要设计详细设计编码).2.逐步求精即“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑”,是人类解决复杂问题时采用的基本技术,是许多软件工程技术的基础。,认知过程的Miller(72)法则:一个人在任何时候都只能把注意力集中在72个知识块上。逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略.按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的.抽象和求精是互补的概念。抽象使设计者重视过程和数据,忽略底层细节;求精则帮助设计者揭示底层细节。,3.信息隐藏(Information Hiding)原理:软件开发过程中设计和确定模块时,应使模块内所包含的信息(数据和过程)对于不需要这些信息的模块来说,是不能访问的(隐蔽模块的实现细节)。4.局部化原理:把模块内关系密切的软件元素物理地放得彼此靠近些。作用:a.提高系统安全性;b.软件结构更清晰。,模块独立是模块化、抽象、逐步求精和信息隐蔽等概念应用的直接结果,也是模块设计的基本要求(即每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系尽量简单)。模块独立是决定软件质量的关键有效模块化的软件容易开发;独立的模块容易维护和测试。,评价模块独立性的两个重要指标1.耦合(Coupling)是不同模块之间彼此相互依赖的紧密程度。耦合的强弱取决于模块之间接口的复杂程度、进入或访问的点数以及通过接口的数据.软件设计尽可能追求松散耦合的系统.耦合分为:数据耦合;控制耦合;公共环境耦合;内容耦合。设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合.,2.内聚(Cohesion)是一个模块内部各个元素之间彼此结合的紧密程度。理想类聚的模块只做一件事情。内聚的种类:a.低内聚:偶然内聚、逻辑内聚和时间内聚;b.中内聚:过程内聚和通信内聚;c.高内聚:顺序内聚和功能内聚。设计原则:力争做到高内聚。,4.3.3启发式规则,1.改进软件结构提高模块独立性通过模块分解和合并的办法来降低耦合、提高内聚,以提高模块独立性。2.模块规模应该适中实验现象:一个模块最好能写在一页纸内(60行),当程序语句超过30行时,其可读性大大降低。结论:模块规模不能太大,否则就要分解它。过多的模块数使接口复杂,规模很小且调用次数很少的模块要与其他模块合并.,3.深度、宽度、扇出和扇入都应适当深度:表示软件结构中控制的层数,能大体上反映一个系统的大小和复杂程度。宽度:软件结构内同一个层次上模块总数的最大值。一般地说,宽度越大,系统越复杂。扇出:模块直接控制的模块数目.扇出过大,需要控制和协调过多的下级模块.扇入:直接调用某个模块的模块个数。在提高模块共享性的同时,不能违背独立性原则。结论:顶层扇出高,中间扇出小,底层扇入高。,4.模块的作用域应该在控制域之内作用域:受该模块内一个判定影响的所有模块的集合。控制域:该模块本身及直接或间接从属于它的模块集合。调整的办法:移动判定点或移动模块。,M,A,G,B,C,D,E,F,模块的作用域与控制域,M,A,B,C,D,E,F,模块G移到A的控制域内,G,5.设计单入口单出口的模块模块间不要出现内容耦合。6.力争降低模块接口的复杂程度模块接口复杂是软件发生错误的主要原因。模块接口设计应使信息传递简单且和模块的功能一致。7.模块功能应该可以预测只要输入的数据相同就产生相同的输出,则该模块的功能就是可以预测的。,4.4面向数据流的设计方法,面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径,即怎样把数据流图变换成软件体系结构,所以,又称为结构化设计方法(SD)。软件体系结构(Software Architecture,SA)定义软件系统实现的蓝图,从一个较高抽象层次考虑组成系统的构件及其之间的交互,以及构件及其交互形成的拓扑结构关系。,4.4.1概念,面向数据流的设计方法把信息流映射成软件体系结构,信息流的类型决定了映射的方法。信息流有两种类型:1.变换流;2.事务流。,1.变换流,信息沿输入通路进入系统,由外部形式变换成内部形式,经过变换中心加工处理以后,沿输出通路变换成外部形式离开软件系统,这种信息流称为变换流.其重点是数据的输入、处理、输出。,2.事务流,数据沿输入通路到达一个处理,该处理根据输入数据的类型在若干个动作序列中选出一个来执行,这种信息流称为事务流.其重点是事务处理(动作)。,4.4.2系统结构图的组成,描述系统整体结构的图形符号如下,它是系统设计中反映系统功能模块层次分解关系、调用关系、数据流和控制信息流传递关系的一种重要工具,由模块、调用、数据、控制信息4种基本符号组成。,4.4.3变换分析,变换分析是一系列设计步骤的总称,通过汽车数字仪表板的设计来说明变换分析的方法。汽车数字仪表板功能如下:通过A/D转换实现传感器和微处理机接口;在发光二极管面板上显示数据;指示速度、行驶里程、单位油耗行驶里程等;指示加减速和超速警告等。,设计步骤:复查基本系统模型;复查并精化数据流图;确定数据流图具有变换特性还是事务特性;确定输入/输出流的边界,孤立出变换中心;完成第一级分解(因子化);完成第二级分解(因子化);对软件结构进一步精化。,读旋转信号,收集和求平均,确定加/减速,加减速显示,转换成r/min,计算里程,产生里程显示,计算速度和超速值,发出铃声,产生mile/h显示,计算燃料消耗,产生Mile/Gal显示,计算Gal/h,读和校核,旋转信号,Signal/s,Signal/s,箭头指示,上箭头,水平线,下箭头,燃料流传感器信号,燃料流,Gal/h,Signal/s,r/min,r/min,英里,超速值,mile/h,mile/h显示,铃声,显示,mile/h,mile/Gal,mile/Gal显示,划分边界的数据流图,第一级分解(因子化),第一级分解(因子化)的作用是分配控制,即将数据流图映射成特定的软件结构,该结构控制输入、变换和输出等信息处理过程。划分边界的数据流图可分解为如下结构:,数字仪表板控制,接受传感器信号,数据转换控制,驱动仪表板,输入控制,变换控制,输出控制,数字仪表板系统的第一级分解,第二级分解(因子化),第二级分解(因子化)就是把数据流图中的每个处理映射成软件结构中一个适当的模块。方法是:沿输入/输出路径向外,将变换依次映射到从属层的软件结构中.,Cm,Ca,C,B,D,A,A,D,B,C,第二级分解的方法,未经精化的输入结构,精化后的数字仪表板系统的软件结构,4.4.4事务分析,事务分析与变换分析的设计步骤大体相同,其主要区别在于由数据流图到软件结构的映射方法不同。由事务流映射成的软件结构包括一个接收分支和一个发送分支。发送分支的结构包含一个调度模块,它控制下层的所有活动模块,然后把数据流图案中的每个活动流通路映射成与它的特征相对应的结构。,事务分析的映射方法,4.4.5设计优化,1.软件设计人员首先应该致力于按照设计原理和启发规则设计能够满足功能要求和性能要求的软件;2.在设计的早期对软件结构进行精化;3.力争做到结构简单;4.在时间是决定性因素的场合,也可能在编程过程中优化。优化的准则:先使它能工作,然后再让它快起来。,4.5面向数据结构的设计方法,面向数据流的设计方法是用于软件结构的设计;面向数据结构的设计方法则是模块内程序处理过程的设计方法。Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。,1.Jackson图,Jackson图的三种结构:顺序、选择和重复.,主要优点:便于表示层次结构;可读性好;能表示数据结构和程序结构。,2.改进的Jackson图,Jackson图的缺点:1.条件不能直接在图上表示出来,影响表达能力;2.不容易直接把图翻译成程序;3.斜线不易打印等。,6.4.3 Jackson方法,Jackson方法由下述5个步骤组成:1.分析确定输入数据和输出数据的逻辑结构,并用Jackson图描绘;2.找出输入数据结构和输出数据结构有对应关系的数据单元;3.从描绘数据结构的Jackson图导出描绘程序结 构的Jackson图(三条规则);4.列出所有操作和条件,并分配到适当位置;5.用伪码表示程序。,三条规则,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框;根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。,应用实例:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。输出数据格式是每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。,表示输入输出数据结构的Jackson图,描绘统计空格程序结构的Jackson图,把操作和条件分配到程序结构图的适当位置,思考练习题:,4-2 为每种类型的模块内聚举一个具体例子。4-3 用面向数据流的方法设计下列系统的软件结构:(1)储蓄系统(参见习题2第2题);(2)机票预订系统(参见习题2第3题);(3)患者监护系统(参见习题2第4题)。,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开