OOAD基本概念。OOAD笔记。

 

OOAD(Object Oriented Analysis and Design) 面向对象的分析和规划

定义OOA阶段

–建立对工作咨询题域的清晰视图
–列出体系要要完成的核心人物
–对问题域建立集体词汇表
–列出对此问题域的极品解决方案
是等如果化解之骨干问题是”what to do?”

定义OOD阶段

设计阶段主要解决以下问题
–如何化解现实的作业问题
–引入系统办事所用的支持元素
–定义系统的落实政策
斯等如果解决之中坚问题是”How to do?”


抽象(abstract)

  • 疏忽掉一个对象要实体的细节要只有关心其本质特征的历程
  • 简化特征的长河
  • 帮助用户与目标交互

封装(encapsulation)

  • 藏数据和兑现
  • 供公共艺术供用户调用功能
  • 靶的片种植视图
    —外部视图:对象能够开的办事
    —内部视图:对象如何做到工作

继承(inheritance)

  • 经过在的类型定义新类型的机制
  • 习以为常在简单独品类中是”is a”或”kind of”这样的涉及
  • 由此连续可实现代码用,另外继承也是多态的底蕴

多态(polymorphism)

  • 一个称号,多种形
  • 依据继承的多态
  • 调用方法时因所于目标的差选项不同的处理方式
  • 设Football–paly():使用下来成功
  • Basketball–play():使用手来好

关联(association)

  • 靶期间互相时的均等种引用方式
  • 当一个目标通过对任何一个对象的援去用另外一个目标的劳务还是操作时,两个目标期间便出了涉及
  • 如person使用computer,person与computer之间就有了关系关系

聚合(aggregation)

  • 波及关系之一模一样栽,一个靶变成其他一个对象的有些
  • 凡相同种关系比强之涉嫌
  • 每当点滴只目标中有”hasa”关系,一个靶作为其他一个对象的属性在,在表面对象为生产时,可由客户端指定同那个涉嫌的中间对象
  • 一旦汽车与轮胎,轮胎作为汽车的一个有的,它好跟汽车分别生育后装配起来使用,但汽车可以变换新轮胎,轮胎也得以推下来吃另外汽车使用.

组合(composition)

  • 当一个目标涵盖其他一个靶时,外部对象负责管理内部对象的生命周期的情事
  • 论及关系蒙不过扎眼的平种
  • 中间对象的开创由外部对象好主宰
  • 表对象非存时时,内部对象为无可知存
  • 如电视和显示器

内聚和耦合(cohesion & conpling)

内聚:度量一个看似独立完成有起工作之力量
耦合:度量系统内或者体系间因关系之复杂度
筹规范:增加内聚,减少耦合


域模型

  • 地面模型是面向对象的.在面向对象术语中,域模型呢称之
    为筹模型.域模型由以下内容组成:
    —有状态与表现的地方对象
    —域对象期间的涉及
    * 关联
    * 依赖
    * 聚集
    * 一般化(泛化)

习俗支付进程(瀑布模型)

缺陷:无法适应变化,”软件危机”,真实开支被,客户会经常修改需要,瀑布模型并无能够解决这个题材

OOAD的支出进程

  • 拿特别种讲为一些子类
  • 使用uml工具
  • 联合软件开发过程是一个迭代递增的开销进程

迭代,递增的种类生命周期

  • 种是迭代,递增的
  • 迭代是依生命周期中之一个手续
  • 迭代促成”递增”或者是合项目之增长
  • 万分类说明为子项目
  • 于每一个迭代的等级,应该做以下工作
    —选择并分析相关用例
    —根据所挑选架构进行规划
    —于组件层次实现统筹
    —以印证组件满足用例的需要
  • 当一不成迭代饱目标后,开发进入下一个迭代周期

迭代,递增生命周期的重要阶段

inceotion-start up
elaboration-refine
construction-implement
teansition-promotion
  • 各一个周期包含一次还是频繁迭代
  • 一个品级的收称之为”里程碑”

细化阶段

据阶段的增量集中让
—高层的剖析及统筹
—建立项目之根基框架
—监督主要的高风险因素
—制定及项目对象的创办计划


移交等

遵照等的增量集中为
—于用户发布产品
—beta测试
—执行性调优,用户培训和收


每一个流所富含工作流

各级一样次增量都出于5有些工作流组成
—要求跟初始分析
—分析
—设计
—实现
—测试
—每一样赖迭代执行工作流的深度不同
—早期的迭代在深度达到挂初始工作流,后期迭代于深度达蔽
晚工作流
—80/20原则


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

  • 下降资金
  • 造福更好地掩护项目进度
  • 便利团队的搭档开发
  • 方便适应用户需的动态变化

习目标:

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.设计阶段主要解决以下问题

   — 如何缓解实际的事体问题。

   — 引入系统工作所急需的支撑元素。

   — 定义系统的贯彻政策

  1. 是等如果缓解的骨干问题是“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原则

 

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

·降低本钱

·便于更好地保障项目进度

·便于团队的通力合作开发

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

 

 

相关文章