世纪计算机应用技术系列规划教材PPT课件.ppt_第1页
世纪计算机应用技术系列规划教材PPT课件.ppt_第2页
世纪计算机应用技术系列规划教材PPT课件.ppt_第3页
世纪计算机应用技术系列规划教材PPT课件.ppt_第4页
世纪计算机应用技术系列规划教材PPT课件.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

21世纪计算机应用技术系列规划教材 UML与系统分析设计 第1章 第2章 第3章 第4章 第5章 第6章 第9章 第12章 第13章 第14章 第7章 第8章 第11章 第10章 第1章基础知识 统一模型语言UML TheUnifiedModelingLanguage UML是一种编制软件蓝图的标准化语言 用于对复杂软件系统的各种成分的可视化 说明和构造系统模型 以及建立软件文档 UML支持面向对象的技术和方法 UML独立于软件的实现 UML可以应用于任何开发过程 UML不是程序设计语言 是可视化的模型语言 UML已成为一种软件开发的主流方法与工具 第1章基础知识 UML是可视化的模型语言 建立模型的作用是获取系统的实质性部分 可视化建模是运用标准图形符号建立系统模型 第1章基础知识 1 1软件开发方法概述 1 2面向对象的系统分析与设计 1 3UML概述 1 1软件开发方法概述 1 1 1软件生命周期法 1 1 2原型法 1 1 3面向对象技术 1 1 4面向对象的软件开发语言与工具 Home 1 1 1软件生命周期法 软件生命周期 SoftwareLifeCycle 是指从软件的立项开发到软件的最终消亡的全过程 软件生命周期经历下列阶段 制定计划 需求分析 软件设计 编码 测试 运行与维护 在制定计划阶段 确定系统的目标 提出系统的功能 性能 接口 可靠性 可用性等方面的基本要求 进行系统开发的可行性分析 提出可行性分析报告 制定系统开发的实施计划 在需求分析阶段 对系统的需求进行详细的分析 并给出明确的定义 编制系统需求分析说明书和初步的用户手册 作为今后系统开发工作的依据 在软件设计阶段 根据系统的需求设计系统的体系结构和软件模块 概要设计 设计软件系统的总体结构 即模块结构 详细设计 详细定义各模块的数据结构 算法 接口等 设计数据库 Home 1 1 1软件生命周期法 在编码阶段 编写计算机可以接受的软件代码程序 在测试阶段 测试软件 排除错误 包括测试和排错 在运行与维护阶段 系统的试航 交付使用和系统维护 传统的瀑布模型是建立在软件生命周期上的一个软件开发的管理模型 如图1 1所示 Home 图1 1软件生命周期的瀑布模型 1 1 1软件生命周期法 软件生命周期法遵循以下的软件设计准则 1 认识抽象2 模块化3 信息隐蔽和局部化4 结构化程序设计5 遵守软件规范 软件生命周期法的缺点主要是它缺乏灵活性 很难面对和处理软件开发中存在的各种风险 瀑布模型按照现代工业的工程化生产模式 规定了严格的软件开发阶段和过程 忽略了软件开发本身的特殊性 过于理想化 Home 1 1 2原型法 原型法开发模型的基本思想如下 首先取得基本的需求 迅速构造一个系统原型 运行原型系统 对原型进行评价 提出修改意见 根据新需求 再实现新一轮的系统原型 重复上述步骤 直到实现满意的最终系统 原型法的工作流程如图1 2所示 Home 图1 2原型法工作流程图 1 1 2原型法 原型是系统的一种简化表示 虽然原型不是完整的最终系统 但它具有最终系统的重要特征 其目的是能快速构造出一个原型系统 然后运行该原型系统 对它进行评价 原型的主要特征如下 1 系统功能 原型只需要实现系统的基本功能 2 系统复杂性 原型的内在的系统复杂性可以低于实际系统 以便于测试系统的主要性能指标 3 用户接口 原型应包括最终系统的用户接口 4 简化的数据结构 原型中使用的数据结构可以是最终系统的数据结构的简化 甚至是一种临时替代的简单数据结构 5 原型性能 原型系统的性能要求可以低于最终系统 6 坚固性 原型系统的坚固性要求比最终系统低 7 硬件 原型可以在与最终系统的运行环境不同的硬件基础上建立 8 工具集 原型系统的建立一般须借助CASE工具 至少是集成式的程序开发环境 Home 1 1 2原型法 原型法的基本思想 快速 简化 抓住主要问题 通过一轮又一轮的原型开发和用户评价 试用 反馈 修改 逐步求精 迅速完成用户满意的最终系统 在每一轮的原型化开发循环中 一般仍采用软件生命周期方法 瀑布模型 即经历需求分析 软件设计 编码 测试等阶段 主要优点 开发人员与用户交流直接 可以尽早地获得正确而完整的需求 开发过程简单 在一定程度上能适应需求的变化 开发效率显著提高 且提高了软件质量 总开发费用会减少 缺点 如果用户不断地用新的需求否定旧的需求 则软件开发总停留在重构一个新原型的阶段 将迟迟拿不出一个完整的成品 Home 1 1 3面向对象技术 面向对象技术的基本观点如下 1 客观世界是由对象组成的 2 具有相同的数据和相同的操作的对象可以归并为一个类 对象是对象类的一个实例 3 类可以派生出子类 子类继承父类的全部特性 数据和操作 又可以有自己的新特性 4 对象之间通过消息传递相互联系 类具有封装性 软件工程学家Codd和Yourdon认为 面向对象 对象 类 继承 通信 如果一个计算机软件系统采用这些概念来建立模型并予以实现 它就是面向对象的 1 1 3面向对象技术 面向对象技术应用在软件工程中即是面向对象的软件工程方法 它包括 面向对象的分析 OOA ObjectOrientedAnalysis 面向对象的设计 OOD ObjectOrientedDesign 面向对象的编程 OOI ObjectOrientedImplementation 面向对象的测试 OOT ObjectOrientedTesting 面向对象的维护 OOSM ObjectOrientedSoftwareMaintenance Home 1 1 3面向对象技术 软件系统的分析与设计中面临的主要问题 1 问题领域和系统责任准确 透彻地理解问题领域与系统责任很不容易 需要有效的方法和工具能够简单明了地描述待开发软件的问题领域与系统责任 2 人员交流与通信障碍需要有一套通用的思维方法和便于交流的 语言 包括系统的模型 术语 表示法 文档书写格式等 为人员之间的交流架设一座桥梁 3 系统需求变化在软件开发过程中系统的需求常不断地发生变化 一个好的软件开发方法和技术要能有效地应付系统需求的变化 4 软件复用软件复用是提高软件开发效率 改善软件质量的重要途径 需要解决复用构件的提取与制作 复用构件库的组织 复用构件的检索 复用构件的组装等技术问题 1 1 3面向对象技术 面向对象方法继承了软件生命周期法总结的软件设计准则 同时又有自己的技术特色 有利于解决上述这些软件系统的分析与设计所面临的问题 面向对象方法的优点 1 按照人类的自然思维方式 面对客观世界建立软件系统模型 有利于对问题领域和系统责任的理解 有利于人员交流 2 对需求变化的适应性 3 支持软件复用 4 可维护性好 1 1 4面向对象的软件开发语言与工具 Smalltalk 80是最早出现的完善的面向对象的程序设计语言 它几乎拥有当今的面向对象技术的主要概念及其支持机制 从而引发了计算机软件领域中的一场深刻的变革 许多传统的通用程序设计语言进行了改造 支持面向对象的概念 增加了面向对象程序设计的功能 如面向对象的C C Basic Pascal Fortran Lisp ADA等 当今的面向对象程序设计语言 VisualC VisualBasic Jbuilder VisualAge系列 Java等 都有相应的可视化集成开发环境 计算机辅助软件工程 CASE ComputerAidedSoftwareEngineering 是一种技术和环境 其目标是通过统一的数据操纵手段和工具系统 辅助软件开发人员进行软件系统的开发 提高开发效率 保证软件产品的数量和质量 一般地 CASE工具应当包括需求分析工具 软件设计工具 代码生成工具 软件测试工具 系统维护工具 其他的工具还有软件文档编制与生成工具 逆向工程工具 版本控制管理工具等 1 2面向对象的系统分析与设计 1 2 1面向对象的主要概念 1 2 2面向对象的系统分析与设计方法 1 对象 Object 从所面对的问题领域而言 对象是指现实世界中的一个事物 是在建立系统模型中与目标有关的有待抽象的事物 它有自己的静态特征和动态特征 对象可以是具体的有形的物体 如人 房屋等 也可以是无形的事物或概念 如国家 生产计划等 从系统的建模和实现而言 对象描述客观事物的一个实体 是构成系统的基本单元 它由一组属性和一组服务 操作 组成 系统的服务功能是通过新对象的建立和对象之间的消息通信来实现的 对象中的属性是描述对象静态特征的数据项 对象中的服务 操作 是对象的动态特征的体现 它常是一个可执行语句或过程 对属性进行操作 实现某项服务 1 2 1面向对象的主要概念 2 类 类 Class 是一组具有相同属性和相同操作的对象的集合 类是对象的抽象 它给出了属于该类的全部对象的抽象定义 包括类的属性 服务 操作 和其他性质 一个具体的对象只是类的一个实例 Instance 类如同是一个对象模板 Template 用它可以产生多个对象 它们具有不同的属性值 类所代表的是一个抽象的概念或事物 在客观世界中实际存在的是类的实例 即对象 1 2 1面向对象的主要概念 3 封装 封装 Encapsulation 是指把对象的属性和操作结合在一起 构成一个独立的对象 它的内部信息对外界是隐蔽的 不允许外界直接存取对象的属性 而只能通过有限的接口与对象发生联系 对于对象的外界而言 只需要知道对象所表现的外部行为 不必了解对象行为的内部实现细节 封装体现了面向对象方法的 信息隐蔽与局部化 原则 1 2 1面向对象的主要概念 4 继承 继承 Inheritance 是指子类 特化类 派生类 可以自动拥有父类 基类 泛化类 超类 的全部属性与服务 父类与子类的关系是一般与特殊的关系 子类既有基类的全部属性与服务 又可有自己独特的属性或服务 只从一个父类中继承属性和服务 称为单继承 从两个以上的父类中继承属性和服务称为多继承 MultipleInheritance 继承具有传递性 继承提高了软件的可复用性 1 2 1面向对象的主要概念 5 消息 消息 Message 是指对象之间在交互中所传送的通信信息 通常 一个对象向另一个对象发消息请求某项服务 接收消息的对象响应该消息 激发所要求的服务操作 并把操作的结果返回给请求服务的对象 一个消息应当含有以下信息 消息名 接收消息的对象的标识 服务标识 输入信息 回答信息 面向对象技术的封装机制使对象各自独立 各司其职 对象之间通过消息互相联系 互发消息 响应消息 协同工作 实现系统的各种服务功能 消息可分为同步消息和异步消息 1 2 1面向对象的主要概念 6 结构与连接 1 分类结构 分类 Classification 是对象抽象的基础 分类结构表现的是事物的一般与特殊的关系 即 a kind of 或 is a 关系 在面向对象的术语中常把一般与特殊的关系称为泛化 Generalization 与特化 Specialization 联系 一个对象类是其父类的子类 本身又可以有一个或多个子类 如果在分类结构中存在多继承 那么将形成一个类的网格结构 1 2 1面向对象的主要概念 2 组装结构 组装结构 CompositionStructure 表示对象类之间的组成关系 即部分与整体的关系 部分对于整体是 a part of 关系 整体对于部分是 has a 关系 组装结构体现了面向对象方法的聚合 Aggregation 原则 一个对象类可以代表另一个对象类的组成部分 本身又可以代表其他对象类的整体 组装结构可以表示出复杂的对象层次结构 1 2 1面向对象的主要概念 3 实例连接 实例连接 InstanceConnection 表现了对象之间的静态联系 它是通过对象的属性来表现的对象之间的依赖关系 在面向对象的术语中常把对象之间的实例连接称为链接 Link 而把存在实例连接的对象类之间的联系称为关联 Association 关联的示例如图1 3 a 实例连接是从一个实例集合到另一个实例集合的映射 实例连接可以发生在两个对象类之间 也可以发生在一个对象类的不同实例集合之间 如图1 3 b 所示 实例连接可以有多种类型 一对一的连接 一对多的连接 多对多的连接 0对一的连接 0对多的连接等 在关联的一端的类中参与连接的候选对象 实例 的个数称为类角色的多重性 Multiplicity 1 2 1面向对象的主要概念 Home 例 实例连接示例 图1 3 1 2 1面向对象的主要概念 Home 图1 3实例连接示例 4 消息连接 消息连接 MessageConnection 是对象之间的通信联系 一个对象需要另一个对象的服务 便向它发出请求服务的消息 接收消息的对象响应消息 触发所要求的服务操作 消息连接表现了对象行为的动态联系 消息连接是在具有交互的对象之间的一种基本的联系 如果两个对象之间不存在交互行为 自然没有消息连接 1 2 1面向对象的主要概念 Home 7 多态性 多态性 Polymorphism 是指在基类中定义的属性和服务为其子类继承后 可以具有不同的数据类型或表现出不同的行为 在体现一般与特殊关系的一个类层次结构中 不同层次的类可以共享一个方法 操作 的名字 但是却有各自的不同的实现 派生类继承基类的属性或服务操作的名称 而根据派生对象的特性修改属性的数据类型或服务操作的内容 称为重载 Overloading 重载是实现多态性的方法之一 1 2 1面向对象的主要概念 Home 面向对象的分析 OOA 的主要任务是分析问题领域 找出问题解决方案 发现对象 分析对象的内部构成和外部关系 建立软件系统的对象模型 面向对象的设计 OOD 的主要任务是根据已确立的系统对象模型 运用面向对象技术 进行系统软件设计 OOA与OOD不可能截然分开 在OOA中往往不仅考虑系统 做什么 的问题 也要适当考虑系统 怎么做 的问题 在OOD中不仅解决系统 怎么做 的问题 也要从软件实现的角度出发 修改 细化 完善系统的分析模型 所谓模型 Model 是现实世界的一个简化 软件系统模型提供一个系统的蓝图 1 2 2面向对象的系统分析与设计方法0 Home 1 面向对象的分析面向对象的分析的基本过程如下 1 问题领域分析 2 发现和定义对象与类 3 识别对象的外部联系 4 建立系统的静态结构模型 5 建立系统的动态行为模型 1 2 2面向对象的系统分析与设计方法 Home 2 面向对象的设计基本过程如下 1 设计对象与类 2 设计系统结构 一个复杂的软件系统由若干子系统组成 一个子系统由若干个软件组件组成 软件系统的结构的两种方式 层次结构和块状结构 在层次结构中 每一层是一个子系统 下层为上层功能的实现提供服务 在块状结构中 系统由相互独立的子系统组成 一个子系统就是系统的一个软件块 块之间弱耦合 每个块提供一种类型的服务 1 2 2面向对象的系统分析与设计方法1 2 Home 一般的应用系统可有四个组成部分 问题领域 人机界面 数据管理 任务管理 如图1 4所示 1 2 2面向对象的系统分析与设计方法 Home 其它系统 图1 4一个应用系统的系统结构 3 设计问题领域子系统 问题领域子系统负责实现领域的业务服务 问题领域子系统应包括与应用领域的业务直接有关的全部的类和对象 对OOA模型中的某些类 对象 结构 属性 操作进行调整 根据软件实现的要求增加必要的类 属性和联系 4 设计人机交互子系统 人机交互子系统提供用户界面 设计用户界面 设计工作的内容包括用户分类 描述交互场景 设计人机交互操作命令 命令层次和操作顺序 设计详细交互过程 设计人机交互类 如窗口 对话框 菜单等 用户界面应当充分体现业务领域的特点 符合业务应用的习惯 而且具有现代化气息 生动活泼 一般采用图形界面 GUI 和人机应答的形式 力求操作简便 用户友好 1 2 2面向对象的系统分析与设计方法3 4 Home 5 设计数据管理子系统 数据管理子系统负责数据的管理 包括数据的录入 操纵 检索 存储 以及对持久性数据的访问控制等 设计的主要任务是 确定数据管理的方法 设计数据库与数据文件的逻辑结构和物理结构 设计实现数据管理的对象类 目前常用的数据管理的方法有三种 数据文件管理 关系数据库 面向对象数据库 包括对象 关系数据库 数据库由专门的数据库管理系统 DBMS 管理 在数据管理子系统中需要有相应的类操纵使用数据库中的数据 1 2 2面向对象的系统分析与设计方法5 Home 6 设计任务管理子系统 在计算机系统中所谓任务 Task 即指进程 Process 任务管理子系统的职责就是协调和管理进程 尤其是并发的进程 要设计软件系统的内部模块运行的管理机制 即把事件驱动 时钟驱动 优先级管理 关键任务和协调任务等系统管理任务分配给硬件和软件执行 7 设计优化 提高系统的性能 系统设计的结果需优化 尽可能地提高系统的性能和质量 系统的质量和性能指标有多个 如运行速度 内存开销 资源占用 模型清晰度等 它们的重要性 优先级 是不同的 指标之间有的还存在矛盾 应根据实际情况制定一个设计优化的折衷方案 进行系统的优化 1 2 2面向对象的系统分析与设计方法6 7 1 3UML概述 1 3 1UML简史 1 3 2UML概貌 1 3 3UML的特点和用途 Home 自20世纪70年代面向对象技术出现以后 出现了多种面向对象的软件工程方法 比较流行的有Booch Rumbaugh OMT Jacobson OOSE Coad Yourdon Fusion Shlaer Mellor Berard Firesmith Martin Odell Seidewitz Stark Wirf Brock等 它们各有长处 也各有缺陷 1994 1996年软件工程学家GradyBooch IvarJacobson JamesRumbaugh先后齐集于Rational公司 携手合作 以各自原创的方法为基础 并汲取其它方法的长处 共同提出了新的面向对象的分析与设计语言 统一模型语言UML 1997年1月Rational公司向美国工业标准化组织OMG递交了UML1 0标准文本 1997年11月OMG宣布接受UML 并正式颁布了UML1 1作为官方的标准文本 此后 OMG修改任务组对UML不断进行扩充与完善 相继推出了UML1 2 UML1 3 UML1 4 UML1 5和UML2 0 1 3 1UML简史 Home UML语言的产生 融合与演化的过程 如图1 5所示 1 3 1UML简史 Home 图1 5UML语言融合演化图 UML是编制软件蓝图的标准化语言 用于对复杂软件系统的各种成分的可视化 说明和构造系统模型 以及建立软件文档 UML包含了3个方面的内容 模型的概念和表示法 语言的公共机制 对象约束语言 1 UML的模型的概念和表示法 UML提供了3类基本的标准模型建筑块 事物 联系和图形 事物是一个模型的一级抽象成员 即构成模型的元素 UML规定了4种事物的表示法 结构性事物 行为性事物 成组性事物 注释性事物 UML提供的模型建筑块之间的基本联系有4种 依赖 Dependency 关联 Association 泛化 Generalization 实现 Realization 等 模型建筑块与联系相结合 可以构造出良构的系统模型 Well formedModel 1 3 2UML概貌 Home UML图形是模型元素集合的可视化表示 在标准文本UML1 1中 UML定义了9类图形 用于建立系统模型 类图 对象图 UseCase图 顺序图 协同图 状态图 活动图 组件图 配置图 在UML2 0中增加了复合结构图 交互概观图 计时图等 并把协同图改名为通信图 状态图改名为状态机图 UML提供了对各个模型建筑块进行说明的语法和语义规定 在建立模型时 可以用UML的图形表示法使系统可视化 同时用UML的说明描述系统的细节 1 3 2UML概貌 Home UML提供了以下的系统模型化功能 1 UseCase建模 UseCase定义了在业务处理中的业务规则和任务 以及计算机应用系统怎样支持这些任务 UseCase抽取系统的功能需求 帮助把它映射成对象模型 UseCase模型是领域业务分析员 用户和系统开发人员之间的桥梁 2 对象类和对象建模 可用UML中的对象类定义一系列业务对象 类 和应用结构 并且建立对象作为这些类的实例 以保证UseCase和业务规则得到正确的支持 1 3 2UML概貌 Home 3 组件建模 组件是指源代码的物理单元和可执行单元 它们组成应用系统 对象类分别组织在组件中 成为应用系统中的可复用的模块 4 配置建模 配置建模是把软件系统在计算机网络上的配置方式进行模型化 分布式系统有多种的实现模式 如客户 服务器模式 Client Server 三层 Three tier 结构模式 Internet Intranet模式 广域网络模式等 在配置图中可以描述分布式系统的网络的节点拓扑 节点之间的连接 以及应用系统如何在网络上划分和分布 1 3 2UML概貌 Home 2 UML语言的公共机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论