面向对象的思想和方法在软件开发中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

重庆通信学院
毕业设计论文
题目:面向对象的思想和方法在软件开发中的应用专业:信息管理与信息系统
姓名:林红
学号:05230773
指导老师:李廷全
二○○九年六月
重庆通信学院
毕业设计(论文)任务书
队别 23 年级 2005 专业信息管理与信息系统学生姓名林红指导老师李廷全
同组姓名付琳妮赵敬会
一、题目
面向对象的思想和方法在软件开发中的应用
二、设计课题要求
1、论文结果合理,图表规范,符合学院毕业设计的格式要求
2、论点正确,证据充分,资料翔实
3、数据正确,引用合理,尊重知识产权
三、设计课题所需的主要设备和资料
1、面向对象的基本概念,主要方法
2、UML 面向对象分析与设计基础教程
3、计算机、打印机
四、设计说明(论文)应包括的内容
1、面向对象的基本概念和关键技术
2、软件开发的基本过程及其采用的方法
3、面向对象思想和方法应用案例
4、结论看法
五、参考文献
[1] 徐锋编著.UML面向对象建模基础.水利水电出版社,2006.09
[2]谢星星.UML基础与Rose建模实用教程.清华大学出版社,2008.10
[3]施昊华, 张朝辉. UML 面向对象结构设计与应用[M]. 北京: 国防工业出版社, 2003.9
[4]刘丰,冷英男. 基于UML 的一个应用软件建模实例[ J ]. 计算机与现代化, 2004, (10) : 132 - 134
教研室主任(签名)
系主任(签名)
摘要
随着计算机技术的飞速发展, 计算机管理系统应用的普及, 企业信息化势在必行。

传统开发方法结构化开发的软件存在很多问题, 其有稳定性、可修改性和可重用性都比较差, 生产效率低等缺陷, 这是因为传统的软件开发是面向过程的。

然而, 用户需求的变化大部分是针对功能的, 采用面向对象方法开发可以满足用户的需求, 因为面向对象有以下优点: 能够比较自然地反映现实事物, 可重用性、可维护性和可扩展性比较强。

本文将对面向对象技术的基本概念、基本特征,以及面向对象方法开发的基本过程和方法等作详细的介绍,其次介绍目前流行的几种面向对象程序设计语言方法,通过简述UML语言及常用软件来说明使用UML的面向对象开发方法是系统开发的趋势。

最后本文阐述了UML的主要内容,并以开放式学籍管理系统为例,探讨了应用UML建模机制,对系统的需求分析、详细设计及实现的不同阶段的建模过程。

展示了面向对象的思想和方法在软件开发中的具体应用。

[关键词]面向对象 UML 管理信息系统
ABSTRACT
Along with the rapid development of computer technology, computer management system is widely applied, enterprise informationization is imperative. Traditional method of structured development software, the existing problems and the stability and can modify reusability are poor, low production efficiency, because the traditional defects in software development is facing the process. However, the user needs most is the change of the function, using object-oriented method can satisfy the demand of users, because have the following advantages: the object oriented to compare naturally reflect reality, reusability and maintainability and expansibility. This paper analyzes the basic concepts of object-oriented technology, the basic characteristics, as well as the basic method of object oriented development process and the method such as detailed introduction, secondly introduces several popular design of object-oriented programming language, this paper expounds the main content and the UML to open registration management system as an example, discusses the application of UML modeling mechanism, the requirement analysis, system design and detailed the different stages of the process of modeling. Display the object-oriented ideas and methods in the application of software development.
[Keywords]Object-Oriented, Unified Modeling Language, Management Information System
目录
摘要 ......................................................................................................... I II ABSTRACT ..................................................................................................... I V 目录 . (V)
第一章引言 (1)
第二章面向对象概述 (2)
2.1面向对象的基本概念 (2)
2.2面向对象的特征 (4)
2.3面向对象开发的工作过程 (5)
2.4面向对象开发的常用方法 (6)
第三章 UML语言及常用软件简介 (8)
3.1 UML基本概念和特点 (8)
3.2 UML常用软件简介 (9)
第四章基于UML的学籍管理系统 (11)
4.1基于UML的软件建模过程 (11)
4.2使用UML建立开放式学籍管理系统的模型 (12)
结束语 (16)
参考文献 (17)
致谢 (18)
第一章引言
在20 世纪60 年代以前, 软件开发者构造的软件系统大多都是较小的, 且相对简单。

