第九章 面向对象的系统开发方法

合集下载

软件工程导论第9章面向对象方法学引论

软件工程导论第9章面向对象方法学引论

第9章面向对象方法学引论传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。

但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。

在20世纪60年代后期出现的面向对象编程语言Simdla_67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。

到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。

面向对象技术已成为当前最好的软件开发技术。

9.1面向对象方法学概述9.1.1 面向对象方法学的要点面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。

客观世界的问题都是由客观世界中的实体及实体相互间的关系构成的。

我们把客观世界中的实体抽象为问题域中的对象(object)。

因为所要解决的问题具有特殊性,因此,对象是不固定的。

一个雇员可以作为一个对象,一家公司也可以作为一个对象,到底应该把什么抽象为对象,由所要解决的问题决定。

从本质上说,用计算机解决客观世界的问题,是借助于某种程序设计语言的规定,对计算机中的实体施加某种处理,并用处理结果去映射解。

我们把计算机中的实体称为解空间对象。

显然,解空间对象取决于所使用的程序设计语言。

例如,汇编语言提供的对象是存储单元;面向过程的高级语言提供的对象,是各种预定义类型的变量、数组、记录和文件等等。

一旦提供了某种解空间对象,就隐含规定了允许对该类对象施加的操作。

从动态观点看,对对象施加的操作就是该对象的行为。

在问题空间中,对象的行为是极其丰富多彩的,然而解空间中的对象的行为却是非常简单呆板的。

因此,只有借助于十分复杂的算法,才能操纵解空间对象从而得到解。

VFP数据库系统Visual FoxPro面向对象的程序设计

VFP数据库系统Visual FoxPro面向对象的程序设计

第九章面向对象的程序设计面向对象的程序设计(Object Oriented Programming,简称OOP)与编程技术不同于标准的结构化程序设计。

在进行面向对象程序设计时,首先要考虑为实现某种目标而创建的具有某种功能且操作使用便捷的控件、对象和控件的使用参数及外观,以及为实现具体功能应选用的事件及数据环境并设计好相应的方法程序模块。

9.1 VFP中的对象9.1.1 面向对象的基本概念对象是由数据及可以施加在这些数据上的可执行操作所构成的统一体,是代码和数据的组合,它可以作为一个完整的、独立的单位模块来处理。

面向对象程序设计方法是一种以数据和信息为主线,将数据和处理相结合的方法。

那么什么是对象呢?对象就是客观世界中事物的抽象,是反映客观事物属性及行为特征的可运作实体。

在OOP中,将对象作为一个变量来处理,对象包括数据和用来处理这些数据的方法和工具。

对象是构成程序的基本单位和运行实体,是应用程序的组装模块。

一般来说,对象=属性+控件+事件+数据环境+方法程序,是一种模块的组合体。

控件是显示数据和执行操作的基本工具对象;属性是对象所具有的物理性质及其特性标识符;事件是对象所能识别和响应的某些行为和操作;数据环境是对象运行生存所依据的数据信息范围;方法程序是对象在事件触发时的行为和动作。

9.1.2 对象的属性、事件和方法对象(Object)在现实生活中是很常见的(如:一个人是一个对象,一台Pc即是一个对象。

从可视化编程的角度来看,对象是一个具有属性(数据)和方法(行为方式)的实体。

一个对象建立之后,其操作就通过与该对象有关的属性、事件和方法来描述。

1. 对象的属性属性(Property)是指对象的一项描述内容,用于描述对象的一个特性。

不同的对象具有不同的属性,而每个对象又都由若干属性来描述。

属性是对象的特征,是对象某一方面的行为参数,它描述了一个对象,描述了对象的状态或某一方面的行为功能,说明了对象可以完成的工作,但是还没有说明如何去完成任务。

管理信息系统-第9章-面向对象的系统开发-Fengppt课件

管理信息系统-第9章-面向对象的系统开发-Fengppt课件

1
• 同一对象可以接收不同形式的多个消息,产生不同响应;
2
• 一条消息可以发送给不同的对象,消息的解释完全由接
收对象完成;
3
• 对于传来的消息,对象可以返回相应的回答信息,也可 以不返回,即消息响应不是必须的。
2024/8/2
第九章 面向对象的系统开发
5
1.1.4继承
继承是指一个类(即称子类)因承袭而具有另一个类(或称父类)的能力和特征的 机制或关系。继承是一种联结类的层次模型,允许并鼓励类的重用。继承是类之间 的重要关系。依赖继承机制,可由类产生对象,或由已知类定义其他类。
1、识别接口对象和控制对象
1、接口对象从系统外部获取信息,并为之提供信息; 2、能否承担某项功能是控制对象存在的依据。
2、确定实体对象、接口对象和控制对象之间的各种关系
1)静态联系。实体对象间的静态联系在分析阶段已经确定。
2)消息连接。接口对象与实体对象、控制对象与实体对象、接口对象与控制对象 间都只存在消息连接。
继承 数据结构
• 描述子类承袭父类的名称,以及结构与 功能。
• 对该类数据包含数据项的描述
操作
• 该类通用功能的具体实现方法
接口
• 面向其它类的统一的外部通讯协议。
2024/8/2
第九章 面向对象的系统开发
4ቤተ መጻሕፍቲ ባይዱ
1.1.3消息
消息是实现对象与对象间相互合作的通信载体,是连接对象的纽带。从实现的角度 看,消息就是请求对象执行某个处理或提供某些信息的要求,既可以是数据流,又 可以是控制流。
本章内容
• 第一节 面向对象方法的基础理论 • 第二节 面向对象方法的建模工具 • 第三节 面向对象的分析与设计过程 • 第四节 面向对象的系统实施

