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

在这里插入图片描述

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

文章目录

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

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

面向对象开发方法

  • 分析阶段

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

  • 设计阶段

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

    系统流程图

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

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

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

    访问者、中介者、解释器

  • 相关工作模型

    喷泉模型

面向对象的分析

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

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

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

需求模型

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

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

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

分析模型

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

建立分析模型的过程:

  • 定义概念类

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

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

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

    舍弃明显无意义的类

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

  • 确定类之间的关系

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

  • 为类添加职责

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

  • 建立交互图等

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

面向对象的设计

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

1 设计用例实现方案

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

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

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

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

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

2 设计技术支撑方案

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

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

3 设计用户界面

4 精化设计模型

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

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

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

用例模型关系:

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

UML事务关系:

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

类的关系:

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

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

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

相关文章

<-泛型->

1.泛型的概念 所谓泛型,就是允许在定义类, 接口 时通过一个"标识"表示类中某个属性的类型或者某个方法的返回值或形参类型.这个类型参数将在使用时确定. 2.举例 (1). 集合类在设计阶段/声明阶段不能确定这个容器到底存的是什么对象,所以在JDK…

微信小程序制作圆形进度条

微信小程序制作圆形进度条 1. 建立文件夹 选择一个目录建立一个文件夹,比如 mycircle 吧,另外把对应 page 的相关文件都建立出来,包括 js,json,wxml 和 wxcc。 2. 开启元件属性 在 mycircle.json中开启 component 属…

Vscode远程连接遇到的一些问题

问题: 由于之前报错图片没有保存,所以只有文字描述一下: 1、无法与192.168.8.210建立连接:Vscode服务器启动失败 2、无法与192.168.8.210建立连接:无法安装Vscode服务器 解决方法: 方法一&#xff1a…

Vue输入框/选择框新增状态可编辑,修改状态不可编辑

新增和编辑同页面,新增没有传参,修改状态不可编辑。 在这里我用选择框举例。 思路: 在新增/修改页,先判断是哪种状态,再根据状态不同,选择是否禁用某个选择框。 判断是否有传参,有传参即为修…

baichuan 2模型使用的注意事项

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

51蓝桥杯之DS18B20

DS18B20 基础知识 代码流程实现 将官方提供例程文件添加到工程中 添加onewire.c文件到keil4里面 一些代码补充知识 代码 #include "reg52.h" #include "onewire.h" #include "absacc.h" unsigned char num[10]{0xc0,0xf9,0xa4,0xb0,0x99,…

Unity WebGL Release-Notes

🌈WebGL Release-Notes 收集的最近几年 Unity各个版本中 WebGL的更新内容 💡WebGL Release-Notes 2023 💡WebGL Release-Notes 2022 💡WebGL Release-Notes 2021

随机链表的复制 - LeetCode 热题 32

大家好!我是曾续缘💤 今天是《LeetCode 热题 100》系列 发车第 32 天 链表第 11 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 随机链表的复制 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random &#xff…

TPS70401系列双输出、低压差线性稳压器(LDO)的数据手册

这份文件是关于德州仪器(Texas Instruments)公司生产的TPS70401系列双输出、低压差线性稳压器(LDO)的数据手册。这些稳压器专为分压供电系统设计,具有集成的系统电压监控器(SVS)功能,适用于需要高电流输出和低静态电流的应用。 以下是这些低压差线性稳压器的核心特点和…

(四)PostgreSQL的psql命令

PostgreSQL的psql命令 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777psql 是 PostgreSQL 数据库的命令行界面…

NASA数据集——ACCLIP WB-57 Aircraft 飞机合并数据

ACCLIP WB-57 Aircraft Merge Data ACCLIP WB-57 飞机合并数据 简介 ACCLIP_Merge_WB57-Aircraft_Data 是在亚洲夏季季风化学和气候影响项目(ACCLIP)期间从 WB-57 飞机上收集的各种现场仪器测量数据预先生成的合并文件。该产品的数据收集工作已经完成。…

【leetcode面试经典150题】28.盛最多水的容器(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

Python Ecosystem之Pandas使用记录

高亮颜色说明:突出重点 个人觉得,:待核准个人观点是否有误 高亮颜色超链接 文章目录 读写excel文件操作问题SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. 二级标题待补充待补充 读写excel文…

设计模式之结构型模式---代理模式

代理模式是一种结构型设计模式,它为目标对象提供一种代理,以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,客户端通过代理类与目标对象进行交互,而不是直接与目标对象进行交互。 代理模式的应用场景非常…

漫步密度森林:借助HDBSCAN实现高效数据聚类

文章来源:navigating-the-density-forest-harnessing-hdbscan-for-advanced-data-clustering 2024 年 4 月 9 日 介绍 在数据科学中,聚类算法是揭示数据集内在结构的重要工具。在这些工具中,基于分层密度的噪声应用空间聚类 (HDBSCAN) 作为…

一篇文章深入学习Java的AQS(AbstractQueuedSynchronizer)

深入理解AQS的设计和工作机制 Oracle官方文档中的AbstractQueuedSynchronizer部分讲解 AbstractQueuedSynchronizer(简称AQS)是Java并发包中的一个基础框架,它为实现依赖单个原子变量来表示状态的同步器提供了可靠的基础。这个框架被广泛用…

【leetcode面试经典150题】48. 汇总区间(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

【C++学习】C++11新特性(第一节)

文章目录 ♫一.文章前言♫二.C11新特性♫一.统一的列表初始化♫二.std::initializer_list♫三.声明♫四.decltype关键字♫五.nullptr♫六.新增加容器---静态数组array、forward_list以及unordered系列♫6.1unordered_map与unoredered_set♫6.2array♫6.3 forward_list&#xff…

【Altium Designer 20 笔记】隐藏PCB上的信号线(连接线)

使用网络类隐藏特定类型的信号线 如果你想要隐藏特定类型的信号线(例如电源类),你可以首先创建一个网络类。使用快捷键DC调出对象类浏览器,在Net Classes中右击添加类,并重命名(例如为“Power”&#xff0…

使用CDN服务对网页加载速度有何影响,如何选择合适的CDN提供商

使用CDN服务对网页加载速度有显著的正面影响。CDN(内容分发网络)通过将内容缓存到全球各地的服务器节点上,使得用户可以从地理位置上最接近的节点获取数据,从而减少了数据传输的时间和延迟,加快了网页的加载速度。此外…