什么是 OOAD

OOAD设计原则精细版详细讲解 软件开发中,比较经典的开发步骤: 一、瀑布模型 1.可行性分析 2.需求分析 3.软件设计 4.编码 5.测试 6.交付产品 7.维护 弊端:瀑布模型存在比较严重的问题需求如果要发生变更只能在极早期越往后走,代价越大 二、迭代+瀑布模型 1.计划驱动----文档为主 2.敏捷开发—客户交流为主 需求分析、软件分析,编程 都有两种方式:面向对象,面向过程 采用面向对象的思维方式进行:分析需求(OOA... 阅读详情
  OOAD ( Object  Orient Analysis & Design, 面向对象的分析和设计 , 面向对象分析与设计 )是现代 软件 企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的 对象 和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以 面向对象 技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为 模式 。

      大师说:"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。"

  目前众多的软件项目有什么样的问题呢?早些时候上ERP的企业在企业发展的时候发现原有的ERP系统需要改进,可是要改进或者是更改现有的ERP系统,唯一的方法就是重新开发一个ERP系统。这对于企业来说是笔不小的支出。此时,落后的信息系统就成为制约企业发展的重要因素。是什么原因造成了这种情况呢?主要的因素是传统的系统分析是在假定需求不变的情况下进行的,这样可以把企业的资源配置到最优的程度。可是在现代瞬息万变的社会,一个企业固守旧有模式,势必会在竞争中处于劣势(因此现在也出现了"组件化"的ERP,这是题外话)。既然企业的需求是变化的、不稳定的,那么以变化的需求为基础建立起来的企业信息系统当然也就不稳定了。这时候,有个问题就产生了,前面我们已经说过,需求是项目的根本,既然需求都是不稳定的,那么何以建立起稳定的企业信息系统呢?

  要回答这个问题,首先要比较面向过程和面向对象的开发方法的差别,传统的面向过程的开发方法在前20年大行其道,为中国企业的信息化建设立下了汗马功劳。之所以称为面向过程,是因为开发的焦点集中于过程,开发者集中于以函数为核心的过程,例如前些年很多人试图编写一些通用转账函数来满足银行的需求。面向过程的开发语言包括:Cobol、Pascal、C及C的变形语言。面向对象的概念是在近10年才进入中国的,而它的思想至今也没有真正意义上得到普及。简单的说,面向对象就是面向世界,世界上的任何事物都是对象,因此面向对象是很自然的思想,是符合我们的思维习惯的。面向对象的语言包括了Smalltalk、C++、Java,还有Object Pascal,以及刚刚诞生的C#。

  需求是不稳定的,那么需求之中是不是没有稳定的东西呢?有的,就是对象。世界都是由对象组成的,而对象都是持久的,例如动物、植物已经有相当长的时间。虽然对象也在变化,动物,植物也在不断的进化。但对象在一个相当长的时期内都存在,动植物的存在时间肯定比任何一家企业长久。面向对象的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。这种开发的方法就被称为OOAD(Object Orient Analysis & Design 面向对象的分析和设计),而分析出的企业对象就被称为Common Business Object。

围棋与OOAD的几个相似点:

活棋与对象

  一块活棋至少有两个眼位,一个对象或类(有用的)至少要有一个属性和一个方法。眼位表明了这块棋存在的理由,属性和职责同样表明了一个对象存在的理由。

简单与复杂

  围棋构成简单,一黑一白,以简单构建复杂,与对象方法的理念相同。

棋盘与边界

  围棋的棋盘有边界,系统有系统边界。

定式与模式

  下围棋有定式,面向对象方法有分析模式和设计模式。都是个中高手们长期实践的经验结果。

  当然更主要的相似之处,应该在方法和过程上。围棋谁都会下,不就是在棋盘上圈地,看谁圈的多吗。但是高手与低手的水平却有天壤之别。例如:

1、 围棋忌讳把棋下成"愚形",就是一大块棋坨在一起,行棋效率不高,对于对象就是紧耦合,一个复杂的对象负担太重,同样效率不高;

2、 一个围棋高手能够灵活运用各种定式和"手筋",看到两颗子,就能推测以后的种种演化,一个面向对象的设计高手可以灵活地运用各种设计模式,画几张图就能描绘未来的宏伟系统;

3、 围棋有"金角银边草肚皮"的说法,在系统分析中首先根据系统边界来确定系统的主要功能和外部接口也是最有效的做法,俗称"用例驱动"。

4、 围棋有"大场",强调大局观,系统分析也要求分析人员把握全局,从错综复杂的业务逻辑当中洞察最主要的矛盾。

  整个行棋的过程都是演进的、逐步精化的,每一阶段没有明显的区分。针对主要需求的设计可以首先完成,阶段性设计成果一旦确定,就可以转移到下一个"大场"。符合面向对象方法的"统一过程"理论。

开局与需求分析

  下棋的两个人好比一个是分析师,一个是用户,开始谁也不知道谁想干什么,通过一问一答的方式明确需求。高手的对话只需要寥寥几子就知道对方的路数,有经验的分析师几个回合就对系统了然在胸。

布局与架构设计

  至于布局选择"中国流"还是"韩国流",就相当于系统架构是DotNET还是J2EE,都是根据用户具体的需求和设计师的临场判断做出的。

中盘与详细设计

  根据架构展开对象和类的设计,棋盘上渐渐浮现一块块活棋的模样。经过几轮不断的"精化"和"转换",大局已定。至于关子,就是编码阶段,交给程序员去做吧。

  最后,如果你能够从棋盘上看出一幅对象交互图来,那么恭喜你,你快走火入魔了。


  如果继续列举,可能还能发现不少相似之处,可是这样不免有生拉硬扯之嫌,也不是我写这篇文字的本意。下围棋与系统设计都是需要高超智慧的,其中蕴涵着丰富的方法论和哲理。经常听说,有围棋高手宁可输棋,也不愿下出形状难看的棋来,他们称之为艺术,看着棋盘上一块块活棋,简洁而高效,互通而互动,他们感觉到一种享受。而优秀的设计又何尝不是一种艺术呢,一个由对象构成的系统,每个对象都各司其职,消息在其中合理而流畅的传递着。你不觉得也是一种享受吗?

  而其中最为高妙的地方就在于"平衡"。高手对局,胜负往往只有半目,棋盘上双方棋子的分布和契合可以用完美来形容,这就达到了平衡的极至,此时输赢已经不重要,弈者已经得到了他所要的。

  平衡是一种美。

华农OOAD期末复习整理资料 华农OOAD期末复习(个人整理结合老师发的资料) 课件的题目整理 填空 模型是对复杂事务的简化。 每对参与者/用况对应一个边界类。 一个控制类对应一个use case。 use case对应的分析类包括边界类、控制类、实体类。 用例模型包括参与者、用例、用例图、系统边界、用例描述等。 构成用况图的模型元素包括参与者、用况、用况之间的关系以及参与者与用况之间的关系。 用况交互过程描述形式有:事件流、缩进的伪代码、表格。 参与者Actor与用况Use Case之间的关系是关联关系。 用况是对参与者使用系统的一项 阅读详情

相关推荐

OOAD的概念

抽象是忽略不相关的细节,专注于对象的关键特性。抽象通过类和接口来实现。面向对象分析与设计(OOAD)是一种强大的软件开发方法,通过对象、类及其关系来建模和设计系统。OOAD 的主要步骤包括面向对象分析(OOA)和面向对象设计(OOD),利用 UML 工具来可视化和描述系统的结构和行为。此外,设计模式作为面向对象设计中的最佳实践,可以提高系统的可维护性、可扩展性和重用性。掌握 OOAD 和设计模式,有助于开发高质量的、易维护的软件系统。

喜欢猪猪 1254

面向对象的分析与设计

面向对象的分析与设计 1.面向对象 是一种思维方式 UML 统一建模语言,是一种建模工具,表达设计思想的工具 2.软件功能是如何完成的 类 定义了对象群体的逻辑结构,包括属性和操作 系统运行时,类作为产生对象的模板,在物理层面是不存在的 对象 系统运行时必须为每一个需要的对象分配内存、保存数据 对象存在于物理层面,每个对象都有自己的数据空间(内存) 所有的对象共享同一块代码空间 消息 对象之间的一种交流手段 就像我们日常工作中的各种交流手段 3.模型的定义 建模 m

紫青宝剑的博客 7756

从实验室到晶圆厂:一文看懂二维半导体(如MoS2)的CVD生长与晶体管制造挑战

本文深入探讨了二维半导体(如MoS2)从实验室研究到晶圆厂量产的CVD生长与晶体管制造关键技术挑战。重点分析了晶圆级二维半导体的CVD生长工艺优化、晶体管制造的四大界面工程难题,以及掺杂与集成的产业化解决方案,为二维半导体在集成电路领域的应用提供技术参考。

weixin_42651748的博客 471

面向对象分析与设计(OOAD)期末复习 知识点总结

OOAD 参考书籍:《Applying UML and Patterns 3rd》 文章目录OOADIntroductionThinking in OOOOAD ReviewUP ProcessOp ContractGRASP —— 抽象的设计原则(理念)Rule1: CreatorRule2: Information ExpertRule3: Low CouplingRule4: High CohesionRule5: ControllerRule6: PolymorphismRule7: Pure Fa

Rapunzel_0616的博客 4877

vins-mono前端详解(2)——imu预积分

本篇文章详细讲解了vins-mono中imu预积分内容,包括复杂的公式推导。

weixin_44587828的博客 1192

第7篇-SAP MM模块-JIT应用实战解析,从计划协议到JIT供应的关键配置与流程

本文深入解析SAP MM模块中的JIT(Just In Time)供应模式,从计划协议到JIT供应的关键配置与流程。通过动态计划行管理、需求聚合与分解等核心功能,实现精确数量、时间和地点的物料供应。文章详细介绍了主数据准备、计划协议配置、MRP参数精调及EDI集成方案,并提供了实施中的典型问题与解决方案,助力企业优化供应链管理。

weixin_30363509的博客 947

【软件基础】面向对象分析与设计思想总结

面向对象的本质:通过对象之间的协作完成功能。面向对象的特点:采用封装、继承、多态和抽象等设计方法。面向过程和面向对象开发中,在分析问题面向过程:拿到问题分析问题如何解决的步骤;面向对象:拿到问题分析问题中有哪些类,类的属性与方法,类与类之间的关系。面向对象遵循:合适的方法应该出现在合适的类中。

杰西笔记 5082

实验记录 | 如何拆分scATAC-seq数据成为单个细胞?(1、解决barcode问题)

在师兄的帮助下,我得到了师兄筛选过的细胞的barcode的数据,那么接下来我想根据这些barcode,将来源于同一个barcode的细胞的reads提取出来,这个还是一个蛮有技术含量的事情的,因为上次我有使用过perl的脚本进行提取,最后的实验结果很糟糕,故而这件事情一直搁置到现在,没有继续去做(我的脚本的编写能力还是有待于加强,可能是刚刚喝了奶茶,和老妈弟弟聊了好多闲话,很开心,觉得在某种程度上休息够了,对于工作也是一种非常快乐和积极的状态了)。 0。前期失败尝试回顾 ...

weixin_40640700的博客 1887

day 1

学习目标: 1.理解与掌握面向对象的概念与方法。 2.使用UML。 3.完成面向对象的分析与设计工作。 4.了解OO的设计原则及一些典型的设计模式   什么是面向对象? 面向对象(Object-Orientation, 简称OO)是一种系统建模技术。面向对象编程(Object-Orientation Programming,简称OOP)是按照OO的方法学来

milkboyg的专栏 570

Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备

Ubuntu系统下MRIcroN、FSL6.05、Freesurfer7.1.1、MRtrix3、AFNI、ANTs的安装详解一、安装MRIcroN二、 FSL6.0.5完整安装与FSLeyes等Not Found修复Anaconda与虚拟环境(所有操作均在root下)获取最新版Anaconda3安装Anaconda3配置所有用户可用去掉恼人的base创建虚拟环境FSL与FSLeyes安装(所有操作均在root下)下载FSL安装FSL添加环境变量到/etc/bash.bashrc末尾 (ubuntu)或者

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 6085

SXU—软件测试方法和技术-朱少民-第四部分 软件测试流程和规范-附考点

软件测试方法和技术-朱少民-第四章 软件测试流程和规范—这本书最后一部分的考点整理,考点分析

weixin_63597914的博客 1752

OOAD梳理

明确几个基本概念:1. 对象     对象(Object),广义上指在内存中一段有意义的区域,在显示支持面向对象的编程语言中,指在内存中装载的类的实例,具有相关的成员变量和成员方法。即对象是类的实例,也就是对象是通过类的实例化产生。2. 类     类(Class),描述具有一类对象的行为和状态,是对现实生活中一类具有共同特性的事物的抽象,是对象的模板。3. 面向对象     面向对象(Objec...

dongzibin的专栏 1652

极智AI | 谈谈为什么卷积加速更喜欢 NHWC Layout

本文主要讨论一下为什么卷积加速更加喜欢 NHWC 的数据排布。

极智视界 2970

OOAD复习笔记

OOAD学习目标:1.A critical,fundamental ability in OOAD is to skillfully assign responsibilities to software components.(面向对象分析设计种至关重要的的能力是熟练地为软件部件分配职能)2)GRASP patterns ,nine fundamental priciples in object...

LHF_debug的博客 2332

SAP ABAP Web Service 的创建与消费:保姆级教程

SOAP 定义了消息的格式和传输规则,使得 Web Service 可以在不同的操作系统和网络环境中通信。通过 WSDL,服务的提供者可以明确地定义服务的功能,而服务的使用者则可以通过解析 WSDL 文件,了解如何正确地调用该服务。它封装了与 Web 服务通信的所有复杂性,如消息格式的构建、传输协议的选择、请求的发送和响应的处理等。除了本文介绍的 ABAP 编程语言之外,我们还可以通过 Java,Node.js,C++,C#,Python 等其他编程语言来消费本文创建的 ABAP Web Service.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 713

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

从OOAD到SOAD——by Vega

IBM提出的SOA概念中有三个主要的抽象级别:操作、服务和业务流程。l操作:业务模型中的一个基本单元。比如说一个文档服务,那么打开、编辑、保存等就是这个服务里面的一系列操作。l服务:具有相同目的的一些操作的归类。例如打开文档、编辑文档、保存文档就可以归类为文档服务;而打开图片、编辑图片和保存图片就可以归类为图片服务。l业务流程:为完成一个业务目标而进行的一组活动。它规定一批服务的执行顺

SOA contest interest group 3931

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OOAD学习笔记

 2004-11-4        星期四      晴OOAD(Object-Oriented Analysis and Design)介绍1.  OOAD方法论的定义答:1) 一种面向对象的系统建模技术;    2) 将系统描述为许多相互作用的有关系对象;    3) 系统中相互作用的对象被组织成类;    4) OO方法论由以下三部分组成:       . 一个过程       .

