当前位置:文档之家› 面向对象技术与UML

面向对象技术与UML


继承性举例
继承传递:大学生可以继承“人”和“学生”的特
征 父类 多重继承: 在职研究生既可以继承“学生”的特 征,又可以继承“教师”的特征 人
工人 学生 教师 农民
中学生 大学生 研究生 派生类
助教
讲师
具有继承关系的对象的特性
对象类间具有共享特征(包括数据和程序代
码的共享) 对象类间具有细微的差别或新增部分(包括 非共享的程序代码和数据) 对象类间具有层次结构。 继承所具有的作用有两个方面:
第二节 面向对象分析
本节要求了解面向对象分析的基本过程和基本原则 OOA: Object-oriented Analysis . 指利用面向对象的概念和方法构建软 件模型。 面向对象分析的基本过程 理解 表达
验证
对理解和表达进 行校验,以达到 理想效果。
需求
建立模型
在面向对象分析中,主要建立对象模型,动态模型和功能模型。 对象模型是最基本最重要的模型。
3) 可重用性好 有两种方法可以重复使用一个对象类:一种方法是创 建该类的实例,从而直接使用它;另一种方法是从它 派生出一个满足当前需要的新类。 4)较易开发大型软件产品 5)可维护性好
2.1.2 喷泉模型
“喷泉”这个词体现了面向对象软 件开发过程迭代和无缝的特性。 图中代表不同阶段的圆圈相互重 叠,这明确表示两个活动之间存 在交迭;而面向对象方法在概念 和表示方法上的一致性,保证了 在各项开发活动之间的无缝过渡, 事实上,用面向对象方法开发软 件时,在分析、设计和编码等项 开发活动之间并不存在明显的边 界。图中在一个阶段内的向下箭 头代表该阶段内的迭代(或求 精)。图中较小的圆圈代表维护, 圆圈较小象征着采用了面向对象 范型之后维护时间缩短了。
2.1.4 面向对象的开发语言和开发工具
语言是语言,工具是工具。 (1)面向对象的建模语言。UML。由IBM Rational Rose 支持 (2)面向对象的程序设计语言。 C++, Basic—> VC,VB Pascal->Delphi Java->Eclipse
第二章 面向对象技术与UML
)
在类等级的不同层次中,相同的消息, 被不同类的对象接收,产生了不同的行为。 好处:增加软件系统的灵活性,减少了信息冗 余,提高了软件的可重用性和可扩充性。 在C++ 语言中,多态性是通过虚函数来实现 的。(动态联编)
基本概念
重载(Overloading)
有两种重载: 函数重载是指在同一作用域内的若干个参 数特征不同的函数可以使用相同的函数名字; 例: 运算符重载是指同一个运算符可以施加于 不同t;“2”;表示向屏幕输出字符串2 x<<2;表示将x中的二进制左移2位
3. 面向对象建模的一般过程
领域问题
分析、抽取
概念模型
提取
系统需求
分析、设计
解决方案
第二章 面向对象技术与UML
2.2.2 面向对象分析的基本过程
定义用例 原 型 开 发
发现对象
定义属性与方法 详 细 说 明
原型(prototype)即把 系统主要功能和接口通 过快速开发制作为“软 件样机”,以可视化的 形式展现给用户,及时 征求用户意见,从而明 确无误地确定用户需求。 同时,原型也可用于征 求内部意见,作为分析 和设计的接口之一,可 方便于沟通。
2.1.1 面向对象方法学的优点
1)与人类习惯的思维方法一致 面向对象的软件技术以对象(object)为核心,用这种 技术开发出的软件系统由对象组成。 对象是对现实世界实体的正确抽象,它是由描述内部 状态表示静态属性的数据,以及可以对这些数据 施加的操作(表示对象的动态行为),封装在一起 所构成的统一体。对象之间通过传递消息互相联 系,以模拟现实世界中不同事物彼此之间的联系。 2) 稳定性好 由于现实世界中的实体是相对稳定的,因此,以对象 为中心构造的软件系统也是比较稳定的。
第二章 面向对象技术与UML
第一节 面向对象技术概述 第二节 面向对象分析 第三节 面向对象设计(实现)
第2 章 面向对象技术与UML
第一节 面向对象技术概述 面向对象方法学的出发点和基本原则,是尽可能使 描述问题的问题空间(也称为问题域)与实现解法的解 空间(也称为求解域)在结构上尽可能一致。 客观世界的问题都是由客观世界中的实体及实体相 互间的关系构成的。我们把客观世界中的实体抽象 为问题域中的对象(object)。 面向对象的方法学可以用下列方程来概括:
例:大小不同、位置不一和颜色不同的圆,可以定义为一 个Circle类。 例:中国人
基本概念
实例(Instance)
是由某个特定的类所描述的一个具体的对象。 “对象”这个术语,既可以指一个具体的对象, 也可以泛指一般的对象,“实例”这个术语, 必然是指一个具体的对象。
C++中,要定义一个对象或实例,必须先建 立一个这类对象的类。
基本概念
属性(Attribute)
类中所定义的数据,它是对客观世界实 体所具有的性质的抽象。类的每个实例都 有自己特有的属性值。 例:圆类(半径、位置、颜色) 在C++ 语言中把属性称为数据成员。
基本概念
方法(Method)
对象所能执行的操作,它应用于类或被类中对象使用。 在C++中称为成员函数。通常,一个函数对应一个操 作,实现一个功能。 例:圆对象响应显示圆的消息 在Circle类中必须定义能够显示这个圆的方法, 即编写成员函数Show(int color)。
OO=objects+classes+inheritance+communication with messages
也就是说,面向对象就是既使用对象又使用类和继承等 机制,而且对象之间仅能通过传递消息实现彼此通信。
概括地说,面向对象方法具有下述4个要点: (1)面向对象方法用对象分解取代了传统方法的功能分解。 面向对象的软件系统是由对象组成的,软件中的任何元 素都是对象,复杂的软件对象由比较简单的对象组合而 成。 (2) 把所有对象都划分成各种对象类(简称为类,class), 每个对象类都定义了一组数据和一组方法。 数据用于表示对象的静态属性,是对象的状态信息。 方法,是允许施加于该类对象上的操作,是该类所有对 象共享的。
第二章 面向对象技术与UML
2.2.1 建模的目的
1. 建模的重要性 引例1:盖个简易狗窝。可以直接实现。 引例2:盖家庭住房。做好建设蓝图。 引例3:召开班级会议。简单筹划即可。 引例4:召开全校大会。成立一个筹备小组。 如果你要做一件事情规模较大,比较复杂, 那么首先你要做好规划。 这个规划的其中一个最终要的任务就是将实 际问题高度抽象化->抓住主要方面->建模
第二章 面向对象技术与UML
模型:对客观事物的模拟和抽象。对现实的简化。 模型具有表达明确、无歧义的优点。 模型具有将任务分解的特点,将复杂问题简单化。 建模是为了更好地理解正在开发的系统。因为不能完整 地理解一个复杂的系统,所以对它建模。
2. 建模四原则
(1)模型选择要正确。 (2)模型表达形式多种多样。 (3)模型要切合实际。体现本质和重要的细节。 (4)从多维视角建立模型。
数据
内部操作1 数据 内部操作2
对象特征举例
某人王东,男,1.80M,68kg,会修电器,可教
计算机课。描述如下: 1) 标识:王东 2) 状态:
性别: 男 身高: 1.80m 体重:68kg
3)
功能:

