【UML用户指南】-02-UML基本元素的介绍(二)

目录

1、语法和语义规则

2、UML中的公共机制

(1)规约

(2)修饰

(3)通用划分

(4)扩展机制

衍型/版型/类型(stereotype)

标记值 (tagged value)

约束(constraint)

3、系统的体系结构建模

用例视图 (use case view)

设计视图 (design view)

交互视图 (interaction view)

实现视图 (implementation view)

部署视图 (deployment view)

4、软件开发的生命周期

4.1、初始 (inception)

4.2、细化 (elaboration)

4.3、构造 (construction)

4.4、移交 (transition)


1、语法和语义规则

命名——为事物、关系和图起的名字;

范围——使名字具有特定含义的语境;

可见性——这些名字如何让其他成分看见和使用;

完整性——事物如何正确、一致地相互联系;

执行——运行或模拟一个动态模型意味着什么。

2、UML中的公共机制

(1)规约

UML 不仅仅是一种图形语言。实际上,在它的图形表示法的每部分背后都有一个规约,这个规约提供了对构造块的语法和语义的文字叙述
 

(2)修饰

UML中的大多数元素都有唯一而直接的图形表示符号,这些图形符号对元素的最重要的方面提供了可视化表示。

图中表明这个类是一个抽象类,

有两个公共操作、一个受保护操作和一个私有操作。

(3)通用划分

第一种方式是对类和对象的划分。类是一种抽象,对象是这种抽象的一个具体表现。

在图形上,UML是这样区分对象的:采用与类同样的图形符号来表示对象,并且在对象名的下面画一道线

有一个名称为Customer的类,它有3个对象,分别为

Jan(它被明确地标记为Customer的对象)

:Customer(匿名的Customer对象)

Elyse(它在规约中被说明为一种Customer对象,尽管在这里没有明确地表示出来)。

第二种方式是接口和实现的分离。接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实地实现接口的完整语义。

在这个图中,有一个名称为SpellingWizard.dll的构件,

它实现了接口IUnknown和接口ISpelling,

并且还需要使用一个由其他构件提供的名为IDictionary的接口。

第三种方式是类型和角色的分离。类型声明了实体的种类(如对象、属性或参数),角色描述了实体在语境中的含义(如类、构件或协作等)。

任何作为其他实体结构中的一部分的实体(例如属性)都具有两个特性:

从它固有的类型派生出一些含义

从它在语境中的角色派生出一些含义

(4)扩展机制

衍型/版型/类型(stereotype)

扩展了UML的词汇,可以用来创造新的构造块,这个新构造块既是从现有的构造块派生的,但是针对专门的问题。

例如,假设正在使用一种编程语言,如Java或C++,经常要对“异常事件”建模。在这些语言里,“异常事件”就是类,只是用很特殊的方法进行了处理。通常可能只想允许抛出和捕捉异常事件,没有其他要求。

此时可以让异常事件在模型中成为“一等公民”——可以像对待基本构造块一样对待它们,只要用一个适当的衍型来标记它们即可。

标记值 (tagged value)

扩展了UML衍型的特性,可以用来创建衍型规约的新信息。

例如,如果在制作以盒装形式销售的产品,随着时间的推移,它经过了多次发行,那么经常会想要跟踪产品的版本和对产品做关键摘要的作者。

版本和作者不是UML的基本概念,通过引入新的标记值,可以把它们加到像类那样的任何构造块中去。例如,在图中,在类EventQueue上明确标记了版本和作者,这样就对该类进行了扩展。

约束(constraint)

扩展了UML构造块的语义,可以用来增加新的规则或修改现有的规则。例如,可能想约束类 EventQueue,以使所有的增加都按序排列。如上图,对操作 add增加了一个约束,即{ordered},以明确标示这一规则。
 

3、系统的体系结构建模

不同人员关注各自的问题

用况:用例

用例视图 (use case view)

由描述可被最终用户、分析人员和测试人员看到的系统行为的用例组成。用例视图实际上没有描述软件系统的组织,而是描述了形成系统体系结构的动力。

在UML中,该视图的静态方面由用例图表现;动态方面由交互图、状态图和活动图表现

设计视图 (design view)

包含了类、接口和协作,它们形成了问题及其解决方案的词汇。这种视图主要支持系统的功能需求,即系统应该提供给最终用户的服务。

在UML中,该视图的静态方面由类图和对象图表现;动态方面由交互图、状态图和活动图表现。类的内部结构图特别有用。

