UML建模语言及工具PPT课件-第2章 对象技术与可视化建模基础(1).ppt
《UML建模语言及工具PPT课件-第2章 对象技术与可视化建模基础(1).ppt》由会员分享,可在线阅读,更多相关《UML建模语言及工具PPT课件-第2章 对象技术与可视化建模基础(1).ppt(83页珍藏版)》请在三一办公上搜索。
1、UML建模语言及工具,第 2 章对象技术与可视化建模基础An Overview of Object Technology and Visual Modeling,-3-,Review:An Approach to the Object-Oriented,上升到面向对象面向对象技术概述定义、利益、研究内容面向对象技术发展历史(里程碑)、现状、未来面向对象与结构化扬弃而非否定上升到面向对象利用面向对象的观点认识客观问题,-4-,学习线路图,-5-,Agenda 1,Object and ClassFour Principles of OOGeneralization and Polymorphis
2、mPrinciples of Visual ModelingThe UMLProcess and visual modeling,-6-,Object,Informally,an object represents an entity,either physical,conceptual,or softwarePhysical entityConceptual entitySoftware entity,化学过程,-7-,Object-Formal Definition,An object is an entity with a well-defined boundary and identi
3、ty that encapsulates state and behavior.State is represented by attributes and relationships.Behavior is represented by operations,methods,and state machines.,-8-,对象的标识,每一个对象都有一个唯一的标识,即使其状态有可能与其它对象一样,班机 747 on 11/10,班机 747 on 11/11,班机 747 on 11/12,-9-,对象的状态,一个对象的状态是它反映于现实世界的一系列属性:参数的数值(也就是,与对象有关系的数据
4、)它与其它对象的关系,可能的状态:停泊 运营着陆 终止,班机 747,-10-,对象的行为,定义当其它对象发出请求时,该对象如何反应由为对象定义的一系列操作决定,-11-,Sample-An Object,-12-,Representing Objects in the UML,An object is represented as a rectangle with an underlined name.,Named Object,Anonymous Object,-13-,Class,A class is a description of a set of objects that shar
5、e the same attributes,operations,relationships,and semantics.An object is an instance of a class.A class is an abstraction in that it Emphasizes relevant characteristics.Suppresses other characteristics.,-14-,Sample-A Class,ClassEmployee,PropertiesNameAddressPositionSalaryStart DateEnd Date,Behavior
6、HireFirePromoteIncrease SalaryRetire,-15-,Representing Classes in the UML,A class is represented using a rectangle with compartments.,属性,操作,具有相同特征和操作的对象可以放到类中。在下面这副图中您看到了什么类?,类,对象的类,您看到了几个类?,-18-,属性,属性是类的特征或特性属性的值是某一特定对象的属性值在类中属性名必须是唯一的每一个类的实例都有为这个类定义的所有属性的值,银行帐户类属性帐号银行名称拥有者金额,Mary的银行帐户属性值12345678Fi
7、rst National BankMary Smith$1024.48,-19-,属性取决于视点,从销售人员的角度 型号 价格 颜色 里程数,一辆汽车具有的属性:,从维修人员的角度 马达类型 传动类型 维修记录,-20-,操作,对象的行为是由为此对象定义的一系列操作决定的操作访问或修改对象的属性值一个类可能同时存在多个实例,也可能在某一时刻没有实例一个类的所有实例都可以使用在这个类中定义的操作,-21-,类和对象,对象,实体,类,抽象数据类型,计算机世界,实例化,抽 象,映 射,映 射,现实世界,-22-,类是生成对象的模板,类是生成对象的模板类的定义中包含有产生和删除对象的操作一个类定义了使
8、用哪种数据表示法来描述属性每一个实例都采用有属性值的数据表示法一个类通过一系列操作来定义行为这种操作能在每个实例中激活,班机,-23-,类和对象的关系,每一个对象都是某一个类的实例每一个类在某一时刻都有零个或更多的实例类是静态的;它们的存在、语义和关系在执行前就已经定义好了对象是动态的;它们在程序执行时可以被创建和删除,-24-,Sample-Object and Class,现实世界中的学生对象和对Student类的建模,Bob,John,Kate,Beverly,Student属性方法,一些学生对象,Student类,-25-,Agenda-2,Object and ClassFour P
9、rinciples of OOGeneralization and PolymorphismPrinciples of Visual ModelingThe UMLProcess and visual modeling,-26-,Basic Principles of Object Orientation,-27-,抽象,抽象(abstraction)就是过滤掉对象的一部分特性和操作,直到只剩下所需要的属性和操作。,一些权威认为抽象对于建模者来说是最重要的技术,也就是说要搞清楚什么应该纳入模型中,什么应该舍去。,抽取共同性,例如,准备编制游戏软件,其中需要实现不同人物使用魔法的功能。每个人物具
10、有不同的魔法,并具备使用魔法的行为,抽象得到的人物类图如:,-28-,Example:Abstraction,一个项目的抽象依赖于定义抽象的上下文,-29-,封装性-Encapsulation,Hides implementation from clients.Clients depend on interface.,-30-,封装性,封装(encapsulation)是软件模块化思想的体现,也是面向对象的根本之一封装实现信息隐藏和数据抽象信息隐藏的出发点:对象的私有数据不能被外界存取,只能以合法的手段访问将数据抽象为一组行为,而不是内部的具体数据结构,把用户隔离在细节之外,从而使得软件各个部
11、分依赖于抽象层,各模块获得自由,可以变化细节,可以替换,-31-,为什么要封装,结构化程序设计:程序=算法+数据结构,全局数据,算法,算法,算法,算法,一个大问题:如何保证数据的一致性?,-32-,范例:数据一致性,class ShippingAddress public long cityCode;public String address;,城市代码例如:北京为01上海为02,邮政地址“北京朝阳区静安里6号”,操作这个数据结构的程序员,必须严格遵守一系列业务逻辑规则,否则很容易破坏数据的一致性结构化程序设计处理大项目时,多人协同开发时,本质上无法保证数据的一致性,class Shippin
12、gAddress private long cityCode;private string address;public long ModifyAddress(String address),-33-,信息隐藏保证数据一致性,通过信息隐藏:1.外围代码无法随意访问底层数据,只能以合乎规范的方式操作数据2.保证数据一致性的逻辑只需正确开发一次,便可以供所有人反复使用3.业务逻辑知识被局限起来,协同开发难度降低信息隐藏是面向对象更适应大型软件开发的根本原因之一,-34-,数据隐藏的实现:C,文件域内的数据隐藏,粒度太粗/*本文件域的私有数据*/static int use_count=0;void
13、 func(int arg)+use_count;C的结构体无数据隐藏机制:struct SimpleObject_t int myInteger;void(*setInteger)(int);,-35-,数据隐藏的实现:C+,用private访问级别关键字定义私有数据,隐藏内部数据struct SimpleObject private:int myInteger;public:void setInteger(int i);SimpleObject(int i=0):myInteger(i)使用:SimpleObject so(8);so.myInteger=16;/compile error
14、so.setInteger(16);/OKC+对于对象私有数据的隐藏,完全是靠编译器保证,而由于C+过于强大的指针运算能力,编译器很容易被欺骗,所以,-36-,Java中的数据隐藏,so,SimpleObject对象实体,int myInteger,void setInteger(int i),虽然so本身也是指针(在Java里叫做引用reference),但是Java没有提供任何指针运算,因此无法骗过编译器,能够完全保证私有成员数据不被非法访问。,-37-,模块性-Modularity,Breaks up something complex into manageable piecesHel
15、ps people understand complex systemsCohesion(内聚),Coupling(耦合)Class,Component,Package,-38-,Package,A general purpose mechanism for organizing elements into groupsA model element that can contain other model elements.A package can be used:To organize the model under development.As a unit of configurat
16、ion management.,-39-,A Package Can Contain Classes,The Package,University Artifacts,contains one package and five classes,-40-,层次性-Hierarchy,Any ranking or ordering of abstractions into a tree-like structure Types of Hierarchy:Inheritance,Aggregation,Increasingabstraction,Decreasingabstraction,Eleme
17、nts at the same level of the hierarchy should be at the same level of abstraction,-41-,Agenda-4,Object and ClassFour Principles of OOGeneralization and PolymorphismPrinciples of Visual ModelingThe UMLProcess and visual modeling,-42-,Generalization,A relationship among classes where one class shares
18、the structure and/or behavior of one or more classesDefines a hierarchy of abstractions in which a subclass inherits from one or more superclassesSingle inheritanceMultiple inheritanceIs an“is a kind of”relationship.,-43-,范例:单一继承,One class inherits from another,-44-,范例:多重继承,A class can inherit from
19、several other classes,Use multiple inheritance only when needed and always with caution!,-45-,What Is Inherited?,A subclass inherits its parents attributes,operations,and relationshipsA subclass may:Add additional attributes,operations,relationshipsRedefine inherited operations(Use caution!)Common a
20、ttributes,operations,and/or relationships are shown at the highest applicable level in the hierarchy,-46-,范例:继承什么?,class Student protected string name;public string getName()public Account theAccount;class GraduateStudent extends Student 派生类(子类)从基类(超类、父类)中派生,继承了基类中全部的public和protected数据成员和方法。所以即使Grad
21、uateStudent中没有定义getName(),也会从Student中得到getName()方法的全部实现派生类也会继承基类中的关系,因此GraduateStudent与Account也有聚合关系,-47-,继承的原始目的,在面向对象思想发展的初期,通过继承复用代码曾经被认为是面向对象最重要的目标之一当时人们的想法是:从基类获得大部分成熟的代码,实现主要的功能,而修改必要的部分,实现特色功能很遗憾,实践中人们发现无法达成事先预期的效果,-48-,继承并非代码复用的最佳机制,继承在代码复用方面不如其它方式灵活有效比如函数库代码复用在今天的意义不象先前预期的那么大,原因是:代码只是细节,系统由
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML建模语言及工具PPT课件-第2章 对象技术与可视化建模基础1 UML 建模 语言 工具 PPT 课件 对象 技术 可视化 基础
链接地址:https://www.31ppt.com/p-2840854.html