《件工程实用教程8-面向对象技术概述.ppt》由会员分享,可在线阅读,更多相关《件工程实用教程8-面向对象技术概述.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软软 件件 工工 程程第八章面向对象技术概述第八章面向对象技术概述Neusoft Computer Science and Technology Department copy right第八章面向对象技术概第八章面向对象技术概述述任务任务1 1 区别结构化思想与面向对象思想区别结构化思想与面向对象思想结构化分析设计方法论结构化分析设计方法论面向对面向对象分析设计方法论象分析设计方法论面向对面向对象的基本概念象的基本概念结构结构化方法与面向对象方法的比较化方法与面向对象方法的比较任任务务2 2 认识面向对象方法与认识面向对象方法与UMLUML之间的关系之间的关系面向对象方面向对象方法的优势法的
2、优势统统一建模语言与面向对象建模一建模语言与面向对象建模2 2Neusoft Computer Science and Technology Department copy right任务任务1 区别结构化思想和面向对象思想区别结构化思想和面向对象思想试着分别采用结构化思想和面向对象思想设计一试着分别采用结构化思想和面向对象思想设计一个程序,对不同类型的图形(例如,圆和矩形)个程序,对不同类型的图形(例如,圆和矩形)提供求其面积并绘制出指定图形的程序。提供求其面积并绘制出指定图形的程序。3 3Neusoft Computer Science and Technology Department
3、copy right1 结构化分析和设计方法论结构化分析和设计方法论结构化分析和设计方法论结构化分析和设计方法论也叫数据流建模方法论。也叫数据流建模方法论。把现实世界描绘为数据在信息系统中的流动,在把现实世界描绘为数据在信息系统中的流动,在数据流动过程中数据发生转化。数据流动过程中数据发生转化。通过自顶向下的程序设计将复杂的程序分解为程通过自顶向下的程序设计将复杂的程序分解为程序模块的层次图。序模块的层次图。存在问题存在问题面向过程方法大多基于瀑布模型。面向过程方法大多基于瀑布模型。面向过程方法是将用户需求对应到软件功能上,面向过程方法是将用户需求对应到软件功能上,而采用面向过程的处理方式来应
4、对用户提出的功而采用面向过程的处理方式来应对用户提出的功能上的变更造成了系统结构的不稳定。能上的变更造成了系统结构的不稳定。过程分析和数据分析之间的边界问题始终没解决。过程分析和数据分析之间的边界问题始终没解决。Neusoft Computer Science and Technology Department copy right2 面向对象分析设计方法论面向对象分析设计方法论面向对象方法论面向对象方法论认为客观世界是由各种对象组成,任何事物都是对象,认为客观世界是由各种对象组成,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而复杂的对象可以由比较简单的对象以某种方式组合而成
5、的。成的。把所有的对象划分成各种对象类(简称类把所有的对象划分成各种对象类(简称类 class)class),每个,每个对象类都定义了一组数据和一组方法。对象类都定义了一组数据和一组方法。按照子类(或称为派生类)与父类(或称为基类)的按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统。关系,把若干个对象类组成一个层次结构的系统。对象彼此之间仅能通过传递消息互相联系。对象彼此之间仅能通过传递消息互相联系。Neusoft Computer Science and Technology Department copy right面向对象分析和设计解决的两个经典问
6、题:面向对象分析和设计解决的两个经典问题:传统的分析和设计方法将处理问题的数据模型和传统的分析和设计方法将处理问题的数据模型和处理模型分离,而面向对象的方法将数据模型和处理模型分离,而面向对象的方法将数据模型和处理模型二者合一。处理模型二者合一。从系统分析能够平滑地过渡到系统设计。从系统分析能够平滑地过渡到系统设计。UMLUML将分析和设计模型统一,使用的符号统一,设计模将分析和设计模型统一,使用的符号统一,设计模型是分析模型的完善和扩充。型是分析模型的完善和扩充。6 6Neusoft Computer Science and Technology Department copy right3
7、 面向对象的基本概念面向对象的基本概念对象对象类类消息消息封装封装继承继承多态多态Neusoft Computer Science and Technology Department copy right对象对象定义定义可以将问题域中任何事物都视为对象,对象是所有数据可以将问题域中任何事物都视为对象,对象是所有数据及可对这些数据施加的操作结合在一起所构成的独立单位及可对这些数据施加的操作结合在一起所构成的独立单位的总称,是具有一定知识和处理能力的独立个体。它可以的总称,是具有一定知识和处理能力的独立个体。它可以是具体的物理实体,如一个文件;也可以是人为抽象概念是具体的物理实体,如一个文件;也可
8、以是人为抽象概念的,如多任务操作系统中的调度策略。的,如多任务操作系统中的调度策略。对象包含两个基本要素:对象包含两个基本要素:属性:用于描述对象的静态特征,是反映类或对象当前属性:用于描述对象的静态特征,是反映类或对象当前状态本质的数据项。状态本质的数据项。方法:用于描述对象的动态特征,反映对象的一种行为,方法:用于描述对象的动态特征,反映对象的一种行为,是对对象属性的操作、服务。是对对象属性的操作、服务。Neusoft Computer Science and Technology Department copy right对象的形象化表示对象的形象化表示对象对象属性属性方法3方法1操作操
9、作1方法2操作操作2操作操作3界界面面Neusoft Computer Science and Technology Department copy right类类定义定义具有相同属性和行为的一组对象的集合具有相同属性和行为的一组对象的集合类与对象的关系类与对象的关系类是对象的抽象类是对象的抽象对象是类的实例对象是类的实例Neusoft Computer Science and Technology Department copy right类的描述方法类的描述方法Neusoft Computer Science and Technology Department copy right消息消息
10、定义定义消息是用来请求对象执行某一处理或回答某一要求的信消息是用来请求对象执行某一处理或回答某一要求的信息,是对象之间建立的一种通信机制,它统一了数据流和息,是对象之间建立的一种通信机制,它统一了数据流和控制流。控制流。通常一个消息由三部分组成:通常一个消息由三部分组成:对象名:接收消息的对象对象名:接收消息的对象 消息名:要求接收对象完成的操作消息名:要求接收对象完成的操作 参数:执行操作时的参数或操作返回的结果参数:执行操作时的参数或操作返回的结果Neusoft Computer Science and Technology Department copy right例如例如MyCircl
11、e.Show(Green)MyCircle.Show(Green):MyCircleMyCircle是接收消息的对象的名字,是接收消息的对象的名字,ShowShow是消息名,是消息名,GreenGreen是消息的参数。是消息的参数。MyCircle.ChangeColor(Green)MyCircle.ChangeColor(Green);Neusoft Computer Science and Technology Department copy right消息接收者参数类型 输入参数操作消息消息的表示形式消息的表示形式 student.read(in books,out report)Ne
12、usoft Computer Science and Technology Department copy right 传统方法传统方法系统是过程的集合系统是过程的集合系统是过程的集合系统是过程的集合过程与数据实体交互过程与数据实体交互过程与数据实体交互过程与数据实体交互过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出面向对象方法面向对象方法系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合对象与其它对象交互对象与其它对象交互对象与其它对象交互对象与其它对象交互对象发送对象发送对象发送对象发送消息消息消息消息与响应消息与响应
13、消息与响应消息与响应消息4 结构化方法与面向对象方法的比较结构化方法与面向对象方法的比较Neusoft Computer Science and Technology Department copy right从概念方面从概念方面看看结结构化软件是功能的集合,通过模块以及模块和模块之间构化软件是功能的集合,通过模块以及模块和模块之间的分层调用关系实现;面向对象软件是事物对象的集合,的分层调用关系实现;面向对象软件是事物对象的集合,通过对象以及对象和对象之间的通讯联系实现;通过对象以及对象和对象之间的通讯联系实现;从构成方面从构成方面看看结结构化软件是过程和数据的集合,以过程为中心;面向对构化软
14、件是过程和数据的集合,以过程为中心;面向对象软件是数据和相应操作的封装,以对象为中心;象软件是数据和相应操作的封装,以对象为中心;从运行控制方面从运行控制方面看看结结构化软件采用顺序处理方式,由过程驱动控制;面向对构化软件采用顺序处理方式,由过程驱动控制;面向对象软件采用交互式、并行处理方式,由消息驱动控制象软件采用交互式、并行处理方式,由消息驱动控制;16 16Neusoft Computer Science and Technology Department copy right从开发方面看从开发方面看结构化方法的工作重点是设计;面向对象方法的结构化方法的工作重点是设计;面向对象方法的工作
15、重点是分析;工作重点是分析;从应用方面看从应用方面看相对而言,结构化方法更加适合数据类型比较简相对而言,结构化方法更加适合数据类型比较简单的数值计算和数据统计管理软件的开发;面向单的数值计算和数据统计管理软件的开发;面向对象方法更加适合大型复杂的人机交互式软件的对象方法更加适合大型复杂的人机交互式软件的开发。开发。17 17Neusoft Computer Science and Technology Department copy right任务任务2 认识面向对象方法与认识面向对象方法与UML之间的关系之间的关系一个学生拥有自己的名字,并且可以设置和提供自一个学生拥有自己的名字,并且可以设
16、置和提供自己的名字。代码如下。己的名字。代码如下。pulic class Studentpulic class Studentprivate String name;private String name;public void setName(String name)public void setName(String name)this.name=name;this.name=name;public String getName()public String getName()return this.namereturn this.name;试着采用试着采用UMLUML图形符号对上述描述内
17、容进行模型的图形符号对上述描述内容进行模型的构建。构建。18 18Neusoft Computer Science and Technology Department copy right1 面向对象方法的优势面向对象方法的优势适应不断发生的变化适应不断发生的变化当前软件项目面临的一个突出问题是如何应对变当前软件项目面临的一个突出问题是如何应对变化越来越快的客户需求,从技术角度上用化越来越快的客户需求,从技术角度上用OOA/DOOA/D的方法解决是比较有效的手段。的方法解决是比较有效的手段。功能:最易变数据:较易变对象:较稳定稳定性增加类属性方法Neusoft Computer Science
18、 and Technology Department copy right支持复用技术支持复用技术与人类的习惯的思维方法一致与人类的习惯的思维方法一致稳定性好稳定性好可重用性好可重用性好较容易开发大型软件产品较容易开发大型软件产品可维护性比较好可维护性比较好面向对象的软件稳定性比较好面向对象的软件稳定性比较好面向对象的软件比较容易修改面向对象的软件比较容易修改面向对象的软件比较容易理解面向对象的软件比较容易理解易于测试和调试易于测试和调试Neusoft Computer Science and Technology Department copy right2 统统一建模语言(一建模语言(UM
19、L)与面向对象建)与面向对象建模模何为何为UMLUML统一建模语言统一建模语言(UML)(UML)是描述、构造和文档化系统制是描述、构造和文档化系统制品的可视化语言。品的可视化语言。Neusoft Computer Science and Technology Department copy rightUMLUML应用方式应用方式UMLUML作为草图作为草图非正式的、不完整的图,借助可视化语言的功能,用于非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或解决方案空间的复杂部分。探讨问题或解决方案空间的复杂部分。UMLUML作为蓝图作为蓝图相对详细的设计图。相对详细的设计图。逆向工程逆向
20、工程前向工程(代码生成)前向工程(代码生成)Neusoft Computer Science and Technology Department copy rightUMLUML只是一种工具只是一种工具UMLUML并不是面向对象分析和设计的全部,它只是并不是面向对象分析和设计的全部,它只是一种手段,一种工具。我们需要通过自己对对象一种手段,一种工具。我们需要通过自己对对象的理解和面向对象分析设计技术的掌握来进行系的理解和面向对象分析设计技术的掌握来进行系统的分析和设计,然后通过统的分析和设计,然后通过UMLUML的形式来进行表的形式来进行表述。述。Neusoft Computer Scienc
21、e and Technology Department copy rightUMLUML的三种透视图的三种透视图概念透视图概念透视图用图来描述现实世界或关注领域中的事物用图来描述现实世界或关注领域中的事物设计透视图设计透视图用图来描述软件的抽象物或具有规格说明和接口的构件,用图来描述软件的抽象物或具有规格说明和接口的构件,但是并不约束特定实现但是并不约束特定实现实现透视图实现透视图用图来描述特定技术中的软件实现用图来描述特定技术中的软件实现Neusoft Computer Science and Technology Department copy rightUMLUML的不同视图的不同视图25 25Neusoft Computer Science and Technology Department copy right小结小结了了解解UMLUML与面向对象建模关系与面向对象建模关系理解理解结构化方法与面向对象方法的区别结构化方法与面向对象方法的区别面向对面向对象的基本概念象的基本概念26 26
限制150内