笔记一:OOAD与UML

一、面向对象的概念与方法

1、  面向对象

1.1. 面向对象是一种系统建模技术

1.2. 面向对象编程是按照OO的方法学来开发程序的过程

1.3. 通过分析系统内对象的交互来描述或建模一个系统

1.4. 交互的对象最终以类的形式组织

1.5. OO的方法由三部分组成:过程、标识、规则

2、  对象

2.1. 是一个客观存在的、唯一的实体

2.2. 是面向对象编程过程中分析与解决问题的出发点与基础

2.3. 拥有自己的标识、数据与行为

2.4. 可以简单或复杂

2.5. 可以抽象或具体

2.6. 在OOP中是一个类的动态实例

3、  类

3.1. 类是对象的模板

3.2. 对象通过类实例化产生

3.3. 一个类可以创建多个对象

4、  OOAD(面向对象的)

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

4.2. OOA 分析阶段(What to do )

4.2.1.        建立针对业务问题域的清晰视图

4.2.2.        列出系统必须要完成的核心任务

4.2.3.        针对问题域建立公共词汇表

4.2.4.        列出针对此问题域的最佳解决方案

4.3. OOD 设计阶段(How to do)

4.3.1.        如何解决具体的业务问题

4.3.2.        引入系统工作所需的支持元素

4.3.3.        定义系统的实现策略

4.4. OOP的主要特征

4.4.1.        抽象(abstract)

忽略掉一个对象或实体的细节而只关注其本质特征的过程

简化功能与格式

帮助用户与对象交互

4.4.2.        封装(encapsulation)

隐藏数据和实现

提供公共方法供用户调用功能

对象的两种视图:

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

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

4.4.3.        继承(inheritance)

通过存在的类型定义新类型的机制

通常在两个类型之间存在的“is a”或“kind of”这样的关系

通过继承可实现代码重用,另外继承也是多态的基础

4.4.4.        多态(polymorphism)

一个名称,多种形式

基于继承的多态

调用方法时根据所给对象的不同选择不同的处理方式

4.4.5.        关联(association)

对象之间交互时的一种引用方式

当一个对象通过对另一个对象的引用,达到去使用另一个对象的服务或操作时,两个对象之间便产生了联系

4.4.6.        聚合(aggregation)

关联关系的一种,一个对象成为另外一个对象的组成部分

是一种关系较强的关联

在两个对象之间存在“has a”这样的关系,一个对象作为另一个对象的属性存在,在外部对象被生产时,可由客户端指定与其关联的内部对象。

4.4.7.        组合(composition)

当一个对象包含另一个对象时,外部对象负责管理内部对象的生命周期的情况

关联关系中最为强烈的一种

内部对象的创建由外部对象自己控制

外部对象不存在时,内部对象也不能存在

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

内聚度量一个类独立完成某项工作的能力

耦合度量系统内或系统之间依赖关系的复杂度

设计原则:增加内聚,减少耦合

4.5. 域 模型(设计模型)

域模型是面向对象的。在面向对象术语中域模型也可称为设计模型。

域模型由以下内容组成:

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

-          域对象之间的关系(关联-Association、依赖-Dependency、聚集-Aggregation、一般化(泛化)-Generalization)

4.6. 开发过程概述

-          传统开发过程

----- 瀑布模型<需求-分析-设计-实现-测试>

-          OOAD开发过程

----- 统一软件开发过程(USDP)<迭代、递增>

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

项目是迭代、递增的,迭代指生命周期中的一个步骤,迭代导致“递增”或者是整个项目的增长,大项目分解为子项目

在每一个迭代的阶段,应该做以下工作:

-          选择并分析相关用例

-          根据所选架构进行设计

-          在组件层次实现设计

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

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

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

一个阶段的结束称之为“里程碑”

4.8. 迭代、递增生命周期的阶段

4.8.1.        初始化阶段

-          项目启动

-          建立业务模型

-          定义业务问题域

-          找出主要的风险因素

-          定义项目需求的外延

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

4.8.2.        细化阶段

-          高层的分析与设计

-          建立项目的基础框架

-          监督主要的风险因素

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

4.8.3.        构建阶段

-          代码及功能的实现

4.8.4.        移交阶段

-          向用户发布产品

-          Beta测试

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

4.9. 每个阶段所含的工作流

-          需求与初始分析

-          分析

-          设计

-          实现

-          测试

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

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

-          80/20原则

4.10.              迭代、递增生命周期的优化

-          降低成本

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

-          便于团队的协作开发

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

二、使用UML

1、  UML简介

统一建模语言是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可以通过文档说明系统中的重要细节。

