项目管理理论与实践(5)——UML应用(下)

本篇文章介绍UML的相关知识。参考《UML从入门到精通》

六、状态机视图

1. 概述

状态机视图通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为。状态是给定类的对象的一组属性值 ,这组属性值对所发生的事件具有相同性质的反应。状态机用于描述类的行为,但它们也描述用例、协作和方法的动态行为。

2. 状态机

状态机是展示状态与状态转换的图。通常一个状态机依附于一个类,并且描述一个类的实例对接受到的事件所发生的反应。状态机也可以依附于操作、用例和协作并描述它们的执行过程。

3. 事件

事件是发生在时间和空间上的一点的值得注意的事情。它在时间上的一点发生,没有持续时间。如果某一事情的发生造成了影响,那么在状态机模型中它是一个事件。

4. 状态

状态描述了一个类对象生命期中的一个时间段。它可以用三种附加方式说明:在某些方面性质相似的一组对象值;一个对象等待一些事件发生时的一段时间;对象执行持续活动时的一段时间。状态用具有圆形拐角的矩形表示。

5. 转换

动作。当转换被引起时,它对应的动作被执行。动作是原子性的,一般是一个简短的计算处理过程,通常是一个赋值操作或算术计算。

6. 组成状态

一个简单状态没有子结构,只带有一组转换和可能的入口和出口动作。组成状态是一个被分解成顺序的或并发的子状态的状态。

七、活动视图

1. 概述

活动图是一种特殊形式的状态机,用于对计算流程和工作流程建模。活动图中的状态表示计算过程中所处的各种状态,而不是普通对象的状态。

2. 活动图

活动图是活动视图的表示法。

泳道。将模型中的活动按照职责组织起来通常很有用。对象流。活动图能表示对象的值流和控制流。对象流状态表示活动中输入或输出的对象。如下图:

八、交互视图

1. 概述

对象间的相互作用体现了对象的行为。这种相互作用可以描述成两种互补的方式,一种以独立的对象为中心进行考察,另一种以互相作用的一组对象为中心进行考察。

2. 顺序图

顺序图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示;当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

3. 协作图

协作图是一种类图,它包含类元角色和关联角色,而不仅仅是类元和关联。可以将对象标识成四个组:存在于整个交互作用中的对象;在交互作用中创建的对象(使用约束{ n e w });在交互作用中销毁的对象(使用约束 { d e s t r o y e d });在交互作用中创建并销毁的对象(使用约束 { t r a n s i e n t }) 。设计时可以首先表示操作开始时可得的对象和连接,然后决定控制如何流向图中正确的对象去实现操作。

九、物理视图

1. 概述

系统模型的大部分内容反映了系统的逻辑和设计方面的信息,并且独立于系统的最终实现单元。然而,为了可重用性和可操作性的目的,系统实现方面的信息也很重要。UML使用两种视图来表示实现单元:实现视图和部署视图。实现视图将系统中可重用的块包装成具有可替代性的物理单元,这些单元被称为构件。部署视图表示运行时的计算资源(如计算机及它们之间的连接)的物理布置。

2. 构件

构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件接口的圆圈相连。

构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口,并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以被具有同样接口的其他构件替代。(构件图)

3. 节点

节点是表示计算资源的运行时的物理对象,通常具有内存和处理能力。节点可能具有用来辨别各种资源的构造型,如C P U、设备和内存等。节点可以包含对象和构件实例。(部署图)

十、模型管理视图

1. 概述

任何大的系统都必须被分成几个小的单元,这使得人们可以一次只处理有限的信息,并且分别处理这些信息的工作组之间不会互相干扰。模型管理由包及包之间的依赖关系组成。

2. 包

包是模型的一部分,模型的每一部分必须属于某个包。建模者可以将模型的内容分配到包中。但是为了使其能够工作,分配必须遵循一些合理的原则,如公用规则、紧密耦合的实现和公用观点等。U M L对如何组包并不强制使用什么规则,但是良好的解组会很大地增强模型的可维护性。

3. 包间的依赖关系

十一、扩展机制

1. 概述

UML提供了几种扩展机制。包括约束、标记值和构造型。一定要记住扩展是违反UML的标准形式的,并且使用它们会导致相互影响。在使用扩展机制之前,建模者应该仔细权衡它的好处和代价,特别是当现有机制能够合理工作时。

2. 约束

约束用大括弧内的字符串表达式表示。约束可以附加在表元素、依赖关系或注释上。

3. 标记值

