当前位置:
文档之家› 5-信息系统分析与设计方法-OO
5-信息系统分析与设计方法-OO
2019/1/7 华中农业大学 信息学院 5/103
面向对象程序设计示例
结构化方法不足: 面向过程的设计方法,以算法为核心,把数据和处 理过程作为相互独立的部分。数据代表问题域中的实 体,程序代码用于处理这些数据。
数据和代码分离,总存在错误的数据调用正确的模 块,或正确的数据调用错误的模块的风险。使数据与 代码保持一致,是软件工程师的沉重负担。
弧
-圆心坐标 -半径 -起始角度 -结束角度 -可见性 +读/写圆心坐标() +读/写半径() +读/写可见性() +显示() +隐藏() +读/写起始角度() +读/写结束角度()
8/103
2019/1/7
华中农业大学 信息学院
面向对象的基本概念与特征
• 面向对象的基本概念
面向对象技术的研究近几年来已经得到了很大的发展, 但是,迄今为止,对面向对象技术还没有一个明确的定 义。一般认为在软件开发中使用了对象、类和继承等概 念就是面向对象技术,其涉及领域非常广泛,包括软件 开发时使用的方法学,软件开发实现阶段所使用的语言、 数据库等等。同时,面向对象技术还渗入到人工智能、 操作系统、并行处理等各个研究领域。作为面向对象技 术的核心,对象、类和继承以及其他一些概念的确切含 义如何,是计算机界一直比较关心的话题,但迄今还没 有一个标准的定义。
类的继承关系
“多重继承”。
2019/1/7 华中农业大学 信息学院 20/103
单继承与多继承
2019/1/7
华中农业大学 信息学院
21/103
五、继承性(inheritance) • 子类中方法或属性的定义有下面三种方式:
1. 子类定义新的属性和方法作为对它所继承 的属性和方法的补充。 2. 子类重新实现所继承的一个或多个方法。 3. 子类实现一个或多个其父类声明但没有实 现的方法。
第五章
信息系统分析与设计方法 ——面向对象方法
2019/1/7
华中农业大学 信息学院
1/103
第一节 面向对象的基本概念
一、概述 二、对象(object) 三、类(class) 四、消息(message)与操作方法(method) 五、继承性(inheritance)
六、多态性(polymorphism)
2019/1/7 华中农业大学 信息学院 18/103
四、消息与操作方法(method)
(2)消息的性质 同一对象可接收不同形式的多个消息, 产生不同的响应; 相同形式的消息可以送给不同对象,所 做出的响应可以是截然不同的; 消息的发送可以不考虑具体的接收者, 对象可以响应消息,也可以对消息不予 理会,对消息的响应并不是必须的。
组织机构:有关机构,如公司、部门、小组等;
地点或位置:用做系统环境或问题上下文的场所、 位置,如客户地址、收件人地址等; 操作规程:如操作菜单、某种数据输入过程等。
类的概念:类是在对象之上的抽象,一个类定义
三、类(class)
了一组大体上相同的对象。一个类所包含的操作
方法和属性数据描述了一组对象的共同行为和属
性。
具有相同属性和方法的一组对象的集合 同类对象具有相同的属性和方法 对象是类的具体化,是类的实例。 每一个对象都属于某个类。
对象和类的描述 对象和类一般采用“对象图” 和 “类图” 来描 述。
类名
人 姓 名:字符串 年 龄: 整 型 改换工作 改换地址 文件 几何对象 颜色 位置 移动(delta:矢量) 选择(P:指针型):布尔型 旋转(角度)
类图
属性 运算
文件名 文件大小 最近更新日期
打印
图
李军:人
对象类的描述
张红兵 张红兵 28 绘图员 人民路8号
对象图
李军 24 程序员 无
图
2019/1/7
对象的描述
15/103
华中农业大学 信息学院
轿
车
张经理的轿车
型号:字符串 颜色:字符串 牌照号:字符串 ....
型号=桑塔纳 颜色=红色 牌照号=沪AN2037 ....
用、请求和响应,它就是消息。 对象内部的实现代码受到封装壳的保护,其他对象 不能直接修改本对象所拥有的数据和代码。
2019/1/7
华中农业大学 信息学院
26/103
七、封装性(encapsulation)
(3)协议
协议是一个对象对外服务的说明,它声明这个对
象可以为外界做什么。它是由一个对象能够接受并 且愿意接受的所有信息构成的对外接口。也就是说, 请求对象进行操作的唯一途径就是通过协议中提供 的消息进行的。
(1)消息的定义 面向对象方法学中对消息的定义是:消息就是向对象 发出的服务请求,它应该含有下述信息:提供服务的对 象标识、服务标识、输入信息和回答信息。 消息是对象之间相互请求或相互协作的途径,是要求 某个对象执行其中某个功能。通常,我们把发送消息的 对象称为发送者,接收消息的对象称为接收者。对象间 的联系,只能通过传送消息来进行。对象也只有在收到 消息时,才被激活,被激活后的对象代码将“知道”如 何去操作它的私有数据,去完成所发送的消息要求的功 能。
11/103
二、对象(object)
• 对象的基本概念:问题空间中与系统问题处理相关的 事物的抽象体,它是把事物的属性和对属性数据的操作 方法结合而成的整体。(动物、植物、物体、所有事物 (某次会议))
• 所有有意义的一切事物都是对象。
• 对象的三个特性: 1 、对象的标识:标识是对象的唯一编号,用来与 其他对象相区别。 2、对象的状态:一个对象可以有任意个属性或域, 对象的状态和存储在它的域中的值相对应。静态特征 3 、预定义行为:对象初始时所定义的动作序列。 动态特征。
在多人合作开发的大型软件中,如果负责设计数据 结果的人中途改变了某个数据的设计,而又没有通知 所有有关人员,则会发生很多不该发生的事情。
2019/1/7 华中农业大学 信息学院 6/103
面向对象程序设计示例
面向对象设计: 它模仿人类习惯的解题办法,用对象分解代替功能分
解。每个对象既有自己的数据,又有处理这些数据的
对象的分类(以下都可以看成对象)
外部实体:与系统交换信息的外部设备、相关子系 统、操作员或用户等;
信息结构:问题论域中的概念实体,如信号、报表、 显示信息等; 需要记忆的事件:系统执行过程中产生并需要记忆 的事件,如单击鼠标,击打键盘等; 角色:与系统交互的人员所扮演的角色,如学生、 教师、会计等;
2019/1/7
华中农业大学 信息学院
22/103
五、继承性(inheritance)
继承机制的特点:
在面向对象系统中,引入继承机制后具有如下特点:
①能清晰体现相关类间的层次结构关系; ②减少代码和数据的重复冗余度,大大增加程序的重 用性; ③通过增强一致性来减少模块间的接口和界面,大大
增加程序的易维护性;
类
实例对象
2019/1/7
华中农业大学 信息学院
16/103
四、消息与操作方法(method)
• 消息 对象与对象之间不是彼此独立的,它们之间 存在着联系,在面向对象系统中,对象之间 的联系是通过消息(Message)来传递的。
2019/1/7
华中农业大学 信息学院
17/103
四、消息与操作方法(method)
2019/1/7 华中农业大学 信息学院 25/103
七、封装性(encapsulation)
(2)封装的条件 从上面的叙述可以看出,封装应该具有下面几个条件: 具有一个清楚的边界,对象的所有私有数据、内部 程序(成员函数)细节都被固定在这个边界内。
具有一个接口,这个接口描述了对象之间的相互作
2019/1/7
华中农业大学 信息学院
10/103
面向对象的基本概念与特征
• 面向对象方法具有下述四个要点(续):
3.按照子类(或称为派生类)与父类(或 称为基类)的关系,把若干个对象类组成 一个层次结构的系统(也称为类等级)。 4.对象彼此之间仅能通过传递消息互相联 系。
2019/1/7
华中农业大学 信息学院
④是自动传播代码的有力工具; ⑤是在一些比较一般的类的基础上构造、建立和扩充 新类的最有效的手段。
2019/1/7 华中农业大学 信息学院 23/103
六、多态性(polymorphism)
• 多态的概念:
不同的对象收到同一消息可产生多种不同的
结果,即会有多种不同形式。在使用多态时,系 统发出一个通用消息,而实现的细节由收到消息 的对象自行决定。这样,同一消息就可以产生不 同的调用方法。
201装性(encapsulation)
概念的封装和实现的隐蔽: 概念的封装和实现的隐蔽,使得类具有更大 的独立性。 在任一时刻都可以在类的界面上增加新的操
作,并能够修改实现,以改进性能,或引入
原来设计中没有的新服务。 为便于类的调整,应尽量做到定义与实现分 离。对一个类的共有界面的实现所做的多次 修改不应影响利用它的那些类。
2019/1/7 华中农业大学 信息学院 19/103
五、继承性(inheritance)
继承性是类层次结构中的 一个重要特点,是超类和
子类之间共享数据和操作
方法的机制。 图所示为超类 A和它的子类 B 之间的继承关系。类 A 得 到继承,叫做“单重继
承”。如果一个子类有两
个以上的父类,则称为
七、封装性(encapsulation)
八、对象接口(Interface)
2019/1/7 华中农业大学 信息学院 2/103
一、概述 面向对象的历史 1960-70年代 COBOL,FORTRAN,C 结构化分析和设计技术 1980-1990年前 SmallTalk,Ada,C++,VB, 早期面向对象生成(代码)方法 1990年中晚期 Java UML