目录。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 ...