第九章软件工程面向对象实现

第九章软件工程面向对象实现
着眼长远,反复考虑、精心设计。 主要准则: ① 提高方法的内聚 一个方法(服务)应只完成单个功能,若某个方法涉及两个或 多个不相关的功能,则应将其分解为几个更小的方法。
② 减小方法的规模 若某个方法规模过大(代码长度超过一页纸),即应将其分
解为几个更小的方法。 ③ 保持方法的一致性
一般而言,功能相似的方法应有一致的名字、参数特征(包括参数 个数、类型、次序)、返回值类型、使用条件及出错条件等。
同样,属性和关联也可分为公有和私有两大类,公有属性或关 联又可进一步设置为具有只读权限或只写权限两类。
3、提高健壮性
编写实现方法的代码时,既应考虑效率,也应考虑健壮性,通 常需要在健壮性与效率之间做适当的折衷。
作为软件不可忽视的质量指标。提高健壮性应遵守如下准则: ① 预防用户的操作错误
软件系统必须具有处理用户操作错误的能力。当用户在输入数据时发 生错误,不应该引起程序运行中断,更不应该造成“死机”。
若在执行过程中发现错误,仅返回执行状态。由于实现方法是自含式算法,相 对独立于具体应用,因此在其他应用系统中也可能重用它们。
为提高可重用性,在编程时不应将策略和实现放在同一个方法中,而应将算法 的核心部分放在一个单独的具体实现方法中。为此需要从策略方法中提取具体参 数,作为调用实现方法的变元。
⑤ 全面覆盖 若输入条件的各种组合都可能出现时,应针对所有组合写出方
2、提高可扩充性
上述提高可重用性的准则,也能提高程序的可扩充性。 此外,以下面向对象程序设计准则也有助于提高可扩充性。 ① 封装实现策略
将类的实现策略(包括描述属性的数据结构、修改属性的算法 等)封装起来,对外只提供公有的接口,否则将降低今后修改数 据结构或算法的自由度。 ② 避免用一个方法遍历多条关联链

管理信息系统第九章 面向对象的分析与设计

管理信息系统第九章 面向对象的分析与设计
构成对象的基本要素: ➢ 标识:即是对象的名称,用来在问题域中区分其它对 象; ➢ 数据:描述对象属性的数据或数据结构,表明对象的 一个状态; ➢ 操作:即对象的行为。分为对象自身承受的操作和施 加于其它对象的操作; ➢ 接口:主要指对外接口,是指对象受理外部消息所指 定的操作名称集合。
一、对象的基本概念 -2
对象、类和消ห้องสมุดไป่ตู้传递
二、类的继承 -1
类的层次
实际应用中,事物分类很难一蹴而就,往往要先进行粗分 类,再进一步细分,最终使分类相互联系而形成完整系统结构.继 承是类之间的重要关系,依赖继承机制,可由类产生对象,或由已 知类定义其它类.
继承是指一个类(即称子类)因承袭而具有另一个类 (或称父类)的能力和特征的机制或关系。
称为OOPL)。50年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不 同部分发生冲突的问题。鉴于此,ALGOL语 言的设计者在ALGOL60中采用了以 "Begin……End"为标识的程序块,使块内变 量名是局部的,以避免它们与程序中块外的同 名变量相冲突。这是编程语言中首次提供封装 (保护)的尝试。此后程序块结构广泛用于高 级语言如Pascal 、Ada、C之中。
有继承关系的类之间应具有如下特性: 类间具有共享特征(包括数据和程序代码的共享); 类间具有细微的差别或新增部分(包括非共享程序代码 和数据); 类间具有层次结构。
二、类的继承 -2
类的层次
例如,飞机和交通工具都是类,它们之间的关系是“is a”关系,飞机是 一种特殊的交通工具。
通常,越上层的类越具有一般性和共性,越下层的类越特殊、越具体。
OOD是把系统所要求解的问题分解为一些对象及对象间传 递消息的过程;

面向对象的系统开发方法

面向对象的系统开发方法

第8章面向对象的系统开发方法【本章导读】本章将介绍面向对象的系统开发方法,供读者理解和学习面向对象系统开发过程与方法。