交互视图 (interaction view)

展示了系统的不同部分之间的控制流,包括可能的并发和同步机制。该视图主要针对性能、可伸缩性和系统的吞吐量。

在UML中,对该视图的静态方面和动态方面的表现与设计视图相同,但着重于控制系统的主动类和在它们之间流动的消息

实现视图 (implementation view)

包含了用于装配与发布物理系统的制品。这种视图主要针对系统发布的配置管理,它由一些独立的文件组成;这些文件可以用各种方法装配,以产生运行系统。它也关注从逻辑的类和构件到物理制品的映射。

在UML中,该视图的静态方面由构件图表现,动态方面由交互图、状态图和活动图表现。

部署视图 (deployment view)

包含了形成系统硬件拓扑结构的结点(系统在其上运行)。这种视图主要描述组成物理系统的部件的分布、交付和安装。

在UML中,该视图的静态方面由部署图表现,动态方面由交互图、状态图和活动图表现。

4、软件开发的生命周期

1)用例驱动

把用例作为一种基本的制品,用于建立所要求的系统行为、验证和确认系统的体系结构、测试以及在项目组成员间进行交流。

2)以体系结构为中心

以系统的体系结构作为一种基本制品,对被开发的系统进行概念化、构造、管理和演化。

3)迭代的和增量

迭代:涉及到对一连串可执行的发布的管理。

增量:涉及到系统体系结构的持续集成,以产生各种发布,每个新发布都比上一个发布有所改善

总的来讲,迭代和增量的过程是风险驱动的(risk-driven),每个新的发布都致力于处理和降低对于项目成功影响最为显著的风险。

RUP四个阶段,即软件开发生命周期

4.1、初始 (inception)

在此阶段,萌发的开发想法经过培育要达到这样一个目标:至少要在内部奠定足够的基础,以保证能够进入到细化阶段。

4.2、细化 (elaboration)

在此阶段定义产品需求和体系结构。在这个阶段,将明确系统需求,按其重要性排序并划定基线。可以按一般的描述,也可以按精确的评价准则来排列系统的需求,每个需求都说明了特定的功能或非功能的行为,并为测试提供了基础。

4.3、构造 (construction)

在此阶段软件从可执行的体系结构基线发展到准备移交给用户。针对项目的商业需要,这里也要不断地对系统的需求,特别是对系统的评价准则进行检查,并要适当地分配资源,以主动地降低项目的风险

4.4、移交 (transition)

在此阶段把软件交付给用户。在这个阶段,软件开发过程很少能结束,还要继续改善系统,根除错误,增加早期发布未能实现的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java编程常见问题汇总四

系列文章目录 文章目录 系列文章目录前言一、忽略所有异常二、重复包装RuntimeException三、不正确的传播异常四、用日志记录异常五、异常处理不彻底 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…

[C/C++]_[初级]_[在Windows和macOS平台上导出动态库的一些思考]

场景 最近看了《COM本质论》里关于如何设计基于抽象基类作为二进制接口,把编译器和链接器的实现隐藏在这个二进制接口中,从而使用该DLL时不需要重新编译。在编译出C接口时,发现接口名直接是函数名,比如BindNativePort,怎么不是_BindNativePort?说明 VC++导出的函数默认是使…

Google Earth Engine精度评价方法

今天讲讲如何在GEE中做最后的精度评价。主要是因为在和许多读者或通过交流群,或通过私聊沟通过程中,发现很多人还不是很理解在GEE中分类后精度评价的问题。 在进行评价之前,需要明晰在GEE中精度评价分为哪几种情况。我们这里说的是两种情况。…

收藏品NFT的开发流程

开发收藏品NFT的流程涉及多个阶段,从概念化和设计到技术实现和市场推广。以下是详细的开发步骤,通过这些步骤,可以成功开发和发布收藏品NFT项目,吸引用户和投资者,并确保项目的持续运营和成功。北京木奇移动技术有限公…

Fiddler入门(接口抓包及APP测试)

目录 一、Fiddler基础介绍 二、Fiddler的作用 三、Fiddler安装 四、Fiddler界面功能介绍 1、界面介绍 1)、菜单栏介绍 2)、工具栏介绍 3)、会话栏介绍 五、Fiddler抓取https数据 (面试题) 六、Fiddler…

【刷题(17)】技巧

