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

    第8章 构件级设计建模ppt课件.ppt

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

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

    第8章 构件级设计建模ppt课件.ppt

    第八章 构件级设计建模,王美红,主要内容,什么是构件设计基于类的构件内聚性耦合性实施构件级设计对象约束语言设计传统构件,概述,程序体系结构设计类似于设计一栋房子的全貌,有多少件屋子,每间屋子之间的连接等等。构件级设计类似于设计房子的每个较大的组成部件的内部结构,比如卧室该怎样布置,卫生间该如何安排等等构件级设计比体系结构设计更细,但还细不到编码的程度,比如,设计卧室里边用拼木地板,但不会强调该地板是横着,还是竖着安,这些是具体编码时要考虑的事情。,概述(续),目的:避免高层次的抽象模型向低层次的程序之间转换时容易引入错误的问题。构件级设计建模时机:在体系结构设计第一次迭代后完成,概述(续),构件级设计形式:用编程语言表示用能够容易转化为代码的中间表示(如图形的、表格的或基于文本的),8.1 什么是构件,通俗地讲,构件是一段程序,该程序能完成一个相对独立的功能,并有一定的通用性。正式定义:系统中某一定型化的、可配置的和可替换的部件,该部件封装并暴露一系列接口。,8.1 什么是构件(续),针对不同的系统设计体系,构件所指的对象不一样。,8.1.1 面向对象观点,在面向对象的设计中,构件指一个协作类的集合。一般来讲,构件的规模比类大,但有时一个构件也可以对应一个类。在构件级设计时,应设计出类的所有属性以及和其它类之间的相关操作,通信接口必须明确定义。,印刷任务构件设计,细化:属性(数据结构)操作(算法细节)接口(接口中可能隐含与其它的协作),8.1.2 传统观点,传统构件也称为模块程序的一个功能要素,程序由处理逻辑及实现处理逻辑所需的内部数据结构以及能够保证构件被调用和实现数据传递的接口构成。,8.1.2 传统观点(续),构件(模块)的分类:控制构件-协调不同模块之间的调用问题域构件-完成部分或全部用户的需求基础设施构件-负责完成问题域中的相关处理的功能,模块的导出是以数据流图的方式进行的 控制构件位于顶层,问题域构件位于低层,每个模块都要被细化,8.1.3 过程相关的观点,前面两种都是假设从头开始设计构件在实际工作中,往往借鉴他人或自己前期的工作成果,直接引用或做一定的改进后引用已有的一些构件,基本原理是所从事的项目之间有内在的联系或相关性。,8.2 设计基于类的构件,当选择了面向对象软件工程方法后,构件级设计主要关注分析类的细化和基础类的定义和精化,8.2.1 基本设计原则,开关原则(The Open-Closed Principle ,OCP)模块应该对外延有开放性,对修改具有封闭性。即设计者应该采用一种无需对构件自身内部(代码或者内部逻辑)做修改就可以进行扩展(在构件所确定的功能域内)的方式来说明构件。,SafeHome针对不同的传感器,接口都向Dector构件呈现一致的视图。,8.2.1 基本设计原则(续),Liskov替换原则(Liskov Subsitution Principle, LSP)子类可以替换它们的基类源自基类的任何子类必须遵守基类与使用该基类的构件之间的隐含约定(前置条件、后置条件)。,8.2.1 基本设计原则(续),依赖倒置原则(Dependency inversion principle, DIP)依赖于抽象,而非具体实现构件依赖的其它构件(不是依赖抽象类,如接口)愈多,扩展起来就愈困难抽象可以比较容易地对设计进行扩展,8.2.1 基本设计原则(续),接口分离原则(Interface Segregation principle, ISP)多个用户专用接口比一个通用接口要好设计者应该为每一个主要的客户类型都设计一个特定的接口。如SafeHome中FloorPlan类用于安全和监督功能,两处操作有些不同,监督功能多关于摄像头的操作,定义两个接口。,8.2.1 基本设计原则(续),将多个构件组织起来的原则:发布复用等价性原则-对类打包管理,同时升级。共同封装原则-一同变更的类应该和在一起。共同复用原则-可能一起被复用的类才能打包到一块。,8.2.2 构件级设计指导方针,一些实用的设计指导方针可以应用于构件、构件的接口,以及对于最终设计有着重要影响的依赖和集成特征等方面。,8.2.2 构件级设计指导方针(续),构件构件的名称来源于问题域,应能体现该构件的主要功能,并且为所有共利益者理解。使用构造型帮助识别构件的特性infrastructure,table,database,8.2.2 构件级设计指导方针(续),接口表示必须的接口(棒棒糖标记),放在构件框的左边。依赖与继承为提高可读性,依赖自左向右,继承自下(导出类)而上(基类);构件的依赖关系通过接口表示,而非“构件到构件”。,8.2.3 内聚性,功能内聚一个模块完成一种且只一种运算并返回结果时发生这个级别上的内聚分层内聚由包、构件和类来实现,高层能访问低层,但底层不能访问高层通信内聚访问相同数据的所有操作被定义在一个类中顺序内聚将构件或者操作按照前者为后者提供输入的方式组合,8.2.3 内聚性(续),过程内聚构件或者操作的组合方式是,允许在调用前面的构件或操作之前,马上调用后面的构件或操作,及时没有数据传递暂时内聚操作的执行是为了反映某一特定的行为或状态。实时内聚在一类中,但是在其他方面不相关的构件、类或操作被分为一组。,8.2.4 耦合性,内容耦合当一个构件“暗中修改其他构件内部数据”时共用耦合大量构件使用同一全局变量时控制耦合操作A调用操作B,且传递控制标记印记耦合类B被声明为类A某一操作中的一个参数中的一个参数类型时,8.2.4 耦合性(续),数据耦合当操作需要传递较长的数据参数时例程调用耦合当一个操作调用另一个操作时类型使用耦合构件A使用在构件B中定义的一个数据类型时,8.2.4 耦合性(续),包含或导入耦合当构件A引入或者包含一个构件B的包或者内容时外部耦合当一个构件通信和协作时发生,构件的UML表示,图 带接口的构件,构件具有它们支持的接口和需要从其他构件得到的接口,构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口,并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以被具有同样接口的其他构件替代。,图 构件图,构件图举例,8.3 实施构件级设计,一个典型的构件级设计步骤:1. 标识出所有与问题域相对应的类2. 确定所有与基础设施域相对应的类GUI构件、操作系统构件、对象和数据管理构件,3. 细化所有不能作为复用构件的类 (1)说明消息的细节流,(2) 为每个构件确定适当的接口UML接口是“一组外部课件的(即公共的)操作,接口不包含内部结构、没有属性,没有关联”为设计类定义的接口可以归结为一个或者更多的抽象类抽象类中的每个操作接口应该是内聚的,内聚性差!,建立工作单,检查任务的优先级,将任务传递给生产线,小圆圈代表接口从构件到接口的实线表明该构件提供的列在接口旁的服务从构件到接口的虚线箭头说明这个构件要求接口提供的服务,8.3 实施构件级设计(续),(3)细化属性并定义数据类型和结构UML用下面的语法来定义属性的数据类型举例:,8.3 实施构件级设计(续),(4)描述每个操作中的处理采用如下方式进行扩展:,若算法比较复杂或者难于理解,需要设计细化,8.3 实施构件级设计(续),4. 说明持久数据源(数据库或文件)等相关类5. 开发并细化类的行为表示,表示状态图中的事件,8.3 实施构件级设计(续),6. 细化部署图表示主要构件包的位置某些情况下,部署图在这个时候被细化为实例形式,7. 反省和检查现有的设计,8.4 对象约束语言,对象约束语言(Object Constraint Language, OCL),一种形式化语言四个组成部分:语境定义了哪些情况语句是正确的特征描述语境的一些特征操作用来操纵和限制一个特性关键字用于说明条件表达式(if,then,else,and,or,not,implies),8.4 对象约束语言(续),OCL的语法和结构:UML和其他建模语言建模描述系统特征是通过OCL表达式来实现,因此表达式是OCL的核心,它携带了关于它所约束对象的相关信息作为OCL的核心,表达式可以被用于多种不同的场合,以不同的形式规约被描述的对象。,8.4 对象约束语言(续),举例:,Customer self.authorizationAuthority = yes,用于表示PrintJob状态图中jobCostAccept事件的警戒条件,用OCL说明前置条件和后置条件,8.5 设计传统构件,由各种逻辑结构组成:顺序型条件型重复型,常用方法,图形工具程序流程图盒图(N-S图)问题分析图(PAD),表格工具判定表语言工具过程设计语言(PDL)(伪码),8.5.1 图形化设计表示,一、流程图,流程图举例,程序流程图,任何复杂的程序流程图都应由以上五种基本结构组合而成。优点:容易掌握,且历史“悠久”,使用广泛。缺点:本质上不具备逐步求精的特点对于提高大型系统的可理解性作用甚微不易表示数据结构转移控制不太方便,二、盒图,也叫N-S图,盒图举例,盒图的嵌套定义形式,盒图,特点:没有箭头,不允许随意转移控制;每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;局部及全程数据的作用域易见;易表现嵌套关系(embedded structure)以及模块的层次结构。,三问题分析图(PAD),PAD(Problem Analysis Diagram):日立公司,1973,PAD描述的示例,例:N-S图与PAD的转换,PAD,PAD特点:结构清晰,层次分明,易读;支持逐步求精的设计思想;容易将PAD自动转换为高级语言源程序。,8.5.2 表格式设计方式:,决策表-将事件、事件的发生条件、发生的具体模式等信息填写在一张表里。,8.5.3 程序设计语言,也成结构化英语或伪代码,/* 计算运费*/count ( ); 输入x;输入y;if 条件1 公式1;call sub;else if 条件2 公式2;call sub;else if 条件3 公式3;call sub;else 公式4;call sub;sub ( ); for(I=1,3) do 记帐;输出;,PDL的特点,优点:易于实现由PDL到源代码的自动转换缺点:不够直观。,作业,逐步求精和重构是一回事吗?如果不是,他们有什么区别?,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开