本章首先介绍了面向对象方法和统一建模语言基础知识;其次,介绍面向对象系统开发的过程、模型与技术;接着,结合高校公修课选课系统的例子,进行业务事件分析、建立用例模型、类图和交互图,实现面向对象的系统建模与设计。

【本章要点】●面向对象方法与统一建模语言概述●面向对象系统开发过程、模型与技术●业务事件分析原理与方法●用例建模●类图的构建●交互模型的构建面向对象方法(OOM,Object-Oriented Method)是由面向对象程序设计(OOP,Object Oriented Programming)方法发展起来的。

1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。

真正的面向对象程序设计还是由Alan Keyz主持设计的Smalltalk语言奠定基础的,“面向对象”词语也是在Smalltalk语言中最先提出的。

20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,“面向对象”词语也是在Smalltalk语言中最先提出的,,如:C+ +,Object-C,CLOS,Eiffel等。

20世纪80年代起,人们基于以往巳提出的有关信息隐蔽和抽象数据类型等概念,以及由Modula2、Ada和Smalltalk等语言所奠定的基础,再加上客观需求的推动,进行了大量的理论研究和实践探索,不同类型的面向对象语言(如:Object-C、Eiffel、Smalltalk-80、CLOS、Object-Pascal、C++、等)发展起来。

Sun Microsystems公司于1995年推出面向对象的程序设计语言Java,伴随着互联网的迅猛发展,Java逐渐成为重要的网络编程语言。

(软件系统开发技术)第9章面向对象的软件开发方法

(软件系统开发技术)第9章面向对象的软件开发方法

护性和安全性。
继承性
02
通过继承机制,子类可以继承父类的属性和方法,减少了代码
重复,提高了开发效率。
多态性
03
多态允许子类以自己的方式实现父类的接口,增强了代码的灵
活性和可扩展性。
统一软件开发过程 (RUP)
01
迭代开发
需求管理
02
03
架构设计
RUP采用迭代方式进行软件开发, 逐步完善软件功能和性能,降低 了开发风险。
封装性
通过封装实现代码解耦,降低了维护的难度。修改某个对象的 内部实现不会影响其他对象,提高了代码的可维护性。
继承性
通过继承可以共享公共的属性和方法,降低了代码重复率。当 需要修改某个功能时,只需修改一处代码即可应用于所有相关
对象。
多态性
多态使得软件具有更好的扩展性和灵活性。当需要添加新的功 能或修改现有功能时,可以定义新的类或对象,而不会影响现
多态是指不同对象对同一消息的多种响应方 式,即一个操作作用于不同的对象产生不同 的执行结果。
详细描述
多态是面向对象编程中的另一个重要特性, 它允许一个操作在不同的上下文中具有不同 的实现方式。通过多态,可以实现更加灵活 和可扩展的软件系统,提高代码的可重用性 和可维护性。
02
面向对象的分析与设计
面向对象的需求分析
软件复杂度增加
随着软件系统规模和功能复杂性的增长,维护工作变 得越来越困难。
缺乏文档和注释
一些老旧的软件系统可能缺乏必要的文档和注释,导 致维护人员难以理解代码结构和功能。
代码耦合度高
传统软件开发中,代码耦合度较高,修改一处代码可 能会影响其他部分,增加了维护的难度。
面向对象软件的优势在维护中体现

面向对象的软件开发方法

面向对象的软件开发方法

面向对象的软件开发方法
面向对象的软件开发方法是一种以对象和类为中心的方法,它将软件系统视为一个由多个互相协作的对象组成的集合。

以下是面向对象的软件开发方法的一般步骤:
1. 定义需求:确定软件系统的需求和功能,并将其转化为一组任务和目标。

2. 设计模型:根据需求设计系统的模型和架构。

模型应该是简单、灵活、可扩展的。

3. 实现代码:编写代码并进行测试、调试以确保它们符合预期。

4. 测试系统:进行系统测试,并调整代码以解决任何问题。

5. 维护软件:更新和修复软件系统,以适应新的需求和技术变化。

面向对象的软件开发方法的主要优点包括:
1. 代码可重用性:代码的模块化设计可大大提高代码的重用性。

2. 可扩展性:系统的模块化设计使得系统能够更轻松地进行扩展。

3. 代码可维护性:模块化设计使得代码更易维护,减少出现问题的可能性。

4. 代码可读性:面向对象的设计可使代码更加易读、易懂。

5. 功能透明性:系统的模块化设计可使系统的功能更简单明了,从而更加易于使用。

管理信息系统 第9章练习有答案

管理信息系统 第9章练习有答案

第九章面向对象的系统开发方法9.。

1 单向选择题1.。

面向对象技术中,对已有实例稍作修改生成新实例的机制被称为()A.。

委托 B。

代理C.。

继承 D。

封装2.。

