软件建模概要

什么是软件建模?软件建模体现了软件设计的思想,在需求和实现之间架起了一座桥梁,通过模型指导软件系统的具体实现。模型不是软件的完备表示,而是所研究系统的一种抽象。

软件建模原则:

  • 选择正确的模型,模型要和现实相联系;
  • 从不同的视角,使用不同的模型去表达一个系统:外部视角,交互视角,结构化视角和行为视角。

软件建模方法:

  • 结构化方法
  • 面向对象方法
  • 面向构件方法
  • 面向服务方法
  • 面向方面方法
  • 模型驱动方法
  • 形式化方法

软件建模工具UML特点:

  • 面向对象
  • 可视化,表达能力强
  • 独立于过程
  • 独立于程序设计语言
  • 易掌握

UML内容组成

  • 事物:基本的面向对象的构造块。最静态部分,代表概念上或物理上的元素,包括结构事物,行为事物,组织事物和辅助事物。
  • 关系:事物之间的联系,包括关联,依赖,泛化和实现
  • 图: 很多相关事物纪关系的组合。静态图(用例图,类图,对象图,组件图和部署图)和动态图(顺序图,合作图,状态图和活动图)

软件开发流程
需求分析—>概要设计—>详细设计—>编码阶段—>测试

用例图
概念:给出了一组用例,参与者以及他们之间的关系。以使用者如何使用系统案例为核心,既识别清楚价值客户群体,又描述了系统的对外接口功能,是静态图,描述了系统在干什么。
用例图关键元素
参与者(角色)
功能单元:角色与系统之间的一次交互
关系:包含,拓展,泛化

类图
概念:依据系统结构从静态观点描述系统的视图,它定义系统中的对象和类及类之间的关系,以及类的内部结构,及类的属性和操作。
关系类别:

  • 实现:类与接口的关系,表示类是接口所有特征和行为的实现
  • 依赖:一种使用的关系,有单项依赖和双向依赖
  • 泛化:一种继承关系
  • 关联:一种拥有的关系,它是一个类知道另一个类的属性和方法
  • 聚合:整体与个体的关系
  • 组合:整体与局部的关系
    六种关系的强弱顺序
    泛化>实现>组合>聚合>依赖>关联?

顺序图
描述不同对象之间相互协助完成预期行为的动态过程。直观形象,便于理解不同对象间的交互关系时序。主要绘图元素有:

  • 将交互关系表示为一个二维图
  • 纵向是时间轴,时间沿竖线向下延伸
  • 横向轴代表在协作中各独立对象的类元角色
  • 类元角色用生命线表述
  • 消息用从一个生命线到另一个对象生命线的箭头表示

活动图
用于对目标对象计算流程和工作流程建模,本质是流程图,显示系统从一个活动到另一个活动的流程迁移,基本元素包括:

  • 活动:执行步骤
  • 活动流:不同活动间的控制流或者数据流
  • 控制符:分支与并发
  • 泳道:表达不同的活动分组

状态图
描述系统元素的状态条件和响应,反映了类对象可能具有的状态,以及引起状态变化的事件。主要包括:

  • 状态
  • 事件:信号事件,调用事件,改变事件和时间事件等
  • 转换

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

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

相关文章

JAVA设计模式>>结构型>>适配器模式

本文介绍23种设计模式中结构型模式的适配器模式 目录 1. 适配器模式 1.1 基本介绍 1.2 工作原理 1.3 适配器模式的注意事项和细节 1.4 类适配器模式 1.4.1 类适配器模式介绍 1.4.2 应用实例 1.4.3 注意事项和细节 1.5 对象适配器模式 1.5.1 基本介绍 1.5.2 …

VUE+ELEMENTUI表格的表尾合计

