您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 71面向对象方法概述
17.1内容提纲面向对象方法概述-基本思想与发展史-面向对象的软件工程方法面向对象建模方法-对象模型、动态模型、功能模型-三种模型之间的关系统一建模语言UML-UML语言概述-UML语言基本元素-常用的UML图2软件开发的常见问题需求的错误-不完整、不一致、不明确-开发人员和用户无法以同样的方式说明需求需求的变化-需求在整个项目过程中始终发生变化-设计后期发生变化持续的变化-系统功能不断变化-许多变化出现在项目的后期-维护过程中发生许多变化系统结构的崩溃-系统在不断的变化中最终变得不可用3问题的解决方法解决方法-严格的需求和规划阶段-设计系统结构使其适应变化分析-问题域相对而言是稳定的银行系统:账户、客户、ATM-系统功能和数据表示极有可能发生变化银行系统:账户的可选项、ATM的不同界面“建造软件系统应该基于问题域,而不是实现域”4面向对象方法面向对象模型更接近于问题域-以问题中的对象为基础建模-以对象、属性和操作对问题进行建模反复细化高层模型直到可以实现的程度-努力避免在开发过程中出现大的概念跳变将模型组织成对象的集合-真实世界中的具体事物驾驶执照、信用卡、飞机等-逻辑概念操作系统中的分时策略、军事训练中的冲突解决规则等5掌握方法才能不断复制成功6重要的是技术过硬7万能灭蟑仪抓住蟑螂把蟑螂放在木块A上用木块B拍死它8软件开发过程9开发过程解析目前的现实是什么?——业务建模在这个现实下,开发系统是为了达到什么目标?——愿景为了达到这个目标,系统应该对外提供什么样的功能和性能?——需求为了提供功能,系统内部应该有什么样的业务核心机制?——分析为了满足性能,系统的核心机制如何在选定架构上实现?——设计找到问题解决问题10方法演变:无方法软件作坊——边做边改模型(Code-Fix)-程序越来越大,难以掌握——软件危机11方法演变:功能分解法结构化方法——瀑布模型(自顶向下,逐层分解)-不适应需求的变化、阶段间文档较多,工作繁重、不能化解风险12方法演变:用例驱动的面向对象方法面向对象方法——迭代法(喷泉法)-数据与方法结合,内聚性高,用例驱动、与现实世界模型相吻合13面向对象开发技术的核心特点结构化理论-是面向过程的设计方法,是以算法为核心,从计算机的角度出发,把数据和处理过程作为相对独立的部分,数据代表问题域中的实体,而程序代码则用于处理这些数据-系统模型是对处理过程的映射,即将应用分解为功能模块、功能接口;与现实问题域的东西没有直接联系面向对象理论-是面向对象的设计方法,是以对象为核心,从现实世界中问题域的对象角度出发,将数据和处理过程封装在一起,模拟现实世界中不同实体之间的联系-系统模型是对问题域的直接映射,即从现实世界中直接抽象出一个模型,然后在计算机中实现出来14面向对象开发技术的今天—核心基础核心基础:组件技术、UML建模技术组件技术:大型项目与系统的必由之路-需要支持多平台:SOA、ESB—连接组件-拥有大量组件:重用、MDA—快速、廉价集成组件-响应日益复杂的业务操作:EA(连通软件与业务的鸿沟)、PLE(处理产品线可变性)、反向工程(重用遗留系统)-框架:J2EE、.NET等独立于厂商的组件描述语言--UML15面向对象开发技术的今天—最佳实践显然仅有组件和UML是不够的,因为我们还需要知道如何捕获组件!--答案就是-迭代开发-用例驱动-体系结构为中心16面向对象的软件工程方法面向对象分析(OOA)-分析和理解问题域,找出描述问题域和系统责任所需的类及对象,分析它们的内部构成和外部结构,建立OOA模型面向对象设计-将OOA模型直接转换成OOD模型,并且补充与一些实现有关的部分,如人机界面、数据存储、任务管理等面向对象编程-用一种面向对象的编程语言将OOD模型中的各个成分编写成程序,由于OOA→OOD→OOP实现了无缝连接和平滑过渡,因此提高了开发工作的效率和质量17面向对象的软件工程方法面向对象测试(OOT)-面向对象测试是指对于运用OO技术开发的软件,在测试过程中继续运用OO技术进行以对象概念为中心的软件测试-以类作为基本测试单位,集中检查在类定义之内的属性、服务和有限的对外接口,大大减少了错误的影响范围面向对象的软件维护(OOSM)-在面向对象方法中,各阶段采用的表示是一致的,从而大大降低了理解的难度,无论是从程序中的错误追溯到问题域,还是需求的变化都要从问题域追溯到程序,整个过程都是平坦的。另外,对象的封装性使得一个对象的修改对其他对象的影响很小,不至于牵一发而动全身187.1内容提纲面向对象方法概述-基本思想与发展史-面向对象的软件工程方法面向对象建模方法-对象模型、动态模型、功能模型-三种模型之间的关系统一建模语言UML-UML语言概述-UML语言基本元素-常用的UML图19对象模型对象模型的本质-表示静态的、结构化的系统的“数据”性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构-强调的是围绕对象而不是功能来构建系统对象模型的作用-为建立动态模型和功能模型提供了实质性的框架-建立对象模型的目标是从客观世界中提炼出具体应用有价值的概念对象模型的表示方法-通常使用国际通用的统一建模语言UML所提供的类图来建立对象模型20动态模型动态模型的本质-表示瞬时的、行为化的系统的“控制”性质-规定了对象模型中的对象的合法变化序列动态模型的作用-考察对象的动态行为-状态是对对象属性值的一种抽象,各对象之间的相互触发形成了一系列的状态变化,一个触发行为称作事件动态模型的表示方法-通常使用国际通用的统一建模语言UML所提供的状态机图来建立动态模型,用以描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)21功能模型功能模型的本质-表示变化的系统的“功能”性质-指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求功能模型的作用-建立功能模型的目标是描述外部行为者所理解的系统功能功能模型的表示方法-数据流图:在OO中,建立顶层的DFD有助于软件开发人员更深入地理解问题域,改进和完善自己的设计-用例模型:通常使用国际通用的统一建模语言UML所提供的用例图来建立功能模型,来描述系统、行为者、用例以及用例之间的关系22三种模型之间的关系面向对象建模技术所建立的三种模型,分别从三个不同的侧面描述了所要开发的系统。这三种模型相互补充,相互配合,使得我们对系统的认识更加全面-功能模型:指明了系统应该“做什么”-动态模型:明确规定了什么时候(即在何种状态下接受了什么事件的触发)做-对象模型:定义了做事情的实体23OO模型与传统模型之间的关系OO模型和传统模型之间的关系针对每个类建立的动态模型,描述了类实例化的对象的生命周期(生命周期有很多阶段组成,生命周期中的阶段就是对象的状态)状态转换驱使行为发生,这些行为在DFD中被映射成加工/处理,在用例图中被映射成用例,它们同时与类图中的服务(操作)相对应功能模型中的处理(或用例)对应于对象模型中类所提供的服务,也有一个服务对应多个处理(或用例)的时候24OO模型与传统模型之间的关系OO模型和传统模型之间的关系(续)DFD中的数据存储,以及数据的源点和终点,通常是对象模型中的对象DFD中的数据流,往往是对象模型中对象的属性值,也可能是整个对象功能模型中的处理(或用例)可能产生动态模型中的事件对象模型描述了DFD中的数据流、数据存储以及数据源点/终点的结构257.1内容提纲面向对象方法概述-基本思想与发展史-面向对象的软件工程方法面向对象建模方法-对象模型、动态模型、功能模型-三种模型之间的关系统一建模语言UML-UML语言概述-UML语言基本元素-常用的UML图26什么是UML?什么是UML?-UML是1995年由世界著名的面向对象技术专家GradyBooch,JimRumbaugh和IvarJacobson发起在著名的Booch方法、OMT方法和OOSE方法的基础上开发出了统一建模语言(UML)27什么是UMLUML是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言象任何语言一样,UML提供了用于交流的词汇表及其组词规则,说明如何创建或理解结构良好的模型,但并没有说明在什么时候创建什么样的模型28UML不是什么?UML不是什么?-不是一种可视化程序设计语言,而是一种可视化建模语言-不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准-不是过程、也不是方法,但允许任何一种过程和方法使用它29什么是UML?UML可以描述开发所需要的各种视图-概念的:业务过程和系统功能-具体的:程序中的类、数据库模式、可重用的软件组件设计者为UML设定的目标-运用面向对象概念来构造系统模型-建立起从概念模型直至可执行体之间明显的对应关系-着眼于那些有重大影响的问题-创建一种对人和机器都使用的建模语言30UML是什么是一种可视化的建模语言-软件开发的难点之一在于项目参与人员之间的沟通和交流,领域专家、软件设计开发人员、客户等各自使用不同的语言交流,对系统的概念模型容易产生错误的理解-另外,阅读程序代码虽然可以推断其含义,但无法正确地理解它,在接受别人的开发工作时,也会由于难以理解而不得不重新实现部分程序-因此,Uml提供一组具有明确语义的图形符号,可以建立清晰的模型便于交流,所有开发人员都可以无歧异地解释这个模型31什么是UML是一种可用于详细描述的语言-详细描述意味着建立精确的和无歧异的模型-UML为所有重要的分析、设计和实现决策提供了精确的、无歧异的和完整的描述是一种构造的语言-UML不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言-正向工程:从UML模型到编程语言的代码生成-逆向工程:由编程语言代码重新构建UML模型32什么是UML是一种文档化的语言-UML可以建立系统体系结构及其详细文档,提供描述需求和用于测试的语言,同时可以对项目计划和发布管理的活动进行建模33UML的统一Wirfs-BrockResponsibility(责任)BoochOperation(操作)Coad/YourdonService(服务)StroustrupFunction(函数)××××Method(方法)34UML的统一35UML的统一36UML的模型元素在UML中,模型元素是一些基本的构造元素以及它们之间的连接关系37UML的构成38UML基本构造块事物-表示系统中的元素-包括:结构事物、行为事物、分组事物、注释事物关系-表示系统中的元素如何进行连接-包括:依赖、关联、泛化、实现图-系统模型中每一个视图的内容是由一些图来描述的-对于整个系统而言,其功能由用例图描述、静态结构由类图和对象图描述、动态行为由状态机图和顺序图、通信图和活动图描述,而物理架构则是由构件图和部署图描述39UML结构事物:类40UML结构事物:类可见性-public+:公有的(缺省值),对于一个给定的类,任何一个带有可见性的外部类都可以使用该特征-protected#:受保护的,类的任何子类均可使用该特征-private-:私有的,只有类本身才可以使用该特征抽象类-抽象类是不能直接产生实例的类-在UML中,将类名写成斜体字来表示抽象类,也可以使用构造型《abstract》41UML结构事物:类类在不同层次上的说明42UML行为事物:交互交互-交互由在特定环境中共同完成一定任务的一组对象之间交换的消息组成UML符号43UML分组事物:包包-包是用来组织UML模型的基本分组事物UML符号44UML注释事物:注释注释-注释是依附于一个元素或一组元素之上,对其进行约束或解释的简单符号UML符号45UML的构成46UML关系:关联关联-关联是一组结构关系,它描述了一组对象之间的连接-关联两端的类可以某种角色参与关联角色是关联中靠近它的一端的类与另一端的类呈现的责任如果关联上
本文标题:71面向对象方法概述
链接地址:https://www.777doc.com/doc-2931771 .html