UML是一种面向对象的统一建模语言。

它包含若干种图,其中,用例图展示了外部actor 与系统所提供用例之间的连接,UML中的外部actor是指()A..人员B..单位C..人员或单位D..人员或外部系统3..UML中用例可以用()图来描述.A..类B..状态C..活动D..协作4..协作图描述了协作的()之间的交互和连接,他画成对像图的形式.A.,.对象B..类C..用例D..状态5..在使用UML建模时,若要描述跨多个用例的单个对象行为,用()最合适.A.协作图B..序列图C..活动图D..状态图9.4 问答题1..与传统开发方法相比,面向对象的系统开发方法主要解决了哪些问题?2..试述消息的目的及消息运作远离.3..市属UMLde主要内容.4..为神马面向对象系统开发过程需要如此多的图形工具来支持?第九章参考答案9.1 单向选择题参考答案1..C2..D3..C4..A5..D9.4 问答题参考答案1..答解决了两大问题:首先是传统的系统模型之中除了分离的信息和功能模型,行为模型显得越来越需要建立 ,而现有的工具无法检查和验证信息和功能模型联合起来的一致性和精确度.其次是如何从分析平滑的过度到设计的问题.2..答消息是对象之间的一种通信机制,目的是帮助一个类或对象执行责任.一个类或对对象类通过消息像另一方提出执行另一方特定服务的请求斌且获得反馈或返回.3..答UML 包括一些相互组合图表的图元素,可以及组合这些元素的法规.各种图元素是UML展示某个元素的多个视图,这些图描述了系统的组成结构及功能结构,UML还组织和提供这些图的方法 .多个视图组成一个模型(model),系统的UML 模型有点像建筑物按照比例缩小并经修饰后的建筑模型.从组成结构角度看,UML 包括类图、对象图、用例图、顺序图、状态图、活动图、协作图、组建图和包图等若干种图元素.4..答。

第9章 面向对象方法学

第9章 面向对象方法学

第9章面向对象方法学一、填空题(10小题)1、对象具有状态,描述对象的状态用它的()。

答案:属性值2、类具有属性,描述类的属性用()。

答案:数据结构3、子类自动共享父类的属性和操作的机制称为()。

答案:继承4、封装性是指所有软件部件内部都有明确的()以及清楚的()。

每个软件部件都有友好的(),软件部件的()与()分离。

答案:范围、外部边界、界面接口、内部实现、外部可访问性5、结构化方法的本质是(),其()、可修改性和可重用性都比较差。

答案:功能分解、稳定性6、动态模型描述了系统的()。

答案:动态行为7、类具有属性,它是对象的()的抽象,用()来描述类的属性。

答案:状态、数据结构8、动态模型描述了系统的()结构。

答案:控制9、对象具有状态,对象用()来描述它的状态。

答案:数据值10、在C++和C中有一个()函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。

答案:main()二、单项选择题(20小题)1、在确定类时,所有()是候选的类。

A、名词B、形容词C、动词D、代词答案:A2、面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。

A、传递性B、继承性C、复用性D、并行性答案:B3、对象是面向对象开发方法的基本成分,每个对象可用它本身的一组()和它可以执行的一组操作来定义。

A、服务B、参数C、属性D、调用答案:C4、面向对象开发方法子概念和表示上的一致性保证了分析和设计的()过渡。

A、困难B、不容易C、平滑D、顺序答案:C5、以下说法正确的是()。

A、组装结构可用来描述现实世界中的一般的抽象关系B、分类结构可用来描述现实世界中的类的组成的抽象关系C、面向对象的继承性是子类自动共享父类数据结构和方法的机制D、面向对象的唯一性是指将具有一致性的数据结构(属性)和行为(操作)的对象抽象成类答案:C6、与事件联系在一起的瞬时操作是()。

软件工程9面向对象的软件开发方法

软件工程9面向对象的软件开发方法
强大的类型安全
C#是一种强类型语言,具有严格 的类型检查机制,有助于减少运
行时错误。
03
跨平台性
C#可以通过.NET Core实现跨平 台开发,可以在Windows、
Linux和Mac OS等多个操作系统 上运行。
02
面向对象特性
C#支持类和对象的概念,以及继 承和多态等面向对象特性。
04
强大的IDE支持
对软件中出现的缺陷进行修复,保证软件的稳定性和 可靠性。
功能增强
根据用户反馈和业务发展需求,对软件进行功能增强 和优化。
软件升级
定期对软件进行升级和维护,以适应业务发展和技术 更新。
05
面向对象方法的好处与挑战
好处
可维护性
面向对象的软件设计更容易理解和修改,因为对象和类可以被封装, 只通过定义良好的接口与外部交互。
性能问题 学习曲线
如果不正确使用面向对象的方法,可能会导致代码过度复杂化 ,难以理解和维护。
在大型项目中,需要管理和维护大量的类和对象,这可能会变 得非常复杂和困难。
与传统的过程式编程相比,面向对象的编程可能会带来一定的 性能开销,尤其是在处理大量数据时。
虽然面向对象的编程在许多方面更加直观和易于理解,但对于 初学者来说,学习如何使用类和对象可能需要一段时间。
易于扩展。
多态促进重载和重写,使得子 类可以根据需要覆盖父类的方
法实现。
02
面向对象的分析与设计
UML简介
01
02
03
统一建模语言(UML)是 一种用于对软件密集系统 进行可视化建模的图形化
语言。
UML通过统一的符号和 工具,为软件开发人员 提供了一种通用的交流
方式。

