了解面向对象方法发展历程

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【6月更文挑战第26天】本文介绍了几个面向对象发展中出现的典型方法。**Coad/Yourdon方法** **Booch方法** **OMT** **OOSE**。这四种方法都贡献于现代面向对象软件开发的。

简介

本文主要介绍以下几个典型方法。
Coad/Yourdon方法融合了面向对象分析(OOA)和设计(OOD),以一致的概念描绘数据流图(DFD),用平行线表示数据存储,椭圆表示循环。
Booch方法始于1992年,包括静态(类图、对象图)、动态(状态图、顺序图)和物理模型,影响了统一过程(RUP)并被UML吸收。
OMT(对象建模技术)利用对象模型、动态模型和功能模型(如DFD)进行建模,分为分析到实现的阶段。
OOSE是Ivar Jacobson的方法,用用例替代DFD,关注需求到测试的全过程。这四种方法都贡献于现代面向对象软件开发的图形表示和流程。

treeoflife6.png

1 Coad/Yourdon方法:结合OOA和OOD

Yourdon/Coad方法包括用于创建数据流图和对象状态图的组件。

对应的DFD表示法的一些独特属性包括:

数据存储表示为两条平行的水平线。
进程由圆圈表示

数据流图显示系统的信息传输和处理步骤。一般概念是一种描述系统中如何发生输入、进一步进程和用完内容的方法。

image.png

DFD的目标是实现开发人员和用户之间的理解。数据流图使用其他结构化系统分析方法进行维护。

Coad/Yourdon方法:特别强调OOA和OOD采用完全一致的概念和表示法,使得分析和设计之间不需要表示的转换。

该方法使用独特的方法表示数据流的过程,比如使用两个平行线表示数据存储。

image.png

使用封闭矩形椭圆表示循环

image.png

例子:
image.png

2 Booch(布奇)方法:

Booch方法是一种1992年推出的面向对象的软件开发方法。
它由一种对象建模语言,一个迭代的面向对象开发过程和一组推荐的实践组成

其中开发模型包括静态,动态模型和物理模型用来描述系统的构成和结构。

静态分为逻辑模型类图,对象图。
动态模型包括状态图和顺序图,描述对象间状态变化和交互过程。
物理模型包括 模块图,进程图。

类图:展示对象关联和信息。
顺序图:展示对象之间的交互信息,对象的循环,选择复杂交互 使用 ? 表示。

Booch方法的方法论方面已被纳入几种方法和过程,主要是统一过程(RUP).

布奇方法的符号已经被UML逐步取代。UML具有来自Booch方法的图形元素以及来自对象建模技术(OMT)和面向对象的软件工程(OOSE)的元素。

image.png

3 OMT(伦博)方法:

Rumbaugh方法也称为OMT(对象建模技术),是一种用于开发可管理的面向对象系统和主机面向对象编程的方法。目的是允许轻松表达类属性、方法、继承和关联。OMT在现实世界中用于软件建模和设计

数据流图(DFD)表示通过系统的信息流。DFD迅速成为可视化软件系统流程中涉及的主要步骤和数据的一种流行方式。

它们用于显示软件系统中的数据流,尽管理论上它们可以应用于业务流程建模。DFD 对于记录主要数据流或探索数据流方面的新高级设计非常有用。

数据流图(DFD)是一种表示流程或系统(通常是信息系统)数据流的方法,例如:

A 数据来自何处? B 数据去哪里? C 数据如何存储?

OMT(伦博)方法使用了建模的思想,采用对象模型(对象图),动态模型(状态图)和功能模型数据流图(DFD)建立一个实际的应用模型。

OMT包括四个阶段:

分析,系统设计,对象设计,实现

此外,OMT总是分为三个独立的部分:

对象模型,动态模型,功能模型。

image.png

4 OOSE(面对对象的软件工程):

雅各布森方法,也称为面向对象的软件工程(OOSE)甚至Objectory,是一种用于规划,设计和实现面向对象软件的方法。

该方法分为五个部分:需求、分析、设计、实现和测试模型。

面向对象的软件工程(OOSE)是由Ivar Jacobson于1992年开发的对象建模语言和方法。
OOSE通常开发复杂的系统。

将用例取代DFD进行需求分析和建立功能模型。

image.png

目录
相关文章
|
9月前
|
消息中间件 架构师 安全
重新认识架构 — 不只是软件设计
通常情况下,人们对架构的认知仅限于在软件工程中的定义:架构主要指软件系统的结构设计,比如常见的 SOLID 准则、DDD 架构。一个良好的软件架构可以帮助团队更有效地进行软件开发,降低维护成本,提高系统的可扩展性和可维护性。这里的架构定义有更多元化的理解:架构不仅是对软件开发设计和流程规范的定义,也包含了参与架构设计的人员、以及项目过程中和架构有关的活动,都可以称为架构。 从广义角度来理解架构,意味着更全面的思考和新的融合。
30 0
|
9月前
|
消息中间件 架构师 安全
重新认识架构—不只是软件设计
结合自身经历阐述架构师定位、架构活动如何保障企业、组织实现商业价值。
重新认识架构—不只是软件设计
|
8月前
|
存储 供应链 开发者
B/S 架构诞生的历史背景
B/S 架构诞生的历史背景
|
10月前
|
存储 算法 程序员
25【软件基础】面向对象分析与设计思想总结
`面向对象的本质`:通过对象之间的协作完成功能。
511 0
|
设计模式 消息中间件 Dubbo
设计模式 - 漫谈软件编程背后的系统化思维
设计模式 - 漫谈软件编程背后的系统化思维
90 0
|
前端开发 JavaScript Java
软件架构编年史:编程语言的演化
软件架构编年史:编程语言的演化
软件架构编年史:编程语言的演化
|
存储 设计模式 前端开发
软件架构编年史
软件架构编年史
|
架构师 前端开发 程序员
为了成为一名架构师必须稳扎稳打,软件架构设计的基本概念
软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构 师,都是我们职业路上所追求的。
|
机器人 5G 芯片
带你读《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.6
带你读《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.6
带你读《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.6
|
运维 5G 网络架构
带你读《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.5(二)
《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.5(二)
带你读《果壳中的5G:新网络时代的技术内涵与商业思维》第一章从 0 到 5 的演化与逻辑1.5(二)