面向对象系统的分析与设计

上传人:第*** 文档编号:34270007 上传时间:2018-02-22 格式:DOC 页数:18 大小:52.50KB
返回 下载 相关 举报
面向对象系统的分析与设计_第1页
第1页 / 共18页
面向对象系统的分析与设计_第2页
第2页 / 共18页
面向对象系统的分析与设计_第3页
第3页 / 共18页
面向对象系统的分析与设计_第4页
第4页 / 共18页
面向对象系统的分析与设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《面向对象系统的分析与设计》由会员分享,可在线阅读,更多相关《面向对象系统的分析与设计(18页珍藏版)》请在金锄头文库上搜索。

1、1面向对象系统的分析与设计学习报告面向对象系统的分析与设计课程是本专业的一门重要的专业课。通过本课程的学习,使我在已有的计算机软硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握了面向对象系统的分析与设计方法和技术,并初步具备了针对特定环境下的应用问题进行信息系统开发(包括系统分析、设计与实现)的能力。现将学习情况作以下汇报。一、面向对象概述在 20 世纪 60 年代以前,软件开发者构造的软件系统大多都是较小的,且相对简单。编程语言及编程环境也相对简单,随着软件复杂性的增长,为了更好地维护代码,软件开发也需要方法来进行约束。传统的方法中,结构化方法和基于建模方法是典型的软件开发方

2、法。结构化方法是结构化分析、结构化设计和结构化编程的总称。结构化方法的思想萌发于 20 世纪 60 年代,是在 70 年代由 Tom De Macro 和 Ed Yourdon 等人被系统地进出来。其目的在于,提供一个有序的机制,通过抽象来理解待开发的系统,试图产生结构良好的软件系统。但对于较复杂的系统而言,容易导致模块的低内聚和模块间的高耦合,从面使得系统缺乏灵活性和可维护性。基于建模方法在 20 世纪 70 年代末提出,即 Peter Chen 的实体关系法与 Ed Codd 的关系数据库理论相结合提出的一种新的软件开发方法。2其强调对信息实体建模,而不是对象建模。结构化方法和基于建模方法

3、都没有较强地描述系统的动态行为的能力。随着计算机技术的飞速发展,计算机管理系统应用的普及,企业信息化势在必行。传统开发方法结构化开发的软件存在很多问题,其有稳定性、可修改性和可重用性都比较差,生产效率低等缺陷,这是因为传统的软件开发是面向过程的。然而,用户需求的变化大部分是针对功能的,采用面向对象方法开发可以满足用户的需求,因为面向对象有以下优点:能够比较自然地反映现实事物,可重用性、可维护性和可扩展性比较强。什么是面向对象呢?“面向对象”本身没有任何意义。 “对象”大概是英语中最普通的一个单词。它在字典中的定义是这样的。对象:能感觉到或能够被感觉到的东西。换句话说,对象可以是任何东西!“面向

4、”也没有任何特别的含义,它的定义是“指向” 。在这种定义下, “面向对象”被理解为形容词。因此,面向对象可以定义成这样,面向对象:指向你可以想到的任何东西。毫无疑问,软件工业无法为“面向对象”下一个统一的定义。这种模糊性使得任何一个软件零售商都声称他们的商品是“面向对象”的。1 面向对象的基本概念尽管权威人士对面向对象的概念没有达成一致的意见,但从程3序设计方法的角度来看,面向对象是一种新的程序设计范型。其基本思想是使用对象、类、封装、继承、关联、聚合、消息、多态性等基本概念来进行程序设计。1.1 对象(Object)对象是人们要进行研究的任何事物,它可以是有形的(比如一辆汽车),也可以是无形

5、的(比如一项计划)。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成。1.2 类(Class)具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类的确定主要是确定该类的所有对象有哪些属性和哪些行为。这些属性和行为必须覆盖该类中的所有对象。例如在一个学生类中,它的属性有姓名、学号、性别、所在院系,它的行为有选课、注册等。抽象是指忽略事物的非本质特征,只注意那些与当前目标有拳本质特征,从而找出事物的共性;而分类是

6、把具有共同性质的事物划分为一类,得出一个抽象的概念。另外,每一个属性与行为都被封装后,只能在类的内部起作用。41.3 封装(Encapsulation)为了实现信息的隐蔽,又提出了封装,就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。1.4 继承(Inheritance)任何一个子类都具有其父类所有的属性、方法、事件。这一特性叫做类的继承。如果父类的特性发生变化,其子类也相应改变。面向对象的编程技术强调了代码的重用性,而可重用性即是能过继承来实现的。简化了人们对事物的认识和描述,也简化了系统的构造强度及其文档,非常有益于软件复用。1.5 关联类之间的静态联系称为关联。关

