《软件建模与设计》学习笔记(一)——引言

2023-10-27

《软件建模与设计》学习笔记(一)——引言
引言

1、在用例建模中,系统的功能性需求按照用例和参与者进行定义

静态建模:提供了系统的结构化视图。类按照七属性以及与其他类的关系进行定义。

动态建模提供了系统的行为视图。用例是通过对象之间的交互来实现的。对象交互图用于显示对象之间是如何通信以实现用例的。系统与状态相关的方面则使用状态图进行定义。

2、软件体系结构:将体统的总体结构与各个结构的内部细节相分离。对于构件及其连接关系的强调有时被称为全局性的编程,而单个构件的详细设计被称为局部性的编程

​ 在不同的细节层次上的描述:

​ 在较高的细节层次,可以描述软件系统能够是如何分解为子系统的。

​ 在较低的细节层次,可以描述子系统是如何分解为模块或构件的。

​ 设计软件体系结构的时候应当考虑系统的软件质量属性。这些属性与体系结构如何满足重要的非功能性需求相关。

​ 软件体系结构有时被称为高层设计。软件体系结构可以从不同的视图进行描述,重要的是保证体系结构同时满足功能性和非功能性软件需求。软件体系结构同时也是详细设计和实现的出发点。

3、软件设计相关术语

软件设计表示法:是一种使用图形或文本方式或同时使用图形和文本描述软件设计的方法。

软件设计思想:是一种可以用于设计系统的根本性的思想。

软件设计策略:是一种对设计的整体性规划和方向性指导。

软件结构组织准则:是用于帮助设计者将软件系统组织为构件的启发式规则或知道方针。

软件设计方法:是一种描述了用于在给定的应用系统软件需求基础上创建一个设计方案的步骤序列的系统化方法。

4、COMET:一种基于UML的软件应用建模和设计方法。

是一种迭代的用例驱动和面向对象的软件开发方法。,涵盖了软件开发生存周期的需求、分析和设计建模阶段。

5、UML模型可以是平台无关模型(PIM),也可以是平台有关模型(PSM)。

PIM是一种在采用特定平台的决策做出之前描述软件体系结构的精确模型。

6、UML中不同的软件体系结构建模视图。

用例视图:是一种功能性需求视图,是软件体系结构设计的输入。每个用例描述了一个或多个参与者与系统之间的交互序列。

静态视图:用类以及类间关系描述体系结构,其中的关系包括关联、整体/部分(组合或聚合)、泛化/特化关系。表示为UML类图。

动态交互视图:通过对象以及对象间的消息通信来描述体系结构。该视图也可以用来描述特定场景的执行序列。表示为UML通信图。

动态状态机视图:一个控制构件的内部控制和定序可以用状态机来描述。表示为UML状态图。

结构构件视图:用构件来描述软件体系结构,构件间通过端口互连,支持供给接口和请求接口的描述。表示为UML结构化类图。

动态并发视图:将软件体系结构描述为在分布式结点上执行并且通过消息进行通信的并发构件。表示为UML并发通信图。

部署视图:描述分布式体系结构中构件如何分配到不同硬件节点上的特定配置。表示为UML部署图。

7、实时系统的并发设计方法:结合了早期的并发设计、实时设计和早期的面向对象设计方法,强调信息隐藏模块的构造和并发任务的构造。

总结

​ 介绍了面向对象方法和表示法、软件体系结构设计和UML,还简要描述了软件设计方法、面向对象分析和设计方法以及并发、分布式和实时设计方法的发展历史。

练习

(1)什么是软件建模——在编码之前设计软件应用

(2)什么是统一建模语言——描述面向对象模型的一种标准化的图形语言和表示法

**(3)**什么是软件体系结构——软件系统的总体结构

**(4)**什么是软件设计表示法——软件的图形化或文本描述

(5)什么是软件设计思想——可以应用于软件系统设计的一种根本性的思想

(6)什么是软件设计策略——开发一个设计的总体计划和指导

