Download presentation
Presentation is loading. Please wait.
1
《地理信息系统设计》教程 第三章 GIS设计方法
2
在上一次课介绍了两种基本的软件设计方法:结构化生命周期法和原型法,接下来对第三种基本的设计方法——面向对象的设计方法进行介绍,并对这三种方法进行比较,提出适合于现阶段GIS的设计方法。
3
教学提纲 三、面向对象设计方法 四、GIS基本设计方法比较与选择 退出
4
三、面向对象设计方法 (一) 概述 (二) 面向对象设计方法 (三)面向对象方法在系统设计开发中的应用 返回
5
面向对象设计方法的产生背景 由于微电子技术的迅速发展,使得计算机的成本不断下降,性能不断提高,用户也对信息系统提出了更复杂的功能需求。传统的系统设计方法(例如结构化生命周期法)已不能很好地满足这些需求,人们转而寻求新的系统设计方法。面向对象方法的出现正好迎合这种需求,受到广泛的重视,并很快地渗透到与计算机有关的各个领域中。
6
面向对象的主要概念和术语 主要 概念 定义 说明 对象 人们对世界上的事物的认识形成概 念,这些概念使我们可以感知和推
理世界上的事物,这些概念应用到 的事物称为对象 对象可以是真实的或是抽象的,这取决于研 究问题的目的,是面向对象方法的最基本元 素 类 具有一致数据结构和行为(即操作) 的对象抽象成类,它反映了与应用有 关的重要性质,而忽略掉其它一些无 关的内容 每个类都是个体对象可能的无限集合,每个 对象都是其相应类的一个实例。类中的每一 个实例均有各自的属性值,它们的属性名称 和操作是相同的 继承 继承是对具有层次关系的类的属性和 操作进行共享的一种机制。如在一个 已有类的基础上加入若干新内容形成 新类 继承可以减少设计和程序实现中的重复性。 在面向对象的术语中,这个已存在的类被称 为父类,使用继承由父类所定义的新类被称 为子类
7
系统的分析与设计是为了解决人的抽象思维向计算机语言转化的问题,对于不同的目的,系统分析有不同的含义。当分析的目的是实现时,那么,分析指的是这样一个过程,在此过程中,人们研究和理解所要实现的系统,并将研究结果以文档形式记录下来。
8
面向对象分析与设计方法的特点 分析与设计采用的工具差异较小。面向对象的实现工具提供了支持分析所形成的模型的构造块,因此,使用面向对象的技术,分析与设计能自然转换,设计变得简单,而重点移到了分析阶段。面向对象的分析是分析系统中的对象和这些对象之间相互作用时出现的事件,以此把握系统的结构和系统的行为。面向对象的设计则将分析的结果映射到某种实现工具的结构上,这个实现工具可以是面向过程的,也可以是面向对象的。当实现工具是面向对象时,这个映射过程有着比较直接的一一对应关系,可以认为采用了相同的概念模型。
9
面向对象的开发方法促使软件开发按应用域的观点来工作和思考。因为应用域中的问题贯穿大部分软件工程开发生命周期,只有当应用域中的固有概念被识别、构造和理解清楚了,才能有效地设计系统的数据结构和功能。同时,由于使用相同的概念模拟工具,从分析到设计的转变非常自然。面向对象技术使分析者、设计者和程序员,特别是最终用户都使用相同的概念模型,同时,落实到编程上,也应使用面向对象的语言开发环境。 返回
10
面向对象设计方法的主要类型 面向对象建模技术(Object_Oriented Modeling Technique,简称OMT)
统一建模语言(Unified Modeling Language,简称UML)
11
面向对象建模技术 OMT采用对象模型、动态模型和功能模型等来描述一个系统。用这种方法进行系统分析与设计所建立的系统模型在后期用面向对象的开发工具实现时“转换过程”是很自然的。
12
对象模型 对象模型描述的是系统的对象结构,是三种模型中最重要的模型。对象模型通过描述系统中的对象、对象间的关系、标识类中对象的属性和操作来组织对象的静态结构,它描述了动态模型和功能模型中的数据结构,其操作对应于动态模型中的事件及功能模型中的功能。通常,对象模型用含有对象类的对象图(是对E-R模型的扩充)来表示,这种表示方法有利于通讯交流和对系统结构进行文档化。
13
动态模型 动态模型描述与时间和操作顺序有关的系统属性。动态模型是对象模型的一个对照,它表示和时间与变化有关的性质,描述对象的控制结构。动态建模的主要概念是事件,它表示外部触发,它的状态表示对象值。动态模型关心“控制”,“控制”是用来描述操作执行次序的系统属性。通常,动态模型用状态图来表示,一张状态图表示一个类的对象的状态和事件的正确次序。
14
功能模型 功能模型描述了系统中所有的计算,它描述了由对象模型中的对象唤醒和由动态模型中的行为唤醒的功能。功能模型只考虑系统做什么,而不关心怎样做和何时做;它描述了一个计算运行的结果,而不考虑计算值的次序。通常,功能模型的描述工具是数据流图,数据流图说明数据流如何从外部输入经过操作而到外部输出。
15
OMT的两个特点 OMT是一种围绕着真实世界中的概念,是从三种不同的角度建立系统的面向对象模型的技术。 OMT主要有两个特点:
使用领域专家或用户熟悉的概念和术语,因而有助于对问题的理解和与用户通信交流; 对应用域的对象和计算机域中的对象使用一致的面向对象的概念和表示法来建模、设计和实现,不必在各阶段进行概念转换,因而方便了开发工作。
16
OMT建模步骤 步骤 内容 目标 系统分析 从问题陈述入手,与需求一起工作 ,以理解问题要求, 主要包括对象 建模、动态建模、功能建模等内容
简洁明确地抽象出目标系 统必须做的事情,对真实 世界建模 系统设计 系统设计是问题求解及建立解答的 高级策略,其内容包括将系统分解 为子系统的策略、子系统的软硬件 配置、详细的设计框架等 决定系统的整体风格;使 多个设计者能独立地进行 子系统设计;确定需优化 的性能,选择问题处理的 策略和初步配置资源 系统详细 设计 详细设计强调数据结构和实现类所 需的算法。在分析模型的类中增加 计算机化的数据结构和算法,并使 用统一的面向对象的概念和符号表 示法来表达 在分析的基础上,对设计 模型加入一些实现上的考 虑,将系统设计中的一些 实现细节加入到设计模型 中 软件编程 使用具体的程序设计语言、数据库 或硬件来实现对象设计中的对象和 关联 实现系统
17
统一建模语言的产生(一) 面向对象的分析与设计方法的发展在1980年代末至1990年代中期出现了一个高潮,统一建模语言是这个高潮的产物。
Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念,他于1991年建立Booch93。 Rumbaugh等人提出了面向对象的建模技术方法,采用面向对象的概念,并引入各种独立于语言的表示符,建立了OMT-2,它特别适用于分析和描述以数据为中心的信息系统。 Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。
18
统一建模语言的产生(二) 1994年10月,Grady Booch和Jim Rumbaugh开始致力于统一建模语言。
他们将Booch93和OMT-2 统一,并于1995年10月发布第一个公开版本,称之为统一方法UM0.8(Unified Method)。 1996年,为了进行方法学领域的研究和标准化工作,成立了OMG工作组。 1997年1月,许多组织提交了关于方法学标准的提案以协助模型的转换,这些提案主要集中在元模型和表示方法方面。 通过协调,UML1.1在1997 年底发布,得到工业界的广泛支持,被OMG正式接纳为标准。
19
统一建模语言的应用(一) UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,而且,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。 在需求分析阶段,通过用例来捕获用户需求,并采用用例建模,描述对系统感兴趣的外部角色及其对系统的功能要求。 在设计阶段引入定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类),为构造阶段提供更详细的规格说明。 编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。
20
统一建模语言的应用(二) UML模型还可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据。 单元测试使用类图和类规格说明; 集成测试使用部件图和合作图; 系统测试使用用例图来验证系统的行为; 验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。
21
统一建模语言的优点 采用UML模型进行系统的分析和设计具有以下优点:
通过统一语义和符号表示,能够稳定面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。 返回
22
面向对象方法在系统设计开发中的应用 在对象建模技术方法学的支持下,采用UML统一建模语言,能完成对象化软件可视模型的建立,并能自动生成多种用面向对象语言实现的代码。这样可以提高整体开发效率,同时还可以支持项目的协同开发,有利于保障软件系统的质量和可靠性。而且,大型软件系统开发工作量大、人员多、周期长,即使采用了面向对象的开发方法,如果没有自动化工具提供支持,开发队伍的效率依然很低,极易造成延期。如果采用软件自动化管理工具,就可以提供了一整套针对大型开发队伍的自动化手段,使开发小组能按照面向对象方法顺畅地完成项目开发,既提高了效率又保证了质量。
23
下面以美国Cayenne公司的对象建模工具ObjectTeam为例,阐述使用面向对象方法进行系统分析、设计开发的策略。
采用面向对象方法,开发人员容易过早地进入细节设计,因而也常常需要返工,造成浪费。通过明确划分软件开发生命周期的各个阶段,并采用统一的标号和法则简化各阶段内部的活动,从而可以把返工量减至最少,保证开发过程真正符合面向对象的规律,使得每一阶段都是基于前一阶段的开发成果迭代完成的。 在大型软件系统的开发中,由于对象模型的数目众多且关系复杂,使开发组成员难以对系统有共同的理解。针对这一问题的一种解决方法是在具体的对象模型之上,建立抽象信息层,将相关联的类分成容易理解的几个组,形成有逻辑关系的多个子系统,便于项目组成员协同有序地完成开发。
24
由于系统内部各子系统间的信息交换以及与系统外部的信息交互量都十分巨大。为了清晰地定义和管理这些复杂的交互信息,可以用文档、类通讯图及Use Case图来定义系统边界和建模。随着应用软件中对象数目和复杂度的增加,对象间的消息传递也变得难于理解和掌握了。通过采用消息综合的抽象技术,把传递的消息分层定义,通过简化细节,可以得到容易理解的高层次消息综合图。 返回
25
四、GIS基本设计方法比较与选择 (一) 基本设计方法比较 (二) GIS设计方法的选择 返回
26
三种方法各自的特点 结构化生命周期法规定了软件开发过程中的各项工程活动,一般包括可行性分析、需求分析、总体设计、详细设计、编码及测试六项活动,并规定了它们自上而下,相互衔接的固定次序,前一阶段的成果是后一阶段工作开展的基础。这种开发方法为软件开发提供了一个较为成熟和完善的管理模式,而且直观易学。其最大的不足是缺乏灵活性,尤其是在软件需求不明确或不准确的情况下,问题更为突出;其次还有修改困难、难以维护和软件模块重用性差等缺点。
27
原型法的主要思想是借助原型来辅助软件开发。在开发初期,开发人员根据自己对用户需求的理解,利用开发工具快速构造出原型软件,用户及开发人员通过对原型软件的试运行、评价、修正和改进,逐步明确对软件的功能需求以进行正式开发或者直接把原型扩充成最终产品。它的优点是增进了开发人员和用户对系统功能需求的理解,为用户提供了一种有力的学习手段,尤其是可以大大提高用户接受性。但是,软件原型是否具有代表性直接影响到软件开发的成功与否。
28
面向对象技术将客观世界(即问题论域)看成是由一些相互联系的事物(即对象)组成,每个对象都有自己的运动规律和内部状态,对象间的相互作用和相互联系构成了完整的客观世界,问题的解由对象间的通讯来描述。面向对象的开发方法包括分析阶段、高层设计、类的开发、实例的建立、组装测试几个阶段。
29
返回 设计方法 特性 结构化生命周期法 原型法 面向对象开发的方法 开发思想 划分六个阶段,并规定它们自上而下,相互衔接的固定次序
借助原型(它反映了最终系统的部分重要特性)来辅助软件开发 将客观世界看成相互联系的事物(即对象)组成,以对象为单元进行设计开发 开发过程 线性、固定次序 简单到复杂、部分到全面 线性、迭代性和无间隙性 开发模式 整体开发模式。下一阶段开始前完成上一阶段所有细节 非整体开发模式。推迟某些阶段的细节工作,从而较早产生工作软件 非整体开发模式,分析阶段由底向上提取对象,实现阶段自顶向下建立对象 驱动机制 文档驱动 需求的可变性和模糊性 以对象作为驱动 可见性 开发过程系统不可见 通过试用原型进行沟通 优 点 是一种较为成熟和完善的管理模式,整体性好 具有一定灵活性和可修改性;增进了开发人员和用户对系统需求的理解 与人类思维方法一致,便于描述客观世界;开发的软件性能稳定、易于重用和维护 缺 点 缺乏灵活性;难修改和维护;模块重用性差;开发周期长 整体性差;由于不断地对原型进行修改完善,工作的重复率高,工作量大 对象和实体设计存在盲目性;对象间的消息传递不能完整体现系统总体功能;系统结构性较差 适用性 功能和性能明确完整、无重大变化的软件开发 需求不明确,设计方案有一定风险的中小型软件开发 数据结构复杂、事物联系密切的软件开发 返回
30
GIS设计方法的选择(一) 传统的GIS分析设计方法是结构化生命周期法,根据上文对几种基本设计方法的比较,可以知道结构化生命周期法具有较为成熟和完善,整体性好等特点,是较为常用的GIS软件设计方法,但是结构化生命周期法缺乏灵活性、开发周期长,且对系统需求要求较高,而在实际的GIS设计过程中,系统的需求是在系统设计过程中逐步明确的,因此,采用结构化生命周期法进行GIS设计开发往往会出现重复性劳动、开发周期长、用户的接受度低等问题。
31
GIS设计方法的选择(二) 为了解决系统需求不确定性的问题,开始将原型法应用于GIS设计,采用原型法确定系统的需求。采用原型法进行GIS设计也有不足,就是系统的整体性差,重复劳动多。因此,原型法常用于小型GIS软件设计,而在大型GIS软件设计中,采用原型法与其它软件设计方法相结合来进行软件设计,其中,原型法主要用来确定系统的需求。通常,采用原型法进行软件设计有两种方式:一种是抛弃型原型法,设计原型确定系统需求,抛弃原型,从头开始系统的设计开发;另一种则是设计原型来验证需求,在此基础上根据用户意见对原型进行修改,将原型逐步完善成为成熟系统。
32
GIS设计方法的选择(三) 面向对象技术发展起来后,考虑到GIS所处理的空间数据是现实世界实体的反映,采用面向对象技术进行实体的表达和系统的开发,与人类思维方法一致,便于描述客观世界,开发的软件性能稳定、易于重用和维护。因此,面向对象设计方法在GIS设计中具有很大的优势,但是面向对象设计方法目前仍不成熟和完善,尤其是在GIS领域中的应用。
33
GIS设计方法的选择(四) 考虑到GIS应用的特点以及GIS应用的多样化,想要找到一种适用于所有GIS软件开发的设计方法几乎是不可能的,进行GIS设计方法的选择需要考虑多方面的因素,包括系统规模的大小、系统应用类型、系统需求明确程度等。通常,小型GIS软件设计常采用原型法进行开发;而大型GIS软件设计多采用结构化生命周期法或是面向对象方法进行开发,考虑到GIS设计需求不确定性特点,通常也在需求分析阶段应用原型法来确认用户需求。 返回
Similar presentations