欢迎来到天天文库
浏览记录
ID:45222871
大小:953.00 KB
页数:79页
时间:2019-11-11
《面向对象技术概述-UML概述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向对象技术—UML教程张超英Email:zhangcy@gxnu.edu.cn2011年2月28日2主要内容面向对象技术概述UML概述3关于软件工程的补充知识软件工程的目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统。(高质量不仅是指错误率低,还包括好用、易用、可移植、易维护等。)对软件开发的基本认识:大型软件系统特点:开发代价高,开发时间长,开发人员多,软件生命周期长。软件开发的两个方面:软件开发过程(包括软件需求,总体设计,详细设计,代码实现,测试至最后产品提交);开
2、发所涉及资源及资源使用的协调和管理。4关于软件工程的补充知识软件与硬件不同:表现形式不同;生产方式不同;产品要求不同;维护方式不同。软件的固有复杂性:著名的计算机专家、被称之为IBM360系列计算机之父的F.Brooks认为软件的复杂性是固有的,软件可能是人类所能制造出来的最复杂的实体。(F.Brooks,NoSilverBullet:EssenceandAccidentsofSoftwareEngineering,Computer,April1987,pp.10-19)5关于软件工程的补充知识软件
3、固有复杂性的原因:1.软件的复杂性与计算机的体系结构有关;(冯.诺依曼计算机体系结构是硬件简单,软件复杂)2.软件开发是人的一种智力活动,软件系统从本质上来说是由许多相互联系的概念所组成的结构;3.软件系统中各元素之间的相互作用关系具有不确定性;4.由于软件没有固定的形式和坚硬的外壳,认为软件系统是软的,可以随意扩充和修改;5.规模较大的软件系统的生命周期一般都超过所涉及硬件的生命周期。6软件固有复杂性的影响软件固有复杂性使得开发成员之间的沟通变得困难,开发费用超支、开发时间延期等;也导致产品有缺陷
4、、不易理解、不可靠、难以使用、功能难以扩充等。软件的复杂性是固有的,即不能采用某种方法彻底消除软件的复杂性,因此软件危机只能是通过控制复杂性的方法解决。7控制软件复杂性的基本方法分解对复杂系统采用“各个击破”的策略抽象抽取系统中的基本特性而忽略非基本的部分(过程与数据抽象)模块化高内聚(cohesion),低耦合(coupling)高内聚指的是在一个模块中应尽量多地汇集逻辑上相关的计算资源;低耦合指的是模块之间的相互作用应尽量少。信息隐蔽也称封装。模块内部的实现细节与外界隔离。8面向对象(Objec
5、t-oriented)技术面向对象技术充分体现了分解,抽象,模块化,信息隐蔽等思想,可以有效地提高软件生产率缩短软件开发时间提高质量是控制软件复杂性的有效途径。9ABriefHistoryofOOTechnology1967:Simulaprogramminglanguage1970’s:Smalltalkprogramminglanguage1980’s:Theoreticalfoundations,C++,Objective-C,etc.1990’s:Object-orientedanalysi
6、sanddesignmethodologies(Booch,OMT,OOSE,etc.),Java1997:TheUnifiedModelingLanguage(UML)standardizedbytheObjectManagementGroup(OMG)10面向对象技术的优势稳定:较小的需求变化不会导致系统结构大的改变。易于理解:面向对象的模型更加贴切地反映了现实世界,尤其对于使用者。面向对象的方法Functions功能分解法11更好的适应性,能更好地适应用户需求的变化,有助于开发大型软件系统。具
7、有更高的可靠性。……面向对象方法中,分析和设计采用一致的概念和表示法,面向对象的分析和面向对象的设计之间不存在鸿沟问题:和传统方法相比,OO方法为什么会具有这些优势?12面向对象领域中的一些常用术语Object对象(Instance实例)Class类Attribute属性Operation操作(Method方法)Encapsulation封装Inheritance继承Polymorphism多态Message消息OOA面向对象分析OOD面向对象设计13对象(Object)对象是系统中用来描述客观事物
8、的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组方法组成。14说明:对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些非本质的、与系统目标无关的特征。在软件生命周期的不同阶段,对象可以有不同的表现形式。如在OOA/OOD阶段对象是用某种表示法给出的比较粗略的定义,而在OOP阶段对象是比较详细的源程序代码。对象之间通过消息通信。一个对象通过向另一个对象发送消息激活某一个功能。在不是纯面向对象语言中允许有不属于任何对象的成分存
此文档下载收益归作者所有