面向对象的系统开发方法

面向对象的系统开发方法

面向对象的系统分析实例
1. 问题陈述 这里所举的例子是一个车辆注册管理系统。对 该问题域的陈述如下: 车主在购入车辆后,执相关有效证件到主管部 门,找到具体负责的工作人员进行登记注册,缴纳 一定费用,获得相应牌照。注册后,有关车况信息 和车主信息要备案。
系统所需维护的信息有: 1)主管部门信息(名称、负责人、地址、电话传 真,还有具体工作人员信息(姓名、权限、工作年 限) 2)车主信息(姓名、住址、联系电话) 3)登记信息(流水号、车号、所有权、凭据、放 弃登记标识及费用) 4)注册发照信息(起始/终止时间、品牌(发动机 出厂号,年份,种类,牌号)、标签(年份,品种, 号码)、费用) 5)车辆信息(车号、出厂日期、制造商、车型、 总重、载容量、内燃机马力、颜色、价格、已行驶 里程) 工作人员负责登记发牌照,收取费用。
(属性)
操作(启动、刹车 )
(方法)
对象
二、类
类是具有相同属性和方法的同一组对象的集合。 对象是类的一个具体实例。 车(类) 客车 货车 轿车
三、消息
消息就是向对象发出的服务请求。 对象之间的联系主要是通过传递消息来实现的。
消息请求 (包括调用行为的名 称及订单所需的属性)
订单
订单号 订单日期 订单状态 添加订单 修改订单 删除订单 显示订单状态
学号 姓名 宿舍号 学院 籍贯 增加学生 删除学生 修改学生信息
2 对象图
张三:学生
学号=09200301 姓名=张三 宿舍号=D305 学院=管理学院 籍贯=湖北武汉 增加() 删除() 修改()
3.用例图
洗衣机
表示使用一台洗衣机洗衣服
ATM用例图
查询账户
提款
银行客户
转账
图书管理员处理服务的用例图

第九章面向对象的系统开发方法

第九章面向对象的系统开发方法

第九章面向对象的系统开发方法主要内容:1.面向对象方法的基础理论 2. 象方法的建模工具3.面向对象的分析与设计过程 4. 面向对象的系统实施A 为什么要学习面向对象系统开发方法现代信息系统体系结构庞大、数据量大,运用传统的方法及 工具已难以满足用户的要求,需要有新的方法论来指导系统 的分析与设计过程。

面向对象的方法是基于对象概念的分析与设计方法,认为信 息系统是按照不同抽象层次组织的对象的集合。

1=) 1=14 i 护;1面向对象方法的基础理论本节内容:1.1面向对象的基本概念1.2基于面向对象方法的系统开发生命周期 兀⑴面向对象方法的基础理论 对 客观塔界可以看成由许多不同种 二 类的科氛构成,钟科 内部毗和运动删, 间存在联系和互动。

-i- ♦-■ fi 1.1面向对象的基本概念!;L对象■泛指所要研究的具体事物、抽象概念等。

不同应用领域中的对氛称为问题对鼠。

■在面向对象的系统中,问题对象是基本的运行实体, 由一组数据和施加于这些数据上的一组操作封装而成的。

■构成对象的基本要素包括:♦标识、数据、操作、接口< 1.1面向对象的基本概念I'-对象■记录对象静止特征的数振包括:♦公共数据»公共数据对外界是可见的,用于对象间信息的传递:♦私有数据”私有数据则是对象操作实现过程中的局部信息,外界不可见。

61-对象■封装的数据和操作之间亦相互作用。

♦数据刻画对象的属性,操作表示对象的功能。

♦对象属性决定对象可能行为,而对象行为又能改变对象自身的属性,即对欽状态发生变迁。

宀1.1面向对象的基本概念810 I;尸类 ■相似对象的集合。

♦在现实世界中有许多内部状态和外部行为相似的对象,由 这些对st 构成的集合就是类。

■类定义包括:♦标识♦继承♦数据结构♦操作♦接口 1.1面向对象的基本概念-类■对象集合的抽象♦规定了相似对象的公共状态与行为特征。

■创建对象的样板♦对象是类的具体实例(instance),通过类的例化而产生 ■在系统开发过程中,要利用类的这一特性,采用增 量方式逐步完善应用系统,即通过增加新类来扩展 系统功能。

