C 面向对象分析设计方法_第1页
C 面向对象分析设计方法_第2页
C 面向对象分析设计方法_第3页
C 面向对象分析设计方法_第4页
C 面向对象分析设计方法_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1C面向对象分析设计方法2什么是面向对象开发方法面向对象技术概述根据Coad和Yourdon的定义,按照以下4个概念设计和实现的系统,称为是面向对象的。 面向对象=对象(object)+类(classification)+继承(inheritance)+通信(communicationwithmessages)

面向对象的方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。OOSD(Object-OrientedSoftwareDevelopment)法是一种把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。第1页/共42页3面向对象方法的特点(I)面向对象技术概述面向对象方法按照人类的自然思维方式,面对客观世界建立软件系统模型。对象、类、继承、封装、消息等基本概念符合人类的自然思维方式。有利于对业务领域和系统责任的理解,有利于人员的交流。面向对象方法对需求变化有较好的适应性面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内。对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象的内部。第2页/共42页4面向对象方法的特点(II)面向对象技术概述面向对象方法支持软件复用对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供大量公用程序代码,提高了开发效率和质量。面向对象的软件系统可维护性好系统由对象构成,对象是一个包含属性和操作两方面的独立单元,对象之间通过消息联系。系统出错时容易定位和修改,而且不至于牵一发而动全身。第3页/共42页51.2面向对象技术发展历史面向对象技术概述初始阶段1960’s:Simulaprogramminglanguage1970’s:Smalltalkprogramminglanguage

发展阶段1980’s:Objective-C,C++,Self,Flavors,etc.成熟阶段1990’s:Object-orientedanalysisanddesignmethodologies(Booch,OMT,OOSE,etc.),Java1997:TheUnifiedModelingLanguage(UML)standardizedbytheObjectManagementGroup(OMG)第4页/共42页61.3面向对象的概念面向对象技术概述

面向对象技术的常见术语Object 对象Class 类Attribute 属性Operation/Method 操作/方法Encapsulation 封装Inheritance 继承Polymorphism 多态Message 消息第5页/共42页71.3面向对象的概念——对象(Object)面向对象技术概述对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些非本质的、与系统目标无关的特征。对象的两个基本要素:属性和服务属性是用来描述对象静态特征的一个数据项。服务是用来描述对象动态特征(行为)的一个操作序列。对象之间通过消息通信,系统功能通过新对象的建立和对象之间的消息通信来实现。第6页/共42页81.3面向对象的概念——类(Class)面向对象技术概述类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。同类对象具有相同的属性和方法,是指它们的定义形式相同,而不是说每个对象的属性值都相同。类体现了人们认识事物的基本思维方法分类(Classification)第7页/共42页91.3面向对象的概念——类vs.对象面向对象技术概述EmployeenamepositionsalarystartDateendDatehire()fire()promote()salary()retire()类名属性操作王平王平项目经理6000元/月1999.6.262001.5.25hire()fire()promote()salary()retire()对象名属性操作第8页/共42页101.3面向对象的概念——类vs.对象面向对象技术概述类与对象的比较同类对象具有相同的属性和服务,是指它们的定义形式相同,而不是说每个对象的属性值都相同。类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。对象是动态的,对象在程序执行时可以被创建和删除。在面向对象的系统分析和设计中,并不需要逐个对对象进行说明,而是着重描述代表一批对象共性的类。第9页/共42页111.3面向对象的概念——封装面向对象技术概述封装是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装使对象形成两个部分:接口和实现对用户来说,接口是可见的,实现是不可见的。封装可以保护对象,避免用户误用,也可以保护客户端,其实现过程的改变不会影响到相应客户端的改变。与封装密切相关的概念是可见性,它是指对象的属性和服务允许对象外部存取和引用的程度。第10页/共42页121.3面向对象的概念——继承面向对象技术概述特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承。与一般类/特殊类等价的其他术语父类/子类、超类/子类、基类/派生类、……使用继承可以增加软件重用的机会继承可分为单继承和多继承单继承是指子类只从一个父类继承多继承是指子类从多个父类继承第11页/共42页131.3面向对象的概念——单继承面向对象技术概述交通工具陆上交通工具空中交通工具第12页/共42页141.3面向对象的概念——多继承面向对象技术概述交通工具陆上交通工具空中交通工具小轿车卡车两用交通工具飞机第13页/共42页151.3面向对象的概念——多态性面向对象技术概述多态是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。GraphDraw()CircleDraw()RectangleDraw()Draw()methodisoverriddentosupplyshape-specificdrawing第14页/共42页161.3面向对象的概念——消息面向对象技术概述消息是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等信息。一个对象向另一个对象发消息请求某项服务,接收消息的对象响应该消息,激发所要求的服务操作,并把操作结果返回给请求服务的对象。采用消息(而不是函数调用)这个术语的好处更接近人们日常思维所采用的术语;其涵义更具有一般性,如在分布式环境中。第15页/共42页17第九讲面向对象分析设计方法1、面向对象技术概述

