




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京理工大学软件工程实践 吴际北京航空航天大学 第十二讲 面向对象方法与UML介绍 内容和目的 我们的座标面向对象方法面向对象 能与不能统一建模语言UML 我们的座标 应用开发的变化开发工具和手段的发展开发方法和技术的发展 应用开发的变化 70年代 小型机 或服务器 上的数学程序80年代 单机 或以太网 上的 文本界面 或简单图形界面 计算型应用90年代 互联网 Internet 丰富图形界面 事务处理型应用 要求快速提交产品现在 分布于Internet Intranet 多种界面形式 基于WebBrowser ApplicationGUI等 多种事务处理的集成 电子商务 信息管理 多种标准的支持 XML J2EE Corba NET 多种平台的支持 Windows Linux Unix 开发工具和手段的发展 70年代 基于汇编代码的调试器80年代 基于高级语言的调试器 TurboC MicrosoftC BorlandC TurboPascal 90年代 集成了调试器 编辑器 配置管理 框架代码构造 及时编码提示 应用GUI界面编辑等的集成开发环境 如VisualStudio Delphi现在 在集成开发环境基础上 提供更强大的开发平台支持 NET JDK 同时更关注应用的平台无关性和运行安全性 开发方法和技术的发展 70年代 结构化方法 设计 编码 80年代 结构化方法 分析 设计 编码 状态图 需求工程90年代 面向对象分析 设计 编码 对象建模现在 商务建模 businessmodeling 面向对象建模 分析 设计 体系结构设计 构件化 面向对象方法 结构化与面向对象的提出面向对象方法特征面向对象主要流派 结构化与面向对象的提出 CFD DFD 自顶而下的层次分解策略任何一层有变动 其下面的所有层次都必须重新进行层次分解层次间的解释关系使得难以维护层次间的一致性强调数据 功能分解 但忽略了数据 功能的整合数据与功能分离的结构化认知观点 实际偏离了人认知世界的基本原则 以实体为单位 以关系为核心尽管有缺点 但结构化仍有可借鉴之处 结构化原则数据字典状态图 WhatdoyouthinkaboutOO 大幕拉开 面向对象 面相对象的目标 以人的 获接近于人的 认知方法和原则来描述事物完全不同于结构化的描述手段 类 对象继承多态消息 类 对象是核心 面向对象分析 设计 编码的基本单位数据与功能的有效封装可直接映射到现实或抽象的实体关系 状态 行为开发管理的基本单位类测试就是 单元测试 继承 面向对象冠上明珠 如果没有继承 谁能在一个小时之内 只使用SDK接口编写出Notepad 如果使用继承 你只需十分钟 或更少 继承至少提供了两个方向的设计支持 重用抽象 接口 COM DCOM Bean 没有继承 几乎不可能有通用的容器类 ContainerorCollector 可供使用多继承 你使用过多少次 多态 面向对象 自适应 中枢 多态 polymorphism 多种形态 统一语义接口描述了通讯协议多态使得基于接口的通讯能够自适应 多态 面向对象 自适应 中枢 两种多态 同一个类中的不同形态接口不同子类以不同形态实现 或重载 父类接口典型例子 画图程序中GraphManager类的Draw Move Open 典型例子 文档编辑中针对不同对象的统一的Cut Copy Paste操作 消息 可能让你失望 不要试图用信息理论或通讯理论中的消息来理解也不要用操作系统中的消息 事件 来理解所谓两个对象间的一个消息就是一个对象使用了另一个对象的操作 operation 简单说就是对象的操作调用 Windows中的SendMessage和PostMessage根本就与面向对象无关 对象状态 对象状态只决定于对象的数据 和全局数据 非对象的局部数据无关对象状态和对象行为之间的关系 b1 b2iffs1 s2 如果你的程序不满足这条定理 有两种情况 类的某个方法使用了全局变量类的某个方法中的局部变量初始值不确定 对象关系 无法让人满意 目前的面向对象提供了三种对象关系描述手段 继承聚集 组成 关联 对象之间有关系 然而 现实世界中实体之间的关系丰富多彩 岂止这三种 面向对象分析 目标 使用对象来描述问题域 进而抽象出问题域类 并把求解问题的约束分配到问题域类关注 是否完整 清晰的描述了问题域及约束雷区 使用DFD 然后把每个处理节点都抽象为一个类雷区 很快就在某个局部 通常为方法 进入算法 编码面向对象分析模型的价值 领域重用 测试 面向对象设计 目标 引入类 族 实现问题域类 在概念层次上 同时把系统约束分解 落实到类的方法层次关注 体系结构 接口 效率雷区 有些类是 上帝 而有些类只是 弱智的代表 雷区 盲目追求所谓封装 抽象类面向对象设计模型的价值 设计pattern 风险跟踪 测试 适合面向对象的开发过程 必须能够管理面向对象分析 设计 实现 测试 维护各阶段的模型的一致性需要给出一套基于类的开发任务管理方法 任务定义 风险管理 任务评审 能够在开发的不同阶段提供不同的知识库 不仅仅是类库 以供重用RUP是个不错的选择 面向对象 能与不能 Can使你以更有效的手段描述 实现系统提高系统的重用度有效缩短开发周期Cannot避免错误 尤其是分析 设计错误自动生成精巧的算法 统一建模语言UML 引论建模技术UML的模型图UML的基本视图UML的目的 主要特点和和应用领域 引论 WhyUnified UML是一种建模语言UML的设计目标UML的发展历程 WhyUnified 面对众多的建模语言 用户没有能力区别不同语言之间的差别 在众多的建模语言中 实际上各有千秋 需要取长补短 日臻完善 虽然不同的建模语言大多相同 但仍存在某些细微的差别 这极大地妨碍了用户之间的交流 UML是一种建模语言 建模方法 建模语言 建模过程 建模语言定义了用于表示设计的符号 通常是图形符号 建模过程描述进行设计所需要遵循的步骤 标准建模语言UML是一种建模语言 而不是一种方法 它统一了面向对象建模的基本概念 术语及其图形符号 为人们建立了便于交流的共同语言 UML的设计目标 UML是由Booch Rumbaugh和Jacobson发起 在Booch方法 OMT方法和OOSE方法的基础上 集众家之长 几经修改而成 UML的设计目标是 运用面向对象概念来构造系统模型 不仅仅针对软件 建立起从概念模型直至可执行体之间明晰的对应关系着眼于那些有重大影响的问题 创建一种对人和机器都适用的建模语言 UML的发展历程 1994 10 Booch和Rumbaugh将Booch93和OMT 2统一 1995 10 发布UM0 8 1995年秋 经过Booch等三人的努力 1996 6和1996 10发布UML0 9和UML0 91 1996年成立UML成员协会 有700多公司支持UML 占领OO市场的85 1997 1发布UML1 0 1997 9发布UML1 1 1997 11OMG采纳UML1 1作为OO技术的标准建模语言 此后 UML的维护工作由CrisKobryn领导的OMG版本修改小组RTF RevisionTaskForce 负责 1998 6 UMLV 1 1 编辑修改版 1999 6 UMLV 1 3 技术终订版 目前正处于UMLV 2 0阶段 UML的发展历程 续 1999 6UML1 3 建模技术 构造模型的目的建模技术要点系统的多种特性 构造模型的目的 在着手解决一个复杂问题之前 对解决方案进行检测 用于同客户和其他相关人员进行交流 加强视觉效果 对复杂问题进行适度简化 模型是对事物的抽象 人们常常在正式建造实物之前 先建立模型 以便更透彻地了解它的本质 抓住问题的要害 建模技术要点 构造模型的基本技术是抽象 应突出与问题有关的特征 将与问题无关的性质略去 不必追求绝对的真实和完全 只需从期望的目的角度看其是否充分 应当刻画问题的关键方面 略去相对次要的因素 建模语言应支持人的由模糊到清晰 由粗到细逐渐完善的认识过程 应采用可视化图形建模语言 系统的多种特性 在功能和性能方面 功能正确 性能良好 效率要高 在非功能方面 鲁棒性 可扩充性 可再用性 兼容性 可移值性 可验证性 完整性以及易使用性等方面要好 一个系统应具有多方面的特点 一个系统要从多个视角去描述 一个视图可能包含多个模型图 每张模型图都应当简单明了 易于交流 UML的模型图 UML定义了5类 共9种模型图 用例图 从用户角度描述系统的功能 并指出各功能的操作者 静态图 类图 对象图和包图 在UML1 1中 包图不再看作一种独立的模型图 行为图 状态图 活动图 交互图 顺序图 合作图 实现图 构件图描述部件的物理结构以及各部件之间的依赖关系 配置图定义系统中软硬件的物理构架 关于保险业务的一张用例图 静态图 类图 对象图和包图 静态图包括类图 对象图和包图 用以描述模型中类及其实例之间的静态关系 类图用于定义系统中的类 包括描述类之间的关系 关联 继承 聚合 以及类的内部结构 即类的属性和操作 对象图显示类的对象实例 一个对象图是类图的一个实例 包图由包或类组成 主要表示包与包 或包与类之间的关系 包图用于描述系统的分层结构 关于金融贸易的一张类图 类图和对象图 行为图 状态图 活动图 行为图包括状态图和活动图 描述系统的动态模型和组成对象间的交互关系 状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件 活动图描述为满足用例要求所要进行的活动以及活动间的约束关系 使用活动图可以很方便地表示并行活动 一部电梯的状态图 一台打印机服务器的活动图 交互图 顺序图 合作图 交互图包括顺序图和合作图 它描述对象间的交互 动态合作 关系 顺序图 用以显示对象之间在时间顺序方面的动态合作关系 因此 如果强调时间和顺序 应当使用顺序图 合作图 着重描述对象间的通信方面的动态合作关系 因此 如果强调通信关系 则可以选择合作图 一台打印机服务器的顺序图 一台打印机服务器的合作图 实现图 构件图 配置图 实现图包括构件图和配置图 构件图 描述部件的物理结构以及各部件之间的依赖关系 配置图 定义系统中 特别是在分布式及网络环境中 软硬件的物理构架 反映程序代码构件之间依赖关系的构件图 描述系统物理构架的配置图 DecNet协议 UML的基本视图 UML的用例视图UML的逻辑视图UML的构件视图UML的并发视图UML的配置视图 UML的五类基本视图 UML的五类基本视图 续 用例视图 从系统外部执行者的角度理解 展示系统功能 逻辑视图 从系统的静态结构和动态行为的角度展示系统内部功能性设计 构件示图 展示代码构件的组织结构 并发视图 展示系统的并发性 刻画并发系统中的通讯和同步问题 配置视图 展示系统的物理的体系结构 其中用到的计算机和各种设备称作节点 UML的用例视图 从系统外部执行者的角度理解系统的功能 它描述执行者与系统的交互 其执行者可以是一个用户 也可以是另一个系统 用例图面向客户 建模人员 开发人员和测试人员 是系统模型图的核心 用例视图 用例图和活动图描述 一张用例图是系统的一种用途的描述 一组用例图描述了整个系统所期望的用途 UML的逻辑视图 描述系统如何提供要求的功能 静态结构 类 界面 内部结构 对象 关系用类图和对象图描述 动态行为 对象之间相互发送消息而引发的动态合作关系用状态图 顺序图 合作图和活动图描述各种特性 永久性 并发性主要是面向设计人员和开发人员 UML的构件视图 描述实现的各个模块及其相互之间的关系 模块的内部结构模块间的依赖关系关于各构件的一些附加信息 资源分配 构件的责任 其它管理信息 如开发工作的进展报告等主要面向开发人员构件视图 由构件图组成 其中构件表示不同类型的代码模块 UML的并发视图 系统中进程和处理器的划分与任务的分配属于非功能性特性 着眼于资源的有效利用并行执行 并发地执行多线程控制 处理线程之间的通信和同步处理来自外部环境的同步事件面向开发人员和系统集成人员描述并发视图的主要模型图 动态图 状态图 合作图 活动图实现图 构件图 配置图 UML的配置视图 展示系统的物理配置 如计算机和其它设备 统称结点 及其相互之间的连接关系 包括在物理的体系结构中如何配置构件的映像关系 面向开发 集成和测试人员 配置视图用配置图描述 面向对象描述的三个层面 1 层次间没有分解对应关系2 每个面向对象描述元素都可对应到这三个层面 UML的主要特点 目的和应用领域 UML的主要特点使用UML的目的UML的应用领域 UML的主要特点 UML统一了Booch OMT和OOSE等方法中的基本概念 用例图从OOSE来 类图从OMT和Booch等方法来 实现图 构件图和配置图 从Booch的模块图和过程图来 UML吸取了OO技术领域各流派的长处 状态图从Harel而来 活动图从工作流图而来 合作图从Booch的对象图和Fusion的对象交互作用图等而来 等等 在演变过程中UML提出了一些新的概念 使用UML的目的 软件开发的过程犹如雕琢一件艺术品 由无形到有形 由粗到细 但软件开发的最终形式必须生成程序代码 因此当考虑使用UML时 一定要想清楚 使用UML的目的以及对编写代码有何帮助 学习面向对象技术和领域专家交流帮助理解全局 学习面向对象技术 UML的各种模型图 其中用例图描述系统的功能及其外部的使用者 确定谁使用系统以及做什么 类图描述系统的静态构架 即构成系统的各种对象类及其相互关系 对象图是类图的实例化 描述系统在某个时刻可能包含的对象和相互关系 行为图和交互图描述系统的动态行为 构件图和配置图描述系统实现体的构成及其在硬件环境中的配置情况 和领域专家交流 有效的方法是使用用例 一个用例描述了系统的某一侧面 所有用例构成了系统的整个外观 用例也有助于制订项目规划和对问题进行深入理解 类图很有用 但应注重在概念层上使用 应将每个类对应用户心中一个概念 并用用户的语言来命名和定义 对于侧重于工作流过程的应用系统 活动图非常有用 活动图也有助于对实际业务流程中的并行特性进行自然描述 帮助理解全局 对于大型项目 常常只见树木不见森林 采用UML有助于理解全局 譬如 类图可了解系统中有哪些类型的事物 哪些需要作进一步的考察 对大型软件 无论概念层 说明层或实现层 其模型都可能十分庞大 此时通常需要分层次地绘制很多张模型图 并为整个软件系统建立
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储管理员(中级)模考试题含参考答案
- 建筑施工现场应急预案
- 2025年啤酒行业研究报告及未来行业发展趋势预测
- 2025年便条纸N次贴行业研究报告及未来行业发展趋势预测
- 2025年笔架行业研究报告及未来行业发展趋势预测
- 电竞俱乐部电竞战队战队文化建设与团队凝聚力提升报告2025
- 医院谈话记录工作态度范文
- 2025西安诺点印象网络科技有限公司招聘备考练习试题及答案解析
- 中级汽车维修工理论考试试题与答案
- 三级安全教育考试试题与答案解析
- “探究”测定某种食物中的能量实验报告单
- 羊奶的营养价值(课堂PPT)
- 水轮发电机的基本结构课件
- 《空气动力学》配套教学课件
- 技术交流-太钢不锈钢产品介绍
- 完整版医院体检报告范本
- 外研社Join-in-新版五年级上册全册教案
- 彭静山针灸秘验
- 《销售管理实务》ppt课件汇总(完整版)
- 生育服务证办理承诺书空白模板
- 壳寡糖功能课件
评论
0/150
提交评论