软件工程面向对象软件开发方法.pptx
文本预览下载声明
面向对象方法概述
面向对象(OO,Object Oriented)技术是软件工程领域中的重要技术,这种软件开发思想比较自然地模拟了人类认识客观世界的方式,成为当前计算机软件工程学中的主流方法
“面向对象”(Object-Oriented)是针对“面向过程”一词提出的,是从本质上区别于传统的结构化方法的一种新方法,新思路
应该特别强调的是,面向对象技术不仅仅是一种程序设计方法,更重要的是一种对真实世界的抽象思维方式 ;面向对象方法概述——背景
传统开发方法由一整套过程、方法和工具作为支撑,在一定时期内对解决软件危机起了很大作用,曾指导开发出很多成功的系统,但其缺点也日益显现
传统软件开发方法不能完全消除软件危机,并且生产率的提高不能满足需要;面向对象方法概述——背景(1)
传统开发方法存在的问题
软件维护
系统是围绕着如何实现一定的行为来进行的,当系统行为易变,需要常常修改时,修改极为困难
软件结构严重依赖于系统功能,基于功能分解的系统结构将很难进行修改和扩充
用户功能需求的改变将导致软件结构的相应改变,给软件的开发及维护造成很大困难
数据和对数据的处理操作是分离的,对数据的修改将影响某个功能的实现
;面向对象方法概述——背景(2)
传统开发方法存在的问题
自顶向下功能分解的分析方法极大地限制了软件的可重用性
结构化分析、设计技术的本质是功能分析
从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,层层分解下去,直至仅剩下若干个容易实现的子处理为止
;面向对象方法概述——背景(3)
传统开发方法存在的问题
以输入-处理-输出为核心的分析和设计方法不符合人类的思维方式
软件不能真正了解用户的需要,以致开发出的软件系统与用户预期的系统不一致,不能满足用户的需要
功能与数据分离的软件设计结构与人类的现实世界环境很不一样,和人的自然思维也就很不一致,因此对现实世界的认识与编程之间存在着一道很深的理解上的鸿沟;面向对象方法概述——背景(4)
传统开发方法存在的问题
系统中模块之间控制作用的重要影响
在系统中,实际控制发生的???源来自分散的各个模块之中时,由于在“好的模块结构”中的模块间的控制作用只能通过上下之间的调用关系来进行,造成信息传递路径过长,效率低,易受干扰,甚至出错;面向对象方法概述——背景(5)
为了解决传统开发方法的问题,在软件开发实践中人们提出了许多针对具体开发的方法
快速原型法
面向对象方法
…….
诞生了面向对象程序设计语言,并基于面向对象思想诞生了面向对象软件开发方法;面向对象方法概述——发展历程
面向对象的思想最初出现于挪威奥斯陆大学和挪威计算中心于60年代末共同研制推出的S1mula67语言中,该语言首先引入了类的概念和继承机制
80年代 ,美国加利福尼亚Xerox研究中心推出的Smalltalk-76和Smalltalk-80语言,它具备了面向对象语言的继承和封装的主要特征,比较完善地实现了面向对象的程序设计,推动了面向对象技术的飞速发展 ;面向对象方法概述——发展历程(1)
从80年代中期到90年代,面向对象语言十分热门,涌现出大批比较实用的面向对象编程语言
如C++、Object Pascal等
随着面向对象编程语言走向实用,开始了对面向对象分析和面向对象设计的研究
面向对象的分析和设计技术逐渐走向实用,最终形成了由分析、设计到编程、测试与维护一整套的软件工程体系组成的面向对象软件开发方法 ;面向对象方法概述——发展历程(2)
在面向对象软件开发方法发展中,出现了很多方法,典型的以发明者命名的方法有:Booch法、Rambaugh法、Jacobson法、Coad和Yourdon法、Wirfs-Broch法等
1995年,Grady Booch、Ivar Jacobson和James Rumbaugh一起合作,将各自的方法组合成一种统一的方法,称为“统一建模语言”,即(Unified Modeling Language, UML)
1997年提出UML1.0版本
UML现已在整个行业使用;OO技术的基本原理
按照问题域的基本事物实现自然分割,按人们通常的思维方式建立问题域的模型,设计尽可能直接自然表现问题求解的软件系统。
OO技术引入了对象(object)概念来表现事物;用消息(message)传递建立事物间的联系;用类(class)和继承(inheritance)作为适应人们一般思维方式的描述模型;用方法(method)表示作用在对象上的各种操作。;OO技术的基本原理(1)
传统的程序设计方法,针对的是数学模型,出发点是“怎样做(How)?”
用计算机求解一个实际问题应该怎样做?
从实际问题到求解模型(数学模型)的抽象都是围绕怎样做?去进行的
面向对象(OO)方法的出发点是“是什
显示全部