gonghb的专栏 987

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OOAD

第一次用新本子写字·感觉就是总是能抓紧时间的,时间的分配又紧凑起来。不知道能持续多久。这门课在大四上学期上的。先引用我自己对它的一个comment:“其实并不想学软件有关的东西,因为我研究生的方向偏科学一些只是想从中找到些一般思维弱点,以及可能的的改进方式比如,如果我不学ooad和这本书,那么写出来的大程序,设计的类是否很有可能不规范,职责分配很可能不合理,写到后来自然就乱得无法继续了

shendiaoleon的专栏 505

OOAD与UML

1.OOAD(Object Oriented Analysis and Design)面向对象分析和设计 --OOA 分析阶段,主要解决以下问题:   --建立对业务问题域的清晰视图   --列出必须要完成的核心业务   --针对问题域建立公共词汇表   --列出针对此问题域的最佳解决方案   --要解决的核心问题:What to do --OOD 设计阶段,主要解决以下问...

afan3862的博客 1105

OOAD思想&&ORACLE

OOAD思想 1继承关系:指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系 2关联关系 关联关系是对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联,关系是使用实例变量实现的,比如公司和职员 聚合关系是关联关系的一种,他...

智睿的博客 631

[OOAD]是什么?

第一次课,留下个脚印

峰云四起 1556
上一篇: 什么是 OOAD
下一篇: 单高斯背景建模
willian0621
博客等级 码龄17年 50粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值