欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件工程面向对象方法学引论.ppt

    • 资源ID:87213035       资源大小:4.21MB        全文页数:70页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程面向对象方法学引论.ppt

    软件工程面向对象方软件工程面向对象方法学引论法学引论现在学习的是第1页,共70页软件工程给软件产业带来巨大进步!软件工程给软件产业带来巨大进步!部分的缓解了软件危机!部分的缓解了软件危机!大量中、小规模的软件项目获得成功!大量中、小规模的软件项目获得成功!但是,人们发现一个现象但是,人们发现一个现象.传统方法学应用于大型项目时,很少成功!传统方法学应用于大型项目时,很少成功!传统方法学应用于大型项目时,很少成功!传统方法学应用于大型项目时,很少成功!软件工程方法学的思考软件工程方法学的思考现在学习的是第2页,共70页瀑布模型的缺点:瀑布模型的缺点:僵化僵化僵化僵化表现表现(1)(1):瀑布模型要求:生命周期各阶段间遵守严格的顺序瀑布模型要求:生命周期各阶段间遵守严格的顺序实际情况实际情况:软件开发往往在反复实践中完成:软件开发往往在反复实践中完成表现表现(2)(2):瀑布模型要求:预先定义并瀑布模型要求:预先定义并“冻结冻结冻结冻结”软件需求软件需求软件需求软件需求实际情况实际情况:某些系统的需求是一个逐渐明确的过程,且预先定义的需求到软:某些系统的需求是一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时件完成时可能已经过时传统方法学的缺点传统方法学的缺点现在学习的是第3页,共70页本质上是本质上是功能分解功能分解功能分解功能分解,以实现功能的,以实现功能的过程过程过程过程为中心,而用户的需求变化为中心,而用户的需求变化主要是针对主要是针对功能功能功能功能的的这就使基于过程的设计这就使基于过程的设计不易被理解不易被理解不易被理解不易被理解;且功能变化往往引起结构变化;且功能变化往往引起结构变化较大,较大,稳定性不好稳定性不好稳定性不好稳定性不好系统有明确的边界定义,且系统结构依赖于系统边界的定义,系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统这样的系统不易扩充和修改不易扩充和修改不易扩充和修改不易扩充和修改数据与操作分开处理,可能造成软构件对具体应用环境的依赖,数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性较差可重用性较差可重用性较差可重用性较差传统方法学的缺点传统方法学的缺点 cont.现在学习的是第4页,共70页2020世纪世纪6060年代后期出现面向对象编程语言年代后期出现面向对象编程语言Simula-67Simula-67,提出,提出类类类类和和对象对象对象对象的概念的概念2020世纪世纪8080年代中期开始面向对象分析和设计研究,逐步形成年代中期开始面向对象分析和设计研究,逐步形成面向对面向对面向对面向对象的方法学象的方法学象的方法学象的方法学2020世纪世纪9090年代末面向对象方法学成为软件开发技术的首选范型年代末面向对象方法学成为软件开发技术的首选范型面向对象方法学面向对象方法学现在学习的是第5页,共70页9.1 9.1 面向对象方法学概述面向对象方法学概述9.2 9.2 面向对象的概念面向对象的概念9.3 9.3 面向对象建模面向对象建模9.4 9.4 对象模型对象模型9.5 9.5 动态模型动态模型9.6 9.6 功能模型功能模型9.7 39.7 3种模型之间的关系种模型之间的关系提纲提纲现在学习的是第6页,共70页9.1 9.1 面向对象方法学概述面向对象方法学概述9.2 9.2 面向对象的概念面向对象的概念9.3 9.3 面向对象建模面向对象建模9.4 9.4 对象模型对象模型9.5 9.5 动态模型动态模型9.6 9.6 功能模型功能模型9.7 39.7 3种模型之间的关系种模型之间的关系现在学习的是第7页,共70页面向对象方法学面向对象方法学(Object-Oriented Methodology)(Object-Oriented Methodology),简称,简称OOMOOM面向对象方法学的要点面向对象方法学的要点(1)OOM(1)OOM的的出发点出发点出发点出发点和和基本原则基本原则基本原则基本原则是是尽可能模拟人类习惯的思维方式尽可能模拟人类习惯的思维方式,使描述问题的问题空间,使描述问题的问题空间(问题域问题域)与实现与实现解法的解空间解法的解空间(求解域求解域)在结构上尽可能一致在结构上尽可能一致(2)(2)面向对象方法是一种以数据和信息为主线,面向对象方法是一种以数据和信息为主线,把数据和处理相结合把数据和处理相结合的方的方法法面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成的统一体面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成的统一体面向对象方法学概述面向对象方法学概述现在学习的是第8页,共70页解空间解空间与与问题空间问题空间的的“语义断层语义断层语义断层语义断层”问题空间对象问题空间对象是行为是丰富多彩的是行为是丰富多彩的解空间对象解空间对象的行为的非常呆板的的行为的非常呆板的需要借助于复杂的算法才能够操纵解空间对象需要借助于复杂的算法才能够操纵解空间对象客观世界实体:静态属性客观世界实体:静态属性+动态行为动态行为传统方法:属性与行为分离传统方法:属性与行为分离解空间对象为描述实体属性的数据,在程序中从外部操纵它解空间对象为描述实体属性的数据,在程序中从外部操纵它面向对象方法:属性与行为统一面向对象方法:属性与行为统一对象是行为的主体对象是行为的主体现在学习的是第9页,共70页OOMOOM的的4 4个要素:个要素:对象对象(object)(object):世界由:世界由对象对象对象对象组成组成 类类 (class)(class):具有相同属性和操作的:具有相同属性和操作的对象对象对象对象可划分为可划分为类类类类;单个对象可视为某一;单个对象可视为某一类的类的实例实例实例实例 (instance)(instance)继承继承(inheritance)(inheritance):类可分层下层:类可分层下层子类子类子类子类与上层与上层父类父类父类父类有相同特征,称为有相同特征,称为继继继继承承承承消息消息(message)(message):对象间只能通过发送:对象间只能通过发送消息消息消息消息进行联系,外界不能处理进行联系,外界不能处理对象对象对象对象的内部数据,只能通过的内部数据,只能通过消息消息消息消息请求它进行处理(如果它提供相应消息的话)请求它进行处理(如果它提供相应消息的话)OOM=Object+Class+Inheritance+Communication with messagesOOM=Object+Class+Inheritance+Communication with messages现在学习的是第10页,共70页OOM=OOM=对象对象+类类+继承机制继承机制+消息机制消息机制基于对象基于对象(objects-based)(objects-based)方法方法对象对象-消息消息基于类基于类(class-based)(class-based)方法方法类类-对象对象-消息消息面向对象面向对象(objects-oriented)(objects-oriented)类类-对象对象-消息消息-继承继承现在学习的是第11页,共70页1.1.与人类习惯的思维方式一致与人类习惯的思维方式一致传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。OOMOOM:以:以object object 为核心,强调对现实概念的模拟而不强调算法。为核心,强调对现实概念的模拟而不强调算法。“面面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统模型,开发出尽可能直观、自然地表现求解方法的软件系统”。ClassClass:由特殊到一般的归纳:由特殊到一般的归纳(induction)(induction)InheritanceInheritance:由一般到特殊的演绎:由一般到特殊的演绎(deduction)(deduction)2.2.稳定性好稳定性好传统方法:结构依赖于功能,不稳定。传统方法:结构依赖于功能,不稳定。OOMOOM:以:以objectobject模拟实体,需求变化不会引起结构的整体变化,因为模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。实体相对稳定,故系统也相应稳定。面向对象方法学的优点面向对象方法学的优点现在学习的是第12页,共70页3.3.可重用性好可重用性好传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的“柔性柔性”,难以适应不同场合的不同需要。,难以适应不同场合的不同需要。OOMOOM:一个:一个classclass所有的所有的 instances instances 都可重用它的代码;由都可重用它的代码;由 inheritance inheritance 派派生出的新的生出的新的 class class 可重用其父类的代码,并且可以修改、扩充而不影可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。响其父类的使用。4.4.可维护性好可维护性好传统方法:可维护性是最令人头痛的问题。传统方法:可维护性是最令人头痛的问题。OOMOOM:从以下几方面改善了可维护性:从以下几方面改善了可维护性稳定性好:需求的变化不牵动全局,只需局部修改;稳定性好:需求的变化不牵动全局,只需局部修改;Class Class 独立性强独立性强(易修改易修改):只要修改不涉及:只要修改不涉及classclass的对外接口,则内部修的对外接口,则内部修改完全不影响外部调用;改完全不影响外部调用;继承继承(Inheritance)(Inheritance)和多态性和多态性(polymorphism)(polymorphism)使其易被修改和扩充;使其易被修改和扩充;容易理解、容易测试、调试容易理解、容易测试、调试现在学习的是第13页,共70页面向对象方法学的优点面向对象方法学的优点 小结小结OOMOOM并不是减少了开发时间并不是减少了开发时间并不是减少了开发时间并不是减少了开发时间,而是通过提高可重用性、可维护性,而是通过提高可重用性、可维护性,进行扩充和修改的容易程度等,从长远角度进行扩充和修改的容易程度等,从长远角度改进了软件的质量改进了软件的质量改进了软件的质量改进了软件的质量。OOMOOM与与PrototypingPrototyping结合使用效果好结合使用效果好现在学习的是第14页,共70页9.1 9.1 面向对象方法学概述面向对象方法学概述9.2 9.2 面向对象的概念面向对象的概念9.3 9.3 面向对象建模面向对象建模9.4 9.4 对象模型对象模型9.5 9.5 动态模型动态模型9.6 9.6 功能模型功能模型9.7 39.7 3种模型之间的关系种模型之间的关系现在学习的是第15页,共70页对象对象对象既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任对象既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款、借款等等,都可以作为一个对象。款、借款等等,都可以作为一个对象。面向对象的概念面向对象的概念现在学习的是第16页,共70页f1f1f2f2f3f3fi fifnfnfi(X)fi(X)Sgi(X,S)gi(X,S)S输输出出出出输输出出出出Object:=ID+Method+Object:=ID+Method+Attribute+MessageAttribute+Message一个对象好像一个黑盒子,表示它内部的数一个对象好像一个黑盒子,表示它内部的数据和实现各个操作的代码及局部数据,都被据和实现各个操作的代码及局部数据,都被封装在这个黑盒子内部,在外部是看不见的,封装在这个黑盒子内部,在外部是看不见的,更不能从外部去访问或修改这些数据代码。更不能从外部去访问或修改这些数据代码。现在学习的是第17页,共70页对象的定义对象的定义定义定义1 1:对象是具有相同状态的一组操作的集合。:对象是具有相同状态的一组操作的集合。定义定义2 2:对象是对问题域中某个东西的抽象,这种抽象反映了系统保:对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。存有关这个东西的信息或与它交互的能力。定义定义3 3:对象对象:=:=名字名字 操作集合操作集合 数据结构数据结构 对外接口对外接口 现在学习的是第18页,共70页对象的特点对象的特点 以数据为中心以数据为中心以数据为中心以数据为中心,不设与数据无关的操作;,不设与数据无关的操作;ObjectObject主动处理主动处理主动处理主动处理而不而不 被动地等待被处理,外部只能通过被动地等待被处理,外部只能通过messagemessage请求操请求操作;作;具有具有封装性封装性封装性封装性:外部操作时,无须知道该:外部操作时,无须知道该objectobject内部的数据结构及算法;内部的数据结构及算法;具有具有并行性并行性并行性并行性:不同:不同objectobject各自独立地处理自身数据,彼此间仅通过各自独立地处理自身数据,彼此间仅通过传递传递messagemessage完成通信;完成通信;模块模块独立性独立性独立性独立性好:内聚强、耦合松好:内聚强、耦合松现在学习的是第19页,共70页类类类类:是对具有相同数据和相同操作的一组相似对象的定义。:是对具有相同数据和相同操作的一组相似对象的定义。例如:人、圆例如:人、圆实例实例实例实例:是由某个特定的类所描述的一个具体对象。:是由某个特定的类所描述的一个具体对象。消息消息消息消息:是要求某个对象执行在定义它的那个类中所定义的某个:是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。操作的规格说明。由由3 3部分组成:接受消息的对象、消息选择符部分组成:接受消息的对象、消息选择符(名名)、零个和多个变元。、零个和多个变元。方法方法方法方法:是对象所能执行的操作:是对象所能执行的操作即类中所定义的服务。即类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。方法描述了对象执行操作的算法,响应消息的方法。属性属性属性属性:是类中所定义的数据,是对客观实体所具有的性质抽象:是类中所定义的数据,是对客观实体所具有的性质抽象面向对象的概念面向对象的概念 其他概念其他概念现在学习的是第20页,共70页封装封装封装封装:是把某个事务包起来,使外界不知道该事物的具体内容。:是把某个事务包起来,使外界不知道该事物的具体内容。(字字面含义面含义)在面向对象程序中,把数据和实现操作的代码集中存放在对象内部。在面向对象程序中,把数据和实现操作的代码集中存放在对象内部。封装的条件:封装的条件:(1)(1)有一个清晰的边界有一个清晰的边界 私有与共有私有与共有(2)(2)有确定的接口有确定的接口(3)(3)受保护的内部实现受保护的内部实现现在学习的是第21页,共70页继承继承继承继承继承是子类自动地继承是子类自动地共享共享共享共享基类中定义的数据和方法的机制,其特性是:一个基类中定义的数据和方法的机制,其特性是:一个类的上层可以有父类,下层可以有子类。类的上层可以有父类,下层可以有子类。继承具有继承具有传递性传递性传递性传递性,如果类,如果类C C继承类继承类B B,类,类B B继承类继承类A A,则类,则类C C继承类继承类A A。当类等级为树形结构时,类的继承是当类等级为树形结构时,类的继承是单继承单继承单继承单继承;当允许一个类有多个父亲时,;当允许一个类有多个父亲时,类的继承是类的继承是多重继承多重继承多重继承多重继承。现在学习的是第22页,共70页继承继承 cont.cont.在程序执行期间,对对象某一性质的在程序执行期间,对对象某一性质的查找查找查找查找是从该对象类在类等级中所在的是从该对象类在类等级中所在的程序开始,程序开始,沿类等级逐层向上沿类等级逐层向上沿类等级逐层向上沿类等级逐层向上进行的,并把第一个被找到的性质作为所要的进行的,并把第一个被找到的性质作为所要的性质。因此,低层的性质将性质。因此,低层的性质将屏蔽屏蔽屏蔽屏蔽高层的同名的性质。高层的同名的性质。从原有类派生出新的子类的办法有:从原有类派生出新的子类的办法有:需要扩充原有功能时,派生类的方法可以调用基类的方法,并在此基础上增需要扩充原有功能时,派生类的方法可以调用基类的方法,并在此基础上增加必要的程序代码;加必要的程序代码;需要完全改变原有操作的算法时,可以在派生类中实现一个与基类方法同名需要完全改变原有操作的算法时,可以在派生类中实现一个与基类方法同名而算法不同的方法;而算法不同的方法;需要增加新的功能时,可以在派生类中实现一个新的方法。需要增加新的功能时,可以在派生类中实现一个新的方法。现在学习的是第23页,共70页Class Class 中国人中国人中国人中国人中国人中国人中国人中国人 AttributesAttributes中国人中国人中国人中国人 MethodsMethods张张山山山山 (instance)(instance)Class Class 中国人中国人中国人中国人 张张山的山的山的山的 AttributesAttributesClass Class 杭州杭州杭州杭州人人人人 (子子子子类类)杭州人杭州人杭州人杭州人 AttributesAttributes杭州人杭州人杭州人杭州人 MethodsMethods Class Class 中国人中国人中国人中国人李士李士李士李士 (instance)(instance)中国人李士的中国人李士的中国人李士的中国人李士的 AttributesAttributes 杭州人李士的杭州人李士的杭州人李士的杭州人李士的 AttributesAttributes Class Class 杭州人杭州人杭州人杭州人例:例:例:例:现在学习的是第24页,共70页多态性多态性多态性多态性多态性是指多态性是指子类对象可以像父类对象那样使用子类对象可以像父类对象那样使用子类对象可以像父类对象那样使用子类对象可以像父类对象那样使用,同样的消息既可以发送给父类,同样的消息既可以发送给父类对象也可以发送给子类对象。对象也可以发送给子类对象。在在C+C+语言中,多态性是通过语言中,多态性是通过虚函数虚函数虚函数虚函数来实现的。虚函数机制使得程序来实现的。虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,称为员能在一个类等级中使用相同函数的多个不同版本,称为动态联遍动态联遍动态联遍动态联遍,也叫滞后联编。也叫滞后联编。多态性机制不仅增加了面向对象软件的灵活性,进一步减少了信息冗多态性机制不仅增加了面向对象软件的灵活性,进一步减少了信息冗余,而且显著提高了软件可重用性和可扩充性。余,而且显著提高了软件可重用性和可扩充性。现在学习的是第25页,共70页重载重载重载重载函数重载函数重载函数重载函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;同的函数名字;运算符重载运算符重载运算符重载运算符重载是指同一个运算符可以施加与不同类型的操作数上面,当参是指同一个运算符可以施加与不同类型的操作数上面,当参数类型不同或被操作数的类型不同时,实现函数的算法或运算符的语义数类型不同或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同的;是不相同的;在在C+C+语言中函数重载是通过语言中函数重载是通过静态联编静态联编静态联编静态联编(也叫先前联编)实现的,也就是在编(也叫先前联编)实现的,也就是在编译时根据函数变元的个数和类型,决定到底使用函数的哪个实现代码;对于译时根据函数变元的个数和类型,决定到底使用函数的哪个实现代码;对于重载的运算符,同样是在编译时根据被操作数的类型,决定使用该运算符的重载的运算符,同样是在编译时根据被操作数的类型,决定使用该运算符的哪种语义。哪种语义。现在学习的是第26页,共70页9.1 9.1 面向对象方法学概述面向对象方法学概述9.2 9.2 面向对象的概念面向对象的概念9.3 9.3 面向对象建模面向对象建模9.4 9.4 对象模型对象模型9.5 9.5 动态模型动态模型9.6 9.6 功能模型功能模型9.7 39.7 3种模型之间的关系种模型之间的关系现在学习的是第27页,共70页模型模型为了理解事物而对事物作出的一种抽象,是对事物的一种为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义无歧义无歧义无歧义的书面描述的书面描述模型由一组模型由一组图示符号图示符号图示符号图示符号和和规则说明规则说明规则说明规则说明构成,用他们来定义和描述问题域中的构成,用他们来定义和描述问题域中的术语和概念术语和概念模型是一种思考工具,把知识规范的表示出来模型是一种思考工具,把知识规范的表示出来思考问题、定义术语、作出假设思考问题、定义术语、作出假设保持定义和假设的一致性保持定义和假设的一致性面向对象建模面向对象建模现在学习的是第28页,共70页模型模型 cont.cont.软件开发是模型的应用软件开发是模型的应用系统分析员从不同角度抽象出目标系统的特性系统分析员从不同角度抽象出目标系统的特性使用精确的表示方法使用精确的表示方法构造系统的模型构造系统的模型构造系统的模型构造系统的模型验证模型验证模型验证模型验证模型是否满足用户的需求是否满足用户的需求在设计过程把实现细节加进模型在设计过程把实现细节加进模型直至用程序直至用程序实现模型实现模型实现模型实现模型现在学习的是第29页,共70页用面向对象方法开发软件,通常要建立用面向对象方法开发软件,通常要建立3 3种形式的模型种形式的模型种形式的模型种形式的模型:描述系统描述系统数据数据数据数据结构的结构的对象模型对象模型对象模型对象模型描述系统描述系统控制控制控制控制结构的结构的动态模型动态模型动态模型动态模型描述系统描述系统功能功能功能功能的的功能模型功能模型功能模型功能模型一个典型的软件系统使用一个典型的软件系统使用数据结构数据结构数据结构数据结构(对象模型对象模型对象模型对象模型),执行操作执行操作执行操作执行操作(动态模型动态模型动态模型动态模型),并完,并完成成数据值的变化数据值的变化数据值的变化数据值的变化(功能模型功能模型功能模型功能模型)现在学习的是第30页,共70页9.1 9.1 面向对象方法学概述面向对象方法学概述9.2 9.2 面向对象的概念面向对象的概念9.3 9.3 面向对象建模面向对象建模9.4 9.4 对象模型对象模型9.5 9.5 动态模型动态模型9.6 9.6 功能模型功能模型9.7 39.7 3种模型之间的关系种模型之间的关系现在学习的是第31页,共70页模型通常由一组模型通常由一组图示符号图示符号图示符号图示符号和组成这些符号的和组成这些符号的规则规则规则规则组成,定义和描述问题组成,定义和描述问题域的术语和概念域的术语和概念为建立模型,需要用适当的为建立模型,需要用适当的语言语言语言语言来表达模型来表达模型建模语言由建模语言由记号记号记号记号(即模型中使用的符号即模型中使用的符号)和使用这些记号的和使用这些记号的规则规则规则规则(语语法、语义法、语义)组成组成建模语言建模语言现在学习的是第32页,共70页面向对象分析与设计方法在面向对象分析与设计方法在2020世纪世纪8080年代末到年代末到9090年代中出现了一个高潮,年代中出现了一个高潮,统一建模语言统一建模语言UMLUML就是这个高潮的产物就是这个高潮的产物UMLUML是由面向对象方法领域的三位著名专家是由面向对象方法领域的三位著名专家Grady BoochGrady Booch,James James RumbaughRumbaugh和和Ivar JacobsonIvar Jacobson提出的提出的UMLUML统一了他们三人的表示方法,而且融入了众多优秀的软件方统一了他们三人的表示方法,而且融入了众多优秀的软件方法和思想,从而把面向对象方法提高到一个崭新的高度法和思想,从而把面向对象方法提高到一个崭新的高度UMLUML标志着面向对象建模方法进入了第三代标志着面向对象建模方法进入了第三代UML建模语言建模语言现在学习的是第33页,共70页UMLUML已得到许多世界知名公司的使用和支持已得到许多世界知名公司的使用和支持19971997年年1111月月1717日被日被OMGOMG组织采纳,成为面向对象建模的标准语言组织采纳,成为面向对象建模的标准语言OMGOMG已经把已经把UMLUML作为公共可得到的规格说明提交给国际标准化组织进行国作为公共可得到的规格说明提交给国际标准化组织进行国际标准化,际标准化,UMLUML最终成为信息技术的正式国际标准最终成为信息技术的正式国际标准UMLUML不论在计算机学术界、软件产业界还是在商业界,不论在计算机学术界、软件产业界还是在商业界,UMLUML已经逐渐成为人已经逐渐成为人们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域而且在实践过程中人们还在不断扩展它的应用领域现在学习的是第34页,共70页对象模型表示对象模型表示静态的静态的静态的静态的、结构化的系统的、结构化的系统的“数据数据数据数据”性质性质是对模拟客观世界实体的是对模拟客观世界实体的对象对象对象对象以及对象彼此间的以及对象彼此间的关系关系关系关系的映射的映射建立对象模型时,我们的目标是从客观世界中提炼出对具体应建立对象模型时,我们的目标是从客观世界中提炼出对具体应用有价值的用有价值的概念概念概念概念OOOO方法强调围绕方法强调围绕“对象对象对象对象”而不是而不是“功能功能”来构造系统来构造系统对象模型为建立动态模型和功能模型提供了对象模型为建立动态模型和功能模型提供了架构架构架构架构UMLUML使用使用类图类图类图类图来建立对象模型来建立对象模型对象模型对象模型现在学习的是第35页,共70页类图的基本符号类图的基本符号类图描述类、类与类之间的静态关系,是一种类图描述类、类与类之间的静态关系,是一种静态模型静态模型静态模型静态模型,是创建其他,是创建其他UMLUML图的基础图的基础一个系统由多张类图来描述,一个类也可以出现在几张类图中一个系统由多张类图来描述,一个类也可以出现在几张类图中1.1.定义类定义类UMLUML中类的图形符号为长方形,用两条横线把长方形分成上、中、下中类的图形符号为长方形,用两条横线把长方形分成上、中、下3 3个区个区域(下面两个区域可以省略)域(下面两个区域可以省略)为类命名时应该遵守以下几条准则:为类命名时应该遵守以下几条准则:使用标准术语使用标准术语使用具有确切含义的名词使用具有确切含义的名词必要时用名词短语作为名字必要时用名词短语作为名字类名类名属性属性服务服务现在学习的是第36页,共70页2.2.定义属性定义属性UMLUML描述属性的语法如下:描述属性的语法如下:可见性可见性 属性名:类型名属性名:类型名=初值初值 性质串性质串 属性的可见性(即可访问性)通常有下述属性的可见性(即可访问性)通常有下述3 3种:种:公有的公有的(public)(public)(+)(+)私有的私有的(private)(private)(-)(-)保护的保护的(protected)(protected)(#)(#)类型名表示该属性的数据类型,它可以是基本数据类型,也可以是用类型名表示该属性的数据类型,它可以是基本数据类型,也可以是用户自定义的类型户自定义的类型用花括号括起来的性质串明列出该属性所有可能的取值用花括号括起来的性质串明列出该属性所有可能的取值例:例:-管理员:管理员:StringString“未定未定”现在学习的是第37页,共70页3.3.定义服务定义服务UMLUML描述操作的语法格式如下:描述操作的语法格式如下:可见性可见性 操作名操作名(参数表参数表):返回值类型:返回值类型 性质串性质串 操作可见性的定义方法与属性相同。操作可见性的定义方法与属性相同。参数表是用逗号分隔的形式参数的序列。描述一个参数的语法如下:参数表是用逗号分隔的形式参数的序列。描述一个参数的语法如下:参数名:类型名默认值参数名:类型名默认值当操作的调用者未提供实在参数时,该参数就使用默认值。当操作的调用者未提供实在参数时,该参数就使用默认值。现在学习的是第38页,共70页类与类之间通常有类与类之间通常有关联关联关联关联、泛化泛化泛化泛化(继承继承继承继承)、依赖依赖依赖依赖和和细化细化细化细化等等4 4种关系种关系1.1.关联关联关联表示两个类的对象之间存在某种语义上的联系关联表示两个类的对象之间存在某种语义上的联系 (1)(1)普通关联:最常见的关联关系,只要在类与类之间存在连接关系就可以普通关联:最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。用普通关联表示。例如,作家使用计算机,我们就认为在作家和计算机之间存在某种语例如,作家使用计算机,我们就认为在作家和计算机之间存在某种语义连接,因此在类图中应该在作家类和计算机类之间建立关联关系义连接,因此在类图中应该在作家类和计算机类之间建立关联关系表示关系的符号表示关系的符号作家作家作家作家计算机计算机计算机计算机 *使用使用使用使用 1.*1.*被使用被使用被使用被使用现在学习的是第39页,共70页1.1.关联关联 cont.cont.通常关联是双向的,可在一个方向上为关联起一个通常关联是双向的,可在一个方向上为关联起一个名字名字名字名字,在另一个方向上起,在另一个方向上起另一个名字(也可不起名字)另一个名字(也可不起名字)在表示关联的直线两端可以写上在表示关联的直线两端可以写上重数重数重数重数(multiplicity)(multiplicity),它表示该类有多少,它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有个对象与对方的一个对象连接。重数的表示方法通常有(默认重数为默认重数为1)1)0.10.1表示表示0 0到到1 1个对象个对象0.*0.*或或*表示表示0 0到多个对象到多个对象1 1或或1.*1.*表示表示1 1到多个对象到多个对象1.151.15表示表示1 1到到1515个对象个对象3 3表示表示3 3个对象个对象作家作家作家作家计算机计算机计算机计算机 *使用使用使用使用 1.*1.*被使用被使用被使用被使用现在学习的是第40页,共70页1.1.关联关联 cont.cont.(2)(2)关联的角色关联的角色在任何关联中都会涉及到在任何关联中都会涉及到参与此关联的对象参与此关联的对象参与此关联的对象参与此关联的对象所扮演的角色,在某些情况下显所扮演的角色,在某些情况下显式标明角色名有助于别人理解类图式标明角色名有助于别人理解类图例:一个人与另一个人结婚,必然一个人扮演丈夫的角色,另一个人扮例:一个人与另一个人结婚,必然一个人扮演丈夫的角色,另一个人扮演妻子的角色。如果没有显式标出角色名,则意味着用类名作为角色名。演妻子的角色。如果没有显式标出角色名,则意味着用类名作为角色名。人人人人结婚结婚结婚结婚丈夫丈夫丈夫丈夫妻子妻子妻子妻子现在学习的是第41页,共70页1.1.关联关联 cont.cont.(3)(3)限定关联限定关联限定关联通常在一对多或多对多的关联关系中,可以把模型中的重数从限定关联通常在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一一对多变成一对一,或从多对多简化成多对一例如,某操作系统中一个目录下有许多文件,一个文件仅属于一个目录,在例如,某操作系统中一个目录下有许多文件,一个文件仅属于一个目录,在一个目录内文件名确定了惟一一个文件。一个目录内文件名确定了惟一一个文件。可见,利用限定词把一对多关系简化成了一对一关系可见,利用限定词把一对多关系简化成了一对一关系目录目录目录目录文件名文件名文件名文件名文件文件文件文件现在学习的是第42页,共70页1.1.关联关联 cont.cont.(4)(4)关联类关联类为了说明关联的性质可能需要一些附加信息,可以引入一个关联类来为了说明关联的性质可能需要一些附加信息,可以引入一个关联类来记录这些信息。记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。关联连接。队列队列队列队列电梯控制器电梯控制器电梯控制器电梯控制器电梯电梯电梯电梯按钮按钮按钮按钮4 4*现在学习的是第43页,共70页2.2.聚集聚集聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体和聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体和部分的关系。部分的关系。在陈述需求时使用的在陈述需求时使用的“包含包含”、“组成组成”、“分为分为部分部分”等字句,往等字句,往往意味着存在聚集关系。除了一般聚集之外,还有两种特殊的聚集关系,分别是往意味着存在聚集关系。除了一般聚集之外,还有两种特殊的聚集关系,分别是共享聚集和组合聚集。共享聚集和组合聚集。(1)(1)共享聚集共享聚集如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。构成,则该聚集称为共享聚集。课题组课题组课题组课题组人人人人 *1.*1.*成员成员成员成员现在学习的是第44页,共70页2.2.聚集聚集 cont.cont.(2)(2)组合聚集组合聚集如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在的价值了),则该聚集称为组合聚集(简称为组成)。失(或失去存在的价值了),则该聚集称为组合聚集(简称为组成)。例如,在屏幕上打开一个窗口,它由文本框、列表框、按钮和菜单组例如,在屏幕上打开一个窗口,它由文本框、列表框、按钮和菜单组成,一旦关闭了窗口,各个组成部分也同时消失,窗口和它的组成部成,一旦关闭了窗口,各个组成部分也同时消失,窗口和它的组成部分之间存在着组合聚集关系。分之间存在着组合聚集关系。窗口窗口窗口窗口文本框文本框文本框文本框列表框列表框列表框列表框按钮按钮按钮按钮菜单菜单菜单菜单包含包含包含包含*现在学习的是第45页,共70页3.3.泛化泛化在在UMLUML中的泛化关系就是通常所说的继承关系,它是中的泛化关系就是通常所说的继承关系,它是通用元素通用元素通用元素通用元素和和具体元素具体元素具体元素具体元素之之间的一种分类关系。间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。泛化泛化针对类型针对类型针对类型针对类型而不针对实例,一个类可以继承另一个类,但一个对象不能继而不针对实例,一个类可以继承另一个类,但一个对象不能继承另一个对象。承另一个对象。实际上,泛化关系指出在类与类之间存在实际上,泛化关系指出在类与类之间存在“一般一般一般一般-特殊特殊特殊特殊”关系。关系。泛化可进一步划分成泛化可进一步划分成普通泛化普通泛化普通泛化普通泛化和和受限泛化受限泛化受限泛化受限泛化。现在学习的是第46页,共70页3.3.泛化泛化 cont.cont.(1)(1)普通泛化普通泛化需要特别说明的是:没有具体需要特别说明的是:没有具体对象的类称为对象的类称为抽象类抽象类抽象类抽象类抽象类通常作为父类,用抽象类通常作为

    注意事项

    本文(软件工程面向对象方法学引论.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开