已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML建模,王洪涛 ,2,Introduce,性质:专业必修课 课时:34学时,17次课 目标: 能够熟练地使用UML表达设计思想 运用面向对象设计的一般原则进行应用系统的分析和设计 针对具体的UML模型,运用Java语言进行实现,3,Why?,需要理由吗? 我们从事软件行业 面向对象是最主流的软件开发思想 UML是最主流的建模方法,UML+面向对象,OOAD,系统定义、分析、设计、实现,对于今天的软件开发者来说,UML是他们的面包和黄油,4,为什么学习这门课?,从程序员( programmer)到系统分析员(system analyst) 从建筑工人( worker)到建筑师( architect),5,参考网站,统一建模语言 /uml Csdn(中国最大的程序员开发网站) ,6,教学安排,一、基础部分 专题一:上升到面向对象 专题二:UML概述与组成 二、UML模型图 专题三:用例图 专题四:类图、对象图、包图 专题五:交互图(顺序图、协作图) 专题六:状态图 专题七:活动图 专题八:部署图与配置图 三、案例分析 专题九:毕业设计网上选题系统分析,7,考核方式,平时+作业+实验(30) 结合课程进度,安排小作业 指定期限内提交,逾期作0分处理,根据情况进行讲解 考试(70) 形式:课程设计 完成分析与设计报告(适时安排课程设计答辩) 总成绩为两者成绩之和,第 1 讲 上升到面向对象 An Approach to the Object-Oriented,9,学习线路图,10,内容安排,面向对象技术概述 面向对象技术发展 面向对象与结构化 上升到面向对象,11,内容安排,面向对象技术概述 面向对象技术发展 面向对象与结构化 上升到面向对象,12,面向对象技术,是一种看待计算机软件系统的观点 是一种系统分析和设计的思想 是一种编程方法 是一组设计模式 是一种编程语言设计思路 是实践者的日常工作 是吹鼓手、骗子和市场人员口中的“万灵丹”,13,面向对象技术定义,面向对象方法是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,包括分析、设计和实现等活动,面向对象技术基于对象概念,以对象为中心,以类和继承为构造机制,充分利用接口和多态提供灵活性,来认识、理解、刻划客观世界和设计、构建相应的软件系统,面向对象=对象 + 类 + 消息 + 继承 + 多态,14,面向对象方法学,面向机器 面向代数 面向过程 面向数据 面向文件 面向信息 面向应用 面向功能 面向数据流 ,面向对象是软件方法学的返璞归真:面向用户,软件科学的发展历程中出现过许多“面向”,软件开发从过分专业化的方法、规则和技巧中回到了客观世界,回到了人们的日常思维,是软件理论的返朴归真,面向对象,15,面向对象技术利益-1,沟通 顺应人类思维习惯,让软件开发人员在解空间中直接模拟问题空间中的对象及其行为,PUSH EBX MOV EBX,EDX MOV EDX,EAX SHR EDX,16 DIV BX,AHare.Run; ALion.Catch(AHare); ALion.Kill(AHare); AHare.Dead; ALion.Eat; ALion.Happy;,在计算机中模拟现实世界的事和物,16,实例01-01:“东北一家人?”,东北人都是活雷锋 人、东北人、雷锋 老张开车去东北 撞啦! 老张、汽车、开车 撞啦,17,class 人 Region 籍贯; class Region interface 雷锋 helpPeople() class 东北人 extends 人 implements 雷锋 籍贯 = 东北; helpPeople() ,class Car DriveTo(Region) throws Exception (撞车) 人 Driver; Main Program 人 老张; Car 夏利; 夏利.Driver = 老张; try 夏利.DriveTo(东北); catch (Exception) ,面向对象的表示,18,面向对象技术利益-2,稳定 较小的需求变化不会导致系统结构大的改变 当需求变化时,功能:最易变 数据:较易变 对象:较稳定,稳定性增加,用较稳定把不稳定的包起来,19,面向对象技术利益-3,复用 代码重用:类库、框架等重用机制 能提高质量,减少由于编制新的系统代码而产生的成本 通过继承、关联、封装等手段,软件开发组越大,组中每个成员的生产率就越低 -Philippe Kahn, Borland公司创始人,构造大型软件不能靠堆人,20,面向对象技术利益-4,改善软件结构(模块化与封装),提高软件灵活性 增加可扩展性 支持增量式开发,支持大型软件开发 ,21,面向对象技术研究内容,面向对象的编程(OOP: Object-Oriented Programming) 当今最流行的编程语言:Java、C# 面向对象的分析与设计(OOAD: Object-Oriented Analysis and Design) 当今最流行的建模语言:UML(Unified Modeling Language),L. M. Northrop: 尽管面向对象语言正取得令人振奋的发展,但编程并不是软件开发问题的主要根源。需求分析与设计问题更为普遍并且更值得解决。因此面向对象开发技术的焦点不应该只对准编程阶段,而应更全面地对准软件工程的其他阶段。面向对象方法真正意义深远的目标是它适合于解决分析与设计期间的复杂性并实现分析与设计的复用。面向对象的开发不仅仅是编程,必须在整个软件生命周期采用一种全新的方法,这一观点已被人们所接受。 软件工程百科全书纽约, 1994,22,内容安排,面向对象技术概述 面向对象技术发展 面向对象与结构化 上升到面向对象,23,面向对象技术发展-1,里程碑1:Simula 67 (1962-1967,挪威) Ole-Johan Dahl和Kristen Nygaard 在挪威奥斯陆国家计算中心(NCC) 设计实现. 公认的世界上第一种面向对象语言 基本思想,24,面向对象技术发展-2,里程碑2:Smalltalk(1970,施乐保罗阿托) Alan Kay设计实现 第一个成熟的面向对象语言,为开发GUI而设计 实用化,预言历史的最佳方式是创造历史 - Alan Kay,25,Smalltalk范例,“无消息模式方法,宜写算法” | s c f k | “定义了四个临时变量” fArray new:26. “f是Array实例长度26” sPrompter prompt:enter line default: “s是Prompter的实例,装输入字串” 1 to:26 do:i|f at:i put:0. 1 to:size do:i| c(s at:i) asLowerCase. C isLetter ifTrue: kc asciiValue-a asciiValue + 1. F at:k put:(f at:k) + 1 . f,26,面向对象技术发展-3,里程碑3:ADT, Ada 83, 基于对象(1977-1983) 编程理论界在结构化运动中提出ADT思想,以N. Wirth和Liskov为代表 美国防部军用开发语言评选,Ada被指定为强制性军用编程语言,实际上已经进入“基于对象”阶段,Ada Lovelace是英国著名诗人拜伦的女儿,世界上第一个程序员。Ada语言以她的名字命名,27,面向对象技术发展-4,里程碑4:C+ (1982,贝尔实验室) 第一个被工业界广泛接受的支持面向对象能力的语言,创造者Bjarne Stroustrup 动机是给C添加一些Simula特性,以完成当时刚刚出现的大规模复杂任务 商业化,Bjarne Stroustrup,28,面向对象技术发展-5,里程碑5:MS-Windows(1985,微软) 第一个被广泛使用的GUI系统软件,它使面向对象技术的使用不可阻遏,1985年出品的Windows 1.0产品,1987年出品的Windows 2.0界面,29,面向对象技术发展-6,里程碑6:Booch Method(1991,G. Booch) 第一个被广泛接受使用的面向对象建模方法,Booch代表作的第三版,30,面向对象技术发展-7,里程碑7:设计模式出版(1995,GoF) 掀起模式运动,31,面向对象技术发展-8,里程碑8:Java语言推出(1995,Sun) 第一个被广泛使用的面向对象语言,J2EE是目前最成功的面向对象框架。,32,面向对象技术发展-9,里程碑9:UML被OMG接纳为标准(1997) 面向对象方法学之战结束,33,面向对象技术发展-10,里程碑10:微软.NET计划(2000) 意义还难以评估,34,面向对象技术发展-总结,60年代后期:Simul67,基本思想 70年代后期:Smalltalk80,实用化 80年代:理论基础,C+等,商业化 90年代:面向对象与设计方法学 B.H. Sellers等提出喷泉模型 G. Booch提出面向对象开发方法等 P. Coad和E.Yourdon提出OOA和OOD Jacobson提出OOSE 1997年:UML,面向对象 程序设计语言,“方法大战”,35,面向对象技术发展-现状,现状 OO成为最重要的软件开发方法 OO在GUI、模拟系统、游戏开发、应用框架、软件构件化领域大显身手 Java、UML 与 RUP 构件技术 (CORBA、COM、EJB、.Net) 类库与设计模式,36,面向对象技术发展-未来,未来 OO的形式化与自动化 OO构件、设计模式的丰富将进一步提高软件开发的效率和质量 软件开发人员必须从 Think Procedurely转变为 Think Object-Orientedly,37,内容安排,面向对象技术概述 面向对象技术发展 面向对象与结构化 上升到面向对象,38,面向对象 VS 结构化-1,扬弃,不是否定,39,面向对象 VS 结构化-2,Programming,40,面向对象 VS 结构化-3,结构化方法(SA+SD+SP),面向对象的方法,问 题 域,问 题 域,结构化分析,分析与设计的鸿沟,结构化设计,结构化编程,如C语言,需求工程,OOA&D,OOP,如Java语言,测 试,计 算 机 系 统,测 试,计 算 机 系 统,自然语言,编程语言,自然语言,OO编程语言,数据流图 数据字典,模块和过程,需求模型,对象模型,OO方法,OO建模语言,41,面向对象 VS 结构化-4,42,归纳总结,结构化设计用算法刻画数据的递归关系,而面向对象思想直接用对象表达递归关系“模拟现实世界” 结构化设计中,数据是死的,全部依赖算法操作,而面向对象中,数据是活的,所谓的smart data 结构化设计更像是一个人在解决所有的问题,而面向对象设计更像是一个团队的分工协作,43,体会,使用得当,面向对象设计具有更大的灵活性,更好的模块化,可以进行更大规模的设计 但同时,面向对象设计和开发的难度更大,因为除了要考虑算法之外,还要考虑对现实世界的模拟、对象的识别和职责分配等等一系列问题 优秀的面向对象设计需要学习更多知识和技术,掌握一系列设计原则和模式 UML图形化工具有助于表达和交流设计思想。但是否可以做到“无代码编程”,还在争论中,44,题外话,既然OO更难,为什么要用它? 大规模程序设计 灵活多变的系统需求 技术进步的必经之路 保持冷静:确实有很多项目不适合用OO,传统的结构化设计仍然很有意义。 后面的重点是UML、面向对象分析和设计过程以及相关的设计原则和设计模式基础,45,内容安排,面向对象技术概述 面向对象技术发展 面向对象与结构化 上升到面向对象,46,什么是对象?,对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组方法组成。,47,对象的特点,对象具有标识 你能够对它命名,以区别于其他对象 对象具有状态 通常有一些数据与它相联系 对象具有行为 使你能够对改对象做某些事,它也能为其他对象做某些事,48,对象和类,对象可以是一个人、地址、物品、事件、概念、屏幕显示或者报表。类泛化或表示一组相似的对象,是创建对象的有效模板。 一个类表示一组相似的对象。 对象是类的实例。 属性是类知道的事情。方法是类完成的事情。,49,面向对象的基本原理,50,什么是抽象?,抽象就是在去除或忽略那些不重要的、非实质性的各种相关的细节的同时,抓住事物最重要的、实质性的和独有的特征进行建模。 抽象使得我们可以从事物的多样性中摆脱出来专注于事物的本质特征。,51,抽象的例子,52,什么是封装?,封装是指把对象的属性和操作结合在一起,构成一个独立的对象,它的内部信息对外界是隐蔽的(信息隐藏),。外部对象不能直接操作对象的属性,只能使用对象提供的服务。 对于对象的外部而言,只知道对象所表现的外部行为,不必了解对象行为的内部实现细节。 封装是把框体涂黑的做法。,53,Encapsulation Illustrated,Professor Clark needs to be able to teach four classes in the next semester.,54,什么是模块化?,把复杂的事务分解成可以处理的部分 帮助人们更好地理解复杂系统,55,模块化的例子,For example, break complex systems into smaller modules.,56,什么是继承?,表示两个类之间是“is a”、“is li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村级加班就餐方案
- 村级便民驿站建设方案
- 村民自建项目结算方案
- 村庄详细设计方案
- 村庄树木养护投标方案
- 村庄卫生改造方案
- 村干部物资管理方案
- 村屯内耕地管理方案
- 村委会经费分配方案
- 村口绿化改造方案
- 医务人员职业暴露预防及处理课件(完整版)
- 期中考试模拟试卷 2024-2025学年人教版数学九年级上册
- CJT 497-2016 城市轨道交通桥梁伸缩装置
- 中外政治思想史-形成性测试二-国开(HB)-参考资料
- 23秋国家开放大学《EXCEL在财务中的应用》形考作业1-4参考答案
- 驱动压在肺保护性通气策略中的研究进展(全文)
- 公路工程施工安全技术规范
- “碑学”、“帖学”献疑.doc
- 通信综合网管技术规格书doc
- 四宗宗义比较略记
- (完整版)A4作文格纸可直接打印使用
评论
0/150
提交评论