编程语言及编程环境也相对简单, 随着软件复杂性的增长, 为了更好地维护代码, 软件开发也需要方法来进行约束。

传统的方法中, 结构化方法和基于建模方法是典型的软件开发方法。

结构化方法是结构化分析、结构化设计和结构化编程的总称。

结构化方法的思想萌发于20 世纪60 年代, 是在70 年代由Tom DeMacro 和Ed Yourdon 等人被系统地进出来。

其目的在于, 提供一个有序的机制, 通过抽象来理解待开发的系统, 试图产生结构良好的软件系统。

但对于较复杂的系统而言, 容易导致模块的低内聚和模块间的高耦合, 从面使得系统缺乏灵活性和可维护性。

基于建模方法在20 世纪70 年代末提出, 即Peter Chen 的实体———关系法与Ed Codd 的关系数据库理论相结合提出的一种新的软件开发方法。

其强调对信息实体建模, 而不是对象建模。

结构化方法和基于建模方法都没有较强地描述系统的动态行为的能力。

随着计算机技术的飞速发展, 计算机管理系统应用的普及, 企业信息化势在必行。

传统开发方法结构化开发的软件存在很多问题, 其有稳定性、可修改性和可重用性都比较差, 生产效率低等缺陷, 这是因为传统的软件开发是面向过程的。

然而, 用户需求的变化大部分是针对功能的, 采用面向对象方法开发可以满足用户的需求, 因为面向对象有以下优点: 能够比较自然地反映现实事物, 可重用性、可维护性和可扩展性比较强。

UML (UnifiedModeling Language,统一建模语言)是一种对面向对象系统进行可视化、详细描述、构造和文档化的标准建模语言。

本文以UML语言软件建模过程为例,展示面向对象的思想和方法在软件开发中的应用。

第二章面向对象概述
什么是面向对象呢?“面向对象”本身没有任何意义。

“对象”大概是英语中最普通的一个单词。

它在字典中的定义是这样的。

对象:能感觉到或能够被感觉到的东西。

换句话说,对象可以是任何东西!
“面向”也没有任何特别的含义,它的定义是“指向”。

在这种定义下,“面向对象”被理解为形容词。

因此,面向对象可以定义成这样,面向对象:指向你可以想到的任何东西。

毫无疑问,软件工业无法为“面向对象”下一个统一的定义。

这种模糊性使得任何一个软件零售商都声称他们的商品是“面向对象”的。

2.1面向对象的基本概念
尽管权威人士对面向对象的概念没有达成一致的意见,但从程序设计方法的角度来看, 面向对象是一种新的程序设计范型。

其基本思想是使用对象、类、封装、继承、关联、聚合、消息、多态性等基本概念来进行程序设计。

2.1.1对象(Object)
对象是人们要进行研究的任何事物,它可以是有形的(比如一辆汽车), 也可以是无形的(比如一项计划)。

对象是构成世界的一个独立单位, 它具有自己的静态特征和动态特征。

对象是系统中用来描述客观事物的一个实体, 它是构成系统的一个基本单位。

一个对象由一组属性和对这组属性进行操作的一组服务构成。

2.1.2类(Class)
具有相同或相似性质的对象的抽象就是类。

因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类的确定主要是确定该类的所有
对象有哪些属性和哪些行为。

这些属性和行为必须覆盖该类中的所有对象。

例如在一个学生类中, 它的属性有姓名、学号、性别、所在院系, 它的行为有选课、注册等。

抽象是指忽略事物的非本质特征, 只注意那些与当前目标有拳本质特征, 从而找出事物的共性; 而分类是把具有共同性质的事物划分为一类, 得出一个抽象的概念。

