[教育学]软件工程实践12OO.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[教育学]软件工程实践12OO

北京理工大学 软件工程实践 吴 际 北京航空航天大学 第十二讲 面向对象方法与UML介绍 内容和目的 我们的座标 面向对象方法 面向对象:能与不能 统一建模语言UML 我们的座标 应用开发的变化 开发工具和手段的发展 开发方法和技术的发展 应用开发的变化 70年代:小型机(或服务器)上的数学程序 80年代:单机(或以太网)上的、文本界面(或简单图形界面)、计算型应用 90年代:互联网(Internet)、丰富图形界面、事务处理型应用,要求快速提交产品 现在,分布于Internet、Intranet,多种界面形式(基于Web Browser、Application GUI等),多种事务处理的集成(电子商务、信息管理),多种标准的支持(XML,J2EE,Corba,.NET),多种平台的支持(Windows,Linux,Unix,…) 开发工具和手段的发展 70年代:基于汇编代码的调试器 80年代:基于高级语言的调试器(Turbo C,Microsoft C,Borland C,Turbo Pascal) 90年代:集成了调试器、编辑器、配置管理、框架代码构造、及时编码提示、应用GUI界面编辑等的集成开发环境,如Visual Studio,Delphi 现在:在集成开发环境基础上,提供更强大的开发平台支持(.NET,JDK),同时更关注应用的平台无关性和运行安全性 开发方法和技术的发展 70年代:结构化方法(设计、编码) 80年代:结构化方法(分析、设计、编码),状态图,需求工程 90年代:面向对象分析、设计、编码,对象建模 现在:商务建模(business modeling)、面向对象建模(分析、设计),体系结构设计(构件化) 面向对象方法 结构化与面向对象的提出 面向对象方法特征 面向对象主要流派 结构化与面向对象的提出 CFD DFD:自顶而下的层次分解策略 任何一层有变动,其下面的所有层次都必须重新进行层次分解 层次间的解释关系使得难以维护层次间的一致性 强调数据、功能分解,但忽略了数据、功能的整合 数据与功能分离的结构化认知观点,实际偏离了人认知世界的基本原则: 以实体为单位,以关系为核心 尽管有缺点,但结构化仍有可借鉴之处: 结构化原则 数据字典 状态图 大幕拉开:面向对象 类、对象是核心 面向对象分析、设计、编码的基本单位 数据与功能的有效封装 可直接映射到现实或抽象的实体 关系、状态、行为 开发管理的基本单位 类测试就是“单元测试”! 继承:面向对象冠上明珠 如果没有继承,谁能在一个小时之内,只使用SDK接口编写出Notepad?如果使用继承,你只需十分钟(或更少)! 继承至少提供了两个方向的设计支持: 重用 抽象、接口(COM、DCOM、Bean) 没有继承,几乎不可能有通用的容器类(Container or Collector)可供使用 多继承:你使用过多少次? 多态:面向对象‘自适应’中枢 多态(polymorphism):多种形态,统一语义 接口描述了通讯协议 多态使得基于接口的通讯能够自适应 多态:面向对象‘自适应’中枢 两种多态: 同一个类中的不同形态接口 不同子类以不同形态实现(或重载)父类接口 典型例子:画图程序中GraphManager类的Draw,Move,Open,… 典型例子:文档编辑中针对不同对象的统一的Cut/Copy/Paste操作 消息:可能让你失望 不要试图用信息理论或通讯理论中的消息来理解 也不要用操作系统中的消息(事件)来理解 所谓两个对象间的一个消息就是一个对象使用了另一个对象的操作(operation) ,简单说就是对象的操作调用! Windows中的SendMessage和PostMessage根本就与面向对象无关! 对象状态 对象状态只决定于对象的数据,和全局数据、非对象的局部数据无关 对象状态和对象行为之间的关系: s1,b1,s2,b2,b1 = b2 iff s1 = s2. 如果你的程序不满足这条定理,有两种情况: 类的某个方法使用了全局变量 类的某个方法中的局部变量初始值不确定 对象关系:无法让人满意 目前的面向对象提供了三种对象关系描述手段: 继承 聚集(组成) 关联:对象之间有关系! 然而,现实世界中实体之间的关系丰富多彩,岂止这三种? 面向对象分析 目标:使用对象来描述问题域,进而抽象出问题域类,并把求解问题的约束分配到问题域类 关注:是否完整、清晰的描述了问题域及约束 雷区:使用DFD,然后把每个处理节点都抽象为一个类 雷区:很快就在某个局部(通常为方法)进入算法、编码 面向对象分析模型的价值(领域重用、测试) 面向对象设计 目标:引入类(族)实现问题域类(在概念层次上),同时把系统约束分解、落实到类的方法层次 关注:体系结构、接口、效率 雷区:有些

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档