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

本文主要是介绍【新版】系统架构设计师 - 知识点 - 面向对象开发方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

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

文章目录

  • 架构 - 知识点 - 面向对象开发方法
  • 面向对象开发方法
    • 面向对象的分析
      • 需求模型
      • 分析模型
    • 面向对象的设计
  • 用例模型关系、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.chinasem.cn/article/902557

相关文章

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手