(7)什么是软件结构组织准则——用于帮助将软件系统组织为一组构件的指导方针

**(8)**什么是软件设计方法——产生一个设计的一种系统化的方法

(9)什么是平台无关模型(PIM)——在做出针对特定平台的承诺之前的一种精确的软件体系结构模型

(10)什么是平台相关模型(PSM)——映射到特定平台上的一种精确的软件体系结构模型

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《软件建模与设计》学习笔记(一)——引言 的相关文章

  • 模板继承的 UML 图

    在我的库的文件中 我有一个继承自模板的类 我的代码示例 class data class dataA public data class dataB public data inheritance from a template templ
  • 如何在重写方法中表示调用基类方法?

    我有一个子类想要向基类函数添加更多功能 我如何表示它也执行基类函数而不仅仅是新添加的功能 有趣的问题 我用 Enterprise Architect 尝试过 它确实让我选择了父级的操作 但图中的显示没有改变 看来您需要为此使用注释 如你看到
  • UML 类图概念、规范、实现

    我目前正在阅读 Martin Fowler 的 UML Distilled 我刚刚介绍了有关类图的部分 他在其中强调了在对类图进行建模之前理清自己的观点的必要性 然而 在实际绘制类图时 我对它的实际外观有点困惑 例如 我理解理论含义会改变关
  • 如何在 UML 中建模协变关联类?

    In short 我想对两个类之间的协变关联进行建模 每个类都可以专门化 我需要展示相关关联类的专业化 但我想避免我的模型可能意味着存在冗余关联 即泛化之间的关联和专业化之间的关联 问题的逐步解释 我在 UML 类图中有一个多对多关联Per
  • UML 领域建模

    领域模型和数据模型有什么区别 数据模型是一个design仅描述数据及其关系的模型 该模型包含实体 但它们是根据什么来描述的data他们不负责如何处理这些数据或他们的责任是什么 另一方面 领域模型是用于分析问题领域的概念模型 它用具有关系 数
  • 多个参与者,相同的用例 [用例]

    我试图描述一个用例 其中系统内的多个参与者可以执行相同的活动 例如 假设 作为示例 我想要使用 更新客户端 用例 但几个已确定的参与者可以执行此操作 Manager Chief Executive Customer Service Repr
  • UML 设计类图:具有另一个类作为属性的类?

    我很难弄清楚如何将特定场景建模为 UML 设计类图 假设我有以下情况 我有一个名为 CPoint 的类 它有两个属性 x 和 y R2 平面中的坐标 另外 我有一个名为 CLine 的类 它应该有两个 CPoint 作为属性 这对代码来说非
  • 关联注入还是依赖注入?

    我正在研究依赖注入模式 我看过很多例子 其中一个典型的例子就是以XxxService XxxRepository为例 但我认为 根据UML概念 类XxxRepository应该是类XxxService的关联 为什么不称这种情况为关联注入 但
  • Android:从 Android Java 源代码创建 UML [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以从我的 Java Android 源代码自动创建 Uml 的程序 我测试过ArgoU
  • 用例 - 帮助 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是编写用例的新手 我听说用例是非技术表达 我有以下任务 我必须为其编写用例 我降低了对你理解的要求 ABC公司的注册客户使用凭据登录系统以检索
  • 有什么办法可以自动生成UML图吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MySQL 数据库 我想生成它的关系图 有没有一个工具可以连接到数据库并自动为我生成它 是的
  • Android Studio 上的代码 Iris 插件

    我正在尝试使代码 iris 插件在 Android studio 上工作 我按右键单击 gt 创建代码虹膜图 然后我收到一条通知 表明我的图表已准备就绪 但我不知道该图何时存储 创建的文件的名称是什么以及如何打开它 有任何想法吗 CODE
  • UML 只能用于面向对象吗?

    目前 在我的论文期间 存在着关于 UML 是否仅用于 OO 开发 的激烈争论 我从一些来源进行了搜索 其中给出了很多关于它的论点 就我自己而言 我相信并非所有 UML 图都是专门为 OO 系统 软件开发而制作的 即 状态图 因此 我希望得到
  • 有什么好的+免费+轻量+Linux UML设计工具吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个UML设计工具 仅用于设计 不需要代码生成 主要特征 Free 对于Linux 便于使用
  • 系统间依赖关系的UML图

    哪种 UML 图最能显示我们的 IT 系统和其他外部 IT 系统之间的依赖关系 例如我想在图表上显示 系统A从系统B获取数据 系统B可以调用系统A的一些功能 我想知道组件图和序列图之间的关系 你怎么认为 你的问题不是很具体 因为所有 UML
  • UML 帮助 C# 设计原则

    我在理解下面的 UML 时遇到问题 具体来说 两者之间有什么关系PersistentSet and ThirdPartyPersistentSet 之间有什么关系PersistentObject and ThirdPartyPersiste
  • 类图:我可以分享一个作品吗?

    假设我正在使用 mvc 模式用 C 制作一个简单的游戏 并且有一个世界对象 其生命周期由控制器类管理 这显然像是一个组合 但是如果游戏逻辑类也需要对同一个世界的永久引用 或者这个世界的环境 由世界拥有 需要对其的引用 这些只是常规关联吗 或
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 在 Java 中实现组合

    class Book private Chapter chapters new Chapter 5 class Chapter private Book book 这是实现上述关系的正确方法吗 我需要对此进行解释 谢谢 这还不够 在组合关系
  • UML 不可导航关系 - 使用或示例

    谁能给我一个现实生活中的用途或一个关系的例子both 全部 末端不可导航 类似下图 根据 UML 标准 有关关联语义的第 11 5 3 1 节 可导航性意味着实例在运行时参与链接 关联的实例 可以从以下位置有效访问 协会另一端的实例 精确的

随机推荐

  • react 编程式导航实现页面跳转

    一 介绍 编程式导航 通过js代码来实现页面跳转 案例 点击登录按钮 登录成功后 通过代码跳转到后台首页 如何实现 答 props history push home props history go 1 history 是react路由提
  • php调用笛风接口,优雅的用PHP来实现解析抖音无水印视频!

    header Content type text html charset utf 8 url g GET url 抖音视频地址 api https api hl amemv com aweme v1 aweme detail retry
  • Microsoft Store无法打开几种解决办法

    抄的解决方案 只是为了记录一下 帮助遇到同样问题的人 方式一 清除Microsoft商店缓存 过多的缓存会使Microsoft Store应用程序膨胀 可能导致其无法正常运行 只需清理高速缓存即可 大多数用户建议在清除Store应用程序的高
  • unity如何恢复崩溃前的Scene

    unit有时会遇到unity崩溃后 辛辛苦苦做的场景就这么没了的情况 这种情况非常忧伤的 其实unity是提供了一种拯救场景的措施的 首先unity崩溃后不要重新打开unity 切记 不然就之前的成果就找不回来了 打开你的工程所在目录 找到
  • 用core dump来调试程序段错误

    有的程序可以通过编译 但在运行时会出现Segment fault 段错误 这通常都是指针错误引起的 但这不像编译错误一样会提示到文件 gt 行 而是没有任何信息 使得我们的调试变得困难起来 1 在一般Linux系统中 默认是不会产生core
  • java 动态单元格涂色_java – JSF:动态更改数据表单元格颜色

    我有一个数据表 我想根据对内容运行的一些分析来更改单元格的颜色 该表链接到一个Comment对象数组 我给出了一个String cssClass 它在运行分析后得到更新 这是我尝试插入数据表的rowClasses属性 它不起作用 我认为问题
  • jsonpath的一些应用

    由于最近在做接口自动化测试 其中用到的jsonpath尤其的多 所以进行记录 1 先上一句代码 JSONPath read sourchJson key 2 sourchJson如下 data x 2018 12 19 2018 12 20
  • 第九届蓝桥杯,赛后感!!含泪写完。

    对于这一次的蓝桥杯我先说一下我的心情 说好的暴力破解 说好的DFS尼都没有我靠 这届的题目很变态 早上我起床是被拉肚子叫醒的 唉 早上9正开考 今年我们是在本学校考试 我吃完早饭去的考场 这里我要说明一下 本来蓝桥杯是提供早餐的 但是老师说
  • Unity 烘焙贴图后再拖成预设体后场景光照信息丢失

    场景中对预设体进行烘焙贴图后 然后删掉场景中的预设体 接着再通过代码实例化这个预设体或者直接拖一个预设体进入一个场景 都会发现场景光照信息丢失 光照信息丢失的主要原因是 解决这个问题的办法如下 先准备一个场景 如下 上面的红色物体全部勾选为
  • 如何给Python轻应用添加新的组件:Python轻应用扩展适配介绍

    AliOS Things 3 3 0新版本中 其中非常中的一个特点 就是支持Python轻应用 也就是可以直接使用Python代码来写物联网程序 并且控制软件设备 这是HaaS物联网设备云端一体Low Code开发框架的核心之一 那本文讲介
  • C++ 惯用法之 copy and swap

    背景 STL 中提供了 swap 算法 用于交换两个对象的值 对于资源管理类 我们可以提供自定义的高效 swap 以仅交换指针 通常包含资源 指针 的类需要提供自定义的拷贝及移动相关操作函数 资源管理类 概述 通常包含资源 指针 的类需要提
  • Talib技术因子详解(十)

    talib安装方式 pip install Ta lib Tushare数据获取请参考 金融量化分析基础环境搭建 数据获取代码请参考 Talib技术因子详解 一 101 CDLPIERCING名称 Piercing Pattern 刺透形态
  • JS中获取URL中参数的4种方法

    方法一 正则 function getQueryString name var reg new RegExp name i var r window location search substr 1 match reg if r null
  • 如何在 JavaScript 中将数组转为对象

    首先 我们需要明白对象具有键和值 const object key value 如果我们想把某个东西转换成一个对象 我们需要传递具有这两个要求的东西 键和值 满足这些要求的参数有两种类型 具有嵌套键值对的数组 Map 对象 数组 这是一个带
  • C语言常见的陷阱与缺陷

    1 不等同于 在刚接触c语言的时候 这属于是初学者常见的错误 是赋值符 是关系运算符 当我们在使用if判断语句的时候 初学者很容易犯的一个错误 就是把if x 1 写成if x 1 这样写时编译器并不会报错 因为后者会被解析为把1赋值给x
  • vue中ECharts使用

    第一步 下载echarts 并导入 npm install echarts save import echarts from echarts 导入echarts import from lodash 导入数据合并 第二部 在绘图前我们需要为
  • 现场!李飞飞斯坦福对话基因编辑发明人杜德纳:两大科技的伦理和创新走向何方?...

    热点追踪 深度探讨 实地探访 商务合作 本文来源微信公众号 硅谷洞察 ID guigudiyixian 硅谷洞察 链接硅谷资源的第一入口 本文由硅谷洞察原创 首发于腾讯科技 未经硅谷洞察或腾讯科技授权 请勿转载 人工智能和基因编辑无疑是两大
  • win11使用wsl2安装Linux子系统

    WSL Windows subsystem for Linux 顾名思义 就是在Windows中使用的Linux子系统 使开发者能够在window中无障碍使用Linux系统 下面介绍一下怎么在win11环境中搭建wsl2 1 开启子系统功能
  • Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决 但如果是运行在docker环境下的mysql呢 解决办法其实还是用mysqldump命令 但是我们需要进入docker的mysql容器内去执行它 并且通过配置vo
  • 《软件建模与设计》学习笔记(一)——引言

    软件建模与设计 学习笔记 一 引言 引言 1 在用例建模中 系统的功能性需求按照用例和参与者进行定义 静态建模 提供了系统的结构化视图 类按照七属性以及与其他类的关系进行定义 动态建模提供了系统的行为视图 用例是通过对象之间的交互来实现的