【软件建模与设计】-07-静态建模

news2024/11/24 17:37:59

目录

1、类之间关系

1.1、关联

1.1.1、关联的多重性

1.1.2、三元关联

1.1.3、一元关联

1.1.4、关联类

2、组合与聚合层次

2.1、组合

2.2、聚合

3、泛化/特化层次

4、约束

5、静态建模和UML

5.1、问题域的静态建模

6、系统上下文的静态建模

7、使用UML构造型对类分类

8、外部类建模


静态建模展示了问题的静态结构图,定义了系统中的类、类的属性、操作,以及类之间的关系,采用UML类图表示。

1、类之间关系

1.1、关联

关联定义了两个或多个类之间的关系

链接是类实例(对象)之间的连接,表示类之间的关联的实例。

组成结构:连线、名称、方向、多重性、约束

1.1.1、关联的多重性

1)一对一

2)一对多:用1..* 表示

3)规定数值关联:如一辆汽车有2,4个门组成。

4)可选关联:一个人可以拥有0个或任意多个的银行卡,用0..* 表示

5)多对多:课程与学生,双向箭头,用 *  1..*  表示

1.1.2、三元关联

在类之间的三个方向的关联。比如买方、卖方、中介Agent

1.1.3、一元关联

自身关联,是一个类的一个对象与同一个类的另一个对象之间的关联。

如 一个人是另一个人的孩子(is child of)

1.1.4、关联类

对两个或多个类之间的关联进行建模的类

关联类的属性属于该关联的属性,不属于任何原始的类

如项目、雇员提取关联类(小时数类),存在属性工作小时数

这个属性既不属于项目,也不属于雇员

2、组合与聚合层次

部分和整体间的关系是一个【 Is part of

2.1、组合

比聚合更强的关系,整体与部分存在相同的生命周期

部分对象的创建、存在和消亡都和整体是一起的。

部分对象只能属于一个整体

如一个ATM机有一个键盘显示器、读卡器、吐钞机、凭条打印机。

2.2、聚合

在一个聚合中,部分实例能添加到聚合的整体,也能从聚合整体中移除。

概念类建模,而非物理类

3、泛化/特化层次

共同的属性被抽象到一个泛化类,称作超类。  

子类与超类之间存在【Is a】 的关系

泛化的表示形式:子类指向父类的空心箭头

如:

“储蓄账户” Is a “账户”

“活期账户” Is a “账户”

4、约束

 规定了条件为真的限制

表示形式:{  "余额" >= 0  }

1)对象属性约束

2)关联链接的约束

5、静态建模和UML

5.1、问题域的静态建模

1)物理类

具有物理特性,包括物理设备、用户、外部系统、计时器

2)实体类

数据密集型,持久化存储的对象

6、系统上下文的静态建模

1)系统上下文图

展示作为黑盒对待的系统(硬件和软件)与外部环境间边界的图

2)软件系统上下文图

展示作为黑盒对待的软件系统与外部环境(包含硬件)间的边界的图

7、使用UML构造型对类分类

软件系统:

1)实体类 《实体entity》

2)边界类  《边界boundary》

外部环境:

外部类

1)《外部系统 external system》

2)《外部用户 external user》

8、外部类建模

1)外部设备

  • 外部输入设备:仅提供输入,如传感器
  • 外部输出设备:仅提供输出,如执行器
  • 外部输入/输出设备:如ATM读卡器

键盘、鼠标等并不是感兴趣的内容,因此无需建模

2)从外部类开发软件系统上下文类图

3)参与者与外部类的交互

4)从参与者开发软件系统上下文类图

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

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

相关文章

JAVA Spring学习Day1

Maven Maven配置: Maven是Java项目的构建工具,使用pom.xml配置文件管理项目依赖、插件和构建目标。Spring Boot项目搭建: Spring Boot是基于Spring框架的快速开发框架,通过约定大于配置的理念简化了Spring应用的搭建和开发。 …

C# 设计模式之原型模式

总目录 前言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中…

数据可视化工具,免费无限制制作报表

许多企业在报表制作上投入了大量资金,使用各种收费软件,往往只能满足基本需求,且操作复杂,让人感到无比头疼。不过最近我发现之前一直在做数据大屏的山海鲸可视化,现在新增了报表功能,不仅各种功能都可以免…

创新食堂管理:采购系统源码与供应链APP开发详解

今天,笔者将从食堂采购系统源码与供应链管理APP开发的角度,探讨如何利用技术创新提升食堂管理效率,并为企业带来更大的价值。 一、食堂采购系统的核心功能与优势 食堂采购系统是指用于管理食堂物资采购流程的软件系统,其核心功能…