第九章面向对象的系统开发方法

第九章面向对象的系统开发方法

标识
即是对象的名称,用来在问题域中区分其它对象。
数据
描述对象属性的存贮或数据结构,表明对象的一个状 态。
操作
即对象的行为。分为对象自身承受的操作和施加 于其它对象的操作。
接口
主要指对外接口,是指对象受理外部消息所指定 的操作名称集合。
(2)对象的特征
对象是构成和支撑整个软件系统的基石。对 象的三个主要特征为:
三、面向对象的系统设计
面向对象设计阶段要解决的问题是如何把分析 阶段确定出来的对象和类配置起来以实现系统功能, 并建立系统体系结构。
➢增、并、改实体对象,并识别接口对象和控制对象。 ➢确定实体对象、接口对象和控制对象之间的各种关系。 ➢完善对象类结构图,组织系统的体系结构。
(1)识别接口对象和控制对象
模块独立性 动态连接性 易维护性
(3)对象的识别
系统的目的不同,对象的划分也就不一样 。 对象划分的基本原则是:寻求大系统中事物 的共性,将所有共同的系统成分确定为一个对象。
二、类的基本概念
在现实世界中有许多内部状态和外部行为相 似的对象,由这些对象构成的集合就是类。
构成类的基本元素:
对象与类的关系相当于一般程序设计语言中 变量和变量所具有的类型的关系。
(3)消息模式与方法
四、继承的基本概念
继承是指一个类(即称子类)因承袭而具有另 一个类(或称父类)的能力和特征的机制或关系。
概括来说,有继承关系的类之间应具有如下特性:
继承避免了由于系统内类和对象封闭而造成数据 和操作冗余的现象。其最重要的优点在于支持重用。
五、面向对象的含义
面向对象=数据抽象+数据抽象类型+继承机制
确认接口对象/类的准则 控制对象的识别 三类对象间的关系

面向对象的软件系统开发方法

