[教育学]软件工程实践12OO课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[教育学]软件工程实践12OO课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教育学 软件工程 实践 12 OO 课件
- 资源描述:
-
1、北京理工大学软件工程实践吴 际北京航空航天大学第十二讲面向对象方法与UML介绍内容和目的n我们的座标n面向对象方法n面向对象:能与不能n统一建模语言UML我们的座标n应用开发的变化n开发工具和手段的发展n开发方法和技术的发展应用开发的变化n70年代:小型机(或服务器)上的数学程序n80年代:单机(或以太网)上的、文本界面(或简单图形界面)、计算型应用n90年代:互联网(Internet)、丰富图形界面、事务处理型应用,要求快速提交产品n现在,分布于Internet、Intranet,多种界面形式(基于Web Browser、Application GUI等),多种事务处理的集成(电子商务、信息
2、管理),多种标准的支持(XML,J2EE,Corba,.NET),多种平台的支持(Windows,Linux,Unix,)开发工具和手段的发展n70年代:基于汇编代码的调试器n80年代:基于高级语言的调试器(Turbo C,Microsoft C,Borland C,Turbo Pascal)n90年代:集成了调试器、编辑器、配置管理、框架代码构造、及时编码提示、应用GUI界面编辑等的集成开发环境,如Visual Studio,Delphin现在:在集成开发环境基础上,提供更强大的开发平台支持(.NET,JDK),同时更关注应用的平台无关性和运行安全性开发方法和技术的发展n70年代:结构化方法
3、(设计、编码)n80年代:结构化方法(分析、设计、编码),状态图,需求工程n90年代:面向对象分析、设计、编码,对象建模n现在:商务建模(business modeling)、面向对象建模(分析、设计),体系结构设计(构件化)面向对象方法n结构化与面向对象的提出n面向对象方法特征n面向对象主要流派结构化与面向对象的提出nCFD&DFD:自顶而下的层次分解策略n任何一层有变动,其下面的所有层次都必须重新进行层次分解n层次间的解释关系使得难以维护层次间的一致性n强调数据、功能分解,但忽略了数据、功能的整合n数据与功能分离的结构化认知观点,实际偏离了人认知世界的基本原则:n以实体为单位,以关系为核心
4、n尽管有缺点,但结构化仍有可借鉴之处:n结构化原则n数据字典n状态图What do you think about OO?大幕拉开:面向对象n面相对象的目标:以人的(获接近于人的)认知方法和原则来描述事物n完全不同于结构化的描述手段:n类、对象n继承n多态n消息类、对象是核心n面向对象分析、设计、编码的基本单位n数据与功能的有效封装n可直接映射到现实或抽象的实体n关系、状态、行为n开发管理的基本单位n类测试就是“单元测试”!继承:面向对象冠上明珠n如果没有继承,谁能在一个小时之内,只使用SDK接口编写出Notepad?如果使用继承,你只需十分钟(或更少)!n继承至少提供了两个方向的设计支持:n
5、重用n抽象、接口(COM、DCOM、Bean)n没有继承,几乎不可能有通用的容器类(Container or Collector)可供使用n多继承:你使用过多少次?多态:面向对象自适应中枢n多态(polymorphism):多种形态,统一语义n接口描述了通讯协议n多态使得基于接口的通讯能够自适应Arg1,agr2,多态:面向对象自适应中枢n两种多态:n同一个类中的不同形态接口n不同子类以不同形态实现(或重载)父类接口n典型例子:画图程序中GraphManager类的Draw,Move,Open,n典型例子:文档编辑中针对不同对象的统一的Cut/Copy/Paste操作消息:可能让你失望n不要试
6、图用信息理论或通讯理论中的消息来理解n也不要用操作系统中的消息(事件)来理解n所谓两个对象间的一个消息就是一个对象使用了另一个对象的操作(operation),简单说就是对象的操作调用!nWindows中的SendMessage和PostMessage根本就与面向对象无关!对象状态n对象状态只决定于对象的数据,和全局数据、非对象的局部数据无关n对象状态和对象行为之间的关系:n,b1=b2 iff s1=s2.n如果你的程序不满足这条定理,有两种情况:n类的某个方法使用了全局变量n类的某个方法中的局部变量初始值不确定对象关系:无法让人满意n目前的面向对象提供了三种对象关系描述手段:n继承n聚集(
7、组成)n关联:对象之间有关系!n然而,现实世界中实体之间的关系丰富多彩,岂止这三种?面向对象分析n目标:使用对象来描述问题域,进而抽象出问题域类,并把求解问题的约束分配到问题域类n关注:是否完整、清晰的描述了问题域及约束n雷区:使用DFD,然后把每个处理节点都抽象为一个类n雷区:很快就在某个局部(通常为方法)进入算法、编码n面向对象分析模型的价值(领域重用、测试)面向对象设计n目标:引入类(族)实现问题域类(在概念层次上),同时把系统约束分解、落实到类的方法层次n关注:体系结构、接口、效率n雷区:有些类是上帝,而有些类只是弱智的代表n雷区:盲目追求所谓封装、抽象类n面向对象设计模型的价值(设计
8、pattern,风险跟踪、测试)适合面向对象的开发过程n必须能够管理面向对象分析、设计、实现、测试、维护各阶段的模型的一致性n需要给出一套基于类的开发任务管理方法(任务定义、风险管理、任务评审)n能够在开发的不同阶段提供不同的知识库(不仅仅是类库!)以供重用nRUP是个不错的选择面向对象:能与不能nCann使你以更有效的手段描述、实现系统n提高系统的重用度n有效缩短开发周期nCan notn避免错误,尤其是分析、设计错误n自动生成精巧的算法统一建模语言统一建模语言UMLn引 论n建模技术nUML的模型图nUML的基本视图nUML的目的、主要特点和和应用领域引论引论nWhy Unified?nU
9、ML是一种建模语言是一种建模语言nUML的设计目标的设计目标nUML的发展历程的发展历程Why Unified?n面对众多的建模语言,用户没有能力区别不同语面对众多的建模语言,用户没有能力区别不同语言之间的差别。言之间的差别。n在众多的建模语言中,实际上各有千秋,需要取在众多的建模语言中,实际上各有千秋,需要取长补短,日臻完善。长补短,日臻完善。n虽然不同的建模语言大多相同,但仍存在某些细虽然不同的建模语言大多相同,但仍存在某些细微的差别,这极大地妨碍了用户之间的交流。微的差别,这极大地妨碍了用户之间的交流。UML是一种建模语言是一种建模语言n建模方法建模方法=建模语言建模语言+建模过程。建模
10、过程。建模语言建模语言定义了用于表示设计的符号定义了用于表示设计的符号(通常是图形符号通常是图形符号);建模过程描述进行设计所需要遵循的步骤。建模过程描述进行设计所需要遵循的步骤。n标准建模语言标准建模语言UML是一种建模语言,而不是一是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的术语及其图形符号,为人们建立了便于交流的共同语言。共同语言。UML的设计目标的设计目标UML是由是由 Booch,Rumbaugh 和和 Jacobson 发起,发起,在在 Booch方法、方法、OMT方法和方法和OOS
11、E方法的基础上,集方法的基础上,集众家之长,几经修改而成。众家之长,几经修改而成。UML的设计目标是:的设计目标是:运用面向对象概念来构造系统模型运用面向对象概念来构造系统模型(不仅仅针对软件不仅仅针对软件)建立起从概念模型直至可执行体之间明晰的对应关系建立起从概念模型直至可执行体之间明晰的对应关系着眼于那些有重大影响的问题。着眼于那些有重大影响的问题。创建一种对人和机器都适用的建模语言。创建一种对人和机器都适用的建模语言。UML的发展历程的发展历程n1994.10,Booch 和和 Rumbaugh 将将 Booch93和和 OMT-2 统一,统一,1995.10.发布发布 UM0.8。n1
12、995年秋,经过年秋,经过 Booch 等三人的努力,等三人的努力,1996.6 和和1996.10发布发布UML0.9和和UML0.91。n1996年成立年成立UML成员协会,有成员协会,有700多公司支持多公司支持UML,占领占领OO市场的市场的 85%。n1997.1发布发布UML1.0,1997.9发布发布UML1.1。n1997.11 OMG采纳采纳 UML1.1作为作为OO技技 术的标准建模语言。术的标准建模语言。n此后,此后,UML的维护工作由的维护工作由Cris Kobryn领导的领导的OMG 版本修改小组版本修改小组RTF(Revision Task Force)负责负责.n
13、1998.6:UML V.1.1(编辑修改版编辑修改版).n1999.6:UML V.1.3(技术终订版技术终订版).n目前正处于目前正处于UML V.2.0阶段阶段UML的发展历程的发展历程(续续)公公众众反反馈馈OOPSLA95 Unified Method 0.8工业工业化化标准标准化化统一统一化化分散分散的的各部各部分分 Booch93 OMT-21996.6和和1996.10 UML 0.9&0.91 1997.11.171997.9公布公布 UML 1.1 1997.1公布公布 UML 1.0合作伙合作伙伴意见伴意见UML 1.1被被OMG 接纳为标准接纳为标准其他方法其他方法 B
14、ooch91 OMT-1 OOSE1999.6 UML1.3建模技术建模技术n构造模型的目的构造模型的目的n建模技术要点建模技术要点n系统的多种特性系统的多种特性构造模型的目的构造模型的目的n在着手解决一个复杂问题之前,对解决方案进行在着手解决一个复杂问题之前,对解决方案进行检测。检测。n用于同客户和其他相关人员进行交流。用于同客户和其他相关人员进行交流。n加强视觉效果。加强视觉效果。n对复杂问题进行适度简化。对复杂问题进行适度简化。模型是对事物的抽象。人们常常在正式建造实物之前,先建模型是对事物的抽象。人们常常在正式建造实物之前,先建立模型,以便更透彻地了解它的本质,抓住问题的要害。立模型,
15、以便更透彻地了解它的本质,抓住问题的要害。建模技术要点建模技术要点n构造模型的基本技术是抽象,应突出与问题有关的构造模型的基本技术是抽象,应突出与问题有关的特征,将与问题无关的性质略去。特征,将与问题无关的性质略去。n不必追求绝对的真实和完全,只需从期望的目的角不必追求绝对的真实和完全,只需从期望的目的角度看其是否充分。度看其是否充分。n应当刻画问题的关键方面,略去相对次要的因素。应当刻画问题的关键方面,略去相对次要的因素。n建模语言应支持人的由模糊到清晰、由粗到细逐渐建模语言应支持人的由模糊到清晰、由粗到细逐渐完善的认识过程。完善的认识过程。n应采用可视化图形建模语言。应采用可视化图形建模语
16、言。系统的多种特性系统的多种特性n在功能和性能方面:功能正确,性能良好在功能和性能方面:功能正确,性能良好(效率要高)。(效率要高)。n在非功能方面:鲁棒性、可扩充性、可再用在非功能方面:鲁棒性、可扩充性、可再用性、兼容性、可移值性、可验证性、完整性性、兼容性、可移值性、可验证性、完整性以及易使用性等方面要好。以及易使用性等方面要好。一个系统应具有多方面的特点:一个系统应具有多方面的特点:一个系统要从多个视角去描述。一个系统要从多个视角去描述。一个视图可能包含多个模型图,每张模型图都应当一个视图可能包含多个模型图,每张模型图都应当简单明了,易于交流。简单明了,易于交流。UML的模型图的模型图
17、UML定义了定义了 5 类、共类、共 9 种模型图:种模型图:用例图用例图:从用户角度描述系统的功能,并指出各功能从用户角度描述系统的功能,并指出各功能的操作者。的操作者。静态图静态图:类图类图、对象图对象图和包图和包图(在在UML 1.1 中,包图中,包图不再看作一种独立的模型图不再看作一种独立的模型图)。行为图行为图:状态图状态图,活动图活动图。交互图交互图:顺序图顺序图,合作图合作图。实现图实现图:构件图构件图描述部件的物理结构以及各部件之间描述部件的物理结构以及各部件之间的依赖关系;的依赖关系;配置图配置图定义系统中软硬件的物理构架。定义系统中软硬件的物理构架。关于保险业务的一张用例图
18、关于保险业务的一张用例图保险销售人员保险销售人员客客 户户客户统计表客户统计表签署保险文件签署保险文件销售统计表销售统计表 静态图:类图、对象图和包图静态图:类图、对象图和包图n静态图包括类图、对象图和包图,用以描述模型静态图包括类图、对象图和包图,用以描述模型中类及其实例之间的静态关系。中类及其实例之间的静态关系。n类图用于定义系统中的类,包括描述类之间的关类图用于定义系统中的类,包括描述类之间的关系系(关联、继承、聚合关联、继承、聚合)以及类的内部结构以及类的内部结构,即类,即类的属性和操作。的属性和操作。n对象图显示类的对象实例,一个对象图是类图的对象图显示类的对象实例,一个对象图是类图
19、的一个实例。一个实例。n包图由包或类组成,主要表示包与包、或包与类包图由包或类组成,主要表示包与包、或包与类之间的关系。包图用于描述系统的分层结构之间的关系。包图用于描述系统的分层结构。u 关于金融贸易的一张类图关于金融贸易的一张类图客客 户户业务量业务量商商 人人1 1.*Owns1.*1.*HandlesContains0.*0.*证证 券券债债 券券互助基金互助基金股股 票票u 类图和对象图类图和对象图类图类图展示类展示类Uses0.1 1.*计算机计算机名字:名字:String内存:内存:Integer作者作者名字:名字:String年龄:年龄:Integer小影:作者小影:作者名字名
展开阅读全文