一 技巧基础 二 136. 只出现一次的数字 1 题目 2 解题思路 哈希表map 其实看到题目数组中某个元素出现的次数也可以直接用unordered_map容器统计每一个元素出现的次数,然后在遍历整个map容器查看是否有元素出现的次数等于1 3 code class Solution { public:in…

商城项目【尚品汇】07分布式锁-2 Redisson篇

1 Redisson功能介绍 基于自定义setnx实现的分布式锁存在下面的问题: 重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用…

将HTML页面中的table表格元素转换为矩形,计算出每个单元格的宽高以及左上角坐标点,输出为json数据

export function huoQuTableElement() {const tableData []; // 存储表格数据的数组let res [];// 获取到包含表格的foreignObject元素const foreignObject document.getElementById(mydctable);if (!foreignObject){return ;}// 获取到表格元素let oldTable foreignObject…

Nativefier : 将网址打包成exe桌面程序

1、需求场景 在日常开发中,需要针对一些网页在一体机上使用,同时在浏览器上也可以使用,这里推荐大家用nativefier,对网址进行打包。以下是nativefier安装命令: npm install nativefier -g 2、使用方法 --arch 系统 …

《混凝土坝监测仪器系列型谱》修订中监测仪器分类方案解读

随着科技的不断进步和监测需求的日益增加,对监测仪器分类方案进行修订已成为必然的趋势。本文旨在探讨《混凝土坝监测仪器系列型谱》中对现有仪器分类方式的修订,以及监测仪器选用的相关内容。希望对大家中有所帮助: 一、取消过时条目&#x…

java中方法引用

目录 方法引用: 引用静态方法 引用成员方法 引用构造方法 使用类名引用成员方法 引用数组的构造方法 练习 方法引用: 把已经有的方法拿过来用,当做函数式接口中抽象方法的方法体 在Java中,方法引用是一种简化Lambda表达式的…

教务管理系统-学员办理体系介绍

随着时代的快速开展,教育方面也没落下,不仅是线下线上都呈现许多训练校园,办理软件也顺势而为的呈现广阔训练校园面前,许多的校园和训练组织也都在运用教务管理系统了。运用教务管理系统里边的学员办理体系可以让相应的办理人员更…

Redis的一致性

一、产生的原因 使用缓存,在进行写操作的时候就会出现不一致的问题。 一致性分为三类:强一致性,弱一致性,最终一致性 二、方案 2.1 延时双删 在更新数据库的操作前后分别进行一次删除缓存的操作,并在更新数据库之后…

《HelloGitHub》第 98 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…

容器化部署fastdfs文件存储

目录 一、软件信息 二、构建fastdfs镜像 三、docker 启动fdfs服务 四、k8s部署fdfs服务 1、fdfs部署文件 五、外部服务访问 一、软件信息 fastdfs版本:fastdfs:V5.11 libfastcommon版本: V1.0.36 fastdfs-nginx-module版本:V1.20 nginx版本&…

使用Spring Boot和MybatisPlus的Java CRM客户关系管理系统源码

项目名称:CRM客户关系管理系统 功能模块及描述: 一、待办事项 今日需联系客户:显示当日需跟进的客户列表,支持查询和筛选。 分配给我的线索:管理分配给用户的线索,包括线索列表和查询功能。 分配给我的客…

导弹研究中常用坐标系及坐标系之间的变换

在导弹飞行控制过程中,需要时刻掌握导弹的飞行状态 (速度、位置、姿态角等),这就有赖于描述导弹飞行状态的坐标系。除了大地坐标系和地心大地直角坐标系外,导弹常用的坐标系还有很多,合理而恰当地选择参考系…

37【透视】两点透视

1 两点透视比较合适表现物体的结构 用两点透视绘制比较小的、箱子之类的物体 2 一点透视和两点透视的共存关系

vs - vs2013/vs2019工程文件的区别

文章目录 vs - vs2013/vs2019工程文件的区别概述笔记sln文件的区别VisualStudioVersion vcxproj文件的区别ToolsVersionPlatformToolset 备注更方便的方法END vs - vs2013/vs2019工程文件的区别 概述 为了避免安装UCRT的问题,想将手头的vs2019工程降级为vs2013工程…

解决Mac ~/.bash_profile 配置的环境变量重启终端后失效问题

在Mac系统中,配置环境变量通常是在~/.bash_profile文件中进行。然而,有时会遇到配置的环境变量在重启终端后失效的问题。 解决办法: 在~/.zshrc文件最后或最前面,增加一行 source ~/.bash_profile