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

本文涉及的产品
性能测试 PTS,5000VUM额度
可观测链路 OpenTelemetry 版,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 【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

目录
相关文章
|
6月前
|
敏捷开发 持续交付 项目管理
【软件工程】走近演化过程模型:软件开发的不断进化之路
【软件工程】走近演化过程模型:软件开发的不断进化之路
|
6月前
|
C++ 算法 Rust
从C++看编程语言发展脉络
【5月更文挑战第1天】自1979年以来C++历经40年发展,以其复杂语法影响了Go、Rust和Zig等语言。 回顾C++11,引入了范围for循环、Lambda表达式、自动类型推导、统一初始化、删除和默认函数、nullptr、委托构造器、右值引用、新标准库如线程支持及算法等。C++持续演进,保持其在编程语言中的影响力。
110 0
从C++看编程语言发展脉络
|
6月前
|
开发框架 监控 测试技术
【软件工程】走进瀑布模型:传统软件开发的经典之路
【软件工程】走进瀑布模型:传统软件开发的经典之路
|
存储 供应链 开发者
B/S 架构诞生的历史背景
B/S 架构诞生的历史背景
|
存储 算法 程序员
25【软件基础】面向对象分析与设计思想总结
`面向对象的本质`:通过对象之间的协作完成功能。
637 0
|
架构师 UED
【设计思维框架】框架 :为现代企业重新设想的设计思维(上)
【设计思维框架】框架 :为现代企业重新设想的设计思维
|
安全 数据可视化 测试技术
【设计思维框架】框架 :为现代企业重新设想的设计思维(下)
【设计思维框架】框架 :为现代企业重新设想的设计思维
|
前端开发 JavaScript Java
软件架构编年史:编程语言的演化
软件架构编年史:编程语言的演化
软件架构编年史:编程语言的演化
|
架构师 前端开发 程序员
为了成为一名架构师必须稳扎稳打,软件架构设计的基本概念
软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构 师,都是我们职业路上所追求的。
面向对象——模块的延续与发展
面向对象——模块的延续与发展
85 0