1.1面向对象方法的定义及特点

1.2面向对象技术发展历史

1.3面向对象的概念2、面向对象的开发方法

2.1面向对象分析(OOA)

2.2面向对象设计(OOD)

2.3面向对象编码(OOP)3、面向对象建模方法第16页/共42页18Astory(I)从前有两个人要学中国上乘武功——轻功,一个叫大聪,另一个叫二呆。大聪头脑灵活,二呆为人老实。他们到深山里找到一位老和尚,想要和他学轻功。老和尚让他们先砍一棵大树,做成练功的梅花桩,然后让他们下山各买了一个箩筐和一头小猪,再教他们简单的武术套路。让他们做到下面的要求:①

每天早晨要割青草喂饱小猪;②

背着小猪在木桩上操练武术套路;③

每天练完后将木桩的四周刨掉一层。过了一个月,没见老和尚教什么轻功。大聪打听到另一座山上有个轻功高手,想去拜师学习,叫二呆一起去,二呆说才来一个月不好意思就这么离开,于是二呆就留下来了。日复一日,二呆没感觉太辛苦,只是有点简单而枯燥。日子过得很快,一年过去了,小猪长成大猪,粗大木桩变成小杆杆,二呆还是老样子地操练。

第17页/共42页19Astory(II)大聪回来了,大聪问二呆有没有从老和尚身上学到轻功,二呆说还没有,并问大聪有没有学到轻功,大聪说也没有。但大聪又听说有个更高明的高手,要二呆一起去学习。于是二呆和大聪来到老和尚面前,二呆对老和尚说要跟大聪到别的地方去学轻功。老和尚一听,生气了,把二呆逼到墙角,接着用脚往二呆下盘一扫,二呆急了往上一蹬,想不到的事发生了:二呆一下蹿到了屋顶上——二呆会轻功了!?大聪看呆了。老和尚叫二呆下来,跟二呆说你可以走了。二呆下来想了一会儿,跪下感谢老和尚……后来二呆没走,继续跟老和尚学了十年,成了飞檐走壁的高师。第18页/共42页20Astory(III)高深莫测的武功,其实就这么简单!这里有老和尚的练功方法的巧妙设计:小猪体重每天增加一些(3~5两重),木桩直径每天少一点(1~2毫米),都感觉不出变化,但一年下来小猪变大猪,木桩直径由几十厘米变成几厘米,脚下的功力(承受重量及稳定性)不知不觉地每天都在长进。一年后去掉大猪的负担,虽然没有上乘的轻功也应有些入门了。

面向对象也像是上乘功夫,不是一两个月可以学成的,也需要几年的磨炼,但只要每天学习和体会一点,终可以学到面向对象方法和编程思想。

第19页/共42页21面向对象开发方法的组成面向对象开发方法

OOSD由三部分组成:

OOA(Object-OrientedAnalysis)面向对象的分析

OOD(Object-OrientedDesign)面向对象的设计

OOP

