开发中使用UML的流程_08 PIM-4:定义操作及方法

目录

1、序列图概述

2、序列图调用方式

3、创建消息与销毁消息

4、几项建议


1、序列图概述

在PIM-4中,系统分析员可以用序列图来表达,系统内部一群对象合力完成某一个系统用例时,执行期间的交互情形。之后,序列图可能通过设计师之手,进行调整,并且成为程序员最关切的设计图之二(另一张是类图)。程序员通常会按照序列图的内容,编写出方法的源代码雏形。
   此外,PIM-1的系统用例叙述和PIM-3的类图,对PIM-4的序列图,有不可或缺的贡献。从PIM-1的系统用例叙述中,系统分析员可以分析出系统流程。而在PIM-3的类图中,系统分析员定义出系统内部的静态结构。随后,到了PIM-4的序列图时,则结合了系统用例及静态结构两者

序列图内有数个对象(Object),执行者对象启动系统用例时,对象会遵照箭头方向传送消息(Message)给另一个对象,也因此而引发了接收消息之对象的某一项操作。随后,接收对象在执行操作的期间,可能需要其他对象的协助,所以也传送消息给其他对象,并且引发该接收对象的操作。整个对象之间,传送一连串消息并引发操作的过程,形成一群对象的交互模样

序列图的主要组成元素包括:对象、调用消息(Call Message)、执行规格(Execution Specification)和生命线(LifeLine)

2、序列图调用方式

1)调用消息和对象:

2)除了传送调用消息给其他对象之外,对象也可以传送调用消息给自己,以便引发执行自己的操作,这样的调用消息又称为”自我调用“(Self Call Message)

3)调用消息是一种同步消息(Synchronous Messages),序列图提供另一种”异步消息“(Asynchronous Message)。发送对象在发送异步消息后,不等接受对象执行完毕,就自顾自地往下执行,不等待。同步消息与异步消息的图标差异在于箭头处,前者为带实心箭头的实线,后者为带开放箭头的实线。

3、创建消息与销毁消息

创建消息(Creation Message)的图标是一条带开放箭头的虚线,指向创建的对象,意味着对象是在发出创建消息之际,才刚诞生,在此之前,此对象是不存在的。
销毁消息(Destruction Message)的图标则是在消息箭头端打上大叉叉,而且生命终止与大叉叉处。因为对象在收到销毁消息之后,就被销毁了,不存在了,所以生命线也就终止了。

4、几项建议

在建构PIM-4的序列图时,系统分析员可以参考下列几项建议:
1)主要流程与其他流程分置于不同的序列图中。千万别再一张序列图里表达多条流程,避免造成图面过于复杂,难以阅读。
2)扮演启动者的执行者对象放置于序列图最左方;扮演支持者的执行者对象放置于序列图的最右方。消息方向尽量由左指向右,符合横式书写与阅读的习惯。
3)自有消息可以引发接受对象自身的公开操作或者私有操作,但是,一般消息只能引发公开操作,不能引发私有操作。
4)对象之间优先通过静态关系传递消息,否则可于操作中建立暂时性的关系,以便传递消息

通过上图类之间的关联关系,类所产生之对象之间可以传递消息。请看下图9-8的估算现值,基金账户对象可以传递消息给申购交易对象,而申购交易对象也可以传递消息给基金对象,之间都是通过关联关系所产生的链接来传递消息。图中的大方框成为“循环片段(Loop  Fragment),系统分析员可以用它来围住需要执行循环(Loop)的消息

下图9-9是另外一种估算现值的方法,基金账户对象传递消息给申购交易对象与基金对象。

不过基金账户与基金两个类之间没有关联关系,所以他们所生成的对象之间可于执行操作期间建立暂时性的链接,以便传递信息。在类图中,可以使用带箭头虚线的”依赖“(Dependency),表达基金账户对象将”使用“基金对象

5)显示消息序号,有助于撰写说明。
6)两个对象之间具有组合关系时,其他对象仅能看到Whole对象,不能直接使用Part对象。

7)传递对象,而非属性,维持对象的封装性。基金对象想申购交易对象查询最新净值。此时申购交易对象并非传回一项”最新净值“的数据参数,而是传回基金对象的地址(out:基金),让申购交易对象自己调用基金对象的操作,取得最新净值的数据。如下图:

8)对象封装了属性,以及操作的方法,仅对外透露公开操作。因此,系统分析员要特别注意,在分析规划对象的方法时,如果需要与其他对象交互,甚至是使用到对象本身的属性或操作时,切记严守下列三项条件:

  •   不得直接提及对象的属性
  •   也不得假设对象的执行方法
  •   仅能够使用对象的操作

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

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

相关文章

关于线扫相机的使用和注意事项

引言 线扫相机作为工业视觉系统中的核心设备之一,以其高分辨率和高速成像的特点被广泛应用于印刷质量检测、电子元件检测、纺织品缺陷检测等领域。本文从线扫相机的基本原理出发,探讨其使用方法,并总结在实际应用中的注意事项,为…

UE5 像素流进行内网https证书创建

