一篇搞懂OOA/OOD/OOP区别

文章介绍了软件开发中面向对象的三个重要阶段:OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)。OOA将现实需求转化为领域模型,OOD则将领域模型转化为逻辑架构和类图,OOP则是将设计转换为实际代码。这三个阶段在实际工作中往往相互交织进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在准备软考,看到第一章需求部分,一顿懵逼。

OOA什么鬼,OOD又是什么鬼,OOP我去这个又是什么鬼,都是面向对象怎么就出现了三个呢,我咋感觉对此一无所知,迷失在OO中。如果你跟曾经我一样的迷惑,请往后看。没有迷惑请移步其他文章。

一般我们我们接到产品经理的需求后,开发阶段分如何几个步骤

  1. 可行性预研阶段,此阶段评估需求是否合理,能否实现。
  2. OOA阶段,此阶段分析用例,定义领域模型。
  3. OOD阶段,此阶段定义类图,类之间的交互图(时序图等等)。
  4. OOP阶段,根据OOD设计的类图,类之间的交互图输出代码。

可行性预研阶段,我们不做说明了, 接下来具体说明OOA,OOD,OOP。

OOA

OOA全拼为Object-Oriented Analysis,面向对象分析。此过程是把现实的需求转义为领域模型(Domain Model)问题,以及输出领域模型(Domain Model)。第一步是根据需求输出用例,用例为一个一个场景,用户与App交互的场景。第二步是根据用例输出领域模型(Domian Model),领域模型(Domain Model)也就是我们常说的业务逻辑。会输出概念类,概念类的交互的关系,这部分概念类一般直接反应现实的事物。

OOD

OOD全拼为Object-Oriented Design,面向对象设计。此过程是把我们的领域模型转为逻辑架构,类图,类之间的关系。 如何分层,如何分包,如何保证高内聚低耦合都是这部分要考虑的问题。这个阶段输出类图,时序图,包图等等。

OOP

OOP全程为Object-oriented programming,面向对象编程。是把我们OOD的设计结果转为代码。

总结

OOA,OOD,OOP是针对现实的需求最终输出产品过程。在现实中OOA,OOD并没有显著的区分。OOA,OOD,OOP有时是不断的交替进行。

作者:快马夜小刀
链接:https://juejin.cn/post/6890063876163911693
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

ooa(object oriented analysis)面向对象分析 ood(object oriented design)面向对象设计 如所熟知,面向对象作为一种程序设计技术最早于60年代后期提出,用于Simula的应用程 序开发。到了70年代,面向对象成为Smalltalk语言的一个重要特征。当时,面向对象技术主要 用于程序设计。进入90年代,人们的注意力逐渐从程序设计转向系统分析设计,用对象的观 点来认识现实世界、设计问题的可行解,随之也就出现了许多OOAOOD方法。但这些方法 还不很成熟,在OOAOOD的边界划分上也存在着争议。如:有人认为面向对象软件开发 过程可以分为面向对象分析、面向对象设计面向对象程序设计三个阶段;有人认为分析设 计可以交叉进行不必做严格区分;还有人沿用传统方法进行分析设计,用面向对象程序设计 语言来实现系统。O OA/OOD的一些较有代表性的工作有Gray.Booch的OOAD方法,Coad&Yourdon的 OOAOOD方法,Shlaer&Mellor的OOA方法,Rumbaugh的OOAD方法等。不同的方法 体系都分别体现了人们对OOAOOD,以及面向对象软件开发过程的不同认识。本文的主要 目的就是,试图通过对现有OOAOOD方法的共性进行纵观分析,弄清二者之间的边界问 题,评析从OOAOOD过渡的难易,并讨论实现这种过渡所涉及的主要工作。 ooa:分析阶段所做的主要工作是理解问题需求构模,将现实世界中的问题映射到问题域。在该 阶段,要明确用户提出了哪些功能要求,为完成这些要求,系统应有哪些构件,采用什么样的结构,并写出详细的需求规约。OOA中引入了许多面向对象的概念原则,如,对象、属性、服务 、继承、封装等,并利用这些概念原则来分析、认识理解客观世界,将客观世界中的实体抽 象为问题域中的对象,即问题对象,分析客观世界中问题的结构,明确为完成系统功能,对象间 应具有的联系相互作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值