【新版】系统架构设计师 - 知识点 - 面向对象开发方法

在这里插入图片描述

个人总结,仅供参考,欢迎加好友一起讨论

文章目录

  • 架构 - 知识点 - 面向对象开发方法
  • 面向对象开发方法
    • 面向对象的分析
      • 需求模型
      • 分析模型
    • 面向对象的设计
  • 用例模型关系、UML事务关系、类的关系

架构 - 知识点 - 面向对象开发方法

面向对象开发方法

  • 分析阶段

    工具:用例图、类图、包图

  • 设计阶段

    工具:序列图(时序图、顺序图)、协作图(通信图)、状态图、活动图、程序流程图、

    系统流程图

    设计原则:单一职责、开放-封闭、里式替换、依赖倒置、接口隔离、组合重用、迪米特原

    设计模式:单例、抽象工厂、原型、建造者、工厂方法、外观、桥接、组合、享元、代理、

    适配器、装饰器、策略、模板方法、观察者、迭代器、责任链、命令、备忘录、状态机、

    访问者、中介者、解释器

  • 相关工作模型

    喷泉模型

面向对象的分析

面向对象分析工作的两大核心建模(或者叫工作成果):需求模型和分析模型

OOA大致上遵循如下5个基本步骤:

  1. 确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
  2. 确定结构。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
  3. 确定主题。主题是指事物的总体概貌和总体分析模型。
  4. 确定属性。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
  5. 确定方法。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择的方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。

需求模型

需求模型:用例图建立,属于需求工作成果,为分析工作提供依据,利用用例及用例图表示需求。

构建用例模型的4个阶段:

  • 识别参与者
  • 合并需求获得用例
  • 细化用例描述
  • 调整用例模型(第4阶段,选择性阶段)

分析模型

分析模型:用类图建立,属于分析工作成果,利用包图及类图表示目标软件系统的总体框架结构。

建立分析模型的过程:

  • 定义概念类

    阅读和理解需求文档或用例描述

    筛选出名词或名词短语,建立初始类清单(候选类)

    将候选类分成三类,分别是显而易见的类、明显无意义的类和不确定类别的类

    舍弃明显无意义的类

    讨论不确定类别的类,直到将它们都合并或调整到其他两个类别,并进行相应的操作

  • 确定类之间的关系

    对确定的类进行理清这些类之间的关系,类之间的主要关系有关联、依赖、泛化、聚合、组合和实现等

  • 为类添加职责

    类的职责包括两个方面的内容,一个是类所维护的知识,即成员变量或属性;另一个是类能够执行的行为,即成员方法或责任

  • 建立交互图等

    多个对象的行为通常采用对象交互来表示,可以使用uml的顺序图、活动图、通信图等

面向对象的设计

面向对象的设计过程可以分为:

1 设计用例实现方案

UML的交互图(顺序图、协作图)适于用例实现方案的表示。该设计方法包含如下三个步骤:

(1)提取边界类、实体类和控制类

(2)构造交互图。UML交互图,以交互图作为用例的精确实现方案

(3)根据交互图精化类图

在UML交互图中,对每个类的对象都规定了它必须响应的消息以及类的对象之间的消息传递通道。

2 设计技术支撑方案

在许多软件项目中,应用功能往往都需要一组技术支撑机制为其提供服务。例如,数据持久存储服务、

安全控制服务、分布式事务管理服务、并发与同步控制服务和可靠消息服务等

3 设计用户界面

4 精化设计模型

之前的设计模型可能是粗粒度的,这一步对设计模型进行更加详细的设计。比如某些核心算法、处理过

程,使用程序流程图、系统流程图来进一步说明

用例模型关系、UML事务关系、类的关系

用例模型关系:

包含关系,扩展关系,泛化关系

UML事务关系:

依赖关系,关联关系,泛化关系,实现关系

类的关系:

依赖关系,关联关系,组合关系,聚合关系,泛化关系,实现关系

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多协议接入视频汇聚EasyCVR平台vs.RTSP安防视频EasyNVR平台:设备分组的区别

EasyCVR视频融合云平台则是旭帆科技TSINGSEE青犀旗下支持多协议接入的视频汇聚融合共享智能平台。平台可支持的接入协议比EasyNVR丰富,包括主流标准协议,有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海…

面试算法-164-K 个一组翻转链表

题目 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内…

MySQL事务与事务原理

目录 事务 事务的四大特性ACID 事务隔离级别 事务原理 存储引擎 四大特性的保证 MVCC 事务链 ReadView 事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。 start transaction; -- 开启事务 或者 b…

【CDN(Content Delivery Network)】

文章目录 CDN(Content Delivery Network)视频流化服务和CDN:上下文多媒体: 视频存储视频的流化服务:多媒体流化服务:DASH流式多媒体技术3: DASH CDN(Content Delivery Network) 视频流化服务和…

kafka学习记录