确定证书需求 内网 HTTPS 通信通常需要以下内容: 自签名证书(适用于内网环境,不需要通过公开的证书颁发机构 CA) 或者通过内部的企业 CA 签发的证书(更安全)。 生成自签名证书 使用工具(如 Ope…

QNX的IPC通信

资料参考: QNX官网文档 QNX内核名义上提供了四种服务:进程调度、IPC通信、底层网络通信、中断处理,而提供给进程的IPC通信种类有三种:Message、Pulse和Signal Message QNX最基本也是最核心的IPC方式,通常用于C/S架构的软件模式,是一对多的关系 添加图片注释,不超过 …

Python酷库之旅-第三方库Pandas(259)

目录 一、用法精讲 1226、pandas.tseries.offsets.Week.name属性 1226-1、语法 1226-2、参数 1226-3、功能 1226-4、返回值 1226-5、说明 1226-6、用法 1226-6-1、数据准备 1226-6-2、代码示例 1226-6-3、结果输出 1227、pandas.tseries.offsets.Week.rule_code属性…

Kubernetes架构原则和对象设计

云原生学习路线导航页(持续更新中) 快捷链接 Kubernetes常见问题解答 本文从 Google Borg系统的架构设计开始,深入讲解Kubernetes架构及组件的基本原理 1.什么是云计算 1.1.传统行业应用 假设有10台服务器,两个应用。小规模管…

组件中的回调方法

文章目录 1. 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Flutter中如何使用三方包相关的内容,本章回中将介绍Widget的生命周期.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 本章回中介绍的生命周期是指Widget从创建到结果的整个过程,这里提到的Widget是一个…

w~深度学习~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663254 #Motion Plan 代码 github.com/liangwq/robot_motion_planing 轨迹约束中的软硬约束 前面的几篇文章已经介绍了,轨迹约束的本质就是在做带约束的轨迹拟合。输入就是waypoint点list,约束…

MR30分布式IO模块赋能喷水织机

纺织行业作为我国传统支柱产业,历经数千年的演变,如今仍面临着诸多困境,在纺织行业中,每一次技术的飞跃都是对行业边界的勇敢探索。在纺织行业,喷水织机作为关键生产设备,其性能直接影响到产品质量和产能。…

【单片机】ESP32-S3+多TMC2209控制步进电机系列1 UART通信及无传感回零 硬件部分

目录 1. 硬件选型1.1 esp32硬件型号1.2 TMC2209 硬件型号 2 原理接线图2.1 esp32接线2.2 TMC2209接线2.2.1 单向通讯 不配置地址2.2.2 单向通讯 配置地址2.2.3 双向通讯 单UART 【本文采用】2.2.4 双向通讯 多UART 3. 成品效果 1. 硬件选型 1.1 esp32硬件型号 采用的是微雪ES…

组件中的生命周期

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Flutter中如何使用三方包相关的内容,本章回中将介绍Widget的生命周期.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 本章回中介绍的生命周期是指Widget从创建到结果的整个过程,这里提到的Widget是一个泛…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...(发生不好的事情)do more harm than good. 弊大于利strive to. 争取,努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

Zookeeper集群数据是如何同步的?

大家好,我是锋哥。今天分享关于【Zookeeper集群数据是如何同步的?】面试题。希望对大家有帮助; Zookeeper集群数据是如何同步的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper集群中的数据同步是通过一种称为ZAB(Zo…

CTF之密码学(密码特征分析)

一.MD5,sha1,HMAC,NTLM 1.MD5:MD5一般由32/16位的数字(0-9)和字母(a-f)组成的字符串 2.sha1:这种加密的密文特征跟MD5差不多,只不过位数是40(sha256:64位;sha512:128位) 3.HMAC:这…

Android 分词的两种方式

前言: 本文分别介绍了原生和三方(Jieba)两种分词方式的使用和注意事项 1、安卓原生BreakIterator分词 比较简单,但是效果不太行 /*** 功能:原生分词* 参数:text:需要分词的语句* 返回值:return&#xf…

40分钟学 Go 语言高并发:服务性能调优实战

服务性能调优实战 一、性能优化实战概述 优化阶段主要内容关键指标重要程度瓶颈定位收集性能指标,确定瓶颈位置CPU、内存、延迟、吞吐量⭐⭐⭐⭐⭐代码优化优化算法、并发、内存使用代码执行时间、内存分配⭐⭐⭐⭐⭐系统调优调整系统参数、资源配置系统资源利用率…

有趣的Docker

👉【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中 1. Docker 上的“全世界”命令行 你可以在 Docker 容器中运行一个模拟的 “世界地图”,并通过命令行与它互动。这是一个非常有趣的项目,结合了命令行和图形界面的交互。…

win11无法检测到其他显示器-NVIDIA

https://www.nvidia.cn/software/nvidia-app/ https://cn.download.nvidia.cn/nvapp/client/11.0.1.163/NVIDIA_app_v11.0.1.163.exe 下载安装后,检测驱动、更新驱动。

(数据结构与算法)如何提高学习算法的效率?面试算法重点有哪些?面试需要哪些能力?

面试官眼中的求职者 通过对你算法的考察!!!! 缩进太多!!一般不要超过三层!!!缩进越少,bug越少;逻辑比较复杂,把这些包装成为函数&…

Applied Intelligence投稿

一、关于手稿格式: 1、该期刊是一个二区的,模板使用Springer nature格式, 期刊投稿要求,详细期刊投稿指南,大部分按Soringernature模板即可,图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

【学习总结|DAY010】Java 流程控制与数据操作练习四:简易计算器

在这段 Java 代码中,我将解析一段简单的 Java 计算器代码,它能够执行基本的数学运算,包括加法、减法、乘法和除法。 一、主要代码 import java.util.Scanner;public class demo101Calculator {public static void main(String[] args) {Sca…