另外, 每一个属性与行为都被封装后,只能在类的内部起作用。

2.1.3封装(Encapsulation)
为了实现信息的隐蔽, 又提出了封装,就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

2.1.4继承(Inheritance)
任何一个子类都具有其父类所有的属性、方法、事件。

这一特性叫做类的继承。

如果父类的特性发生变化,其子类也相应改变。

面向对象的编程技术强调了代码的重用性, 而可重用性即是能过继承来实现的。

简化了人们对事物的认识和描述, 也简化了系统的构造强度及其文档, 非常有益于软件复用。

2.1.5关联
类之间的静态联系称为关联。

关联表示了类与类之间的关系, 在实现这种关系时, 可以通过对象的属性表达出来。

例如“, 学生”与“课程”类之间存在着关联“选课”, 用类“学生”的对象的属性来记录该对象具体选课的课程对象(由“课程”类创建)。

2.1.6聚合
是关联的一种, 只是关联的语义没有聚合那么明显。

聚合是具有整体一部分关系语义的关联。

2.1.7消息(Message)
在面向对象方法中, 把向对象发出的操作请求称为消息。

对象之间通过消息进行通信, 实现了对象之间的动态联系。

2.1.8多态性
面向对象设计借鉴了客观世界的多态性,体现在不同的对象收到相同的消息时产生多种不同的行为方式。

例如,在一般类“几何图形”中定义了一个行为“绘图”,但并不确定执行时到底画一个什么图形。

特殊类“椭圆”和“多边形”都继承了几何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆,另一个是要画出一个多边形。

这样一个绘图的消息发出后,椭圆、多边形等类的对象接收到这个消息后各自执行不同的绘图函数。

面向对象方法是一种运用对象、类、封装、继承、关联、聚合、消息、多态性等概念来构造系统的软件开发方法。

2.2面向对象的特征
面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。

面向对象技术的基本特征主要有对象唯一性、分类性、继承性和多态性。

2.2.1对象唯一性
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。

在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

2.2.2分类性
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。

一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。

任何类的划分都是主观的,但必须与具体的应用有关。

2.2.3继承性
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

采用继承性,提供了类的规范的等级结构。

通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

2.2.4多态性(多形性)
多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

2.3面向对象开发的工作过程
面向对象开发的过程一般包括:系统调查和需求分析、分析问题的性质和
求解问题、整理问题、程序实现。

2.3.1系统调查和需求分析
对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究,即先弄清要干什么的问题。

2.3.2分析问题的性质和求解问题
面向对象系统分析(Object Oriented Analysis OOA),在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。

2.3.3整理问题
面向对象系统设计(Object Oriented Design OOD)即对分析的结果作进一步地抽象、归类、整理,并最终以范式的形式将它们确定下来。

2.3.4程序实现
面向对象的程序设计(Object Oriented Programming)
即用面向对象的程序设计语言将上一步整理的范式直接映射(直接用程序语言来取代)为应用程序软件。

2.4面向对象开发的常用方法
目前,面向对象开发方法的研究已日趋成熟,国际上已有不少面向对象产品出现。

面向对象开发方法有Coad方法、Booch方法、OMT方法和UML(Unified Modeling Language)语言等。

2.4.1 Booch方法
Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。

面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。

2.4.2 Coad方法
Coad方法是1989年Coad和Yourdon提出的面向对象开发方法。

该方法的主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、结构、属性和操作的认定方面,提出了一套系统的原则。

该方法完成了从需求角度进一步进行类和类层次结构的认定。

尽管Coad方法没有引入类和类层次结构的术语,但事实上已经在分类结构、属性、操作、消息关联等概念中体现了类和类层次结构的特征。

2.4.3 OMT方法
OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为“面向对象的建模与设计”。

该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系统。

该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力寻求一种问题求解的实际方法。

2.4.4 UML(Unified Modeling Language)语言
软件工程领域在1995年~1997年取得了前所未有的进展,其成果超过软件工程领域过去15年的成就总和,其中最重要的成果之一就是统一建模语言(UML)的出现。

