包是UML模型的组织结构,也是UML项目的配置管理结构。包存在多个层级,除了顶层包,所有包隶属于一个且仅隶属于一个上层包。在项目不同阶段实际推进与配置过程中,通常以不同层级的包为单位进行check-in、check-out、打标签及建立基准。许多项目会在计划的时间点进行正式的官方评审,例如系统需求评审(SRR)、系统设计评审(SDR)、初步设计评审(PDR)、关键设计评审(CDR)或测试准备评审(TRR)。在这些活动就是对保存在不同包中的阶段性模型进行评审,并对其建立基准,以便项目可以输出阶段性成果并为下一阶段建立输入,必要时可以回顾与审查该基准。

如果以建模类型而论,存在概念化、需求分析、分析、设计等模型,使用这些模型时,可根据项目的方法论进行调整。在这些不同类型的模型中,由于是对同一事物的建模,必然存在一些相同名称的元素,但是模型作为包,也是命名空间,因此不同模型中使用相同名称的元素,这不会带来问题。而从元素本身所描述对象的角度来说,在不同模型中使用相同名称也是合理的。

在实际工作中,很多人在使用UML建模时对各模型或图表的前后逻辑关系感到困惑,或者只是单纯地堆砌各类图表,其最可能的根本原因是所采用的项目方法论中缺少不同阶段建模要求。通常当我们构建一个系统时,要对这个系统建模,形成“系统模型”。在最简单的情况下,系统建模至少要先建立“分析模型”,然后根据分析模型建立“设计模型”,分析模型与设计模型(及其他模型)共同构成系统模型。

可以为包指定版型(构造型)«model»表明当前包是一个模型,系统模型与分析模型、设计模型的关系可用下图表示:



包的版型(构造型)除«model»外,其他可用的版型(构造型)简述如下:

  • «ModelLibrary»

    版型(构造型)“«ModelLibrary»”表示其大部分内容被其他包或模型使用。通常,我们使用«ModelLibrary»包来包含系统中其他包可以使用的公共类型、单元、实用工具或其他内容。«ModelLibrary»包应被标记为公开可见,并可能将其“导入”到顶级包中——这将确保«ModelLibrary»包被系统中所有包可见且可访问。
  • «Framework»

    类似于«ModelLibrary»包,版型(构造型)为“«Framework»”的包包含了许多共享的基础设施和架构元素。«Framework»包通常包括事件和错误处理程序、消息传递、日志记录、自检、内置测试、诊断和安全执行等内容。
  • «Profiles»

    形式上«Profiles»包与标准包类似,只是具有«Profiles»的版型(构造型),但«Profiles»包通常包含适合于帮助执行项目方法论或制度的“元类”。我们可以在«Profiles»包中创建、删除元类或版型(构造型),在项目实际操作中通常只允许一人对«Profiles»包进行修改,当然,«Profiles»包必须对项目中的所有人可见。一般情况下,创建«Profiles»包难度很大,并且可能会引入可移植性等问题。

UML之模型、包及包的版型(构造型)的更多相关文章

  1. UML-类图,包图

    UML构造设计模型   一.类图  二.包图   三.组件图   四.部署图   一.类图     1.类:类由三格表示:类名,类的属性,类的操作              类名: 首字母大学     ...

  2. UML精粹4 - 对象图,包图,部署图,用例

    对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...

  3. UML从需求到实现----包图

    上接:UML中图出现顺序 上回讲到用例图,UML中各个图之间的关系.接着根据UML建模中图出现的顺序来总结包图. 用例图确定以后.用户的需求基本上就确定了.接下来要根据用户的要求去设计系统.建模的顺序 ...

  4. UML九种图 之 包图和对象图

    前言     对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图     1.构成           2.包中的元素      类.接口.用例.构件.其他包等.( ...

  5. 网络_OSI模型_数据包传输

    2017年1月12日, 星期四 网络_OSI模型_数据包传输 1.  网络_源主机_局域网_交换机_路由器_目标主机 2. OSI7七层_TCP/IP精简 OSI 7层:       应用层     ...

  6. UML 基本模型元素

    目录 1. 结构模型元素 (1)类(class) (2)接口(interface) (3)协作(collaboration) (4)用例(use case) (5)活动类(active class) ...

  7. 关于war包 jar包 ear包 及打包方法

    关于war包 jar包 ear包 及打包方法 war包:是做好一个web应用后,通常是网站打成包部署到容器中 jar包:通常是开发的时候要引用的通用类,打成包便于存放管理. ear包:企业级应用 通常 ...

  8. linux包之包管理命令rpm-yum

    背景 YUM(Yellow dog Updater, Modified)为多个Linux发行版的前端软件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM通过调 ...

  9. R语言︱常用统计方法包+机器学习包(名称、简介)

    一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...

  10. Java.lang 包 util 包等各个包详解

    java.lang 该包提供了 Java 编程的基础类,例如 Object.Math.String.StringBuffer.System.Thread 等,不使用该包就很难编写 Java 代码了. ...

随机推荐

  1. 云原生周刊:Microcks 成为 CNCF 沙箱项目

    开源项目推荐 Kubent Kube No Trouble (kubent) 是一个简单的工具,该工具将能够根据您部署资源的方式检测已弃用的 API. kdoctor kdoctor 是一个数据面测试 ...

  2. 云原生周刊:2023 年 Java 开发人员可以学习的 25 大技术技能

    文章推荐 2023 年 Java 开发人员可以学习的 25 大技术技能 这篇文章为 Java 开发人员提供了 2023 年需要学习的一些重要技能,这些技能涵盖了现代 Java 开发.大数据和人工智能. ...

  3. 基于 KubeSphere 的分级管理实践

    作者:许伟,航天网信研发工程师 K8s 是容器编排和分布式应用部署领域的领导者,在 K8s 环境中,我们只需要关心应用的业务逻辑,减轻了我们服务器网络以及存储等方面的管理负担.对于一个用户而言,K8s ...

  4. schedule-执行周期性任务

    模块介绍 该模块主要用于python的任务调度,使用简便友好的python语法定期运行python函数或者一些其他的调用对象,这个模块就类似于windows的任务计划和linux的crontab,都是 ...

  5. PHP的json浮点精度难题

    前言 之前开发的接口需要用到json加签,有一次对接JAVA时,签名怎么都过不了,仔细对比了字符串,发现是PHP进行json_encode时,会将浮点型所有无意义的0给去掉(echo和var_dump ...

  6. 基础控件(ListView,RecyclerView,单位和尺寸,ViewPager,ViewPager2)

    ListView list_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  7. golang slice相关常见的性能优化手段

    介绍一些开发中常用的slice关联的性能优化手段.鉴于golang编译器本身捉鸡的优化能力,优化的成本就得分摊在开发者自己的头上了. 这篇文章会介绍的优化手段是下面这几样: 创建slice时预分配内存 ...

  8. att&ck框架学习笔记3

    https://blog.csdn.net/m0_38103658/article/details/106517758?utm_medium=distribute.pc_relevant.none-t ...

  9. 使用flask进行Mock Server模拟接口操作及问题解决

    1.flask介绍 flask是一个轻量级的python web 微框架 2.Mock Server介绍 Mock Server是一个开源的模拟服务器,它可以定义和记录API交互,支持各种http方法 ...

  10. Lucene 源代码剖析-2 Lucene是什么

    转载自 http://download.csdn.net/source/858994 源地址下是 Word 文档,这里转换成HTML 格式 1           Lucene是什么 Apache L ...