2、  UML分类

-          静态模型

创建并记录一个系统的静态特征,反映一个软件系统基础、固定的框架结构,创建相关问题域主要元素的视图

包含:用例图、类图、对象图、组件图、部署图

-          动态模型

用于展示系统的行为

包含:时序图、协作图、状态图、活动图

3、  其他UML元素

包(Package)

UML的扩展机制:

-          注释

-          构造型

-          标记值

-          限制

时间: 2024-10-31 02:00:16

笔记一:OOAD与UML的相关文章

OOAD与UML笔记 -转

http://www.uml.org.cn/oobject/201105105.asp 原文地址 OOAD与UML笔记    2011-05-10 来源:网络   UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OOAD是根据OO的方法学,对软件系统进行分析和设计的过程 -- OOA 分析阶段 -- OOD 设计阶段 3.面向对象 面向对象( Object-Ori

Thinking in UML 学习笔记(二)——UML核心视图之用例图

在UML中,需求模型又称为用例模型,它主要用于描述系统的功能性需求,即软件可以实现的功能,如登录.注册.入库.出库.查看库存报表.增加员工信息等.常规的用例建模一般包括两个组成部分:绘制用例图和编写用例文档. 用例图采用参与者和用例作为基本元素,以不同的视角展现系统的功能性需求. 一.业务用例视图 说明:使用业务主角和业务用例展现业务建模. 1.业务主角视角 作用:从业务的角度展示业务主角在业务中使用用例达成业务目标. 借阅人在借书管理系统中有借阅图书和办理借阅证两个业务目标. 2.业务模块视角

Thinking in UML 学习笔记(四)——UML核心视图之活动图

在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目标的达成过程并借此来发现对象的工具,它不是我们的分析目标,也不是编程的依据. 建立活动图: 一个登录过程的活动图如下: Thinking in UML 学习笔记(四)--UML核心视图之活动图

Thinking in UML 学习笔记(三)——UML核心视图之类图

类图的作用:用于展示系统中的类及其相互之间的关系. UML在解决面向对象的方法中对类理解为三个层次,分别是:概念层.说明层.实现层.在UML中,从开始的需求到最终设计类,类图也是围绕这三个层次的观点进行建模的. 一.概念层类图 在概念层上类图着重于对问题领域的概念化理解,而不是实现,因此类名称通常都是问题领域中实际事物的名称. 网上购物主要由商品.订单.支付卡这几个关键类构成,这几个类的交互能够完成网上购物这个业务目标. 二.说明层类图 这一层是类的接口而不是实现,类图中表达类和类之间的交互接口

《OOAD与UML那点儿事》目录索引

关键字:OOAD.UML.设计模式 各位园友,大家好,我是Bobby,在学习OOAD和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料 [内容简介]掌握某种开发语言,让你实现了由零到一的脱变,如果你能掌握OOAD并能活用OOAD,则能让你实现由一到十的飞跃!知道OOAD的人很多,能在实际工作中用好OOAD的人却不多,本书为你分享作者十多年来实践OOAD的心得体会,学会活用OOAD来提升需求分析及软件设计的能力,学会活用OOAD由需求到设计全程建模.正如同,技术是条永无止境的路,每个人

Java学习笔记(二)UML基础

用例图:代表系统的一个功能模块,仅仅是系统功能的描述.用例图包括:用例.角色.角色和用例之间的关系以及系统内用例之间的关系. 类图:表示系统中包含哪些实体,各实体之间如何关联. 类图除了表示实体内部结构之外,还可以表示实体之间的相互关系,类之间的三种基本关系: 关联(包括聚合,组合) 泛化(与继承同一个概念) 依赖:如果一个类的改动会导致另一个类改动,则称为两个类存在依赖关系. 组件图:大型应用程序通常不是一个类或一组类所能完成的,通常由一个或多个可部署的组件组成.可复用的组件通常打包成JAR,

【疯狂Java讲义-读书笔记】2.2 UML(统一建模语言)介绍

2.2.1 用例图 描述功能 用例 角色 关系 需求分析阶段 2.2.2 类图 类 关联(聚合和组合) 泛化 依赖 2.2.3 组件图 2.2.4 部署图 2.2.5 顺序图 2.2.6 活动图 2.2.7 状态机图

uml:统一建模语言

统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 UML统一建模语言初学 OOAD与UML笔记 UML类图与类的关系详解

【OOAD】OOAD概述

什么是面向对象? OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.OOA:面向对象分析( Object-Oriented Analysis ,OOA)是确定需求或者业务的角度,按照面向对象的思想来分析业务.OOD:面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节.其主要作用是对OOA分析