<el-table :data"XXXX" :summary-method"getSummaries" show-summary "true" > getSummaries(param) { const { columns, data } param; const sums []; columns.forEach((column, index) > { if (index 0) { sums[index] 合计; }…

关于RiboSeq分析流程的总结

最近关注了一下RiboSeq的分析方法&#xff0c;方法挺多的&#xff0c;但是无论哪种软件&#xff0c;都会存在或多或少的问题&#xff0c;一点问题不存在的软件不存在&#xff0c;问题的原因出在&#xff0c;1.有的脚本是用python2编写的&#xff0c;目前python2已经不能用了 2.…

FFM(Field-aware Factorization Machine -领域感知的因子分解机)解析及举例

FFM&#xff08;Field-aware Factorization Machines&#xff09;模型是一种广泛应用于推荐系统、广告点击率预测等领域的机器学习模型。与传统的因子分解机&#xff08;FM&#xff09;相比&#xff0c;FFM模型考虑了不同特征字段之间的交互关系&#xff0c;从而能够更好地捕捉…

jdk17的一些特性和升级遇到的问题

特性 JEP 403: Strongly Encapsulate JDK Internals&#xff0c;增强jdk内部元素的保护 大多数开发用不到。升级jdk时&#xff0c;可能因为之前代码用了某些类&#xff0c;导致无法升级。 JEP 394: Pattern Matching for instanceof&#xff0c;instanceof模式匹配&#xff08;…

未履行出资义务,名义股东担何责任?

名义股东是否要对未履行出资义务承担责任&#xff1f;如果要担责&#xff0c;应该承担何种责任&#xff1f;近日&#xff0c;河南省西平县人民法院审结了一起股东损害公司债权人利益责任纠纷案。   2021年&#xff0c;经生效法律文书确认&#xff0c;B实业公司应支付A科技公司…

树莓派pico入坑笔记,dht11使用及温湿度表制作

目录 关于树莓派pico和circuitpython的更多玩法&#xff0c;请看树莓派pico专栏 用到的库adafruit_dht&#xff0c;需要导入pico才能使用&#xff0c;在这里下载 样例程序 进阶玩法&#xff0c;显示信息的温湿度计 屏幕使用见树莓派pico专栏的ssd1306oled屏幕使用 代码 效…

代码随想录算法训练营第34天

LeetCode 416. 分割等和子集 链接 class Solution { public:bool canPartition(vector<int>& nums) {vector<int> dp(10001, 0);int sum accumulate(nums.begin(), nums.end(), 0);if(sum % 2 1) {return false;}int target sum / 2;for(int i 0; i <…

Go 初始化一个字典

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

4K60无缝一体矩阵 HDMI2.0功能介绍

关于GF-HDMI0808S 4K60无缝一体矩阵的功能介绍&#xff0c;由于直接针对GF-HDMI0808S型号的具体信息较少&#xff0c;我将结合类似4K60无缝HDMI矩阵的一般功能特性和可能的GF-HDMI0808系列产品的特点来进行说明。请注意&#xff0c;以下信息可能不完全针对GF-HDMI0808S型号&…

HOW - 结合 Form 和 Schema 的数据验证方案(Shema Validation)

目录 示例安装示例代码解释 Schema Validation 产生背景和机制产生背景机制ZodYup 机制和工作原理结论 在 React 应用中&#xff0c;使用表单和 Schema Validation 可以有效地管理表单状态和验证输入数据。 示例 常见的库包括 Formik 和 Yup。Formik 用于管理表单状态&#x…

springboot+vue系统开发

链接: https://pan.baidu.com/s/1P1YpHAx9QOBPxjFZ9SAbig 提取码: u6f1

如何设计一个C语言面向结构体的内存数据库

内存数据库 一般所谓内存数据库&#xff0c;是指能够与应用运行在同一个进程内的数据库&#xff0c;也就是说能够被嵌入到进程内运行的数据库。 比较著名的内存数据库软件&#xff0c;例如&#xff0c;Sqlite&#xff1b;以及新生代的NOSql key-value数据库bdb(Berkeley DB)、…

Java基础(十九):集合框架

目录 一、Java集合框架体系二、Collection接口及方法1、添加2、判断3、删除4、其它 三、Iterator(迭代器)接口1、Iterator接口2、迭代器的执行原理3、foreach循环 四、Collection子接口1&#xff1a;List1、List接口特点2、List接口方法3、List接口主要实现类&#xff1a;Array…

GuLi商城-商品服务-API-品牌管理-统一异常处理

每个方法都加这段校验太麻烦了 准备做一个统一异常处理@ControllerAdvice 后台代码: package com.nanjing.gulimall.product.exception;import com.nanjing.common.exception.BizCodeEnum; import com.nanjing.common.utils.R; import lombok.extern.slf4j.Slf4j; import org…

【Linux】任务管理

这个任务管理&#xff08;job control&#xff09;是用在bash环境下的&#xff0c;也就是说&#xff1a;【当我们登录系统获取bashshell之后&#xff0c;在单一终端下同时执行多个任务的操作管理】。 举例来说&#xff0c;我们在登录bash后&#xff0c;可以一边复制文件、一边查…

adb 常用的命令总结

1、adb logcat 抓取日志 adb logcat > d:\log.txt Ctrlc 结束日志抓取 adb logcat -c > d:\log.txt 清空旧日志 发生Native Crash 时&#xff0c;抓取错误报告 adb logcat -b crash 抓取筛选后的日志&#xff1a; adb logcat -s AndroidRuntime > d:\log…

解析Java中1000个常用类:EnumSet类,你学会了吗?

在线工具站 推荐一个程序员在线工具站&#xff1a;程序员常用工具&#xff08;http://cxytools.com&#xff09;&#xff0c;有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具&#xff0c;效率加倍嘎嘎好用。 程序员资料站 推荐一个程序员编程资料站&#xff1a;…

CSS 单位中 px、em 和 rem 的区别?

在CSS中&#xff0c;px、em和rem是常用的长度单位&#xff0c;它们之间有一些区别&#xff1a; px&#xff08;像素&#xff09;&#xff1a; px是相对长度单位&#xff0c;它是相对于显示器屏幕分辨率的一个点的大小。 px单位是固定的&#xff0c;不会随着父元…

代码随想录算法训练营第五十二天(图论)| 98. 所有可达路径、深度优先搜索、广度优先搜索

邻接矩阵 邻接矩阵是一种使用二维数组来表示图的方法。矩阵中的元素表示节点之间是否存在边。如果存在边&#xff0c;则对应的矩阵元素为1&#xff08;或边的权重&#xff09;&#xff1b;否则为0。 特点&#xff1a; 空间复杂度高&#xff1a;无论图是否稀疏&#xff0c;邻…