UML将是面向对象技术领域内占主导地位的标准建模语言。

UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言。

UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

它融入了软件工程领域的新思想、新方法和新技术。

它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。

第三章 UML语言及常用软件简介不断增长的软件复杂性、多样性和相互关联性是当今信息系统的共同特征。

传统的面向功能开发方法,已逐渐不能适应越来越复杂和多变的需求了,其成果不能得到很好的重用。

而面向对象建模技术能够有效地控制复杂性和适应多变性, 从而能提高系统开发的效率。

3.1 UML基本概念和特点
3.1.1 UML基本概念
UML(统一建模语言)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

它溶入了软件工程领域的新思想、新方法和新技术。

它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

(1) UML语义描述基于UML的精确元模型定义。

元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。

此外UML 还支持对元模型的扩展定义。

(2) UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。

3.1.2 UML的特点
标准建模语言UML的主要特点可以归结为
(1)面向对象。

UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。

(2)可视化,表示能力强。

通过UML的模型图能清晰地表示系统的逻辑模型和实现模型。

可用于各种复杂系统的建模。

(3)独立于过程。

UML是系统建模语言,独立于开发过程。

(4)独立于程序设计语言。

用UML建立的软件系统模型可以用Java、VC++、Smalltalk等任何一种面向对象的程序设计来实现。

(5)易于掌握使用。

UML图形结构清晰,建模简洁明了,容易掌握使用。

UML进行系统分析和设计,可以加速开发进程,提高代码质量,支持动态的业务需求。

UML适用于各种规模的系统开发。

能促进软件复用,方便地集成已有的系统,并能有效处理开发中的各种风险。

3.2 UML常用软件简介
UML建模工具有很多,应用最广的有IBM的Rational Rose,Microsoft的Microsoft Office Visio® 2003 , Enterprise Architect。

还有其他工具如Power Designer等
3.2.1 Rational Rose
Rational Rose是一种基于UML的建模工具。

在面向对象应用程序开发领域,Rational Rose是影响其发展的一个重要因素。

Rational Rose自推出以来就受到了业界的瞩目,并一直引领着可视化建模工具的发展。

越来越多的软件公司和开发团队开始或者已经采用Rational Rose,用于大型项目开发的分析、建模与设计等方面。

从使用的角度分析,Rational Rose易于使用,支持使用多种构件和多种语言的复杂系统建模;利用双向工程技术可以实现迭代式开发;团队管理特性支持大型、复杂的项目和大型而且通常队员分散在各个不同地方的开发团队。

同时,Rational Rose与微软Visual Studio系列工具中GUI的完美结合所带来的方便性,使得它成为绝大多数开发人员首选建模工具;Rose还是市场上第一个提供对基于UML的数据建模和Web建模支持的工具。

此外,Rose还为其他一些领域提供支持,如用户定制和产品性能改进。

3.2.2 Visio 2003
Visio 2003 简Microsoft Visio 是独立的图表解决方案,它可以帮助用户交流创意、信息和系统并将其可视化。

使用 Visio 可以定义和记录日常工作生活的复杂信息,并与其他人有效地共享创意和信息。

另外,如果将 Visio 图表合并到 Office 文档中,将使您的信息变得更简洁、让别人更容易记住要点、更容易克服文化和技术上的障碍。

3.2.3 Enterprise Architect
Enterprise Architect是一个全功能的、基于UML的visual CASE工具,主要用于设计、编写、构建并管理以目标为导向的软件系统。

它支持用户案例、商务流程模式以及动态的图表、分类、界面、协作、结构以及物理模型。

此外,它还支持C++、Java、Visual Basic、Delphi、C#以及。

3.2.4 Power Designer
Power Designer是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。

Power Designer产生的模型和应用可以不断地增长,适应并随着你的组织的变化而变化。

第四章基于UML的学籍管理系统
下面我将以UML(Unified Modeling Language)语言软件建模过程为例,展示面向对象的思想和方法在软件开发中的应用。