面向对象的软件系统开发方法
面向对象的设计方法往往从问题的一部分(局部)着手,一点一点地应用“堆积方式” 构建出整个系统。随着开发者在开发过程中逐步加深对系统需求的理解,可以达到分阶段 和分层次地添加对这些新的功能的实现。 2、应用面向对象程序设计方法与面向过程程序设计方法在开发方面所体现出的根本区别 (1)整个系统是一个对象集
面向对象编程以数据为中心,类作为表现数据的工具,是划分程序的基本单位。而函 数(方法)在面向对象设计中成为了类的接口。 2、什么是面向对象的分析
运用面向对象方法,对问题域和系统所应该满足的功能进行分析和理解,找出描述问 题域和系统功能所需的各个对象,并提取出这些对象所应具有的属性和行为以及建立出这 些对象之间的关系;最后达到建立一个符合问题域,满足用户需求的 OOA 模型的过程。 3、面向对象分析的首要任务
2) 面向对象设计(OOD):定义在系统中人机进行通讯所必需的所有类型的对象,并 对每种类型的对象进行细化,以便可以用一种具体的语言来实现这些对象。这里的 关键是类图:用面向对象的方法显示系统中所有对象所属类的图形模型。
3) 面向对象编程(OOP):用某种具体语言(C++、Java、C#、C 的对象模块等)来 实现各种对象的行为,包括对象间的消息传递。
这一原则要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象 内部的属性。通过消息进行通信是由于封装原则而引起的。在 OOA 中要求用消息连接表示 出对象之间的动态联系。 (8)粒度控制
一般来讲,人在面对一个复杂的问题域时,不可能在同一时刻既能纵观全局,又能洞 察秋毫。因此需要控制自己的视野:考虑全局时,注意其大的组成部分,暂时不详察每一 部分的具体的细节;考虑某部分的细节时则暂时撇开其余的部分。这就是粒度控制原则。 (9)行为分析

面向对象系统开发方法

面向对象系统开发方法
4、接口:主要指对外接口,是指对象受理外部消 息所指定的操作名称集合。
持续更新●▂●欢迎收藏 学而不
5
思则罔 思而不学则殆
消息 送回消息
对象的自动机表示

操作集合
口 状态集合
持续更新●▂●欢迎收藏 学而不 思则罔 思而不学则殆
状态转换
6
(二)对象的特征
模块内部状态不会受外界的干 预而变动,也不会干涉其他 模块 通过信息的灵活机制,实现对象 之间动态连接,从而使整个 机体运转起来
持续更新●▂●欢迎收藏 学而不
36
思则罔 思而不学则殆
(七)协作图
UML协作图表达方式为完成系统的 工作目标,系统中相互合作的对象间的 交互关系和链接关系。虽然时序图和协 作图都用来描述对象间的交互关系,但 侧重点不一样。时序图着重体现交互的 时间顺序,协作图则着重体现交互对象 间的静态链接关系。
3、三类对象间的关系: (1)静态联系。 (2)消息联系。
持续更新●▂●欢迎收藏 学而不
21
思则罔 思而不学则殆
(二)系统结构设计
1、问题领域子系统的设计。主要任务是完善对象属性和操 作的形式规定,包括限定值、确定复杂服务的算法等等, 进一步规范对象形式说明以便对象在物理上实现。
2、人机交互子系统的设计。接口对象在设计初期就已经规 定出来,此时主要确定图形用户接口的总体策略。
持续更新●▂●欢迎收藏 学而不
19
思则罔 思而不学则殆
三.面向对象系统设计一般步骤
具体任务有以下几项:
1、对实体对象进行增、并、改,并识别 接口对象和控制对象。
2、确定实体对象、接口对象和控制对象 之间的各种关系。
3、完善对象类结构图,组织系统的体系 结构。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
1 面向对象的概念
在抽象现实世界的事物时,必须把抽象的范围限定 在我们的问题域内。现实世界的事物都有很多侧面, 我们只应关心那些跟我们要解决的问题相关的侧面。 比如,在抽象和描述“学生”对象时,针对不同的 问题域,可能得到不同的抽象结果。对于学生管理 系统,学生的成绩、所选的课程等在问题域范围内, 而学生的病史,过敏史则不在问题域内;如果是一 个医管系统,病史,过敏史则落在问题域内。
• 1976年挪威计算机中心的Kisten和Johan开发了Simula67语言,它提供 了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被 认为是第一个面向对象语言。 • 20世纪70年代初,真正的面向对象程序设计还是由Alan Keyz主持设计 的Smalltalk语言奠定基础的,“面向对象”词语也是在Smalltalk语言 中最先提出的。 • 20世纪80年代起,人们基于以往已提出的有关信息隐蔽和抽象数据类型 等概念,以及由Modula2和Smalltalk等语言所奠定的基础,再加上客观 需求的推动,进行了大量的理论研究和实践探索,不同类型的面向对象 语言发展起来。(如:Object—C、Smalltalk—80等) • Sun Microsystems公司于1995年推出面向对象的程序设计语言Java,伴 随着互联网的迅猛发展,Java逐渐成为重要的网络编程语言。微软公司 6 于2000年推出C#,它支持windows、Web和数据库应用程序开发。
面向对象开发方法
需求
复习:面向对象基本思想
• 客观世界是由各种各样的对象组成的,每种对象都有各自 的内部状态和运动规律,不同对象之间的相互作用和联系 就构成了各种不同的系统。 • 当我们设计和实现一个客观系统时,如能在满足需求的条 件下,把系统设计成一些不可变的(相对固定)部分组成 的最小集合,这个设计就是最好的。因为它把握了事物的 本质,因而不再会被周围环境(物理环境和管理模式)的 变化以及用户没完没了的变化需求所左右。而这些不可变 的部分就是所谓的对象。
多态的效果 :
用户发送一个通用的消息,而实现 的细节则由接收对象自行的透明性,可理解 性和可扩展性 增强了软件的灵活性和重用性
23
传统方法和面向对象方法的比较
传统方法
系统是过程的集合
过程与数据实体交互 过程接受输入并产生输出
面向对象方法
系统是交互对象的集合
类是对具有共同特征的对象的进一步抽象。类通 常被认为是对象的模板,通过该模板可以创建特 性一致的对象。使用类创建对象的过程实际上是 类的实例化过程。
• 具有共同属性和行为的对象的抽 •
象 类与对象的关系 – 类是对象的抽象 – 对象是类的实例
13
对象、实体与类
计算机世界 现实世界 影射
对象
实 例 化
4
复习:开发过程 用OO方法开发一个系统可分为四个阶段。 • 1.系统调查和需求分析。 • 2.分析问题的性质和求解问题。一般称之为面向对象的分
析,即OOA。
• 3.整理问题。一般称之为面向对象的设计,即OOD。 • 4.程序实现。一般称之为面向对象的程序,即OOP。
5
9.1 面向对象方法概述
一、OOP的发展过程
• 尽可能隐蔽对象的内部细节
(信息隐蔽)
20
输入 输出
过程1
过程2 过程3 传统方法数据与过程是分离的 消息 消息 数据实体
对象
属于该对象 的数据
处理数据的方法
21 对象把数据和处理数据的方法封状成一个单元
8 多态(多态性polymorphism)
不同的对象收到同一消息可产生完全
不同的结果,这一现象叫做多态
10
2 对象(Object)
对象是现实世界事物或个体的抽象表示,抽象的结 果不仅包括事物个体的属性,还包括事物的操作。 属性值表示了对象的内部状态。 在分析阶段,对象的操作是对象展现给外部的服务。 对象状态的改变是由对对象的操作引起的。 例如,对于民航机场的指挥控制系统,MU9114 航班就是该问题域中的对象,该对象的属性可以包 含:航班号、起飞机场、降落机场、起飞时间、降 落时间,位置等;可能的操作包括离港、到港等。 当对MU9114航班对象进行离港操作时,对象的状 态将从停靠状态改变成飞行状态。
7
9.1 面向对象方法概述
三、OO领域中的基本概念 面向对象方法是一种运用对象、类、继承、封 装、聚合、消息传递、多态性等概念来构造系统 的软件开发方法。
面向对象=对象 + 类 + 继承 + 消息通信 面向对象的主要特征: 封装性 (Encapsulation) 继承性 (Inheritance) 多态性 (Polymorphism)
包图 行为图 状态图 活动图
交互图 序列图
协作图 实现图 构件图
用以显示对象之间的动态合作关系。它强调对象之间消息发送的顺序,同 时也显示对象之间的交互过程。
同序列图是等价的,但着重描述对象间的协作关系。 描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个 资源代码部件、一个二进制部件或一个可执行部件。 它包含逻辑类或实现 类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。 定义系统中软硬件的物理体系结构。可以显示实际的计算机和设备(用节点 表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。 在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关 系。 30
父类
共性部分
继承部分 增加部分
子类
15
继承 (继承性inheritance)
• 继承性是父类和子类之间共享数据和方法的机制 • 继承性具有传递性 • 继承性包括单继承和多重继承
Vehicle
FlyingThing
Animal
GroundVehicle
TransatmosphericVehicle
Airplane
27
9.3 UML简介
• UML语言是一种可视化的的面向对象 建模语言。
• • UML有三个基本的部分 • –事物(Things) • UML中重要的组成部分,在模型 •
中属于最静态的部分,代表概念 上的或物理上的元素 –关系(Relationships) 关系把事物紧密联系在一起 –图(Diagrams) 图是很多有相互关联的事物的组
消息(message)
• 消息 对象之间相互请求或相互协作
的途径,是要求某个对象执行某个功能 操作的规格说明
• 消息内容 通常包含接收方及请求接
收方完成的功能信息
• 发送方 发出消息,请求接收方响应 • 接收方 收到消息后,经过解释,激
活方法,予以响应
19
7 封装
封装是软件开发方法的重要原则,有 两个涵义: • 把对象的全部属性和全部服务结合在 一起,形成一个不可分割的独立单位 (对象)。
第九章 面向对象的系统开发方法
9.1 面向对象方法概述 9.2 面向对象系统开发过程 9.3 统一建模语言(UML)
1
学习目标
• 理解面向对象方法中的基本概念:面 向对象、对象、类、继承、消息、封 装、多态等 • 理解面向对象的系统开发过程 • 了解UML——统一建模语言
2
9.1 面向对象方法概述 结构化开发方法(传统)
29
类型
图名
描述 从用户角度描述系统的功能,并指出各功能的操作者。
用例图 用例图
静态图 类图
用于定义系统的类,包括描述类之间的联系(如关联、依赖、聚合等)以 及类的内部结构,即类的属性和操作。因此类图是描述系统中类的静态结 构,即它描述的是一种静态关系,在系统的整个生命周期都是有效的。
包或类组成,主要表示包与包、或包与类之间的关系。包图用于描述系统 的分层结构。 描述一类对象的所有可能状态以及事件发生时状态的转移条件。通常状态 图是对类图的补充。 描述为满足用例要求所要进行的活动以及活动间的约束关系。使用活动图 可以很方便地表示并行活动。
Helicopter
Bird
Horse
单继承
多重继承
16
继承性作用

使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率
17

5 聚合(Aggregation)
聚合模拟了现实世界的部分与整体的关系。它允许利 用现有的类组成新类。比如说汽车,它是由发动机、 变速箱、底盘等组成,那么我们就可以利用发动机、 变速箱、底盘等类聚合成一个新的类:汽车类。
开发方法的组合
分析
结构化
结构化 面向对象 面向对象 面向对象 面向对象
设计
结构化
面向对象 结构化 面向对象
编程
结构化
面向对象 第三代或第四代语言 第三代或第四代语言
面向对象 传统编程与面向对象的混合 面向对象 面向对象
26
9.2 OO系统开发过程
面向对象的系统开发生命周期由分析阶段、设计阶 段、实现阶段组成,每个阶段都可以互相反馈,整个 过程是一种迭代、渐增的开发过程。
结构事物(Structural things) 动作事物(Behavioral things) 分组事物(Grouping things) 注释事物(Annotational things)
• • • •
依赖(Dependencies) 关联(Association) 泛化(Generalization) 实现(Realization)
28
UML中的9种描述图
• • • • • • • • • 类图(Class diagram) 对象图(Object diagram) 用例图(Use case diagram) 顺序图(Sequence diagram) 协作图(Collaboration diagram) 状态图(Statechart diagram) 活动图(Activity diagram) 组件图(Component diagram) 实施图(Deployment diagram)
相关文档
最新文档