




已阅读5页,还剩101页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020年3月15日7时8分 1 RUP开发过程与UML建模 1软件开发的几个指导原则及模型的概念2统一软件开发过程 RUP 3UML概述4UML结构5UML中的图 2020年3月15日7时8分 2 软件开发过程是指为生产某个软件产品或系统 需要什么人在什么时候以何种方式进行何种活动的集合 2020年3月15日7时8分 3 软件开发项目失败的共同症状 对于最终用户的需求理解得不够精确 不能处理需求变更 模块之间不兼容 软件不易维护和扩展 对项目的严重缺陷发现较晚 软件质量低劣 软件性能无法令人接受 团队中人员按各自的开发方式工作 这使得对谁在何时 何处做什么不完全清楚 系统更改与重构难以进行 一个不可靠的构造和发布过程 2020年3月15日7时8分 4 尽管各个项目失败的原因是不同的 但是基本上大多数项目失败是由于以下几个原因的组合造成的 需求管理非规范 模糊和不精确的交流 脆弱的架构 系统过度复杂 未检测出需求 设计和实现中的不一致 测试不足 对项目状况的评估过于主观 未解决存在的风险 无法控制变化的传播 自动化程度不足 2020年3月15日7时8分 5 1软件开发的几个指导原则及模型的概念 1 软件开发的三个指导原则 分阶段进行 定义 开发 运行维护 大开发任务划分成独立的小块任务 模块化 高内聚 模块内各元素彼此紧密结合 低耦合 模块间互联程度低 从抽象到具体逐步深入解决问题 逐步求精 2 模型的概念 是人们对现实世界理解的表达 一般对应一些图表 2020年3月15日7时8分 6 2统一软件开发过程RUP 1统一过程概述2统一过程的四个工作阶段3统一过程的五个核心工作流4统一软件开发过程的生命周期5RUP开发过程的特点 2020年3月15日7时8分 7 1统一过程概述 Rational公司的RUP发展而来的一套软件工程方法 是目前最有效的软件开发过程模型 基于构件的用UML制定软件系统所有蓝图突出特点 用例驱动 架构优先 迭代和增量过程四个阶段 初始 细化 构造 移交强调开发过程五个核心工作流 需求捕获 分析 设计 实现 测试 2020年3月15日7时8分 8 在RUP中 项目生命周期被划分为四个阶段 1 初始阶段 Inception 2 细化阶段 Elaboration 3 构造阶段 Construction 4 交付阶段 Transition 每个阶段开始时都有特定的目标 结束时有里程碑 在每个阶段中存在一个或多个迭代 在每个迭代中 可以有多个工作流 2统一过程四个工作阶段 2020年3月15日7时8分 9 1 初始阶段初始阶段的目标 确定项目的软件范围和边界条件识别出系统的关键用例展示系统的侯选架构估计整个项目需要的费用和时间安排评估项目风险初始阶段的主要活动 建立系统的业务模型捕获系统的基本需求确定系统的边界识别关键任务确定系统验收标准进行项目风险评估进行项目资源的估计与效益分析制定项目开发计划与重要里程碑 2020年3月15日7时8分 10 初始阶段的里程碑 生命期目标初始阶段的制品 项目蓝图文档 系统的核心需求 关键特性与主要约束初始的用例模型 完成10 20 初始的项目术语表业务用例模型 包括商业环境 验收标准和财政预测初始的风险评估一个可以显示阶段和迭代的项目计划一个或多个原型初始的架构文档 初始阶段的重点 初始阶段的重点是需求分析与系统分析 如果需要构造原型系统 则需做一些设计与实现 2020年3月15日7时8分 11 可以用如下标准来评价初始阶段是否成功 风险承担者是否赞成项目的范围定义 成本以及进度估计 是否通过主要用例证实对需求的理解 成本与进度预测的评估以及优先级 风险和开发过程的可信度 所开发软件原型的深度和广度 实际开支与计划开支的比较 架构的轮廓是否合理如果无法达到这些标准 可能取消项目或重新对项目进行仔细的考虑 2020年3月15日7时8分 12 2 细化阶段 最关键的阶段细化阶段的目标 迅速定出实用的架构规划完成项目的活动 估算完成项目所需资源细化初始阶段模型为构造阶段定出高精确度的计划细化阶段的主要活动 细化构想 建立对大多数关键用例的确定理解分析问题域 建立坚实的架构细化架构并选择组件捕获80 的功能需求用例精化风险评估建立可执行的软件原型定义非功能需求制定过程迭代计划和迭代的评价标准 2020年3月15日7时8分 13 细化阶段的里程碑 生命期架构细化阶段的主要制品 系统架构基线UML静态模型UML动态模型UML用例模型修订的风险评估修订的用例修订的项目计划可执行的原型 细化阶段的重点 细化阶段主要关注需求 分析和设计工作流 每个工作流关注如下各项 需求 精化系统范围和需求分析 确定构造什么设计 创建稳定的架构实现 构造架构基线测试 测试架构基线 2020年3月15日7时8分 14 细化阶段的评价是通过回答下述问题来完成的 软件的构想是否稳定 架构是否稳定 可执行的原型是否表明风险要素已被处理并可靠地解决了 构造阶段的计划是否足够详细和精确 是否有可靠的基础 如果在当前架构上下文中执行计划并开发出整个系统 是否所有的风险承担人都同意系统达到了当前的需求 实际的费用支出与计划支出是否可以接受 如果无法达到这些标准 可能取消项目或对项目进行重新考虑 2020年3月15日7时8分 15 3 构造阶段构造阶段的目标 实现管理层和用户达成共识的产品的所有用例一个移交阶段的高精度计划关键特性和核心功能得到实现产品发布的验收标准初步的用户手册产品质量的详细分析构造阶段的主要活动 资源管理 资源控制和过程优化完成组件开发并根据已定义的评价准则进行测试利用构想制定的准则对发布的产品进行评估 构造阶段的重点 构造阶段主要关注系统的实现工作流 每个工作流关注如下各项 需求 揭示任何遗漏的需求分析 完成分析模型设计 完成设计模型实现 构造初始运作功能测试 测试初始运作功能 2020年3月15日7时8分 16 构造阶段的里程碑 初始运作功能构造阶段的制品 可运行的软件系统UML模型测试用例用户手册发布描述 构造阶段的结束是项目开发的第三个重要的里程碑 这个阶段产生的版本通常被称为 版 评价构造阶段需要回答以下问题 软件是否足够稳定和成熟 从而可以发布给用户 是否所有的风险承担人都准备好了向用户交付软件产品 实际费用与计划费用的对比是否仍可被接受 如果项目无法达到这些要求 必须推迟进入交付阶段 2020年3月15日7时8分 17 4 交付阶段交付阶段的目标 试用产品并改正试用中发现的缺陷制作安装版并培训用户提供在线支持交付阶段的主要活动 将软件系统部署到用户环境修复软件的缺陷编制用户手册和其它文档培训用户和维护人员提供用户咨询 交付阶段的重点 交付阶段主要关注系统的测试和配置工作流 每个工作流关注如下各项 设计 如果 测试中出现问题 修改设计 实现 为用户场地裁减软件 修复在 测试中发现的问题 测试 测试及其在用户现场验收测试 配置 将软件系统部署到环境中 并配置相应参数 2020年3月15日7时8分 18 交付阶段的里程碑 产品发布交付阶段的制品 可运行的软件产品用户手册用户支持计划 评价交付阶段需要回答以下问题 用户是否认可系统已经成功部署 用户是否积极使用该软件产品 用户是否认可产品支持策略 如果项目无法达到这些要求 必须推迟交付 2020年3月15日7时8分 19 工作流 规程 是由活动构成的活动序列 沿着过程组件轴 开发过程可以被划分为五个核心工作流 1 需求捕获建立待开发系统的用例模型 多次迭代完善 进行初步用户界面设计 用来描述系统的功能性需求和非功能性需求 2 分析对需求捕获阶段所描述的用例模型进行精细化和组织 目的是为了更精确地理解需求 得到一个易维护且有助于确定系统结构的需求描述 3 设计构造系统 获得实现了所有需求的系统组织 设计的目的是通过考虑实现环境 将分析阶段的模型扩展和转化为可行的技术实现方案 4 实现实现工作流活动是用编程语言来实现系统 同时对已建立的模型作相应的修正 5 测试测试工作流活动的目的是使用测试用例对系统软件进行验证与确认工作 3统一过程的五个核心工作流 2020年3月15日7时8分 20 统一开发过程的一次迭代包括五个核心工作流 每个阶段经过多次迭代 但每个阶段侧重点不同 4统一过程的生命周期 2020年3月15日7时8分 21 5RUP开发过程的特点 RUP综合了以前的多种软件开发过程的优点 全面考虑了软件开发的技术因素和管理因素 它是一种良好的开发过程模式 RUP的主要特点如下 1 面向对象从技术角度 RUP开发是基于面向对象技术 即它使用和支持面向对象技术的概念和方法 RUP要求建立的设计模型 实现模型都是对象模型 2 UseCase驱动系统的开发从问题领域的UseCase模型开始 UseCase模型表达了系统的需求 以后的各种工作围绕着如何实现这个UseCase模型展开 RUP推荐UseCase驱动的软件开发方法 当然也不排斥按常规方法进行需求分析和直接从对象模型着手进行开发工作 2020年3月15日7时8分 22 3 以架构为中心 架构优先 在系统的开发过程中 软件架构是系统开发的基本制品 系统的概念化 构造和管理都是围绕着系统的架构进行的 4 增量和迭代的开发过程RUP遵循原型法的思想 开发过程由一连串迭代开发活动组成 渐增 循环重复 以及往返工程构成了RUP的过程特色 2020年3月15日7时8分 23 5 以质量控制和风险管理为目标质量控制贯穿于开发的全过程 在RUP中的每一个阶段或循环中 都要进行质量评估 用质量目标和质量指标衡量软件系统的质量 从软件项目立项之初便尽可能地认识项目开发将面临的风险 风险管理贯穿于软件开发的全过程 6 与UML配套UML本身只是一种建立模型的语言 UML的概念和表示法与RUP相结合将形成一种强大的 高效的软件系统开发方法和技术 当然 RUP也可以与其他的面向对象表示工具相结合使用 7 适用性强RUP适用于各类软件系统的开发 从规模上说 RUP可用于大 中 小型软件系统 从个人开发到数百人的团队开发都可以使用RUP开发过程 从种类上说 常规的信息管理系统 分布式系统 并行系统 实时系统和基于Web的系统都可以使用RUP开发过程 此外 RUP开发过程采用管理与技术相结合的二维方法 特别适合处理需求易变动的高风险项目 2020年3月15日7时8分 24 3统一建模语言UML概述 1 关于UML 统一建模语言表达能力强 发展过程如下 2020年3月15日7时8分 25 2 为何要建模软件系统建模 指用某种抽象方法对软件系统的描述 模型是对现实的简化 系统建模 构造系统模型的过程建模的目的 帮助我们按实际情况或所需样式对系统进行可视化允许详细说明系统结构和行为给出构造系统的模版对决策文档化3 什么是UML统一建模语言 UML 是一个用于描述 可视化 构造和文档化软件系统的建模语言 它统一了GradyBooch JimRumbangh 和IvarJacobson三位大师的面向对象建模描述语言 Booch OMT OOSE 并对其做了进一步的发展 最终成为广泛接受的面向对象建模语言 UML已被OMG所采用 目前成为业界的标准 2020年3月15日7时8分 26 4 UML的认识不是一门程序设计语言 只是一种建模语言 从面向对象的角度对系统建模 提供了简洁的表达面向对象中的各种概念和模型元素 可视化 表示能力强 系统的逻辑模型或实现模型均可用UML模型图形清晰表示 并提供用户的扩展支持 独立开发过程 可支持其他面向对象开发和传统的软件开发过程 2020年3月15日7时8分 27 4UML结构 构造块 这些是基本UML建模元素 事物 关系和图 公共机制 达到特定目标的公共UML方法 构架 系统构架的UML视图 2020年3月15日7时8分 28 1 UML构造块 物件 事物 这些是建模元素本身 结构 行为 分组 注释 关系 这些把物件联系在一起 关系说明两个或多个物件是如何语义相关的 依赖 关联 泛化 实现 图 这些是UML模型的视图 它们展现物件的集合 9种 2020年3月15日7时8分 29 1 UML物件 UML物件可以分成 结构物件 UML模型的名词 如类 接口 协作 用例 活动类 组件 节点 行为物件 UML模型的动词 如交互 状态机 分组物件 包 它用于把语义上相关的建模元素分组为内聚的单元 注解物件 注解 它附加到模型以捕获特殊信息 2020年3月15日7时8分 30 结构事物 类 Class 是具有共同结构特征 行为特征 联系和语义的对象集合的抽象形式 类在UML中通常以实线矩形框表示 矩形框中含有若干分隔框 分别包含类的名字 属性 操作 约束以及其他成分等 如下图所示 2020年3月15日7时8分 31 2020年3月15日7时8分 32 接口 描述了一个类或是一个构件的服务的操作集 定义操作的特征标记 而不是实现 在UML中用带有名字的圆表示 协作 定义了一个交互 由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体 表示为包含名称的虚线椭圆用例 一对动作序列的描述 表示为包含名称的实线椭圆主动类 其对象至少包含一个进程或线程 能启动控制活动的类 其表示和类相似 只是外边框粗黑线 构件 系统中物理的 可替代的部件 表示为带小方框的矩形 结点 运行时存在的物理元素 用带名字的立方体表示 2020年3月15日7时8分 33 行为事物 交互 是一组对象之间为完成某一任务而进行的一系列消息交换的行为说明 表示为有向线 状态机 描述了一个对象或交互在生命期内响应事件所经历的状态序列 状态用带名称的圆角矩形表示分组事物 包 是模型元素的集合 是概念上的 无真正意义 表示为左上角带有一个小矩形的大矩形 注释事物 注解 依附于一个元素或一组元素之上 对它进行约束或解释的简单符号 表示为右上角是折角的矩形 2020年3月15日7时8分 34 2 UML关系 2020年3月15日7时8分 35 4 3用UML对系统建模 1 UML中的图 用例图 类图 对象图 状态图 序列图 协作图 活动图 构件图 部署图共九种用例图 用于显示若干角色 以及这些角色与系统提供的用例之间的连接关系 类图 用来表示系统中的类和类之间的关系 它是对系统静态结构的描述 对象图 是类图的变体 两者之间的差别在于 对象图表示的是类的对象实例 而不是真实的类 对象图是类图的一个范例 状态图 是对类所描述事物的补充说明 它显示了类的所有对象可能具有的状态 以及引起状态变化的事件 序列图 用来反映若干个对象之间的动态协作关系 也就是随着时间的流逝对象之间是如何交互的 协作图 和序列图的作用一样 反映的也是动态协作 除了显示消息变化称为交互外 协作图还显示了对象和它们之间的关系 称为上下文有关 由于协作图或序列图都反映对象之间的交互 所以建模者可以任意选择一种反映对象间的协作 如果需要强调时间和序列 最好选择序列图 如果需要强调上下文相关 最好选择协作图 活动图 反映一个连续的活动流 相对于描述活动流来说 活动图更常用于描述某个操作执行时的活动状况 构件图 用来反映代码的物理结构部署图 用来显示系统中软件和硬件的物理架构 2020年3月15日7时8分 36 4 3用UML对系统建模 2 UML模型 包含用例模型 静态模型 动态模型共三种用例模型 从用户角度描述系统需求 是所有开发活动的指南 包含 一或者多张用例图静态模型 描述系统的元素与元素间的关系 包括 类图 对象图 构件图 部署图动态模型 描述系统随时间发展的行为 包含 状态图 序列图 协作图 活动图 2020年3月15日7时8分 37 3 UML视图一个系统应从不同的角度进行描述 从一个角度观察到的系统称为一个视图 view 视图由多个图 Diagrams 构成 它不是一个图表 Graph 而是在某一个抽象层上 对系统的抽象表示 如果要为系统建立一个完整的模型图 需定义一定数量的视图 每个视图表示系统的一个特殊的方面 另外 视图还把建模语言和系统开发时选择的方法或过程连接起来 2020年3月15日7时8分 38 UsecaseView描述系统的外部特性 系统功能等 ImplementationView表示系统的实现特征 常用构件图表示 DesignView描述系统设计特征 包括结构模型视图和行为模型视图 前者描述系统的静态结构 类图 对象图 后者描述系统的动态行为 交互图 状态图 活动图 ProcessView表示系统内部的控制机制 常用类图描述过程结构 用交互图描述过程行为 DeploymentView配置视图描述系统的物理配置特征 用配置图表示 UML常用视图 2020年3月15日7时8分 39 5UML中的图 5 1UML规则5 2类图5 3对象图5 4用例图5 5顺序图5 6协作图5 7状态图5 8活动图5 9构件图5 10实施图5 11绘制UML图 2020年3月15日7时8分 40 5 1UML规则 1 UML的规则 命名范围可见性完整性执行省略不完全性不一致性 2020年3月15日7时8分 41 5 1UML规则 2 UML中的公共机制 规格说明修饰通用划分扩展机制 2020年3月15日7时8分 42 1 规格说明 2020年3月15日7时8分 43 2 修饰 修饰是用来在图中建模元素加上某个要点 2020年3月15日7时8分 44 3 通用划分抽象和实例划分接口和实现的分离 2020年3月15日7时8分 45 4 扩展机制 2020年3月15日7时8分 46 类图和对象图 面向对象的开发方法的基本任务是建立对象模型 是软件系统开发的基础 UML中的对象类图 ClassDiagram 与对象图 ObjectDiagram 表达了对象模型的静态结构 能够有效地建立专业领域的计算机系统对象模型 一 类图 是面向对象模型的最基本的模型元素 用类图来描述 类图 Classdiagram 由系统中使用的类以及它们之间的关系组成 是描述系统的一种图式 分为长式和短式 类及类型名均用英文大写字母开头 属性及操作名为小写字母开头 常见类型有 Char Boolean Double Float Integer Object Short String等 类图是构建其它图的基础 2020年3月15日7时8分 47 类名 对象是对象类的实例 instance 用对象图来描述 对象图亦分长式和短式 对象名 类图与对象图 对象图 2020年3月15日7时8分 48 1 属性 attribute 属性用来描述类的特征 表示需要处理的数据 属性定义 visibilityattribute name type initial value property string 可见性属性名 类型 缺省值 约束特性 其中 可见性 visibility 表示该属性对类外的元素是否可见 分为 public 公有的 即模型中的任何类都可以访问该属性 private 私有的 表示不能被别的类访问 protected 受保护的 表示该属性只能被该类及其子类访问 如果可见性未申明 表示其可见性不确定 2020年3月15日7时8分 49 2 操作对数据的具体处理方法的描述则放在操作部分 操作说明了该类能做些什么工作 操作通常称为函数 它是类的一个组成部分 只能作用于该类的对象上 操作定义 visibilityoperating name parameter list return type property string 可见性操作名 参数表 返回类型 约束特性 其中 可见性同上 参数表 参数名 类型 Parameter name type default value返回类型 操作返回的结果类型 类图的描述 2020年3月15日7时8分 50 二 类的识别是面向对象方法的一个难点 但又是建模的关键 常用的方法有 1 名词识别法2 系统实体识别法3 从用例中识别类4 利用分解与抽象技术 关键是要定义类的 属性 及 操作 2020年3月15日7时8分 51 UML中类的关系有关联 association 聚集 aggregation 泛化 generalization 依赖 depending 和细化 refinement 一 关联关联是类之间的连结 分为 1 常规关联 图A 2 多元关联3 有序关联4 受限关联5 或关联 图B 6 关联类 图C 图A顾佣关联 图B或关联 图C关联类 UML中类之间的关系 2020年3月15日7时8分 52 7 其它关联递归关联 Recursiveassociation 即一个类到自身的关联 图A递归关联 人 治疗 病人 医生 图B带有职责的递归关联 2020年3月15日7时8分 53 二 聚集 aggregation 聚集是一种特殊的关联 它指出类间的 整体 部分 关系 又分为 1 共享聚集 sharedaggregation 其 部分 对象可以是任意 整体 对象的一部分 当 整体 端的重数不是1时 称聚集是共享的 组合聚集 compositionaggregation 其 整体 重数为0 1 拥有它的 部分 部分仅属于同一对象 整体与部分同时存在 共享聚集 组合聚集 2020年3月15日7时8分 54 三 泛化 泛化指出类之间的 一般与特殊关系 即继承关系 父类与子类之间构成类的分层结构 抽象类指没有实例的类 定义一些抽象的操作 即不提供实现方法的操作 只提供操作的特征 并附以 abstract 交叠泛化在继承树中 若存在某种具有公共父类的多重继承 称为是交叠 overlapping 的 否则是不交的 disjoint 完全泛化一般类特化出它所有的子类 称为完全泛化 记为 complete 不完全泛化即未特化出它所有的子类 称为是不完全泛化的 表示为 incomplete 2020年3月15日7时8分 55 三 泛化 完全泛化 泛化中的多态性及带识别名称的泛化 propulsion propulsion 2020年3月15日7时8分 56 继承性的实例 泛化关系 2020年3月15日7时8分 57 泛化关系 2020年3月15日7时8分 58 5 4用例图 1992年由Jacobson提出了Usecase的概念及可视化的表示方法 Usecase图 受到了IT界的欢迎 被广泛应用到了面向对象的系统分析中 用例驱动的系统分析与设计方法已成为面向对象的系统分析与设计方法的主流 用例模型由Jacobson在开发AXE系统中首先使用 并加入由他所倡导的OOSE和Objectory方法中 用例方法引起了面向对象领域的极大关注 自1994年IvarJacobson的著作出版后 面向对象领域已广泛接纳了用例这一概念 并认为它是第二代面向对象技术的标志 2020年3月15日7时8分 59 用例建模技术 用于描述系统的功能需求 在宏观上给出模型的总体轮廓 通过对典型用例的分析 使开发者能够有效地了解用户的需求 5 3 1用例建模概述 用例图 2020年3月15日7时8分 60 3 3 2用例模型 Usecasemodel 用例模型描述的是外部执行者 Actor 所理解的系统功能 它描述了待开发系统的功能需求 它驱动了需求分析之后各阶段的开发工作 不仅在开发过程中保证了系统所有功能的实现 而且被用于验证和检测所开发的系统 从而影响到开发工作的各个阶段和UML的各个模型 用例模型由若干个用例图构成 用例图中主要描述执行者和用例之间的关系 在UML中 构成用例图的主要元素是用例和执行者及其它们之间的联系 创建用例模型的工作包括 定义系统 确定执行者和用例 描述用例 定义用例间的关系 确认模型 2020年3月15日7时8分 61 一 执行者 Actor 执行者是指用户在系统中所扮演的角色 执行者在用例图中是用类似人的图形来表示 但执行者可以是人 也可以是一个外界系统 注意 用例总是由执行者启动的 如何确定执行者 1 谁使用系统的主要功能 主执行者 2 谁需要从系统获得对日常工作的支持和服务 3 需要谁维护管理系统的日常运行 副执行者 4 系统需要控制哪些硬件设备 5 系统需要与其它哪些系统交互 6 谁需要使用系统产生的结果 值 供货 买饮料 取货款 客户 供货人 收银员 自动售货系统 2020年3月15日7时8分 62 二 用例 二 用例 usecase 从本质上讲 一个用例是用户与计算机之间的一次典型交互作用 在UML中 用例被定义成系统执行的一系列动作 功能 用例有以下特点 用例捕获某些用户可见的需求 实现一个具体的用户目标 用例由执行者激活 并将结果值反馈给执行者 用例必须具有功能上的完整描述 如何确定用例 1 与系统实现有关的主要问题是什么 2 系统需要哪些输入 输出 这些输入 输出从何而来 到哪里去 3 执行者需要系统提供哪些功能 4 执行者是否需要对系统中的信息进行读 创建 修改 删除或存储 二 用例 2020年3月15日7时8分 63 用例图的元素 5 3 3用例图 用例图描述了系统的功能需求 它是从执行者的角度来理解系统 由 执行者 用例 和 用例之间的关系 3类模型元素构成 图中还有另外两种类型的连接 即 使用 和 扩展 关系 是两种不同形式的泛化关系 Use 表示一个用例使用另一个用例 Extend 通过向被扩展的用例添加动作来扩展用例 2020年3月15日7时8分 64 用例图实例 用例图实例 应用生命周期用例图 金融贸易系统 贸易经理 风险分析 设置边界 进行交易 交易估价 更新帐目 使用 使用 扩展 营销人员 超越边界 评价 记帐系统 销售人员 2020年3月15日7时8分 65 例1建立项目与资源管理系统的Usecase图 系统的主要功能是 项目管理 资源管理和系统管理 项目管理包括项目的增加 删除 更新 资源管理包括对资源和技能的添加 删除和更新 系统管理包括系统的启动和关闭 数据的存储和备份等功能 1 分析确定系统的执行者 角色 项目管理员 资源管理员 系统管理员 备份数据系统 项目管理 资源管理和系统管理 2 确定用例 3 对用例进行分解 画出下层的Usecase图对上层的用例进行分解 并将执行者分配到各层次的Usecase图中 角色描述模板 还应画出相应的执行者描述模板及用例描述模板 2020年3月15日7时8分 66 例1项目与资源管理系统 PRMS UseCase图可以自顶而下不断精化 抽象出不同层次的UseCase图 2020年3月15日7时8分 67 例1项目与资源管理系统 PRMS 2020年3月15日7时8分 68 作业 现有一医院病房监护系统 病症监视器安置在每个病房 将病人的病症信号实时传送到中央监视系统进行分析处理 在中心值班室里 值班护士使用中央监视系统对病员的情况进行监控 根据医生的要求随时打印病人的病情报告 定期更新病历 当病症出现异常时 系统会立即自动报警 并实时打印病人的病情报告 立及更新病历 要求根据现场情景 对医院病房监护系统进行需求分析 建立系统的Usecasemodel 2020年3月15日7时8分 69 顺序图存在两个轴 水平轴表示一组对象 垂直轴表示时间 顺序图中的对象用一个带有垂直虚线的矩形框表示 并标有对象名和类名 垂直虚线是对象的生命线 用于表示在某段时间内对象是存在的 对象间的通信通过在对象的生命线之间消息来表示 消息的箭头类型指明消息的类型 5 5顺序图 顺序图 SequenceDiagram 用来描述对象之间动态的交互行为 着重体现对象间消息传递的时间顺序 一 概述 2020年3月15日7时8分 70 当收到消息时 接收对象立即开始执行活动 即对象被激活了 通过在对象生命线上显示一个细长矩形框来表示激活 二 消息 2020年3月15日7时8分 71 有两种使用顺序图的方式 一般格式和实例格式 实例格式详细描述一次可能的交互 没有任何条件和分支或循环 它仅仅显示选定情节 场景 的交互 图5 49 而一般格式则描述所有的情节 因此 包括了分支 条件和循环 三 顺序图的形式 顺序图 2020年3月15日7时8分 72 带分支的顺序图 2020年3月15日7时8分 73 呼叫者 交换 接受者 拿起话筒 响拨号声 拨号码 路由选择 鸣响音 停音 响铃声 接电话 停铃声 ABCDE B A 1S C B 10S 通过网络选择通话路径 E D 5S 双方通话 打电话的顺序图 2020年3月15日7时8分 74 创建对象与对象的消亡 在顺序图中 还可以描述一个对象通过发送一条消息来创建另一个对象 当对象消亡 destroying 时 用符号 表示 创建或删除对象 2020年3月15日7时8分 75 协作图 CollaborationDiagram 也称为合作图 用于描述相互合作的对象间的交互关系和链接 Link 关系 虽然顺序图和合作图都用来描述对象间的交互关系 但侧重点不一样 顺序图着重体现交互的时间顺序 合作图则着重体现交互对象间的静态链接关系 5 6协作图 一 合作图中的模型元素 合作图中对象的外观与顺序图中的一样 如果一个对象在消息的交互中被创建 则可在对象名称之后标以 new 类似地 如果一个对象在交互期间被删除 则可在对象名称之后标以 destroy 1 对象 对象名 new 对象名 destroy 2020年3月15日7时8分 76 2 链接 Link 链接用于表示对象间的各种关系 包括组成关系的链接 CompositionLink 聚集关系的链接 AggregationLink 限定关系的链接 QualifiedLink 以及导航链接 NavigationLink 各种链接关系与类图中的定义相同 在链接的端点位置可以显示对象的角色名和模板信息 各种关系的链接 对于链接还可以加上 角色 与 约束 在链角色上附加的约束有global 全局 local 局部 parameter 参数 self 自身 broadcast 广播 2020年3月15日7时8分 77 消息在对象之间的静态链接关系上可标注消息 消息类型有简单消息 同步消息和异步消息三种 用标号表示消息执行的顺序 消息定义的格式如下 消息类型标号控制信息 返回值 消息名参数表 标号有 种 顺序执行 按整数大小执行 嵌套执行 标号中带小数点 1 1 1 2 1 3 并行执行 标号中带小写字母 1 1 1a 1 1 1b Predecessorguard conditionsequence expressionreturn value signature 2020年3月15日7时8分 78 电路设计的合作图 在控制器控制下进行布线 找出左端点r0和右端点r1 创建对象 直线 并在窗口显示出来 布线 2020年3月15日7时8分 79 下图为一销售结果统计的合作图 统计销售结果的合作图 2020年3月15日7时8分 80 关于顺序图与合作图 顺序图与合作图都是交互图 它们有何不同 所描述的主要系统特征是什么 顺序图与合作图各适合于在哪类系统中使用 关于状态图与活动图 状态图与活动图有何相同与不同之处 在建立系统模型时 应该如何使用这两类模型 2020年3月15日7时8分 81 状态图 StateDiagram 用来描述一个特定对象的所有可能的状态及其引起状态转移的事件 一个状态图包括一系列的状态以及状态之间的转移 状态所有对象都具有状态 状态是对象执行了一系列活动的结果 当某个事件发生后 对象的状态将发生变化 状态图中定义的状态有 5 7状态图 初态 状态图的起始点 一个状态图只能有一个初态 终态 是状态图的终点 而终态则可以有多个 中间状态 可包括三个区域 名字域 状态变量与活动域 复合状态 可以进一步细化的状态称作复合状态 2020年3月15日7时8分 82 中间态 响应事件的内部动作或活动的列表 定义为 事件名 参数表 条件 动作表达式 状态变量是状态图所显示的类的属性 活动列出了在该状态时要执行的事件和动作 有3个标准事件 entry事件用于指明进入该状态时的特定动作 exit事件用于指明退出该状态时的特定动作 do事件用于指明在该状态中时执行的动作 例 2020年3月15日7时8分 83 状态迁移一个对象的状态的变迁称为状态迁移 通常是由事件触发的 此时应标出触发转移的事件表达式 如果转移上未标明事件 则表示在源状态的内部活动执行完毕后自动触发转移 状态图 电梯状态图 2020年3月15日7时8分 84 细化的状态表示 UML给出了电梯细化的状态表示 状态名状态变量活动 2020年3月15日7时8分 85 或关系的子状态 嵌套状态图状态图可能有嵌套的子状态图 且子状态图可以是另一个状态图 子状态又可分为两种 与 子状态和 或 子状态 与子状态及或子状态 状态图 2020年3月15日7时8分 86 事件 事件是激发状态迁移的条件或操作 在UML中 有4类事件 1 某条件变为真 表示状态迁移的上的警戒条件 2 收到来自外部对象的信号 signal 表示为状态迁移上的事件特征 也称为消息 3 收到来自外部对象的某个操作中的一个调用 表示为状态迁移上的事件特征 也称为消息 状态迁移上的时间表达式 2020年3月15日7时8分 87 状态图之间的消息发送 状态图之间可以发送消息 用虚箭头表示 消息发送状态图 2020年3月15日7时8分 88 活动图 ActivityDiagram 的应用非常广泛 它既可用来描述操作 类的方法 的行为 也可以描述用例和对象内部的工作过程 并可用于表示并行过程 活动图是由状态图变化而来的 它们各自用于不同的目的 活动图描述了系统中各种活动的执行的顺序 刻化一个方法中所要进行的各项活动的执行流程 活动图中一个活动结束后将立即进入下一个活动 在状态图中状态的变迁可能需要事件的触发 5 8活动图 一 概述 2020年3月15日7时8分 89 二 活动图的模型元素 构成活动图的模型元素有 活动 转移 对象 信号 泳道等 活动是构成活动图的核心元素 是具有内部动作的状态 由隐含的事件触发活动的转移 活动的解释依赖于作图的目的和抽象层次 在概念层描述中 活动表示要完成的一些任务 在说明层和实现层中 活动表示类中的方法 活动用圆角框表示 标注活动名 2020年3月15日7时8分 90 二 活动图的模型元素 活动还有其它的图符 初态 终态 判断 同步 图5 55活动 2 转移转移描述活动之间的关系 描述由于隐含事件引起的活动变迁 即转移可以连接各活动及特殊活动 初态 终态 判断 同步线 转移用带箭头的直线表示 可标注执行该转移的条件 无标注表示顺序执行 2020年3月15日7时8分 91 活动图的模型元素 泳道 3 泳道泳道进一步描述完成活动的对象 并聚合一组活动 活动图是另一种描述交互的方式 描述采取何种动作 做什么 对象状态改变 何时发生 动作序列 以及在何处发生 泳道 泳道也是一种分组机制 2020年3月15日7时8分 92 活动图的模型元素 泳道 3 泳道泳道进一步描述完成活动的对象 并聚合一组活动 活动图是另一种描述交互的方式 描述采取何种动作 做什么 对象状态改变 何时发生 动作序列 以及在何处发生 泳道 泳道也是一种分组机制 2020年3月15日7时8分 93 活动图 活动图中只有一个起点一个终点 表示方式和状态图一样 泳道被用来组合活动 通常根据活动的功能来组合 具体说泳道有如下目的 直接显示动作在哪一个对象中执行 或显示的是一项组织工作的哪部分 泳道用纵向矩形来表示 如图 三 活动图举例 泳道 2020年3月15日7时8分 94 控制图符活动图中可发送和接收信号 发送符号对应于与转移联系在一起的发送短句 接收符号也同转移联系在一起 对象流活动图中可以出现对象 对象作为活动的输入 输出 用虚箭头表示 控制图符 图5 57对象流 控制图符例 2020年3月15日7时8分 95 活动图中可发送和接收信号 发送符号对应于与转移联系在一起的发送短句 接收符号也同转移联系在一起 转移又分两种 发送信号的转移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外墙保温板施工方案
- 2025年成都市中考物理真题(含答案)
- 小儿暴发性心肌炎课件
- 农村农具展览馆合同范本
- 三方车辆过户协议书模板
- 婚介介绍人合同协议书范本
- 买农村房子地基合同范本
- 怎样打印委托协议合同模板
- BT合作协议属于性质合同
- 香港银行开户购销合同范本
- 锅炉安全技术规程标准(TSG 11-2020)
- 加油站安全教育培训计划表及全套记录表模板
- 员工薪资调整审批表
- 除锈剂MSDS参考资料
- (完整word版)中医病证诊断疗效标准
- 新人教版八年级物理(下册)期末综合能力测试卷及答案
- 低压配电箱安装施工方案
- 蓄水池检验批质量验收记录(海绵城市质检表格)
- 单梁起重机安全操作培训课件
- 脑出血诊治指南
- 2022年重庆市汽车运输(集团)有限责任公司招聘考试真题
评论
0/150
提交评论