OOAD与UMLOOAD基本概念。

UML基础介绍

1.UML的定义

联建筑模语言(UML)是同等栽图形化的语言,它可以帮我们以OOAD过程中标识元素、构建模块、分析过程并而经过文档说明系统中之主要细节

2.OOAD

OOAD是冲OO的方法学,对软件系统开展分析和计划的过程

—— OOA 分析阶段

—— OOD 设计阶段

3.面向对象

面向对象( Object-Orientation ,简称OO)是同一种植系统建模技术

面向对象编程( Object-Orientation
Programming,简称OOP)是本OO的章程学来开顺序的经过通过分析系统内对象的互动来叙述还是建模一个系相互的目标最终以类的样式组织

OO的措施由三部分构成

— 过程

— 标识

— 规则

4.OOP的基本点特点

抽象(abstract)

  • 封装(encapsulation)
  • 继承(inheritance)
  • 多态(polymorphism)
  • 关联(association)
  • 聚合(aggregation)
  • 组合(composition)
  • 内聚及耦合(cohesion & coupling)

 

地方对象期间的涉

1.关联(Association)

图片 1

2.依赖(Dependency)

图片 2

3.聚集(Aggregation)

图片 3

4.一般化(Generalization)——泛化

相似化指的凡近乎中的后续关系。

图片 4

5.舅聚集与藕合

  • 内聚:度量一个像样独立完成有项工作的力
  • 耦合:度量系统外或系中因关系的复杂度
  • 计划基准:增加内聚,减少耦合

读目标:

UML图的分类

1.用例图(Use Case Diagram)

用例图

著系统的为主功能以及同那个相的用户

用户为称呼”活动者”(Actor)

用例使用椭圆表示

为简化建模过程,用例图可标注优先级

图片 5

2.类图(Class Diagram)

发明现类的特征

仿佛图描述了多只类似、接口的特色,以及对象之间的搭档与互为

是因为一个或者多单矩形区域整合,内容连:

—— 类型(类名)

—— 属性(可选)

—— 操作(可选)

图片 6

3.对象图(object Diagram)

表现对象的特征

对象图展现了差不多个目标的特性以及对象之间的互动

图片 7

4.组件图(Component Diagram)

表现软件组件之间的干

图片 8

5.部署图(Deloyment Diagram)

展现用于部署软件应用的大体设备信息

图片 9

6.时序图(Sequence Diagram)

捕捉一段时间范围外大多只目标中的相互信息

强调消息交互的光阴各个

图片 10

图1

图片 11

图2

7.协作图 (Collaboration Diagram)

见得限制外对象中合作的信

强调与信息交流的对象期间的团伙结构

图片 12

8.状态转换图(Statechart Diagram)

强调一个靶在不同事件触发时,其里面状态的变通过程

图片 13

9.活动图(Activity Diagram)

叙活动之流程

图片 14

10.包(package)

引用一组有关实业

习以为常只是用来划分类的命名空间

包可用于

—— 命名(Naming)

—— 成员可见度(Member visibility)

—— 导入(Importing)

—— 继承(Extending)

—— 泛化(Generalization)

图片 15

1.明与控制面向对象的概念以及方。

几乎种植普遍模式

1.观察者模式(Observer)

图片 16

2.结缘模式(Composite)

图片 17

3.装饰模式(Decorator)

图片 18

4.适配器模式(adapter)

图片 19

5.代理模式(peoxy)

图片 20

 

<wiz_tmp_tag id=”wiz-table-range-border” contenteditable=”false”
style=”display: none;”>

 

 

 

 

 

 

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原则

 

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

·降低本钱

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

·便于团队的搭档开发

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