《第1章.上升到面向对象课件.ppt》由会员分享,可在线阅读,更多相关《第1章.上升到面向对象课件.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、UML理论及实践第1章 上升到面向对象An Approach to the Object Orientation内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-4-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-5-课程目标三大目标:uOO:建立对象的思维方式,对面向对象思想和理论有进一步的理解uUML:能够熟练地使用UML表达面向对象的设计思想uModel:运用对象技术的一般原则和模式进行应用系统的分析和设计建模-6-课程目标(续)三大目标之间的关系uModel:软件的抽象表示uOO:建立模型的理论支撑uUML:模型的表示工具和手段-7-关于本课程本课程是
2、软件工程类专业课程,侧重于工程实践能力的培养,强调分析和设计技能,重点在建模方法的应用u过程驱动:围绕分析和设计过程,关注各阶段建模技术的应用u案例驱动:围绕具体案例,讲解面向对象分析和设计的思维方式和解决问题的方法课程重点不是理论或知识,而是树立对象思维方式,并培养运用UML来表达这种思维方式的技能,从而完成面向对象的分析和设计-8-开设本课程的必要性u我们将来从事软件行业u面向对象是最主流的软件开发思想uUML是最主流的建模方法UMLOOAD软件工程师的“饭碗”对于今天的软件开发者来说,对于今天的软件开发者来说,UMLUML是他们的面包和黄油是他们的面包和黄油-9-本课程的基础和基本定位基
3、础u知识储备:软件工程、面向对象程序设计u实践储备:了解工程项目的特点,最好有实际软件项目的开发背景基本定位u在软件相关行业,能够利用UML进行面向对象的分析、设计等建模工作u能利用建模工具Rational等完成软件项目的建模。-10-关于教材内容 1 基础(3):上升到面向对象 2 基础(3):可视化建模技术p 3 起源(2):业务建模 4 需求(4):用例建模 5 分析(3):用例分析 6 设计基础(3):面向对象设计原则p 7 设计基础(3):面向对象设计模式p 8 设计(3):架构设计p 9 设计(3):构件设计 10 实现(3):正向工程逆向工程-1 1-学习路线图OOUMLOOP
4、OOPDP DP Case-Study Case-Study 学 习 路 线 图1 12 23 34 45 56 67 78 89 910 10-12-考核方式考勤、平时表现(20%)实验(20)u参照教材内容,围绕一个完整案例,完成四次实验u根据实验完成情况和实验报告质量评分考试(60)u课程结束后安排考试u开卷-13-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-14-什么是面向对象技术?是一种看待计算机软件系统的观点是一种系统分析和设计的思想是一种编程方法是一组设计原则和模式-15-面向对象技术面向对象技术u是一系列指导软件构造的原则(如抽象、封装、多态等)u通过语言
5、、数据库和其它工具来支持这些原则u面向对象技术类+对象+抽象+封装+继承+多态+基于消息的通信.-16-对象技术的发展历史Simula Simula基本思想 基本思想1967 19671972 1972Smalltalk Smalltalk实用化 实用化C+C+商业化 商业化1980s 1980s1995 1995Java Java编程方法的成熟 编程方法的成熟UML UML统一方法学 统一方法学1997 19972011+2011+构件、构件、服务、服务、云计算 云计算?-17-对象技术优势-1沟通u顺应人类思维习惯,让软件开发人员在解空间(计算机环境)中直接模拟问题空间(现实世界)中的对象
6、及其行为PUSH EBX PUSH EBXMOV EBX,EDX MOV EBX,EDXMOV EDX,EAX MOV EDX,EAXSHR EDX,16 SHR EDX,16DIV BX DIV BXAHare.Run;AHare.Run;ALion.Catch(AHare)ALion.Catch(AHare);ALion.Kill(AHare);ALion.Kill(AHare);AHare.Dead;AHare.Dead;ALion.Eat;ALion.Eat;ALion.Happy;ALion.Happy;在计算机中模拟现实世界的事和物在计算机中模拟现实世界的事和物-18-对象技术利益
7、-2稳定u较小的需求变化不会导致系统结构大的改变u当需求变化时功能:最易变 功能:最易变数据:较易变 数据:较易变对象:较稳定 对象:较稳定稳 稳定 定性 性增 增加 加用稳定的元素把不稳定的元素封装起来用稳定的元素把不稳定的元素封装起来-19-对象技术利益-3复用提高质量,减少成本u代码重用:基于类库、框架等u设计重用:基于抽象、多态、模式u能提高质量,减少由于编制新的系统代码而产生的成本软件开发组越大,组中每个成员的生产率就越低-Philippe Kahn,Borland公司创始人构造大型软件不能靠堆人构造大型软件不能靠堆人-20-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对
8、象思维-21-对象(Object)对象(Object)是一个实体、一件事、一个名词,可以获得的某种东西,是可以进行标识的任何事物u可以是物理存在的u也可能是一个概念u或软件中的实体-22-UML 中的对象命名对象 匿名对象仅有对象名的对象类类是对一系列对象的抽象描述,这些对象共享相同的属性、操作、关系和语义u一个具体的对象是该类的一个实例抽象过程强调相关特征而忽略其它的特征u类抽象的过程就是将具体对象的特征和行为进行参数化,分别用类的属性(attribute)和操作(operation)来表示-23-24-属性属性(attribute)是类的特征或特性u属性的值是某一特定对象的属性值u在类中属
9、性名必须是唯一的u每一个类的实例都有为这个类定义的所有属性的值银行帐户类的属性帐号名银行名称拥有者金额Mary的银行帐户属性值12345678First National BankMary Smith$1024.48-25-属性取决于视点 从销售人员的角度 u 型号u 价格u 颜色u 里程数一辆汽车具有的属性:从维修人员的角度 u 马达类型u 传动类型u 维修记录-26-操作操作(operation)访问或修改对象的属性值对象的行为是由为此对象定义的一系列操作决定的一个类可能同时存在多个实例,也可能在某一时刻没有实例一个类的所有实例都可以使用在这个类中定义的操作 从销售人员的角度 u处理客户定
10、单u准备销售合同u加入清单u从清单中删除一辆汽车具有的操作:从维修人员的角度 u测试刹车u修理刹车u转动轮胎u检查马达速度操作取决于视点-28-UML 中的类属性操作-29-类和对象的关系每一个对象都是某一个类的实例每一个类在某一时刻都有零个或更多的实例类是静态的;它们的存在、语义和关系在执行前就已经定义好了对象是动态的;它们在程序执行时可以被创建和删除-30-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-31-面向对象技术的相关原则对象技术基本原则u抽象(Abstraction)u封装(Encapsulation)u泛化(Generalization)u多态(Polymo
11、rphism)u-32-抽象和封装抽象是事物区别于其它事物的本质特征u抽象的过程取决于使用者的目的,它应该包括使用者所感兴趣的那些职责,而忽略掉其它不相关的部分封装是指对象对其客户隐藏具体的实现,是软件模块化思想的体现u通过封装实现信息隐藏和数据抽象泛化泛化是类与类之间一种关系u通过这种关系一个类可以共享另外一个或多个类的结构和行为u为了实现泛化关系,采用继承机制一个子类(subclass)继承一个或多个父类(superclass),从而实现了不同的抽象层次通过这种关系可以很容易地复用已经存在的数据和代码,并实现多态处理u根据父类的个数不同,存在着单一继承和多重继承两种情况-33-多态多态是在
12、同一外表(接口)下表现出多种行为的能力u是对象技术的根本特征u对象技术正是利用多态提供的动态行为特征,来封装变化,适应变更,以达到系统的稳定-34-35-应用多态性假设我们有一个数组sharr,里面放着一排Shape,但是不知道哪些是Rectangle,哪些是Circle。利用多态性,我们可以:for(int i=0;i sharr.length;+i)Shape shape=(Shape)sharri;shape.draw();遍历整个数组的过程中,各个Shape自己知道应当如何在画布上绘制自己。shape.draw()这同一行代码在shape指向不同的对象时表现出不同的行为,这就是所谓多态
13、性-36-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-37-实例1:OO 观点的个人简介tanHuobin是Teacher类的一个实例,该实例是基于beiHangUniversity对象的softwareSchool的成员对象tanHuobin教授ooTechnology课程类GraduateStudent的所有实例都可以通过Course类的对象ooTechnology建立关联。GraduateStudent的所有实例可以向tanHuobin发送phone消息或email消息-38-OO 个人简介的UML 表示-39-实例2:对象思维分析问题昨天我的一个朋友结婚了-40-
14、问题分析-1A.这里面有什么东西?u月老,小伙,姑娘,恋人,玫瑰花B.每个东西看上去是什么样的?u月老,看上去有些年纪了,挺热心u小伙,看上去很强壮,很诚实u姑娘,看上去好漂亮,还很温柔u恋人,看上去很黏糊,最终结婚了u玫瑰花,火红火红的,难怪姑娘动情了-41-问题分析-2C.每个东西能做什么?u月老:牵线搭桥,介绍两人认识u小伙:追求献花,表达爱意u姑娘:仰慕倾情,以身相许u恋人:拍拖,结婚u玫瑰花:令姑娘心动,传情示爱-42-问题分析-3D.这些东西都呆在什么地方?u月老:婚介所,交友网站u小伙:软件园u姑娘:人民医院u恋人:情侣路,电影院,u玫瑰花:花店里,小伙手中,姑娘手中-43-问题
15、分析-4E.这些东西之间有什么关系?关系 月老 小伙 姑娘 恋人 玫瑰月老 干妈 舅妈 撮合者 没关系小伙 干儿子 男友老公 男主角 买送主姑娘 外甥女 女友太太 女主角 受主恋人 被撮合 组成 组成 使用者玫瑰 没关系 信物 接受礼物 信物-44-问题分析-5F.这些东西是怎么成事的?u月老牵线搭桥,介绍小伙和姑娘认识u姑娘和小伙一见钟情,成为一对恋人u一对恋人开始拍拖u小伙追求献花,表达对姑娘的爱意u姑娘收到999火红玫瑰,激动得头晕目眩u小伙真心求婚,姑娘以身相许u一对恋人终于走入婚姻殿堂-45-上升到面向对象用面向对象观点观看事物-46-用对象观点认识事物 A.这里面有什么东西?类与对
16、象 B.每个东西看上去是什么样的?类的属性 C.每个东西能做点什么用?类的操作 D.这些东西都呆在什么地方?类的行为、状态、部署 E.这些东西之间有什么关系?类间的关联 F.这些东西是怎么成事的?类间的协作(用例实现)DACBEF-47-俗语和术语间的对应俗语俗语术语术语例子例子出了什么事?用例 我的一个朋友结了婚。具体事物 对象 我的一个朋友,他未婚妻事物类型 类 小伙,姑娘,玫瑰,月老属性 属性 年龄,体格,性情能力 操作 牵线,追求,结婚位置 部署 软件园,情侣路整-部关系 聚合关系 恋人-小伙,恋人-姑娘抽-具关系 继承关系 人-小伙,人-姑娘协作关系 关联关系 小伙-姑娘,小伙-玫瑰成事过程 用例实现 相识,相恋,结婚-48-利用UML 描述分析过程完完整整故故事事情情节节的的静静态态模模型型-49-搞清过程的活动图结婚过程的活动图-50-复述情节的顺序图初 初次 次见 见面 面顺 顺序 序图 图-51-理清头绪的通信图初次见面的通信图-52-定点观察的状态机图恋人关系发展的状态图