高级面向对象方法与技术 总结

发布 2021-05-02 00:16:28 阅读 9876

目录。chapter1:绪论 2

软件过程模型 2

chapter2:面向对象方法概述 4

chapter3:面向对象方法可视化--统一建模语言(uml) 4

3.1 uml 的释义:统一了众多不同的建模语言,适用于不同类型系统的建模 4

3.2 类图 6

3.3 顺序图(sequence diagram) 6

3.4 对象图 8

3.5 包图 8

3.6 部署图 9

3.7 用例图 9

3.8 状态机图 9

3.9 活** 11

3.10 通信图 14

3.11 复合结构图(composite structure diagram) 14

3.12 构件图(component diagram) 14

3.13 交互概观图 (interaction overview diagram) 15

3.14 定时图(timing diagram) 15

chapter4:面向对象建模与设计(oomd) 16

oomd 概述 16

oomd 的类建模 16

oomd 的状态建模 19

oomd 的交互建模 20

oomd 的系统设计 22

oomd 的类设计 23

chapter5:面向对象分析与设计(ooad) 24

5.2 booch 方法概述 24

5.2 booch 方法的两种过程 24

5.3 booch 方法的三种模型 25

chapter6:面向对象软件工程(oose) 25

6.1 oose 概述 26

6.2 oose 的五个模型 26

6.3 oose 的核心概念——用例 26

6.4 oose 的对象分类(有点像mvc(model/view/controler)) 26

本章小结 26

chapter1:绪论。

软件过程模型。

说法1:所谓软件过程模型就是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的(百科)。

说法2:又被称为软件开发模型,指软件开发的全部过程、活动和任务的结构框架(csdn blog)。

三种基本模型:

线性顺序模型: waterfall model(瀑布模型)

进化模型:prototyping model(原型法模型)

基于构件的开发模型:component-based model

1.面向对象之于软件工程的意义。

软件的实质:软件=程序+数据+文档。

软件的三维空间观:过程+方法+工具,面向对象方法属于方法维,但只是其中一种;

2.面向对象基本概念。

对象:问题空间:指现实世界的实体,也可以是应用所关心的抽象概念。

解空间:问题空间中对象在计算机系统中的表示,是封装(encapsulation)了数据和行为的通信单位。

对象的基本特征:唯一标识,通过消息通信,总处于一定状态,有若干行为,状态只能由自身行为改变,某个对象可由其他多个对象构成。

对象的行为:三类,1.创建新对象,2.对象间通信,3.改变自身状态。

类:问题空间:代表具有类似性质的一组对象;每个对象是类的一个实例。

解空间:是对一组对象的抽象,集中了该组对象的共同特性。

在构造软件时,类的**由其所有对象共享。

adt(abstract data type): adt=数据+操作; 抽象类(未进行任何实现)=adt

类间关系:1. inheritance(继承):一种求同存异的高度抽象。

术语:子类,父类/超类,祖先类,后裔类,单继承,多继承,一般化,具体化。

2. aggregation(聚合) :表“部分—整体”关系。

术语:组元类(component class),组合类(assembly class)

3. association(关联):对象间的物理或概念联结被称为链,关联是对链的抽象,链是关联的实例。

关联之于链,类之于对象。

聚合vs继承:聚合强调多个下级模块共同构建一个上级模块,继承强调多个下级复用上级的特性;

聚合vs关联:聚合是关联的一种特殊形式(?)

消息与事件:

消息:对象间通信的结构,分为请求消息和完成消息;

事件:对象间的一次消息的传递,强调发生的时间和先后次序。

消息传递vs过程调用:消息可异步、并行与分布执行;过程调用只能同步、串行执行。

多态性:1.同一操作可以是不同类的行为;

2.同一类的不同对象收到同一消息后,可以产生不同反应。

3.同一个消息可调用不同的方法(?)

面向对象的特性:1.标识唯一性。

2.分类性(taxon)

3.多态性(polymorphism)

4.继承性(inheritance

与面向对象编程的三大特性有共通之处:继承、封装、多态)

绪论小结。面向对象方法之于软件工程的意义:

面向对象方法、软件、软件工程等之间的关系:面向对象方法属于软件工程三个维度中的方法维。

面向对象方法与软件过程模型。