文章目录 windows单机版kafka搭建步骤主题的增删改查操作消息的生产与消费 Windows集群版kafka搭建步骤 prettyZoo 尚硅谷Kafka教程,2024新版kafka视频,零基础入门到实战 【尚硅谷】Kafka3.x教程(从入门到调优,深入全面&#xff0…

Electron+React 搭建桌面应用

创建应用程序 创建 Electron 应用 使用 Webpack 创建新的 Electron 应用程序: npm init electron-applatest my-new-app -- --templatewebpack 启动应用 npm start 设置 Webpack 配置 添加依赖包,确保可以正确使用 JSX 和其他 React 功能&#xff…

flask后端+网页前端:基于 socket.io 的双向通信和服务器部署

我想实现的效果是,我的服务器提供两个路由网址,网页A用于拍照、然后录音,把照片和录音传给服务器,服务器发射信号,通知另一个路由的网页B更新,把刚刚传来的照片和录音显示在网页上。 然后网页B用户根据这个…

每日一题(leetcode238):除自身以外数组的乘积--前缀和

不进阶是创建两个数组&#xff1a; class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int nnums.size();vector<int> left(n);vector<int> right(n);int mul1;for(int i0;i<n;i){mul*nums[i];left[i]mul;}mul1;for…

7 种实现 CSS 三角形的原理与方法 以及 三角形在网页设计中的作用

三角形在网页设计中不仅是图形设计的基本元素&#xff0c;更是实现视觉引导、空间构建、情绪传达、品牌塑造、性能优化以及创新表达的重要工具。其广泛应用和多功能性使其成为设计师手中不可或缺的设计语言组成部分。本文介绍了7种CSS实现三角形的方法。 CSS实现三角形主要有以…

Gradle 实战 - 命令行传递-ApiHug准备-工具篇-013

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

VIO第7讲:VINS初始化与VINS系统

VIO第7讲&#xff1a;VINS初始化与VINS系统 文章目录 VIO第7讲&#xff1a;VINS初始化与VINS系统1 VINS初始化1.1 视觉初始化1.1.1 relativePose1.1.2 GlobalSFM与BA优化1.1.3 visualInitialAlign 1.2 VisualIMUAlignment1.2.1 视觉和IMU之间的联系1.2.2 视觉IMU对齐流程① 旋转…

【C++庖丁解牛】底层为红黑树结构的关联式容器--哈希容器(unordered_map和unordered_set)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. unordered系列关联式容…

风电机组中仍然装有电动机吗?

风电机组中确实装有电动机。虽然风电机组的主要功能是将风能转换为电能&#xff0c;但在其启动和运行过程中&#xff0c;电动机发挥着不可或缺的作用。 在风电机组的启动阶段&#xff0c;电动机负责提供初始的启动动力。由于风力发电的特性&#xff0c;风电机组并不能在任意风…

乐趣Python——文件与数据:挥别乱糟糟的桌面

各位朋友们&#xff0c;今天我们要开启一场非凡的冒险——进入文件操作的世界&#xff01;你知道吗&#xff0c;在你的电脑里&#xff0c;有一个叫做“文件系统”的迷宫&#xff0c;里面藏着各种各样的文件和文件夹&#xff0c;它们就像是迷宫中的宝藏。但有时候&#xff0c;这…

C# WebSoket服务器

WebSocket是一种在单个TCP连接上进行全双工通信的协议WebSocket API也被W3C定为标准。 WebSocket使得客户端和服务器之间的数据交换变得更加简单, 允许服务端主动向客户端推送数据。在WebSocket API中, 浏览器和服务器只需要完成一次握手, 两者之间就直接可以创建持久性的连…

修复 Windows 上的 PyTorch 1.1 github 模型加载权限错误

问题: 在 Windows 计算机上执行示例 github 模型加载时,生成了 master.zip 文件的权限错误(请参阅下面的错误堆栈跟踪)。 错误堆栈跟踪: 在[4]中:en2de = torch.hub.load(pytorch/fairseq, transformer.wmt16.en-de, tokenizer=moses, bpe=subword_nmt) 下载:“https://…

spring Task 定时任务

导入maven坐标 spring-context&#xff08;已存在&#xff09; <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.34</version> <!-- 请根据需要选择合适的版本 -->…

高质量数据赋能大模型应用落地,景联文科技提供海量AI大模型数据

随着人工智能技术的迅猛进步&#xff0c;AI算法持续创新突破&#xff0c;模型的复杂度不断攀升&#xff0c;呈现出爆炸性的增长态势。数据的重要性愈发凸显&#xff0c;已然成为AI大模型竞争的核心要素。 Dimensional Research的全球调研报告显示&#xff0c;72%的受访者认为&a…

【vim 学习系列文章 20 -- a:mode 的值有哪些?】

请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 a:mode 的值有哪些?举例Vim 底部状态栏设置 a:mode 的值有哪些? 在 Vim 脚本语言中&#xff0c;a:mode 常常用于函数内部&#xff0c;以获取该函数被调用时 Vim 正处于的模式。它主常用于那些可以从不同模式下被调用的函数…

系统架构最佳实践 -- 构建高效教学平台系统

随着在线教育的迅速发展&#xff0c;教学平台系统成为了教育行业不可或缺的一部分。本文将总结构建高效教学平台系统的关键要素&#xff0c;并介绍最佳实践&#xff0c;以帮助教育机构和企业打造具有竞争力的教学平台系统。 引言&#xff1a; 随着信息技术的不断进步和普及&…