![第1章上升到面向对象课件_第1页](http://file4.renrendoc.com/view/7c82bd075c4df8aac413542159d9d931/7c82bd075c4df8aac413542159d9d9311.gif)
![第1章上升到面向对象课件_第2页](http://file4.renrendoc.com/view/7c82bd075c4df8aac413542159d9d931/7c82bd075c4df8aac413542159d9d9312.gif)
![第1章上升到面向对象课件_第3页](http://file4.renrendoc.com/view/7c82bd075c4df8aac413542159d9d931/7c82bd075c4df8aac413542159d9d9313.gif)
![第1章上升到面向对象课件_第4页](http://file4.renrendoc.com/view/7c82bd075c4df8aac413542159d9d931/7c82bd075c4df8aac413542159d9d9314.gif)
![第1章上升到面向对象课件_第5页](http://file4.renrendoc.com/view/7c82bd075c4df8aac413542159d9d931/7c82bd075c4df8aac413542159d9d9315.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML理论及实践
第1章上升到面向对象AnApproachtotheObjectOrientation内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-4-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-5-课程目标三大目标:OO:建立对象的思维方式,对面向对象思想和理论有进一步的理解UML:能够熟练地使用UML表达面向对象的设计思想Model:运用对象技术的一般原则和模式进行应用系统的分析和设计建模-6-课程目标(续)三大目标之间的关系Model:软件的抽象表示OO:建立模型的理论支撑UML:模型的表示工具和手段-7-关于本课程本课程是软件工程类专业课程,侧重于工程实践能力的培养,强调分析和设计技能,重点在建模方法的应用过程驱动:围绕分析和设计过程,关注各阶段建模技术的应用案例驱动:围绕具体案例,讲解面向对象分析和设计的思维方式和解决问题的方法课程重点不是理论或知识,而是树立对象思维方式,并培养运用UML来表达这种思维方式的技能,从而完成面向对象的分析和设计-8-开设本课程的必要性我们将来从事软件行业面向对象是最主流的软件开发思想UML是最主流的建模方法UMLOOAD软件工程师的“饭碗”对于今天的软件开发者来说,UML是他们的面包和黄油-9-本课程的基础和基本定位基础知识储备:软件工程、面向对象程序设计实践储备:了解工程项目的特点,最好有实际软件项目的开发背景基本定位在软件相关行业,能够利用UML进行面向对象的分析、设计等建模工作能利用建模工具Rational等完成软件项目的建模。-10-关于教材内容1基础(3):
上升到面向对象2基础(3):
可视化建模技术3起源(2):
业务建模4需求(4):
用例建模5分析(3):
用例分析6设计基础(3):
面向对象设计原则7设计基础(3):
面向对象设计模式8设计(3):
架构设计9设计(3):
构件设计10实现(3):
正向工程逆向工程
-11-学习路线图OOUMLOOPDP…Case-Study…学习路线图……
……
……
……12345678910-12-考核方式考勤、平时表现(20%)实验(20%)参照教材内容,围绕一个完整案例,完成四次实验根据实验完成情况和实验报告质量评分考试(60%)课程结束后安排考试开卷-13-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-14-什么是面向对象技术?是一种看待计算机软件系统的观点是一种系统分析和设计的思想是一种编程方法是一组设计原则和模式…………-15-面向对象技术面向对象技术是一系列指导软件构造的原则(如抽象、封装、多态等)通过语言、数据库和其它工具来支持这些原则面向对象技术=类+对象+抽象+封装+继承+多态+基于消息的通信….-16-对象技术的发展历史Simula基本思想19671972Smalltalk实用化C++
商业化1980s1995Java
编程方法的成熟UML
统一方法学19972011+构件、
服务、
云计算???-17-对象技术优势-1沟通顺应人类思维习惯,让软件开发人员在解空间(计算机环境)中直接模拟问题空间(现实世界)中的对象及其行为PUSHEBXMOVEBX,EDXMOVEDX,EAXSHREDX,16DIVBXAHare.Run;ALion.Catch(AHare);ALion.Kill(AHare);AHare.Dead;ALion.Eat;ALion.Happy;在计算机中模拟现实世界的事和物-18-对象技术利益-2稳定较小的需求变化不会导致系统结构大的改变当需求变化时……功能:最易变数据:较易变对象:较稳定稳定性增加用稳定的元素把不稳定的元素封装起来-19-对象技术利益-3复用—提高质量,减少成本代码重用:基于类库、框架等设计重用:基于抽象、多态、模式能提高质量,减少由于编制新的系统代码而产生的成本软件开发组越大,组中每个成员的生产率就越低--PhilippeKahn,Borland公司创始人构造大型软件不能靠堆人-20-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-21-对象(Object)对象(Object)是一个实体、一件事、一个名词,可以获得的某种东西,是可以进行标识的任何事物可以是物理存在的也可能是一个概念或软件中的实体-22-UML中的对象命名对象匿名对象仅有对象名的对象类类是对一系列对象的抽象描述,这些对象共享相同的属性、操作、关系和语义一个具体的对象是该类的一个实例抽象过程强调相关特征而忽略其它的特征类抽象的过程就是将具体对象的特征和行为进行参数化,分别用类的属性(attribute)和操作(operation)来表示-23--24-属性属性(attribute)是类的特征或特性属性的值是某一特定对象的属性值在类中属性名必须是唯一的每一个类的实例都有为这个类定义的所有属性的值银行帐户类的属性帐号名银行名称拥有者金额Mary的银行帐户属性值12345678FirstNationalBankMarySmith$1024.48-25-属性取决于视点从销售人员的角度型号价格颜色里程数一辆汽车具有的属性:从维修人员的角度马达类型传动类型维修记录-26-操作操作(operation)访问或修改对象的属性值对象的行为是由为此对象定义的一系列操作决定的一个类可能同时存在多个实例,也可能在某一时刻没有实例一个类的所有实例都可以使用在这个类中定义的操作从销售人员的角度处理客户定单准备销售合同加入清单从清单中删除一辆汽车具有的操作:从维修人员的角度测试刹车修理刹车转动轮胎检查马达速度操作取决于视点-28-UML中的类属性操作-29-类和对象的关系每一个对象都是某一个类的实例每一个类在某一时刻都有零个或更多的实例类是静态的;它们的存在、语义和关系在执行前就已经定义好了对象是动态的;它们在程序执行时可以被创建和删除-30-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-31-面向对象技术的相关原则对象技术基本原则抽象(Abstraction)封装(Encapsulation)泛化(Generalization)多态(Polymorphism)……-32-抽象和封装抽象是事物区别于其它事物的本质特征抽象的过程取决于使用者的目的,它应该包括使用者所感兴趣的那些职责,而忽略掉其它不相关的部分封装是指对象对其客户隐藏具体的实现,是软件模块化思想的体现通过封装实现信息隐藏和数据抽象泛化泛化是类与类之间一种关系通过这种关系一个类可以共享另外一个或多个类的结构和行为为了实现泛化关系,采用继承机制一个子类(subclass)继承一个或多个父类(superclass),从而实现了不同的抽象层次通过这种关系可以很容易地复用已经存在的数据和代码,并实现多态处理根据父类的个数不同,存在着单一继承和多重继承两种情况-33-多态多态是在同一外表(接口)下表现出多种行为的能力是对象技术的根本特征对象技术正是利用多态提供的动态行为特征,来封装变化,适应变更,以达到系统的稳定-34--35-应用多态性假设我们有一个数组sharr,里面放着一排Shape,但是不知道哪些是Rectangle,哪些是Circle。利用多态性,我们可以:
for(inti=0;i<sharr.length;++i){ Shapeshape=(Shape)sharr[i];
shape.draw(); }遍历整个数组的过程中,各个Shape自己知道应当如何在画布上绘制自己。shape.draw()这同一行代码在shape指向不同的对象时表现出不同的行为,这就是所谓多态性-36-内容安排课程介绍对象技术对象和类对象技术相关原则建立面向对象思维-37-实例1:OO观点的个人简介tanHuobin是Teacher类的一个实例,该实例是基于beiHangUniversity对象的softwareSchool的成员对象tanHuobin教授ooTechnology课程类GraduateStudent的所有实例都可以通过Course类的对象ooTechnology建立关联。GraduateStudent的所有实例可以向tanHuobin发送phone消息或email消息-38-OO个人简介的UML表示-39-实例2:对象思维分析问题昨天我的一个朋友结婚了-40-问题分析-1A.这里面有什么东西?月老,小伙,姑娘,恋人,玫瑰花B.每个东西看上去是什么样的?月老,看上去有些年纪了,挺热心小伙,看上去很强壮,很诚实姑娘,看上去好漂亮,还很温柔恋人,看上去很黏糊,最终结婚了玫瑰花,火红火红的,难怪姑娘动情了-41-问题分析-2C.每个东西能做什么?月老:牵线搭桥,介绍两人认识小伙:追求献花,表达爱意姑娘:仰慕倾情,以身相许恋人:拍拖,…,结婚玫瑰花:令姑娘心动,传情示爱-42-问题分析-3D.这些东西都呆在什么地方?月老:婚介所,交友网站小伙:软件园姑娘:人民医院恋人:情侣路,电影院,…玫瑰花:花店里,小伙手中,姑娘手中-43-问题分析-4E.这些东西之间有什么关系?关系月老小伙姑娘恋人玫瑰月老干妈舅妈撮合者没关系小伙干儿子男友老公男主角买送主姑娘外甥女女友太太女主角受主恋人被撮合组成组成使用者玫瑰没关系信物接受礼物信物-44-问题分析-5F.这些东西是怎么成事的?月老牵线搭桥,介绍小伙和姑娘认识姑娘和小伙一见钟情,成为一对恋人一对恋人开始拍拖小伙追求献花,表达对姑娘的爱意姑娘收到999火红玫瑰,激动得头晕目眩小伙真心求婚,姑娘以身相许一对恋人终于走入婚姻殿堂-45-—上升到面向对象—
用面向对象观点观看事物-46-用对象观点认识事物A.这里面有什么东西?
类与对象B.每个东西看上去是什么样的?
类的属性C.每个东西能做点什么用?
类的操作D.这些东西都呆在什么地方?
类的行为、状态、部署E.这些东西之间有什么关系?
类间的关联F.这些东西是怎么成事的?
类间的协作(用例实现)DACBEF-47-俗语和术语间的对应俗语术语例子出了什么事?用例我的一个朋友结了婚。具体事物对象我的一个朋友,他未婚妻…事物类型类小伙,姑娘,玫瑰,月老…属性属性年龄,体格,性情…能力操作牵线,追求,结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宿迁年货运从业资格证
- 电子商务平台客户服务的创新发展
- 生产部门项目管理的关键成功因素
- 现代餐厅的AI技术提升顾客忠诚度的关键
- 现代物流对紧固件产品升级的推动作用
- 电动汽车环境适应性强的维护与管理方案
- 消费者行为与电子商务策略
- 构建全方位的商业空间灾害防范与应对体系
- 游戏界面的信息架构与交互逻辑
- 现代酒店中人工智能技术的应用案例
- 《网络设备基础知识培训》课件
- 2024年农村述职报告
- 2024年湖南司法警官职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 考点14 非连续性文本阅读(解析版)
- 人音版音乐七年级上册《在希望的田野上》课件
- 2024年教育部的中小学德育工作指南
- 七年级数学(人教)上册木杆和重物试验方程解法
- TD-T 1048-2016耕作层土壤剥离利用技术规范
- DB41T 2599-2024 煤矿地震监测站网技术规范
- 抖音账号租赁合同协议
- 三甲医院临床试验机构-31 V00 专业组备案及考核SOP
评论
0/150
提交评论