自身所承受的操作: 回答身高、体重、性别 施加于其它对象的操作: 修理电器、教计算机课
STUDENT对象类举例

class student { private:

私有功能:
char *name; int mark; char *major ; void changemark();


public :
公有功能:
char *getname( ); char *getmajor():
(3) 按照子类(或称为派生类)与父类(或称为基类)的关 系,把若干个对象类组成一个层次结构的系统(也称为 类等级)。在这种层次结构中,通常下层的派生类具有 和上层的基类相同的特性(包括数据和方法),这种现 象称为继承(inheritance)。 低层的特性将屏蔽高层的同名特性。如果在派生类中 对某些特性又做了重新描述,则在派生类中的这些特 性将以新描述为准。 (4) 对象彼此之间仅能通过传递消息互相联系。对象是 进行处理的主体,必须发消息请求它执行它的某个操 作,处理它的私有数据,而不能从外界直接对它的私 有数据进行操作。
面向对象程序设计
class A { private: int a1,b1; public: void f1(int a,int b) { … } … } class B { … { main()
private: int a2,b2; public: void f2(int a,int b) { …
基本概念
消息(Message) 对象之间相互请求相互协作的途径 一个消息由下述三部分组成: (1)接收消息的对象; (2)消息选择符(也称为消息名); (3)零个或多个变元。 例如 : MyCircle.Show(GREEN) ; 其中: MyCircle是接收消息的对象的名字 Show是消息选择符(即消息名) GREEN是消息的变元。
基本概念
继承(Inheritance)
指能够直接获得已有的性质和特征,而不必重 复定义它们。是子类自动地共享基类中定义的 数据和方法的机制。 例:家族关系
继承具有传递性,如果类C继承类B,类B继 承类A,则类C继承类A。一个类除了具有该类 所描述的性质外,还具有该类上层全部基类描 述的一切性质。
相关主题