7、联表示了类与类之间的关系,在实现这种关系时,可以通过对象的属性表达出来。例如“,学生”与“课程”类之间存在着关联“选课” ,用类“学生”的对象的属性来记录该对象具体选课的课程对象(由“课程”类创建)。1.6 聚合是关联的一种,只是关联的语义没有聚合那么明显。聚合是具有整体一部分关系语义的关联。51.7 消息(Message)在面向对象方法中,把向对象发出的操作请求称为消息。对象之间通过消息进行通信,实现了对象之间的动态联系。1.8 多态性面向对象设计借鉴了客观世界的多态性,体现在不同的对象收到相同的消息时产生多种不同的行为方式。例如,在一般类“几何图形”中定义了一个行为“绘图” ,但并不确定执

8、行时到底画一个什么图形。特殊类“椭圆”和“多边形”都继承了几何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆,另一个是要画出一个多边形。这样一个绘图的消息发出后,椭圆、多边形等类的对象接收到这个消息后各自执行不同的绘图函数。面向对象方法是一种运用对象、类、封装、继承、关联、聚合、消息、多态性等概念来构造系统的软件开发方法。2 面向对象的特征面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有对象唯一性、分类性、继承性和多态性。62.1 对象唯一性每个对象都有自身

9、唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。2.2 分类性分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。2.3 继承性继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语

10、言所没有的。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。2.4 多态性(多形性)多态性使指相同的操作或函数、过程可作用于多种类型的对象7上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。3 面向对象开发的工作过程面向对象开发的过程一般包括:系统调查和需求分析、分析问题的性质和求解问题、整理问题、程序实现。3.1 系统调查和需求分析对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究,即先弄清要干什么的问题。3.

11、2 分析问题的性质和求解问题面向对象系统分析(ObjectOrientedAnalysisOOA),在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。3.3 整理问题面向对象系统设计(ObjectOrientedDesignOOD)即对分析的结果作进一步地抽象、归类、整理,并最终以范式的形式将它们确定下来。83.4 程序实现面向对象的程序设计(ObjectOrientedProgramming)即用面向对象的程序设计语言将上一步整理的范式直接映射(直接用程序语言来取代)为应用程序软件。4 面向对象开发的常用方法目前,面向对象开发方法的研究已日趋成熟,国际上已有不少面向对象产品出现

12、。面向对象开发方法有 Coad 方法、Booch 方法、OMT 方法和 UML(UnifiedModelingLanguage)语言等。4.1Booch 方法Booch 最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。4.2Coad 方法Coad 方法是 1989 年 Coad 和 Yourdon 提出的面向对象开发方法。该方法的主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、结构、属性和操作的认定方面,提出了一套系统的原则。该方法完成了

13、从需求角度进一步进行类和类层次结构的认定。尽管 Coad 方法没有引入类和类层次结构的术语,但事实上9已经在分类结构、属性、操作、消息关联等概念中体现了类和类层次结构的特征。4.3OMT 方法OMT 方法是 1991 年由 JamesRumbaugh 等 5 人提出来的,其经典著作为“面向对象的建模与设计” 。该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系统。该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力寻求一种问题

14、求解的实际方法。4.4UML(UnifiedModelingLanguage)语言软件工程领域在 1995 年1997 年取得了前所未有的进展,其成果超过软件工程领域过去 15 年的成就总和,其中最重要的成果之一就是统一建模语言(UML)的出现。UML 将是面向对象技术领域内占主导地位的标准建模语言。UML 不仅统一了 Booch 方法、OMT 方法、OOSE 方法的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言。UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支10

15、持从需求分析开始的软件开发全过程。二、面向对象系统的分析在进行了需求分析和业务流程分析并得到客户的认可之后,对项目进行系统分析是极其重要的。系统分析是能体现整个系统的灵魂的文档,将客户的需求从具体到抽象的一个过程,并制定编码人员可实施的规范和标准。在系统分析的过程中需要对需求分析进行进一步的深化和分析,通常客户及业务人员在需求分析和流程分析的过程中比较注重功能上的表现和定义,即使是做出正规的用户界面原型,对系统的需求也是不完整的,处于非技术人员的缘故,很难苛求能提出完整清晰专业的性能需求,但不意味着这需求不存在,而且这隐藏的需求对编码人员来说是极其重要的。如果眼光仅仅放在满足客户眼下的需求,当

16、问题不断出现时再不断修补,头痛医头,脚痛医脚,甚至系统构架需要不断调整或重新设计,那么,很快就会陷入代码泥潭或坠入系统重复开发的无底深渊,当初项目完成时的成就感将被无止境的沮丧所代替。因此,客户的需求能否在系统中得到真正的体现和实施,系统分析是至关重要的。1.对象的特性基本上,软件对象本身具有三项特性,分别是继承、封装、动态连结(即多态)。 “继承”特在面向对象设计上,是非常重要的一项观念,同样的数据和程序代码,不必在每个需要的地方在重写一遍。11只要归纳整理成一个 class,需要时再重制出所需要的 instance 即可。简单的说,继承性是 class 之间的一种再分类关系,它会让几个 class 之间会具有相同的数据结构或操作程序,减少重复的程序代码,达到对象重复使用的目的。封装性的意思是整个对象的数据和处理程序包在一起,透过一个标准、简单的接口才能存取对象内的数据及使用对象提供的功能,这里所谓的接口就是指对象的属性properity和方法method由于软件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号