标记值是一对字符串—一个标记字符串和一个值字符串—存储着有关元素的一些信息。标记值用字符串表示,字符串有标记名、等号和值。它们被规则地放置在大括弧内。

4. 构造型

构造型是在一个已定义的模型元素的基础上构造的一种新的模型元素。构造型的信息内容和形式与已存在的基本模型元素相同,但是含义和使用不同。

时间: 2024-10-29 19:12:23

项目管理理论与实践(5)——UML应用(下)的相关文章

项目管理理论与实践(4)——UML应用(上)

本篇文章介绍UML的相关知识.参考<UML从入门到精通> 一.UML综述 1. UML简介 统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件系统制品的文档.UML描述了一个系统的静态结构和动态行为. UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构.静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系.动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制.从不同但相互联系的角度对系统建立的

项目管理理论与实践(1)——企业项目管理介绍

一.企业项目管理的概念 1. 什么是项目管理 这里把"项目管理"关键词拆解为2个词:项目.管理. 项目:为完成某一独特产品或服务所做的一次性努力. 管理:同别人一起,或通过别人使活动完成得更有效的过程. 项目管理:把各种系统.方法.人员结合在一起,在规定的时间.预算和质量目标范围内完成项目的各项工作. 2. 项目管理都管理什么 项目范围管理,项目时间管理,项目成本管理,项目质量管理,其他相关的包括:人力资源管理,沟通管理,风险管理,采购管理,整体管理 3. 项目管理的演变 1)针对单个

项目管理理论与实践(2)——软件需求分析

一.需求分析的目的 1. 马斯洛的需求层次理论 具体可以参考:(http://baike.baidu.com/view/295140.htm) 2. 需求分析的目的 1)与相关干系人在工作内容方面达成并保持一致 2)使设计.开发.测试人员能够更清楚地了解需求 3)定义系统边界,形成需求基线 4)为估算系统的规模.工作量.成本和进度提供基础 5)为开发计划的形成提供范围(SOW)基础 二.需求工程概述 1. 什么是需求工程?用一张图可以形象的表示 需求也属于一门工程学,需求工程包括需求开发.需求管

项目管理理论与实践(7)——软件开发报价的计算方法

1.软件开发价格估算方法软件开发价格与工作量.商务成本.国家税收和企业利润等项有关.为了便于计算,给出一个计算公式: 软件开发价格 = 开发工作量 × 开发费用/人·月 1.1开发工作量软件开发工作量与估算工作量经验值.风险系数和复用系数等项有关: 软件开发工作量 = 估算工作量经验值 × 风险系数 × 复用系数 1.1.1估算工作量经验值(以A来表示)软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度.目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也

项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧

这篇是使用的Excel 2007 进行文档设计,Excel的设计也是一门学问,这里主要介绍一些Excel的设计技巧,后面也会陆续更新该文章. 1. 固定某行某列 首先设计这样的任务管理文档: 现在我想保持第一行以及前两列是保持固定.那么,我首先需要选定一个单元格,而这个单元格的左上角就是文档行列分割固定点.如图所示: 这里我选定的单元格是C2,然后选择"视图"-> "窗口" –> "冻结窗格" 这里选择"冻结拆分窗格&quo

MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层

SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管理.图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离.本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能. 本篇为系列第二篇,包括: ■ 4.三层架构设计    □ 4.2 创建DbSession层 数据访问层的统一入口   

MVC项目实践,在三层架构下实现SportsStore-01

SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管理.图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离.本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能. 本篇为系列第一篇,包括: ■ 1.搭建项目■ 2.卸载Entity Framework组件,并安装最新版本■ 3.使用

MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

http://www.cnblogs.com/darrenji/p/3809219.html 本篇为系列第一篇,包括: ■ 1.搭建项目■ 2.卸载Entity Framework组件,并安装最新版本■ 3.使用EF Code First创建领域模型和EF上下文■ 4.三层架构设计    □ 4.1 创建DAL层        ※ 4.1.1 MySportsStore.IDAL详解        ※ 4.1.2 MySportsStore.DAL详解 1.搭建项目 MySportsStore.

MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等

SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管理.图像上传......是不错的MVC实践项目,但该项目不是放在多层框架下开发的,离真实项目还有一段距离.本系列将尝试在多层框架下实现SportsStore项目,并用自己的方式实现一些功能. 本篇为系列第三篇,包括: ■ 5.自定义Ninject控制器工厂■ 6.项目的第一次运行 5.自定义Ninject控制