4.1基于UML的软件建模过程
基于UML的面向对象分析的目的是对客观世界的系统进行建模。

分析模型有三种用途:用来明确问题需求;为用户和开发人员提供明确需求;为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架。

通过对一些相关知识的理论研究后,结合实践经验,将基于UML的软件建模过程可简单总结为:
4.1.1用例建模
需求分析阶段,首先要对系统基本功能需求进行描述,接着可以使用用例来捕获用户需求。

用例建模阶段,首先找出系统的执行者,分析执行者要做什么;在此基础上,获取用例,确立好角色;然后依据系统功能来确立系统的用例模型,建立用例视图。

4.1.2静态建模
在静态建模阶段,将从系统的内部结构和静态角度,分析和描述系统中的各类实体(对象和类)以及它们内部和彼此间的关系,确定实体功能范围的约束和限定,建立系统的粗略框架,再逐步细化其内部功能需求,最终建立系统的静态模型。

静态建模的结果是建立逻辑视图,主要包括类图和对象图等。

4.1.3动态建模
为实现用例,类之间需要协作,这可以用UML动态模型来描述。

动态建模阶段的主要任务是在前两个阶段的基础上,分析系统中各种行为发生的时序状态和交互关系,各类实体的状态变化过程,从而动态描述系统行为,反映系统内部对象之间的动态关系。

动态建模应建立并发视图,包括顺序图、合作图、状态图和活动图。

通常可以根据需要只选取其中一到两种图来说明问题,而不必全部罗列
出来。

4.1.4实现与测试
实现阶段是采用面向对象编程语言将来自设计阶段的类转换成实际的代码的过程。

可以选择某种面向对象的编程语言(如C + +、Java等)作为开发工具。

UML模型还可作为测试阶段的依据。

在完成系统编码后,需要进行测试以保证所开发的系统符合用户需求。

总之,UML的建模过程是非常灵活的,开发者可以使用其全部或部分静态图和动态图来描述和分析应用系统,并且该过程可以循环往复。

4.2使用UML建立开放式学籍管理系统的模型
4.2.1 用例建模阶段
开放式学籍管理系统是一个由学校学籍管理信息中心监控,各教学系(部)、教研室分级管理,由学生档案管理、导师管理、授课教师管理、选课管理、成绩查询管理、打印报表等几部分组成,选课学生甚至联网的邻近院校共同参与的管理系统。

学籍管理由学校学籍管理中心监控,各教学系部、教研室分级管理,任课教师,选课学生共同参与。

开放式学籍管理系统是根据对学校学籍管理信息中心而建立的一个简单的学籍管理软件系统。

理解系统要解决的问题,重点是充分考虑系统的实用性。

模型中的活动者代表外部与系统交互的角色,包括学生、系统管理员,用例图(见图4-1)是对系统需求的描述,表达了系统的功能和所提供的服务,包括学生档案管理子系统、导师档案管理子系统、课程管理子系统、授课教师管理子系统、选课管理子系统、成绩管理子系统、打印报表子系统。

图4-1 学籍管理的用例图
用例只描述参与者和系统在交互过程中做些什么,并不具体描述怎么做。

在建模过程中,不可能也不需要一次就找出所有的用例,随着认识的加深,用例图可以不断地自顶向下逐步精化和细化,抽象出不同层次的用例图。

在利用用例建模时,如果用例之间存在着重复应用,可以考虑关联或者包含关联,对特殊情况可以考虑泛化关联或者扩展关联。

4.2.2静态建模阶段
类图设计是面向对象方法的核心技术,通过类图将用例的实现具体到每个类中,从而完成设计走向细化的过程。

使用UML对学籍管理系统进行基于面向对象的分析和设计,可以从开发的第一步开始,从系统的底层就把握住学籍管理信息资源的特征,为下一步的具体实现打好基础。

在为学籍管理系统建立模型时要涉及到处理大量的模型元素,如对象类、接口、组件、节点、图等。

学籍管理系统中的学生类如图4-2所示。

相关文档
最新文档