(Object-OrientedProgram)面向对象的程序设计OOAOOA强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。与OOA密切配合顺序实现对现实世界的进一步建模。OOP是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。OOD第20页/共42页22面向对象开发方法的组成(I)面向对象开发方法OOA法要解决“作什么”的问题。其基本任务就是要建立三种模型:状态模型(动态模型)

描述任何时刻对象的联系及其联系的改变,即时序。常用状态图,事件追踪图描述。处理模型(函数模型)

描述系统内部数据的传送处理。对象模型(信息模型)定义构成系统的类和对象,它们的属性与操作。1、OOA法第21页/共42页23面向对象开发方法的组成(II)面向对象开发方法

上述的三种模型各自从不同侧面反映了系统的实质性内容。一个典型的软件系统综合了上述3方面的内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。1、OOA法

对任何大型系统来说,三种模型都是必不可少的。在三大模型中,最重要、最基本、最核心的是对象模型。第22页/共42页24面向对象开发方法的组成(II)面向对象开发方法2、OOD

在需求分析的基础上,进一步解决“如何作”的问题,OOD法也分为概要设计和详细设计。概要设计:细化对象行为,添加新对象,认定类,组类库,确定外部接口及主要数据结构详细设计:加细对象描述3、OOP

法使用面向对象的程序设计语言,如C++进行程序设计。

Coad和Yourdon给出一个面向对象的定义:

面向对象=对象+类+继承+消息如果一个软件系统是按照这样四个概念设计和实现的,则可以认为这个软件系统是面向对象的。第23页/共42页25第九讲面向对象分析设计方法1、面向对象技术概述

1.1面向对象方法的定义及特点

1.2面向对象技术发展历史

1.3面向对象的概念2、面向对象的开发方法

2.1面向对象分析(OOA)

2.2面向对象设计(OOD)

2.3面向对象编码(OOP)3、面向对象建模方法第24页/共42页26面向对象分析OOA面向对象开发方法

面向对象分析OOA(Object-OrientedAnalysis)的目标是完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。OOA的基本任务

运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述它们的类和对象,定义其属性和操作,及其结构、静态联系和动态联系。第25页/共42页27面向对象分析OOA面向对象开发方法获取用户基本需求标识类和对象定义类的结构表示类(对象)间的关系为对象行为建模图1OOA分析过程1,OOA的分析过程:第26页/共42页28面向对象分析OOA面向对象开发方法1,OOA的分析过程:1、获取用户基本需求

用户与开发者之间进行充分交流,常用Usercase来收集和描述用户的需求。即先标识使用该系统的不同的行为者(actor)。

行为者所提出的每个使用场景(或功能)称为一个用例,所有的用例则构成完整的系统需求。第27页/共42页29面向对象分析OOA面向对象开发方法确定最终对象

可根据以下原则确定:需要保留的信息,需要的服务。从问题域或用例描述入手,发现对象。

对象可能的形式有:外部实体、事物、发生的事件、角色、组织单位、场所、构造物等。标识属性

从本质上讲,属性定义了对象。可从问题的陈述中或通过对类的理解而标识出属性。定义操作

操作定义了对象的行为并以某种方式修改对象的属性。操作分为:对数据的操作,计算操作,控制操作。2、标识类和对象标识类与对象是一致的。在确定系统的用例后,可标识类及类的属性和操作。第28页/共42页30面向对象分析OOA面向对象开发方法3、定义类的结构类的结构有:一般—特殊(generalization-specialization)结构整体—部分(whole-part)结构

用“对象-关系模型”描述了系统的静态结构。5、建立对象-行为模型描述了系统的动态行为。4、建立类(对象)间的关系第29页/共42页31第九讲面向对象分析设计方法1、面向对象技术概述

1.1面向对象方法的定义及特点

1.2面向对象技术发展历史

1.3面向对象的概念2、面向对象的开发方法

2.1面向对象分析(OOA)

2.2面向对象设计(OOD)

