欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第九章 面向对象方法学引论(Object - Oriented Methodology).ppt

    • 资源ID:388742       资源大小:396.50KB        全文页数:32页
    • 资源格式: PPT        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

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

    第九章 面向对象方法学引论(Object - Oriented Methodology).ppt

    1、第九章 面向对象方法学引论 (Object - Oriented Methodology),1传统方法学的缺点 1、瀑布模型的缺点:僵化 瀑布模型要求:生命周期各阶段间遵守严格的顺序。 实际情况是:软件开发往往在反复实践中完成。 瀑布模型要求:预先定义并“冻结”软件需求。 实际情况是:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。,还记得那个倒霉的开发了近二十年的IRS系统吗?,1传统方法学的缺点,本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。 系统有明确的

    2、边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。 数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差.,2、SA - SD - SP 技术的缺点:,2. 软件工程的新途径,1、快速原型法(Prototyping) 适用于用户驱动的系统(即需求模糊或随时间变化的系统),Prototype,Feedback,Modification,2. 软件工程的新途径, 抛弃原型法(throw - away prototype)Brooks (1975) : “Do it twice.” Version 1 : a trial to verify

    3、 requirements , and to get enough feedback. Version 2 : produced following a waterfall model., 演化原型法(evolutionary prototype) 螺旋模型(the spiral model) : Boehm (1988),Risk analy-sis,Prototype 1,Simulations, models, benchmarks,Requirements plan, life-cycle plan,Concept of operation,Prototype 2,Risk analy

    4、sis,Software requirements,Requirements validation,Develop-ment plan,Risk analysis,Prototype 3,Software product design,Design validation and verification,Integration and test plan,Risk analysis,Operational prototype,Detailed design,Unit test,Code,Integration and test,Acceptance test,Implementation,Pl

    5、an next phases,Develop, verify next-level product,Determine objectives, alternatives, constrains,Evaluate alternatives, identify, resolve risks,Cumulative cost,Progress through steps,The spiral model,2. 软件工程的新途径, 渐增模型(the incremental model) : Gilb (1988)The waterfall model is still followed , but fo

    6、r each separate increment .,2. 软件工程的新途径,注:演化原型法与传统方法最大的不同,在于它是一种高度迭代的动态方法,系统的初始版本很早就交付用户试用。,杭 州,北 京,Message,Send by method,对象Object,Object,= 数据Attribute,Attributes:location;employee;,+ 操作Method,Methods:send;sell;,注意:Object内部的attributes不允许外部用户直接改动,只有当它提供了相应的服务method时,用户才能通过发送message来提请它执行。,我想把邮局搬到 我家

    7、门口,多加几个 邮递员,24小时都开门 ,对不起, 本邮局不提供 此类服务,唉,那就先送束花吧 Post_office.Send (request, payment),2. 软件工程的新途径,2、面向对象方法学(OOM) 例:,2. 软件工程的新途径, 特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把数据和处理结合构成统一体 对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。, OOM的四要素:,对象(object):世界由对象组成。, 类 (class) :对象可划分为类;单个对象可视为某

    8、一类的实例 (instance)。,2. 软件工程的新途径,例: class Post_office private :loc_type location ;emp_type employee ;public :void send (req_type request, money_type payment);void sell (int goods, money_type payment) ; ;,main ( ) Post_office My_PO ;req_type My_request ;money_type My_payment ;My_PO.Send ( My_request, My

    9、_payment) ;,2. 软件工程的新途径, 继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。, 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。,2. 软件工程的新途径,OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。 Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deducti

    10、on),OOM = Object+Class+Inheritance+Communication with messages, OOM的优点:, 传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。,2. 软件工程的新途径,OOM:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。, 传统方法:结构依赖于功能,不稳定。,传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的“柔性”,难以适应不同场合的不同需要。,OOM:一个class所有的 instances 都可重用它的代码;由 inheritance 派生出的新的 class

    11、可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。,稳定性好:软件功能需求的变化不牵动全局,只需局部修改; Class 独立性强:只要修改不涉及class的对外接口,则内部修改完全不影响外部调用; Inheritance和多态性(polymorphism)使其很容易被修改和扩充; 容易理解;,2. 软件工程的新途径, 传统方法:可维护性是最令人头痛的问题。OOM:从以下几方面改善了可维护性 ,有这一条就什么都好办了!, 容易测试、调试。,这一点还可商榷,2. 软件工程的新途径,注:OOM并不是减少了开发时间,而是通过提高可重用性、可维护性,进行扩充和修改的容易程度等,从长远角度改进了

    12、软件的质量。OOM与Prototyping结合使用效果好。,3、适于采用上述三种开发模型的软件的特点,2. 软件工程的新途径, Waterfall:需求稳定少变化对环境较熟悉(低风险)用户很少参与开发面向过程编程, Spiral :需求可能在开发早期有变化对环境较熟悉(中风险)用户不同程度地参与整个过程OOP, Incremental:需求随时可能变化对环境不熟悉(高风险)用户完全参与开发OOP,2. 软件工程的新途径,SA - SD - SP 与Waterfall model 有本质上的密切联系;OOP由可用于任何模型。OOM的工作重点在分析阶段,确定objects,此外,生命周期的各阶段可

    13、以“无缝”连接。,f1,f2,f3,fi,fn,fi(X),S,gi(X,S),S,输出,输出,3.基本概念,1、Object : = ID + Method + Attribute + Message,3.基本概念,特点: 以数据为中心,不设与数据无关的操作; Object主动处理而不 被动地等待被处理,外部只能通过message请求操作; 具有黑盒性:外部操作时,无须知道该object内部的数据结构及算法; 具有并行性:不同object各自独立地处理自身数据,彼此间仅通过传递message完成通信; 模块独立性好:内聚强( )、耦合松( ),3、Instance:某个class描述的具体对

    14、象; 4、Message: = object_ID. method_ID (parameter(s); 5、Method: object能做的操作,亦称为service 、responsibility, 在 class 中须定义相应的代码; 6、Attribute :object 的固有数据;,3.基本概念,7、Inheritance:子类自动共享父类的attributes 和methods ,而不必重复定义。,2、Class:具有相同数据和相同操作的一组对象;,3.基本概念,例:,特点: 若杭州人的 methods中有与中国人的同名,则李士执行该 method 时以杭州人为准,不执行中国人中

    15、定义的同名 method。,3.基本概念,讲官话,这叫做“低层性质override高层性质” 讲土话,这叫做“县官不如现管”, 传递性(transitivity):AB、BC AC一个 class 继承了上层全部 classes 的一切性质。, 一个子类只 有 一 个父类称为单 继 承 (single inheritance), 一个子类可有多个父类称为多重继承(multiple inheritance).,注意:multiple inheritance 在定义中应避免二义性(ambiguity),即二个父类中定义重名,但各具不同性质。,3.基本概念,例:,CardDeck,Graphical

    16、Object,GraphicalDeck,Method: Draw := takea card froma deck,Method: Draw := display a graphical object,Method: Draw := ?,例:, 修改与扩充可以很容易地通过派生子类来完成。,3.基本概念,8、Polymorphism: 不同层次的 classes 可共享一个method名,但按各自的方式来实现这种 method。,Which form do you need, master?,Aladdins Genie,C+ 中定义了虚函数(virtual function)来实现这一功能。

    17、即 一个method有多个版本,运 行时才决定执行哪一个。故 亦称为动态联编(dynamic binding)或滞后联编(late binding),double avg (const double a , int size) ; double avg (const int a , int size) ;double avg (const double a , int size) ; double sum = 0.0 ;for ( int i = 0; i size; +i )sum += ai ;return ( sum / size ) ;double avg (const int a ,

    18、 int size) ; int sum = 0 ;for ( int i = 0; i size; +i )sum += ai ;return ( (double) sum / size ) ;main() int k3 = 1, 2, 3 ;double x3 = 1.1, 2.2, 3.3 ;cout avg(k, 3) “ int average n” ;cout avg(x, 3) “ double average n” ; ,3.基本概念,9、Overloading, Function (or parameter) overloading : 不同函数共用一个名字,而调用参数的特征

    19、不同。 例:, Operator overloading : 同一运算符 (operator)作用于不同类型的操作数 (operand) 上面。,3.基本概念,在编译(compile)阶段就决定了使用类型及执行代码,故意亦称为静态联编 (static binding)或先前联编 (early binding) 。,4. Object Modeling Technique (OMT) Rambaugh et al (1991),建立三种模型: 描述系统数据结构的对象模型(object model). 描述系统控制结构的动态模型(dynamic model). 描述系统功能的功能模型(functi

    20、on model).,1、Object Model:描述系统的静态结构 图形符号有:,表示属于该类 的对象,4. OMT,Correlative relation: 是object间的关系,一对多,链属性,1+,文件名,限 定,发送消息以调用,关于对象模型与ER模型间的对应关系,请参看教材 p.200 图9.12-13。,4. OMT,4. OMT,三要素: 事件 (event):引发 object 状态改变的控制信息(瞬时)。 状态(status):即 object 的 attributes 所处的情形(可持续)。 行为(action): Object 要达到某种 status 所做的操作(

    21、耗时)。,2、Dynamic Model:表示系统瞬时的控制性质。,表示方法:,注:当描述循环运行过程时,通常不关心是怎样启动的。,4. OMT,例:电话的 状态图,4. OMT,3、Function Model:表明系统应该做什么。表示方法:数据流图(DFD),4、三者关系,FM:做什么 What,DM:何时做 When,OM:操作的实体How,OM,DM,FM,Object,DM,Action,Process,Method,Data storage,Data flow,Attribute,Event, 对每个object (class) 建立DM;, Action对应DFD中的 process 以及OM中的 method;, FM中的 process 对应OM中的method;, FM中的数据存储及数据的源/终点对应OM中的 object;, FM中的数据流对应OM中的attribute,或是整个 object;, FM中的 process 产生DM中的 event;,OM描述了FM中的动作对象、数据存储及数据流的结构。,建立顺序,4. OMT,


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开