精华内容
下载资源
问答
  • OOAD

    2019-09-26 10:44:38
    有关OOAD的几个: OOAD:面向对象的设计和分析 OOA:分析 OOD:设计 OOP:面向对象编程 什么叫软件危机: 这种在计算机软件开发和维护过程中遇到的问题使开发者陷入困境,称之为软件危机 关键字: Associate 关联 ...

    有关OOAD的几个:

    OOAD:面向对象的设计和分析
    OOA:分析
    OOD:设计
    OOP:面向对象编程

    什么叫软件危机:

    这种在计算机软件开发和维护过程中遇到的问题使开发者陷入困境,称之为软件危机

    关键字:

    Associate 关联
    Generalize 范化
    Compose 组合
    Aggregate 聚合
    Realize 实现
    Dependency 依赖

    低耦合和高内聚:

    什么是耦合:一个类和另一个类之间产生了关系,就叫耦合

    什么是内聚:简单地说就是自己的事情自己去做,尽量不要和别的类产生耦合

    好的软件必须要是一个高内聚,低耦合的设计

    设计原则
    1、单一设计原则:一个类尽量做一个事情

    2、开闭原则:(采用接口或者抽象类的方式来实行开闭原则)开:对扩展开。闭:对修改闭,尽量在不修改源代码的基础上进行扩展的功能

    3、里氏替换原则:主要解决继承关系的(正方形不是长方形),子类可以扩展父类的方式,不要重写父类的实现方法。有了继承关系,子类完全可以替换父类出现的地方,但是如果影响了程序的结果,则违背了替换原则

    4、依赖倒转原则:要使用接口来进行编程(高层不能依赖与低层,两者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象)
    抽象:指的是抽象类和接口
    细节:指的是实现类

    5、接口隔离原则:一个接口不应该放太多的方法,应该根据其职责划分为多个接口(接口最小原则)

    6、组合/聚合原则:尽量多用组合聚合(一个类对另一个类的应用),少用继承

    7、迪米特原则:一个软件对其他实体的引用越少越好,简单理解就是(不要和陌生人说话),只和直接朋友联系(类的成员变量,方法中的参数,方法返回的类型,这些就叫做直接朋友);

    设计模式:

    模式一共有23种

    模式包含的要素:

    1、模式名称
    2、该模式所能解决的问题
    3、解决方案
    4、使用该模式后的效果(有优点也有缺点)

    展开全文
  • ooad

    2018-12-10 10:24:48
    OOAD(Object Oriented Analysis Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和...

    OOAD(Object Oriented Analysis Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为模式。

    展开全文
  • ooad 

    2009-06-15 14:31:07
    OOAD(Object Orient Analysis Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和...
    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、 围棋忌讳把棋下成"愚形",就是一大块棋坨在一起,行棋效率不高,对于对象就是紧耦合,一个复杂的对象负担太重,??围棋高手能够灵活运用各种定式和"手筋",看到两颗子,就能推测以后的种种演化,一个面向对象的设计高手可以灵活地运用各种设计模式,画几张图就能描绘未来的宏伟系统;
      3、 围棋有"金角银边草肚皮"的说法,在系统分析中首先根据系统边界来确定系统的主要功能和外部接口也是最有效的做法,俗称"用例驱动"。
      4、 围棋有"大场",强调大局观,系统分析也要求分析人员把握全局,从错综复杂的业务逻辑当中洞察最主要的矛盾。
      整个行棋的过程都是演进的、逐步精化的,每一阶段没有明显的区分。针对主要需求的设计可以首先完成,阶段性设计成果一旦确定,就可以转移到下一个"大场"。符合面向对象方法的"统一过程"理论。
      开局与需求分析
      下棋的两个人好比一个是分析师,一个是用户,开始谁也不知道谁想干什么,通过一问一答的方式明确需求。高手的对话只需要寥寥几子就知道对方的路数,有经验的分析师几个回合就对系统了然在胸。
      布局与架构设计
      至于布局选择"中国流"还是"韩国流",就相当于系统架构是DotNET还是J2EE,都是根据用户具体的需求和设计师的临场判断做出的。
      中盘与详细设计
      根据架构展开对象和类的设计,棋盘上渐渐浮现一块块活棋的模样。经过几轮不断的"精化"和"转换",大局已定。至于关子,就是编码阶段,交给程序员去做吧。
      最后,如果你能够从棋盘上看出一幅对象交互图来,那么恭喜你,你快走火入魔了。
      如果继续列举,可能还能发现不少相似之处,可是这样不免有生拉硬扯之嫌,也不是我写这篇文字的本意。下围棋与系统设计都是需要高超智慧的,其中蕴涵着丰富的方法论和哲理。经常听说,有围棋高手宁可输棋,也不愿下出形状难看的棋来,他们称之为艺术,看着棋盘上一块块活棋,简洁而高效,互通而互动,他们感觉到一种享受。而优秀的设计又何尝不是一种艺术呢,一个由对象构成的系统,每个对象都各司其职,消息在其中合理而流畅的传递着。你不觉得也是一种享受吗?
      而其中最为高妙的地方就在于"平衡"。高手对局,胜负往往只有半目,棋盘上双方棋子的分布和契合可以用完美来形容,这就达到了平衡的极至,此时输赢已经不重要,弈者已经得到了他所要的。
      平衡是一种美。
    
    展开全文
  • ooad_casus-源码

    2021-03-29 21:56:37
    ooad_casus
  • OOAD引论和用例模型

    2021-03-04 19:56:33
    1.1在OOAD中使用UML和模式OOAD的目标是设法生成一个高质量的软件‘蓝图’UML是用来绘制软件‘蓝图’的符号语言是一种思考和交流的工具模式(Pattern)是已命名的,针对一个问题的,经过反复验证的一种优化解决方案...
  • UML和OOAD快速入门

    2019-07-22 15:55:17
    资源名称:UML和OOAD快速入门 内容简介:本书是UML和OOAD的初学者指南。本书介绍了分析师必学的3种UML图:类图、用例图和序列图,以及3种最实用、最常用的OOAD概念和工具:事务模式、用例描述、BCE模式。通过贯穿...
  • OOAD与UML笔记

    2021-02-27 00:09:47
    UML基础介绍1.UML的定义统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节2.OOADOOAD是根据OO的方法学,对软件系统进行分析和设计...
  • ooad 学习笔记

    2014-07-19 13:17:10
    ooad 与 uml 学习笔记 圣思源
  • OOAD到SOAD

    2021-02-27 08:16:34
    IBM提出的SOA概念中有三个主要的抽象级别:操作、服务和业务流程。...下图是IBM的一篇技术文档《面向服务的分析与设计原理》所定义的一张OOAD、EA、BPM之间的关系图。图中横纵坐标的名称好像写反了,横坐标表示的
  • 西北农林科技大学OOAD实习西北农林科技大学OOAD实习西北农林科技大学OOAD实习西北农林科技大学OOAD实习
  • OOAD初学

    2017-08-15 11:22:02
    OOAD基本概念   学习目标: 1.理解与掌握面向对象的概念与方法。 2.使用UML。 3.完成面向对象的分析与设计工作。 4.了解OO的设计原则及一些典型的设计模式   什么是面向对象? 面向对象...

    OOAD基本概念

     

    学习目标:

    1.理解与掌握面向对象的概念与方法。

    2.使用UML。

    3.完成面向对象的分析与设计工作。

    4.了解OO的设计原则及一些典型的设计模式

     

    什么是面向对象?

    1. 面向对象(Object-Orientation, 简称OO)是一种系统建模技术。
    2. 面向对象编程(Object-Orientation Programming,简称OOP)是按照OO的方法学来开发程序的过程。
    3. 通过分析系统内对象的交互来描述或建模一个系统。
    4. 交互的对象最终以类的形式组织。
    5. OO的方法由三部分组成:过程,标识,规则。

     

    对象

    1. 是一个客观存在的、唯一的实体。
    2. 是面向对象编程过程中分析与解决问题的出发点与基础。
    3. 拥有自己的标识、数据与行为。
    4. 可以简单或复杂。
    5. 可以抽象或具体。
    6. 在OOP中是一个类的动态实例。
    7. 如Student—id,name,age(attribute)

    --setName,getName,countScore(methods)

    --new Student()

     

    1. 类是对象的模板。
    2. 对象通过类实例化产生。
    3. 一个类可以创建多个对象
     
       

     

     

    OOAD

    OOAD(Object Oriented Analysis and Design),面向对象的分析与设计。

    OOAD是根据OO的方法学,对软件系统进行分析与设计的过程。

    --OOA  分析阶段

    --OOD  设计阶段

     

    定义OOA阶段

    1. 分析阶段主要解决以下问题

    -- 建立针对业务问题域的清晰视图。

    -- 列出系统必须完成的核心任务。

    -- 针对问题域建立公共词汇表。

    -- 列出针对此问题的最佳解决方案。

    2.此阶段要解决的核心问题是“What to do?”

     

    定义OOD阶段

    1.设计阶段主要解决以下问题

       -- 如何解决具体的业务问题。

       -- 引入系统工作所需的支持元素。

       -- 定义系统的实现策略

    2. 此阶段要解决的核心问题是“How to do?”

     

    OOP的主要特征

    1 .抽象(abstract)

    2.封装(encapsulation)

    3.继承(inheritance)

    4.多态(polymorphism)

    5.关联(association)

    6.聚合(aggregation)

    7.组合(composition)

    8.内聚与耦合(cohesion & coupling)

     

    抽象

    1. 忽略掉一个对象或实体的细节而只关注其本质特征的过程。
    2. 简化功能与格式。
    3. 帮助用户与对象交互。

     

    封装

    1. 隐藏数据和实现。
    2. 提供公共方法供用户调用功能。
    3. 对象的两种视图。

    --外部视图:对象能做的工作。

       --内部视图:对象如何完成工作。

     

    继承

    1. 通过存在的类型定义新类型的机制。
    2. 通常在两个类型之间存在“is a”或“kind of”这样的关系。
    3. 通过继承可实现代码重用,另外继承也是多态的基础。

    如:苹果“is a”水果。

     

    多态

    1. 一个名称,多种形式。
    2. 基于继承的多态
    3. 调用方法时根据所给的对象的不同选择不同的处理方式。
    4. 如Football—play(): 使用脚来完成。

    Basketball—play(): 使用手来完成。

    5.给出一个具体的足球或篮球,用户自动知道该使用谁的方式去执行play().

     

    关联

    1. 对象之间交互时的一种引用方式。
    2. 当一个对象通过另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间便产生了关联
    3. 如:person使用computer,person与computer之间就存在了关联关系。

     

    聚合

    1. 关联关系的一种,一个对象成为另外一个对象的组成部分。
    2. 是一种关系较强的关联。
    3. 在两个对象之间存在“has a”这样的关系,一个对象作为另一个对象的属性存在,在外部被生产时,可由客户端指定与其关联的内部对象。
    4. 如汽车与轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其它汽车使用。

     

    组合

    1. 当一个对象包含另一个对象时,外部对象负责管理内部对象的生命同期的情况。
    2. 关联关系中最为强烈的一种。
    3. 内部的创建由外部对象自己控制。
    4. 如电视机与显示器。

     

    域模型

    1. 域模型是面向对象的。在面向对象术语中,域模型也可称为设计模型。域模型由以下内容组成:

    --具有状态和行为的域对象

    --域对象之间的关系。

    • ·关联
    • ·依赖
    • ·聚焦
    • ·一般化(泛化)

     

    域对象之间的关系

    • ·关联(Association)
    • ·依赖(Dependency)
    • ·聚焦(Aggregation)
    • ·一般化(Generalization)

     

    关联关系

     

    Customer  <---------------------- Order[customer:Customer]

    从Order到Customer的多对一单向关联

     

    Customer[orders:Set]-----------------àOrder

    从Customer到Order的一对多单向关联

     

    Customer[orders:Set]ß------------à Order[customer:Customer]

    从Customer到Order的一对多双向关联

     

    依赖关系

     

    BusinessService---------àCustomer

    BusinessService类依赖Customer类

    在BusinessService类中访问Customer类的方法, 并且构造Customer实例。

     

    聚集关系

    聚集指的是整体与部分之间的关系,在实体域对象之间很常见。

     

    Person{Set< Hand> hands}<--Hand

    Person类与Hand类之间的聚集关系

     

    一般化关系

    一般化关系指的是类之间的继承关系

     

    内聚与耦合

    1. 内聚:度量一个类独立完成某项工作的能力。
    2. 耦合:度量系统内或系统之间依赖关系的复杂度。
    3. 设计原则:增加内聚,减少耦合(高内聚,低耦合)。

     

    开发过程概述

    1.传统开发过程—瀑布模型

    2.统一软件开发过程(USDP)

     

    传统开发过程(瀑布模型)

    RequirementsàAnalysisàDesignàImplementationàTest

     

    OOAD的开发过程

    1. 大项目分解为一些子项目
    2. 使用UML工具
    3. 统一软件开发过程是一个迭代、递增的开发过程。

     

    迭代、递增的项目生命周期

    1. 项目是迭代、递增的。
    2. 迭代指生命周期中的一个步骤。
    3. 迭代导致“递增”或者是整个项目的增长。
    4. 大项目分解为子项目。
    5. 在每一个迭代的阶段,应该做以下工作

    --选择并分析相关用例

    --根据所选架构进行设计

    --在组件层次实现设计

    --验证组件满足用例的需要

    6.当一次迭代满足目标后,开发进入下一个迭代周期。

    Inception—start up

    Elaboration—refine

    Construction—implement

    Transition--promotion

    7.每一个周期包含一次或多次迭代

    8.一个阶段的结束称之为“里程碑”(milestone)

     

    初始化阶段

    该阶段的增量集中于:

    --项目启动

    --建立业务

    --定义业务问题域

    --找出主要的风险因素

    --定义项目需求的外延

    --创建业务问题域的相关说明文档

     

    细化阶段

    --高层的分析与设计

    --建立项目的基础框架

    --监督主要的风险因素

    --制订达成项目目标的创建计划

     

    构建阶段

    本阶段的增量集中于

    --代码及功能的实现

     

    移交阶段

    本阶段的增量集中于

    --向用户发布产品

    --beta测试

    --执行性能调优,用户培训和接收测试

     

    每一个阶段所含工作流

    ·每一次递增都由5部分工作流组成

    --需求与初始分析

    --分析

    --设计

    --实现

    --测试

    --每一次迭代执行工作流的深度不同

    --早期的迭代在深度上覆盖初始工作流,后期迭代在深度上覆盖后期工作流。

    --80/20原则

     

    迭代、递增生命周期的优势

    ·降低成本

    ·便于更好地维护项目进度

    ·便于团队的协作开发

    ·便于适应用户需求的动态变化

    展开全文
  • ooad设计模式 让我们分为以下几节来讨论OOAD: (Lets discuss OOAD bydividing into the below sections:) OOS 操作系统 OOA OOA OOD 面向对象 Thumbnails principles...
  • OOAD初识

    2017-04-20 00:10:03
    OOAD —> OOA OODOOA 面向对象分析 OO :软件工程技术,应用在软件开发的调研,分析,设计,编码,升级,扩展,测试等各个环节,并使用到大量的方 法,理论,原则,模式,工具,语言志在提高软件质量的综合技术。 ...
  • Applying UML ooad-sample.zip

    2021-04-18 17:46:52
    Applying UML ooad-sample.zip
  • ooad book

    2007-08-15 23:46:13
    Thinking in Patterns.pdf ooad java

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,370
精华内容 548
热门标签
关键字:

ooad