面向对象方法与软件过程模型之间的关系(?)cbd与面向对象方法的结合?

面向对象的基本概念。

对象与类之间的关系:继承、聚合、关联。

三种基本类间关系的本质:参照三种类间关系的含义。

消息与事件之间的关系:事件是特殊的消息,具有时间特性和顺序性。

面向对象的精髓:面向对象=对象+分类+继承+消息。

chapter2:面向对象方法概述。

面向对象方法:最早于2023年提出。

oomd (james rumbaugh) 的三个模型、两个设计。

类模型:类图。

状态模型:状态图。

交互模型:用例图、顺序图、活**。

系统设计:核心是软件体系结构。

类设计:焦点在于实现每个类的数据结构与算法。

ooad (grady booch) 的三个模型、两种过程。

三种模型:概念模型,逻辑模型,物理模型(有点像数据库的三层结构)

两种过程:宏观过程、微观过程。

oose (ivar jacobson) 的核心思想“用例”

用例:usecase,强调用户对系统的行为。

chapter3:面向对象方法可视化--统一建模语言(uml)

3.1 uml 的释义:统一了众多不同的建模语言,适用于不同类型系统的建模。

oo 方法与 uml 的发展:

20世纪97年,rational公司发布uml1.0,后续由omg接管。

2023年7月,uml2.0发布(本课程采用)

uml 与 rup

rup是一个过程框架,支持uml的使用,由rational公司主导。

uml 的使用方式。

uml用作草图(uml as sketch):有侧重点的绘图,用于沟通交流,仅需轻便的工具。

uml用作蓝图(uml as blueprint):强调规格说明的完整性,需先进的工具。

uml用作编程语言(uml as a programming language):直接从uml编译到可执行**,需要复杂工具。

基于uml的开发项目中如何使用:

选择一种方**:oomd, ooad, oose, or others

选择一种uml开发工具:staruml, enterprise architecture, or etc.

进行培训:包括方**和工具。

uml 的各种图:

类图:类、特征和关系。

顺序图:对象之间的交互,强调顺序。

对象图:实例的样形。

包图:编译时的层次结构。

部署图:制品在节点上的部署。

用例图:用户如何与系统交互。

状态机图:事件如何改变生命期中的对象。

活**:过程行为,并行行为。

通信图:对象之间的交互,强调链。

复合结构图:运行时类的分解。

构件图:构件结构,构件连接。

交互概观图:顺序图和活**的混合。

定时图:对象之间的交互,强调定时。

uml图分类:

结构图、行为图、交互图。

3.2 类图。

含义:表述系统中各类间的静态关系,也表明类中特性(properties)和操作(operations)以及用于对象连接方式的约束(constraints)(?是指关联吗)

特性:表类的结构特征,可以是属性或者关联;

属性和关联尽管在类图中表现不同,但实际是一回事,一般而言,对小事使用属性表示 (如日期、布尔值),对较为重要的类使用关联表示 (如客户、订单)。

重数:特性的重数指出可以具有该特性的对象数目。常见表示1, 0..1, *

双向关联:一对连接在一起互为其逆的特性。比如老板和员工,是雇主和雇员的关联。

面向对象和面向对象的高级概念

面向对象。主要内容 1.方法的定义。2.类的定义。3.对象的实例化。4.构造方法。5.值传递。6.访问控制修饰符。7.面向对象的特性。a 封装。b 继承。c 多态。8.关键字。9.抽象类。10.接口。11.作业。a 方法的基本格式。修饰符 返回值类型方法名 参数1 参数2 是方法体,必须写,不能省略...

10面向对象的高级

static修饰的元素属于类。所有对象共享。static 属性放在静态池中。何为池 池是常驻内存,反复使用。static可以修饰属性,方法,语句块,内部类。可以用类名。调用。1 静态方法重写后还是静态方法。2 发生多态时,父类的引用如果调用重写的静态方法,调父类重写前的方法。类加载的 1 类名。时候...

面向对象的高级特性

选择题。1 给定下列 知识点 类的继承 1.class super class sub extends super 当在第6行加入什么方法时会引起编译错误?2 给定以下 知识点 接口多态 执行后的结果是?a.打印字符串 testedb.编译失败。c.运行成功但无输出 d.运行时抛出异常。3 max ...