2.3面向对象编码(OOP)3、面向对象建模方法第30页/共42页32面向对象设计OOD面向对象开发方法OOD是面向对象分析到实现的一个桥梁。面向对象分析——

建立问题域模型(“做什么”)面向对象设计——

建立求解域模型(“怎么做”)

面向对象的设计OOD(Object-OrientedDesign)是面向对象方法在软件设计阶段应用与扩展的结果。OOD与OOA没有明显的分界,采用相同的符号。第31页/共42页33面向对象设计OOD面向对象开发方法OOD模型:OOD模型分为4个部分一、面向对象设计准则:

1)模块化 2)抽象3)信息隐藏

4)弱耦合 5)强内聚6)可重用二、面向对象设计的主要内容有:

1)问题域部分的设计

2)人机交互部分的设计

3)任务管理部分的设计

4)数据管理部分的设计PDC问题域组元

HIC人机界面组元TMC任务管理组元DMC数据管理组元主题层对象层结构层属性层服务层图2设计模型第32页/共42页34面向对象设计的过程面向对象开发方法1,设计对象与类在OOA对象模型的基础上,具体设计对象与类的属性、服务操作,设计对象与类的各种外部联系的实现结构,设计消息与事件的内容和格式等。类和对象的设计应当充分利用预定义的系统类库或其他来源的现有的类,将它们加到解决方案中去,并采用继承、复用、演化等方法设计所需要的新类。第33页/共42页35面向对象设计的过程面向对象开发方法2,设计系统结构设计系统结构的主要任务是设计组件与子系统,以及它们相互之间的静态和动态关系。软件系统的结构通常由两种方式:层次结构和块状结构。3,设计问题论域子系统问题论域子系统负责实现领域的业务服务,如一个教学管理系统的业务领域是教学管理,向用户提供课程管理、成绩管理、教学计划安排等服务。问题论域子系统应包括与应用领域的业务直接有关的全部类和对象。第34页/共42页36面向对象设计的过程面向对象开发方法4,设计人机交互子系统设计人机交互子系统的主要任务是设计用户界面,包括用户分类;描述交互场景;设计人机交互操作命令、命令层次和操作顺序;设计详细交互过程;设计人机交互类,如窗口、对话框、菜单等。人机交互子系统中的类与所使用的操作系统和编程语言密切相关,当代面向对象的程序设计语言都提供了丰富的预定义动态连接库,如C++语言的MFC类库等。设计人机交互子系统时,通常只要从预定义的动态连接库中选择合适的类,在从这些类派生出实现人机交互所需的类。第35页/共42页37面向对象设计的过程面向对象开发方法5,设计数据管理子系统数据管理子系统负责数据的管理,包括数据的录入、操纵、检索、存储,以及永久性数据的访问控制等。设计数据管理子系统的主要任务是:确定数据管理的方法,设计数据库与数据文件的逻辑结构和物理结构,设计实现数据管理的对象类。这些类应当拥有对数据的存储操作、数据输入与输出操作、检索操作、安全性一致性维护操作等。目前常用的数据管理方法有:数据文件管理、关系数据库、面向对象数据库,其中使用最广泛的是关系数据库。第36页/共42页38面向对象设计的过程面向对象开发方法6,设计任务管理子系统任务管理子系统的职责是协调和管理进程,尤其并发进程。设计任务管理子系统就是要设计软件系统的内部模块运行的管理机制,即把事件驱动、时钟驱动、优先级管理、关键任务和协调任务等系统管理任务分配给硬件和软件执行。7,设计优化,提高系统的性能系统设计结果需要优化,尽可能地提高系统的性能和质量。根据实际情况制定一个设计优化的折衷方案,进行系统的优化,提高系统的性能和质量。第37页/共42页39第九讲面向对象分析设计方法1、面向对象技术概述

1.1面向对象方法的定义及特点

1.2面向对象技术发展历史

1.3面向对象的概念2、面向对象的开发方法

2.1面向对象分析(OOA)

2.2面向对象设计(OOD)

2.3面向对象编码(OOP)3、面向对象建模方法第38页/共42

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论