《学会 SpringMVC 系列 · 剖析入参处理》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【C++】巧用缺省参数与函数重载:提升编程效率的秘密武器

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间 本章将分享缺省参数与函数重载相关知识,为了更加深入学习C打下了坚实的基础。本章重点在于缺省参数与函数重载使用前提与注意事项 🌈个人主页:是店小二呀 &#x1…

[CTFHub]ret2text-入土为安的第十二天

checksec pwn ida fn F5 main 点(_int64)v4 v大小为0x70栈基指针0x8返回地址 secure()

软件测试--python基础

一、python基础 (1)第一个python (2)python解释器 (3)基础语法 ①字面量 什么是字面量 常用的值类型 字符串 ②注释 ③变量 什么是变量 变量的特征 变量的目的是存储运行过程的数据 存储的目的是为了:重复使用 ④数据类型 type()语句 变量有类型吗?…

如何选择高品质SD存储卡—高耐用度、防水、防动、抗冲击

SD卡(Secure Digital Memory Card)是一种广泛使用的存储器件,因其快速的数据传输速度、可热插拔的特性以及较大的存储容量,广泛应用于各种场景,例如在便携式设备如智能手机、平板电脑、运动相机等,用于存储…

68.游戏分析工具设计以及更改辅助中存在的界面问题

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:易道云信息技术研究院 上一个内容:67.利用FreeLibrary函数实现无痕注入的核心代码 分析工具主要做的是 游戏公共内容分析&…

【前端 · 面试 】TCP 总结(一)—— 概述

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。 image 前言 我们常常会听到“ TCP 三次握手、…

注册中心--Eureka

🎥 个人主页:Dikz12🔥个人专栏:Spring Cloud实战📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1.项目问题 2.解决URL问题 2.1解决思路 2.2注册中心 2.3 CAP理…

LeetCode3. 无重复字符的最长子串(java实现)

今天分享的题目是LeetCode3. 无重复字符的最长子串,来看题目描述: 无重复的最长子串,题目有可能有些小伙伴没读太懂,其实就是找到不重复的最长子串,比如eg3,pwwk,那么w出现了两次就不符合要求。…

SpringBoot中的server.context-path

一、问题引入 书接上回,SpringBoot 在 idea中的 .idea和 .iml文件-CSDN博客,我在boot-test的测试项目中使用的 SpringBoot版本为 1.3.5.RELEASE,新项目 cps-task中使用的版本为 2.4.8,造成了连接异常,问题很好解决&…

一文看懂Java反射、注解、UML图和Lambda表达式

反射 定义: 反射是 java 开发语言的特征之一,它允许 java 程序对自身进行检查(自审),并能直接操作程序内部属性,即就是将类中的各种成分映射成一个 java 对象,利用反射技术可以对一个类进行解剖,将各个组成部分映射成…

c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题

目录 前言: 1.vector的介绍及使用 1.2 vector的使用 1.2 1 vector的定义 1.2 2 vector iterator(迭代器)的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5vector 迭代器失效问题。 2.vector模拟实现 2.1 std::vect…

RAG 革命:NVIDIA 工作站如何成为企业 AI 的秘密武器

在深圳的一家科技初创公司,首席技术官李梅正在向她的团队展示一个令人兴奋的新项目。“看这个,” 她指着屏幕上的实时演示说,“我们刚刚用公司的技术文档训练了一个 AI 助手,它现在可以回答任何关于我们产品的问题,而且…

鸿蒙系统开发【网络管理】

网络管理 介绍 此Demo展示如何查询网络详情、域名解析、网络状态监听等功能。 效果预览: 使用说明: 1.启动应用,在点击检查网络、网络详情、网络连接信息后,展示对应的信息; 2.在域名解析的模块下,输入…

一款功能强大的免费开源卸载工具

BCUninstaller,也称为Bulk Crap Uninstaller(简称BCU),是一款免费且开源的Windows平台专用程序卸载工具。它的主要功能是帮助用户高效地批量卸载不需要的应用程序和组件,从而优化系统性能。 BCUninstaller功能特点 批…

8.1 tomcat+jdk

接着昨天的 npm run serve 构建项目 npm run build ls ls dist/ vim dist/index.html [rootweb eleme_web]# cd /usr/local/nginx/conf/ [rootweb conf]# ls 将静态的项目移动到nginx中 [rootweb nginx]# cd conf.d/ [rootweb conf.d]# ls qd.conf [rootweb conf.…