面向对象建模(共12篇)
面向对象建模 篇1
一、引言
面向对象方法学也称为面向对象的开发方法, 它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式, 使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说, 面向对象方法是一种崭新的思维方法, 它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装, 模块的可构造性、可扩充性、可重用性也大大加强, 从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。
面向对象的软件工程要求首先对系统建立模型是对现实的简化, 它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾, 而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为, 指导我们构造系统模板。
二、面向对象建模方法
建模是构造软件系统最基本的步骤, 在软件工程学科中提供了多种多样的建模方法和高效的工具, 其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误, 对于今日的大型软件系统, 采用一种合适的建模方法, 建立一个良好的模型是成功的关键。在市场上已有一些公司, 如Rationa1, Cayenne, Platinum等开始提供商品化的建模工具, 即通常所谓的CASE工具, 使得建模过程实现了一定的自动化的标准化, 并逐步走向实用, 而这些工具的后面, 便是具有不同特色的建模方法。
(一) Booch方法
Booch方法是由Grady Booch提出的, 是一种主要面向设计的方法, 它通过二维图形来建立面向对象的分析和设计模型, 强调设计过程的不断反复知道满足要求为止。Booch方法特别注重对系统内对象之间相互行为的描述, 注重可交流性和图示表达。但在方法学上并不注重严格的过程, 既不推荐软件设计人员该做什么, 只是指出了其可做的工作。Booch方法把几类不同的图表有机地结合起来, 以反映系统的各个方面是如何可相互联系而又相互影响的。这些图贯穿于逻辑设计到物理实现的开发过程中, 包括类图、状态图、对象图、交互图、模块图和进程图。
(二) OMT方法
OMT (Object Modeling Technology对象建模技术) 是由James Rumbaugh等人提出的。OMT方法包含了一整套的面向对象的概念和独立于语言的图示符号。它可用于分析问题需求, 设计问题的解法以及用程序设计语言或数据库来实现这个解法。OMT方法用一致的概念和图示贯穿于软件开发的全过程, 这样软件开发人员不必在每一开发阶段便换新的表示方法。
OMT方法从对象模型、动态模型、功能模型3个不同但又相关的角度来进行系统建模。这3个角度各自用不同的观点抓住了系统的实质, 全面地反映了系统的需求。其中, 对象模型表示了静态的、结构化的系统数据性质, 动态模型表示了瞬时的、行为化的系统的控制性质, 功能模型则表示了变化的系统的功能性质。在软件开发的周期中, 这3种模型都在逐渐发展:在分析阶段, 构造出不考虑最终设计的应用域模型;在设计阶段, 求解域的结构被加入到模型中;在实现阶段, 应用域及求解域的结构被编码。
(三) OOSE方法
OOSE (Object_Oriented Software Engineering面向对象软件工程) 是由Ivar Jacobson提出的。它可较好的描述系统与其用户之间的信息交换机制, 即用于向软件系统提出需求后, 软件系统完成这项需求的过程。OOSE方法遵循瀑布式的软件开发过程, 首先是描述与系统交互有关的用户视图, 然后建立分析模型, 最后的构造过程则完成交互设计、实现和测试。OOSE开发过程可在规定的顺序步骤指导下完成, 其间允许少量的阶段反复。
三、UML进行系统软件建模的过程
用UML建模之初要描述总体需求。在这一阶段中主要是建立用例模型和静态模型, 以搭建系统体系结构。用例图是系统的高级视图, 要求按照面向对象的原则, 站在功能划分的角度将系统要实现的行为划分为用例;以用例之间的动态交互及交互时间为依据产生顺序图;接下来就在用例图的基础上抽象出系统的类, 明确各模块之间的关系以适当的粒度画出类图, 其中也包括了与用例图的相互迭代修改在分析完模块的静态交互关系后继而要绘制出构件图。以上这些过程中均不考虑系统的具体实现, 如建立什么样的数据库或采用什么语言编码等, 最好是以使用者的眼光去分析系统功能。为建立完整的系统模型, 还要对模块交互和构件细节做进一步分析, 补充状态图、活动图、协作图和实施图等, 从尽可能多的角度对复杂系统进行描述。在模型确定后就可以借助相应的支撑软件将模型导出为相关代码, 形成编码所需的初步框架。
四、结束语
UML用一种统一的基本表示来组织数据和它专有的处理, 能够无痕地支持OOA、OOD各阶段的工作特征, 使传统软件开发的两条鸿沟消失。UML的出现是面向对象技术发展的重要成果, UML成为可视化建模语言事实上的工业标准, 代表了面向对象方法的软件开发技术的发展方向。
参考文献
[1]马光毅等:面向对象方法研究《华南师范大学学报》。
[2]裴发展:OO建模与UML研究《河北省科学院学报》。
面向对象建模 篇2
u M L 是编制软件的标准语言, 拥有着强大的功能和良好的定义, 主要特点有统一性、非过程性和面向对象性等。R at io n al or s e 是由美国软件公司R at i on al 所研发出来的, 它目前对面向对象分析, 设计和建模市场有着重要的主导作用, 是重要的可视化软件研发工具。它的主要特点包括支持面向对象建模分析u M L、支持上升螺旋式研发开发过程、支持往返研发工程、支持多种语言设计程序和团队的研发开发。行为用例的划分, 从而产生交互时间及动态的用例顺序图。其次在此基础上, 将系统的类抽象化, 弄清各模块的中间联系, 从而画出适当的类图, 再在分析完后形成构建图,这些步骤都不需要去考虑具体实践的过程, 使用者会用自己的眼光分析和建立起完整的模型, 形成编码时所需的大概框架。
二、统一建模语言U M L 概述
2.1 u M L 的主要内容和建模机制。
u M L 吸取了目前许多的新技术, 是建模语言的可视化标准, 并且在面向对象分析上还吸取和发展了非面向对象分析的优势, 提出了建模机制, 在实际应用中对系统大量的可视化图形进行了阐述进而使开发人员和使用客户全方面准确的认识系统, 防止开发过程中的描述不明确的情况发生11 1 , 从而满足客户的真正的需求。u M L 和具体的过程并没有什么直接的关系,而是一个独立的过程, 因此可以运用在各个开发过程和软件系统中。规范U M L 面向对象分析的设计与开发的过程和方法, 提供面向对象分析中的高级概念的条件支持, 强调软件开发框架和组建的重要性。u M L 主要重视满足客户的需求, 以客户的需求作为开发过程中的核心与关键, 自始至终都保持着系统与客户需求的一致, 准确表达和适用客户所需, 从而提高系统效率, 简化思路和规范方法来指导软件的来发, 用统一的方法分析系统的静动态的各关系中的逻辑关系。它可以被用于U S e Cas e 的驱动开发也可以适用在其它的软件开发中, 建立起系统的模型。2 U M L 的表示法。
通过运用各式各样的模型图来描述系统, 充分表现出u M L 可见化建模语言的特点。一组元素的图形代表着图, 将图画变成顶点和弧的组合连通图, 从不同角度来画图将系统变成可视化的投影。在理论基础上,任何事物和它们的关系都可以组成要素形成一副图, 但在现实中, 只存在一些少量的常见图和组合。
2.3 运用u M L 进行系统软件建模的过程。
在运用u M L进行描述系统软件建设的总体需求的过程中, 搭建起用例模型及静态模型的系统结构体系。依照面向对象的基本原则运用高级试图用例视图, 以功能区分的角度实现系统.三、统一建模语言在面向对象分析与设计中的应用
3.1 u M L 及其与面向对象分析的集成。
u M L 是包含多方面的通用标准可视化的面向对象建模语言, 是计算机技术领域中的非常重要的成果, 极其强调结构模型中的系统对象的操作属性和类的关系, 及其行为模型中的交互作用和合作性历史状态的对象12 1。身为一种可视化系统建模语言工具, 是一种独立的开发过程, 可以适用于各个阶段的过程。面向对象的设计与分析中最关键和最基本的活动便是建模,它是面向对象分析与设计的开始和关键。按照不同阶段的要求和行为来选择不同形态的行为模型。2 u M L 面向对象分析过程。
首先, 通过利用u M L 的模型用例图来确定出系统边界和活动功能, 识别出系统的准确需求。然后运用用例模型的分析和描述识别出问题的本质类和对象。再通过U M L 的图揭示它们之间的关系和结构组成。
3.3 在实际系统中的应用。
面向不同对象的双语教学探索 篇3
摘 要: 文章结合电磁场与电磁波双语课程,论述了专业课程双语教学,在面向普通高等院校学生与中外合作项目学生时,其目标、性质、教学模式区别,以及在实施过程中遇到的问题和解决办法。
关键词: 双语教学 普通高等院校学生 中外合作 教学模式
引言
国家为了推动高等教育与国际接轨,鼓励高校开展双语课程教学历来已久。全国开设双语课程教学的高校非常多,研究双语课程教学模式的学者也很多。高校中双语课程实施的对象可分为两类,一类是普通高等院校学生,包括本科生与研究生;另一类为中外合作办学学生。面向这两类学生,在实施双语课程教学时,教学的性质、目标、教学方法都有所不同。
“电磁场与电磁波”是电子信息类专业和通信工程类专业一门重要的专业基础课程,也是“微波技术”和“光纤通信”等课程的基础。其内容在移动通信、微波通信、光纤通信、射频电路、高速集成电路等相关领域有着广泛而深入的应用。本文以“电磁场与电磁波”双语课程教学为例,分析普通双语课教学与中外合作中双语课程教学的区别。
1.普通班级专业双语课程教学
高校中普通专业双语教学的目标是在各专业领域培养既有较高的英文水平,又熟悉专业的人才。面向此类学生,多数高校采用的教学方法是汉语与外语混合授课模式,考虑到多数学生的外语口语和听力能力较弱,为了帮助学生掌握专业知识,往往先外语后汉语翻译。因为在制定该课程教学目标时把对专业知识的掌握放在首要位置,而外语能力的提高则放在其次。大多数学生在国内完成学业,双语课程仅仅使得学生在一定程度上提升了英语水平、扩大了英语词汇。因此,中外合作办学的双语课程与普通双语课程的性质是不一样的。
目前我们学校的“电磁场与电磁波”课程还没有在普通本科班级开设,但本课题组成员已经在积极准备中,对多个高等院校的双语教学进行了调研。对本校的通信工程专业本科生进行了“电磁场与电磁波”双语课程教学意愿调查,其中有调查项:92%的学生愿意实施双语教学;85%的学生认为自己的英语能力会妨碍对专业知识的理解,学生普遍认为自己的听力能力、口语能力较弱,专业词汇量较少。课题组成员针对这些问题提出了措施:听力能力与口语能力的提高是日积月累的事情,重在坚持锻炼。在初始阶段,教师的授课方式主要以混合模式为主,并录制相应教学视频,让学生能够课后进行相应复习,同时教师要制定合理的考核机制起到监督作用。其次,在教学过程中,对课程每一段落讲解结束后,把章节总结任务交给学生,鼓励学生积极参与并分组讨论,每组学生用英文提炼章节的重点和难点,再总结结论,从而提高学生口语能力;针对专业词汇量问题,课题组成员已经制定了专业词汇手册,按专业知识点类型分类,并非以往的按字母分类。在专业词汇教与学过程中,可将传统的大学公共英语教学手段与专业双语课程教学方法相结合。
2.中外合作项目中专业双语教学
目前国内高校的中外合作项目多数采用的是“3+1”或“2+2”模式,即前两年或三年在国内完成一定量的课程学习,成绩合格者可申请到国外完成剩余的学业。出国学习后,他们要面对的是纯外语的生活和学习环境,国内的双语课程教学可以使学生提前体验国外的语言环境、教学环境和教学模式,因此,在中外合作办学中,双语课程起到了过渡、引导的作用,同时为学生出国留学打下了坚实的基础。此时,专业双语课程授课目标应该是把专业知识的掌握与外语能力的提高放在同等位置。因为中外合作的学生多数已经进行过雅思培训或其他类出国外语培训,所以他们的外语能力相对普通学生较强,此时授课模式可由混合模式逐步向全外语模式过渡。
在我校的中外合作项目中,电磁场与电磁波双语课程已开设三届。该课程采用国外的原版教材,用外语完成作业,教学过程中采用外文课件,考核采用外文试卷,教学模式在一个学期中由混合模式逐步向全外语模式过渡。学生在潜移默化中习惯用外语思维组织语言、表达想法。这部分学出国后无论在专业知识方面还是语言能力方面,都受到外方的一致好评。但在该课程实施过程中,也存在一系列问题:(1)教学模式过渡到纯外语模式时,部分学生跟不上老师的节奏,甚至完全听不懂,再加上“电磁场与电磁波”课程是一门理论性抽象性非常强的专业课,学生就失去了学习兴趣。针对这一问题,在纯外语过程中可以将一些知识点的关键字进行反复强调,并在黑板上列出来;督促学生进行预习,提前了解老师讲解内容,有助于课堂上理解。(2)虽然大多数学生英语词汇量还可以,但因为没有接受过专业词汇的学习,所以在专业课程学习中,因专业词汇陌生或理解不准确而无法顺利掌握专业知识点。针对这一现象,在课堂教学中我们及时调整教学内容安排,花费一定的时间对专业词汇进行讲解。不论是面向院校普通学生还是中外合作学生,专业词汇的教与学都应该是基础,但在教学内容时间安排比例上应有相应区别。
结语
针对不同的授课对象,专业课程双语教学在教学目标、教学模式上都应该有所区别。目前随着教改课题的深入研究,结合近几年中外合作中“电磁场与电磁波”双语课程的实践,对教学模式探索,发现问题并提出相关措施,从而完善了双语教学,提高了教学质量。面向普通班级学生的该课程双语教学,课题组成员在积极准备探索中,明确授课对象的不同,在制定教学目标、采用教学方法都要因材施教。
参考文献:
[1]支绛.专业课程双语教学的思考与探讨[J].中国高等医学教育,2016,2:26-27.
[2]丁琪,张权.提高高校双语教学质量的对策[J].江苏高教[J].2013,5:90-91.
[3]许冬瑞,范东生.中外合作办学双语课堂教学模式的探究[J].教育艺术,2016,11:293-294.
[4]李强.卓越工程师培养背景下土木工程专业课程双语教学的实践与探索强[J].教育教学论坛,2016,6(25):169-170.
[5]王俊.探究式学习:改善高校双语教学实效的一个新思路[J].江苏高教,2013,2:68-69.
[6]蔡毓.关于高等学校通信电子及计算机工程类双语教学的思考[J].外语教学,2016,05:190.
面向对象的本体建模应用研究 篇4
关键词:本体,统一建模语言,映射,元模型
本体理论自20世纪90年代逐渐形成,作为一种知识组织体系,在知识表示时,有独特的优势。但同时在本体建模方面也存在以下缺陷:(1)目前可用的本体描述语言有十几种,多种语言共存使得使用者相互交流很困难;(2)这些语言都比较抽象,难以为人理解和掌握;(3)本体构建工具存在差异性,这导致它们缺乏互操作性;(4)建模过程大多需要手工参与,开发效率较低。这些限制使得本体建模缺乏统一的标准,进而无法满足实际的工程化本体建模需要。面向对象的思想和方法极大地推动了计算机技术的发展,尤其在软件开发的各个阶段都有成功的应用。在本体建模中引入面向对象的思想和方法,可以有效地革新现有的本体开发过程。UML是面向对象建模领域公认的工业标准,与之相关的技术和开发工具都很成熟。将UML引入本体建模,是实现面向对象的本体建模的有效途径。
如何将UML应用于本体建模,成为国内外相关领域学者的研究课题,文献[1]、文献[2]和文献[3]从不同角度,提出了用UML建模元素表达本体建模元语的不同方法,例如彭祖林[8],王翀[9]等研究了UML映射为OWL的可行性及实现方法,试图使UML能够严格的表达特定本体描述语言的建模元素的语义。文献[4]、文献[5]、文献[6]和文献[7]尝试在实际的工程应用中将UML引入本体建模,较为典型的像金芝[4],殷磊[5]等将需求分析与面向对象的本体建模结合起来。这种面向应用的研究主要围绕领域本体展开。这些研究已经取得了一定的成果。本文阐述了将UML应用于本体建模的理论依据,提出针对应用本体的不同领域,采用不同的映射方法。根据实际需要,提出了不同的扩展UML的方法,从而实现将UML建模元素到本体建模元语的映射。
1 本体建模研究
本体最早是一个哲学上的概念,表示客观存在的一个系统的解释或说明,关心的是客观现实的抽象本质[8]。而在人工智能界,引入这个概念是为了更准确地描述知识[2]。1993年,Gruber提出本体最为流行的定义[9] ,即“本体是概念模型的明确的规范说明”。
Perez等[11]认为本体可以按分类法来组织,他归纳出本体包含5个基本的建模元语(Modeling Primitive)。这些元语分别为:类(classes),关系(relations),函数(functions),公理(axioms)和实例(instances)。通常也把classes写成concepts。目前比较成熟的本体建模语言都包含了这五个基本的元语。本体构建方法的研究对于本体的应用有关键的作用。由于不同的学科领域有各自不同的实际要求,所以构建本体的方法也各不相同。目前尚没有一套标准的构建方法。一般认为,Gruber在1995年提出的5条规则是比较有影响的:(1)明确性和客观性、(2)完整性、(3)一致性、(4)最大单向可扩展性、(5)最少约束。常见的本体建模方法有Uschold方法、Grüninger&Fox方法、METHONTOLOGY方法、以及SENSUS方法等。其中斯坦福大学医学院开发的七步法相对比较成熟,主要用于领域本体的构建。七个步骤分别是:(1)确定本体的专业领域和范畴、(2)考查复用现有本体的可能性、(3)列出本体中的重要术语、(4)定义类(Class)和类的等级体系(Hierarchy)、(5)定义类的属性、(6)定义属性的分面(Faces)、(7)创建实例。本体构建工具能完成对本体的解析、创建、存储和重用等工作,好的工具可以帮助本体快速而有效地建立。目前较为有效的构建本体的工具主要有:OntoEdit、Ontolingua with Chimaera、Ontosaurus、OpenCyc Knowledge Server(简称OpenCyc或Cyc)、Protégé-2000和WebOnto等。其中Protégé-2000拥有大型的用户团体。与其他系统相比,其优点在于:(1)具有图形化的用户界面、(2)支持Unicode字符集输入、(3)可以免费下载系统安装软件和插件、(4)支持目前几乎所有的可用于构建语义网络的本体描述语言。
2 UML基本概念
UML (Unified Modeling Language) 是软件工程中的标准建模语言,采用面向对象的分析与设计(OOA&D)方法,具有图形化的建模手段。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。UML语义描述基于UML的精确元模型定义。UML还支持对元模型的扩展定义。UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。标准建模语言UML的重要内容可以由五类图来定义。例如用例图、静态图(Static diagram,包括类图、对象图和包图)、行为图(Behavior diagram):描述系统的动态模型和组成对象间的交互关系、交互图(Interactive diagram):描述对象间的交互关系、实现图( Implementation diagram ) 等等。
UML在信息和概念的工程化建模方面取得了很好的应用效果,成为软件开发的工业标准,拥有强大的数据库和成熟的开发环境支持。同时,存在大量熟悉UML语言和UML建模工具的软件开发人员。UML应用于本体建模,优势在于:第一,熟悉UML的用户可以利用现有的大量UML模型、模式和UML工具熟练地进行本体建模。第二,可以为本体开发的整个生命周期(分析、设计、实现、测试及配置)提供工程化支持,从而保证本体存储和访问的一致性,有利于本体之间的交互。第三,UML对本体进行建模不仅能支持现有的OWL、KIF这些知识表示语言,而且还能支持将来有可能出现的其他知识表示语言[12]。
3 面向对象的本体建模
现有本体表示语言无法满足实际的工程化本体建模需要,欠缺工程化的本体开发工具也是阻碍本体建模发展的一个重要的原因。为解决这一问题,人们提出面向对象的本体建模思想,将UML应用于本体建模是实现面向对象的本体建模的有效途径。目前,这个领域的研究的首要问题是,完成从本体到UML建模语言的映射。
3.1 UML用于本体建模
比较两种建模手段的异同是建立映射的基础,这两种建模手段的不同点在于:
第一,两者的建模目的不同,O-O模型是抽象的,用于消除和简化不必要的概念与关系,只遴选必要的知识来解决某个特定的问题。本体模型在于知识表达,往往需要囊括一个领域中所有的知识,强调知识的完备性。第二,O-O模型用于在软件系统开发时,创建精确、具体的实例。本体模型关注的是概念层的问题,虽然能说明某个事实,但是却不具体指导软件开发中元素的建立[12]。
本体模型和O-O模型之间的相同点在于:两者都是表达现实世界中可以用来处理的概念;两者都建立在类/概念和关系之上;两者都是为了得到在某个领域上的可重用的模型。
同一个领域的本体模型和O-O模型的相似性是UML有效开发本体的基础,但本体模型和O-O模型的差异导致UML在一些方面不适于进行本体建模,比如本体中的属性是第一级的建模元素,而在UML中属性和关联都不是第一级的,因此即使是OMG 即将发布的UML2.0规范也不能够解决本体建模需要解决的所有问题。为了解决这些问题,就必须扩展UML以实现面向对象的本体建模。OMG发布的MDA(模型驱动框架)定义了一个四层元模型框架。根据对每个层次的功能的定义,可以在OMG 模型驱动框架中的M2层上扩展原有的UML元模型,这样从“元级”这个层次保证了新的UML元模型可以用来指导开展本体建模工作,并且为这个元模型可以保证描述的处于M1层的本体模型之间的互操作性[12]。在一定条件下,也可以将UML建模元素直接映射为语义相似的本体建模元语,并且运用stereotype扩展机制和对象约束语言对语义加以约束,从而实现基于UML的本体建模。
3.2 UML映射为特定本体建模语言
3.2.1 比较分析两种建模手段的异同点
随着语义网络的发展,一些基于XML语法的语言出现,用以对本体进行表述,并可以将本体纳入语义网络的层次结构中。这些语言主要有DAML+OIL、OWL等。
为了将UML用于描述用这类特定语言表示的本体,首先要分析两种建模手段的异同点。也就是比较相应的建模元素。
将本体建模元素在OWL中的概念与UML中相同或相近的概念罗列出来,加以对照。可以看出:OWL中构造算子(交、并、补、限制、枚举)在UML中无直接对应。OWL中版本信息、版本管理机制等概念无直接对应。OWL中数据类型(XMLSchema 数据类型、枚举类型)在UML中无直接对应。除此之外,主要的OWL 模型元素在UML 模型元素中都能找到对应或相近的概念[1]。对OWL的概念及相应关键词加以分析归类,详细对照OWL与UML的具体关键词,也可以找出对应关系[2]。
找到对应关系之后进行异同点的比较,主要是两者之间差异的比较,也就是对应的概念或对应的关键字之间在语义方面存在的差异的分析。OWL底层的语法基于XML,在此基础上的语义扩展基于RDF(S),DAML+OIL也是如此,而且两种语言都可用于构建语义网络,所以两种语言本身有相似点。两种相似的语言都同UML作比较,能得出以下一些大致相同的结论:(ⅰ)泛化是UML中从已知类构造新类的唯一方法,而OWL或DAML+OIL却包含多种类构造算子,如交、补等,用于从已有类构造出新类。(ⅱ)本体描述语言中属性(性质)可作为一级对象独立存在,而UML中对应的术语描述的对象必须依附于某个类或某两个类。(ⅲ)UML 具有清晰、严格的元建模体系结构,而本体描述语言的层次并不这么严格。
3.2.2 构建元模型
通过比较两种建模方法的异同点,确定从那些方面扩展UML建模元素,以完整的表达本体建模元语的语义,完成从特定本体描述语言到UML的映射。
本体描述语言比较简单。只有实例、类、性质、子类、子性质等几种模型元素,目前只支持对概念及概念间静态关系的建模。因此只需要实现UML 的静态建模元素中的一部分如类、属性、继承关系等与本体模型元素之间的映射即可。所用的静态建模元素主要是类图、对象图。构建用UML类图描述的基于本体建模语言的元模型,是完成从特定语言描述的本体到UML描述的本体的映射的关键步骤。UML的元建模体系结构从具体到抽象分别是用户对象层、模型层、元模型层、元元模型层。如果基于上述的MDA四层模型构建元模型,则扩展的元模型处在元模型层。可通过扩展的元模型定义模型层元素描述具体的本体对象。构建的元模型不涉及具体的对象,不存在语义的映射空间。
具体的扩展内容取决于对两种描述语言的比较分析。有多种实现扩展的方法。(ⅰ)通过继承UML已有的元模型元素,引入了适合本体语义的元模型元素,例如本体、特性类、属性类、本体类等。经过扩展的元模型用来描述本体中最基本的类、属性、关系等概念[1]。(ⅱ)用UML profile扩展机制扩展UML的基本建模元素, 定义OWL 的UML 表示集,用类图描述同OWL中描述类概念和属性概念相关的主要关键字,从而建立OWL 的UML Profile 元模型[3]。这种扩展不存在具体的语义映射空间。(ⅲ)前人为了解决用UML表示本体的问题,已经提出了UML 元模型的扩展模型。可以基于自身研究分析的结果,结合对前人工作的分析,针对自身研究工作的需要,提出不同于前人结果的扩展模型。新的扩展模型并不基于前人的扩展模型,但可以基于前人的基本思路[3]。以上的方法在应用研究中都取得了有效的成果。
3.3 领域本体刻画及其应用
将UML用于领域本体建模具有实际应用的意义。例如,领域需求分析中所谓的“通信鸿沟”问题。针对这个问题提出了基于本体的需求工程。其主要思想是:在领域本体的制导下抽取现实世界的概念,产生应用描述,构造应用系统模型;映射应用系统模型中的可实现部分为应用软件概念模型;对应用软件概念模型进行规格说明,产生应用软件需求模型和软件需求文档[4]。也可以利用本体在知识表示方面形式化、规范化的优势,解决领域内知识共享的问题[5]。对面向agent的软件开发的研究近年来逐渐兴起,其基本原理是:在agent抽象层次上设Multi-agent系统需要对agent所处的世界(或应用领域)模型进行定义,agent 通过这个模型和其他的agent 进行交互。应用领域的描述通常是通过本体模型来表示领域中的实体以及实体之间的关系[6]。在标准化的建模过程中建立企业级的标准数据模型可采用本体建模的方法。葛世伦等人[7]采用了多种本体,利用面向对象的本体建模方法描述与企业生产过程和控制,制造等特定领域相关的知识。
用本体描述这些特定领域的知识,并将其用于实际应用,例如软件设计开发,在一定的条件下有其特殊的优势。但在接下来的工程实践中,这些数据要能被有效的处理,本体描述的知识就不理想了。需要将这些知识转化为其他形式。实际上,由于UML在软件开发过程中的作用,将用领域本体描述的知识转化成用UML类图描述的知识后,可以直接将他们用于软件开发。在工程开发的不同阶段,针对不同的实际需要,采用不同的建模工具,可以发挥各自的最大效力。
描述领域本体并不一定要扩展UML元模型或者构建某种基于UML的元模型,本体的概念可以映射为类或对象,由UML语言中的类图和对象图来表示,本体概念之间的关系映射为类之间或者类与对象之间的关系。为了达到对类实体更精确的表示(比如对属性之间依赖关系的描述),采用OCL(Object Constraint Language,对象约束语言)对实体加以约束。OCL是一种指定约束和查询的语境有关语言。刘炜[6]与殷磊[5]等人都采用了这种方法,有效地完成了映射。
用领域本体准确表达特定领域的概念,必须体现特定领域的概念的特点,一般的数学模型往往达不到这个要求,需要针对领域知识的特点,定义合适的数学模型。例如用一个三元组<ConTypeS,ConAssS,ConTypeH>描述企业本体。其中,ConTypeS为企业概念类集,ConAssS为企业概念类关联集,ConTypeH为企业概念类抽象层次结构[4]。要描述企业领域中的行为活动,可借助于人工智能领域中的形式化工具“情景演算”(Situation Calculus)定义情景演算模型[7]。“情景演算”是表达动作和变化基于情景概念的一阶理论。
由于要满足实际需要,在这个方向往往要设计完整的软件设计或数据建模的算法。为了将需求转换为一种通用的数据共享交换格式,可以设计算法将用本体建模的需求描述转化为UML,再转化为XML文档[4]。将本体用于领域需求分析时,可分为四个阶段:业务流程分析、逻辑分析、对象行为分析以及对象活动分析。在此基础上构造算法,最后输出领域需求分析的结果。同时,采用UML的活动图、对象图、对象状态图、对象活动图和用例图分别表示各个阶段的分析结果和应用本体构建的领域需求模型[6]。
因为具体应用不同,在这一方向实现映射的方法也不相同。但有以下共同点:不一定需要在元模型层扩展UML或构建元模型;一般使用领域本体描述相关知识;为了完成整个领域需求分析过程或数据建模,往往要使用多种UML视图;UML到本体的映射只是算法的一部分。
4 结语
目前,UML用于本体建模的研究还处于探索阶段。具体的扩展UML的方法和实现映射的机制应该根据相关研究领域的实际情况来决定。具有实际意义的工作往往将UML用于本体建模作为系统的一个模块来实现。相关的理论研究还有很大空间,还有不少有意义且极具挑战性的应用领域。将UML用于本体建模后,实现基于UML本体模型的推理成为必然要求,基于图形变换的推理是一种解决方法。也有人提出引入描述逻辑,将其作为推理的工具[15]。这一方面探索将是有益的,而且也一定会产生更加有效的结果。
参考文献
[1]彭祖林,林永动,杜彦辉.UBOM:基于UML的本体建模工具.Transactions of Beijing Institute of Technology,2006;26(11):1014—1018
[2]王翀,何克清,刘进.基于OWL元模型的本体建模研究.武汉大学学报(理学版),2004;50(5):581—585
[3]王洪伟,段永瑞,蒋馥.基于UML扩展机制的本体模型的可视化研究.管理工程学报,2006;20(3):67—73
[4]李娜,金芝.基于知识的UML图形文档自动生成.计算机工程与应用,2004;(33):50—55
[5]殷磊,王润孝,姜晓鹏.基于本体的领域需求分析方法与模型研究.计算机工程与应用,2005;(7):82—83,223
[6]刘炜,刘宗田.Multi-Agent系统中基于UML的领域本体建模.计算机工程与应用,2004;(5):22—25
[7]苗虹,葛世伦.本体支持下的企业数据模型构建.清华大学学报(自然科学版)2006;46(S1):40—48
[8]邓志鸿,唐世渭,张铭.Ontology研究综述.北京大学学报(自然科学版),2002;38(5):730—738
[9]Guarino N.Formal ontology,conceptual analysis and knowledge repre-sentation.Human-Computer Studies,1995;43(5):625—640
[10]Gruber T.ATranslation approach to portable ontology specifications.Knowledge Acquisition,1993;5(2):199—220
[11]Perez A G,Benjamins V R.Overview of Knowledge sharing and re-use components:ontologies and problem solving methods.In:Stock-holm V R,Benjamins B,Chandrasekaran A,eds.Proceedings of the IJCAI99workshop on Ontologies and Problem2Solving Methods(KRR5)1999;1—15
笔试题面向对象 篇5
1. 下面关于类的说法错误的一项是( )。
A、类属于Java语言中的复合数据类型 中的基本结构单位
C、类是同种对象的集合和抽象
2. 如下所示代码:
public class Test05_01{ }
private float a;
public static void m ( ){ }
D、类就是对象 B、对象是Java语言
如何使成员变量a被方法m( )访问( )。
A、将private float a改为public float a
B、将private float a改为static float a
C、将private float a改为protected float a
D、将private float a改为float a
3. 下面关于类的说法有误的一项是( )。
A、类就是对象 抽象
C、类属于Java语言中的复合数据类型 中的基本结构单位
D、对象是Java语言
B、类是同种对象的集合和
关于Java面向对象的考试题。
4. 下列哪种类成员修饰符修饰的变量只能在本类中被访问( )。
A、protected
B、default
C、private
D、public
5. 下面关于方法的说法不正确的一项是( )。
A、类的私有方法不能被其他类直接访问。
B、Java中的构造方法名必须和类名相同。
C、方法体是对方法的实现,包括变量声明和合法语句。
D、如果一个类定义了构造方法,也可以用该类的默认构造方法。
6. 下列程序的运行结果是( )。
public class Test05_02 extends x{ }
B、编译错误
D、运行成功,但不输出
int ab{ }
public static void main(String[] args) { }
Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;
System.out.println(a);
A、10 C、11
关于Java面向对象的考试题。
7. 下面关于构造方法的描述有误的一项是( )。
A、构造方法必须要有返回类型的声明。
B、构造方法和类中的方法很相似:有访问修饰符、方法名、参数列表、方法体。
C、构造方法当成是一个特殊的方法,这个方法的作用就是用来产生一个类的实例。
D、构造方法的方法名必须和类名完全相同。
8. 下列关于对象的说法错误的一项是( )。
A、对象成员是指一个对象所拥有的属性或可以调用的方法。
B、由类生成对象,称为类的实例化过程,一个实例可以是多个对象。
C、在创建类的对象时,需要使用Java的new关键字。
D、在Java中要引用对象的属性和方法,需要使用“.”操作符来实现。
9. 类的方法可以不包含下面哪一项( )。
A、方法的参数 C、方法的名称
B、方法的主体 D、方法的`返回值类型
10. 下面关于变量说法错误的一项是( )。
A、对于成员变量,我们可以不需要手动的显式初始化,因为系统在创建一个新的对象的时候,会给这些成员变量赋一个初值。
B、对于引用变量,它的默认初值是null而非相应的引用类型对象,也就是说,它并不是指向任何对象的首地址。
关于Java面向对象的考试题。
C、系统会对全局(成员)变量指定默认的值,也会对局部变量赋值。
D、局部变量在使用之前,必须对其进行显式初始化。
11. 下面的各种数据类型的默认初始化值表示错误的一项是( )。
A、int是0
B、float 是0.0
C、char 是‘u0000’
D、boolean是false
12. 下面哪一项不是Java的访问控制符( )。
A、public
B、private
C、void
D、protected
13. Java语言类间的继承关系和接口间的继承关系分别是( )。
A、单继承、不能继承
C、多重继承、单继承
B、多重继承、不能继承
D、单继承、多重继承
14. 如果局部变量和成员变量同名,如何在局部变量作用域内引用成
员变量( )。
A、不影响,系统可以自己区分
B、不能引用,必须改名,使它们的名称不相同
C、在成员变量前加this,使用this访问该成员变量
D、在成员变量前加super,使用super访问该成员变量
15. 下列关于内部类说法错误的一项是( )。
A、内部类可用private或protected修饰符修饰
B、内部类不能有自己的成员方法和成员变量
C、除static内部类外,不能在类内声明static成员
D、内部类可以作为其他类的成员,而且可访问它所在的类的成员
16. 定义外部类时不能用到的关键字是( )。
A、public
B、abstract
C、protected
D、final
17. 下面说法不正确的一项是( )。
A、abstract和final能同时修饰一个类
B、抽象类既可以做父类,也可以做子类
C、声明为final类型的方法不能在其子类中重新定义
D、抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口
18. 有一个类B,下面为其构造方法的声明,正确的是( )。
A、void b(int x) {} C、B(int x) {}
B、void B(int x) {}
D、b(int x) {}
19. 区分类中重载方法的依据是( )。
A、不同的形参名称
B、返回值的类型不同
D、访问权限不同
C、形参列表的类型和顺序
20. 下面说法错误的一项是( )。
A、在Java中,为了节省创建对象的时间和空间,对于一些常用的方法,会将它在内存中缓存起来。
B、在JDK中针对各种基本数据类型分别定义相应的引用类型,称之为封装类(Wrapper Classes)。
面向对象软件测试方法研究 篇6
关键词:软件测试;面向对象;类测试
中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 24-0000-01
面向对象软件测试技术是针对使用面向对象技术开发的软件而提出的一种测试技术。面向对象开发技术和传统开发技术相比有新的特点,使用面向对象技术开发的程序具有高质量、高效率、易扩展、易维护等优点,这也给它的测试技术带来新的挑战。面向对象软件测试与传统的软件测试相比,由于面向对象技术开发的软件会出现传统软件技术中不存在或者不突出的错误,使得传统的软件测试中次要方面成为了现在的主要问题,影响了软件测试的方法和内容,增加了软件测试的难度。
一、软件测试
(一)软件测试
软件测试是使用人工操作或者利用测试工具按照测试方案和流程对软件产品进行功能和性能方面的评估,检验软件产品是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
(二)面向对象对软件测试的影响
面向对象软件具有抽象性、封装性、继承性和多态性等特点,这些特点对软件测试产生了不同的影响。面向对象程序中子类可以继承父类的功能,父类进行了充分测试后,子类也要设计相应的测试用例进行充分测试,对子类进行测试时不仅要测试子类中的方法,还要重新测试与子类中重定义方法相关的类。面向对象软件测试时,对象的状态通常是信息隐蔽的,测试人员需要在测试类中添加适当的信息来表明对象的实现方法及其内部状态。对于面向对象软件的多态性形成的动态绑定的测试使用传统的静态分析策略是不合适的,需要使用动态的测试标准来解决这个问题。
二、面向对象软件测试方法
面向对象软件测试方法是从传统的软件测试方法中演化而来的,有与传统的软件测试相类似之处,但由于面向对象的软件开发具有继承性和多态性等特点,为了支持和加强数据隐藏的特性,面向对象的软件测试必须向一个类的接口添加操作,所以说面向对象的软件测试方法更复杂一些。
(一)面向对象软件单元测试
面向对象软件单元测试主要是类测试,包括方法测试和对象测试。类是面向对象程序设计的基本单位,对象是类的具体实例,类测试是来验证类的实现和类的说明是否完全一致,如果类的实现是正确的,那么类的每一个具体实例的行为也将是正确的。
面向对象的类测试首先要确定测试方法,通常可以通过代码检查和执行测试用例两种方法来测试类的代码。代码检查方法容易受人为错误的影响,在代码量很大的情况下也会加大它的工作量,而编写一个好的测试用例需要很丰富的经验和较高的技巧。通过类实现的功能来分析所要编写的测试用例,然后根据类的边界值来扩充测试用例。构建测试用例一般是基于前置条件或后置条件,为所有可能出现的情况及情况的组合确定测试用例的需求,在这些可能出现的情况组合下,根据这些需求来构建测试用例,而且还要针对实际情况创建特定输入值的测试用例,并确定它们的正确输出。
测试驱动程序是一个运行测试用例并能够收集运行结果的程序。在面向对象的软件测试中,设计核心类的测试驱动程序十分重要,要求该程序必须思路严谨、结构简单清晰并易于维护。当确定了类的可执行测试用例,测试驱动程序就要创建类的实例来运行该测试用例,并给出测试用例运行的测试结果。
(二)面向对象软件集成测试
面向对象软件集成测试主要是类簇测试。面向对象软件是由若干对象组成的,这些对象互相协调合作来实现软件的功能,在面向对象的软件开发中,对象间的相互协调即对象的交互对于程序的正确性来说是非常重要的,对象的交互方式决定了程序能做什么,从而也就决定了程序是否正确。对象的交互测试是在对类的单独测试的基础上实现的,它来确保对象之间相互传递消息的正确性,它一般执行测试的是嵌入到应用程序中的交互对象。
在面向对象的软件测试当中,除了要考虑对象交互特征面之外,还需要具体的测试技术去实现测试的要求,目前常用的面向对象软件集成测试的方法有抽样测试和正交阵列测试。抽样测试提供了一种运算法则,不需要首先明确测试用例的总体,从一组可能的测试用例中选择测试序列;正交阵列测试是一种特殊的抽样方法,它通过定义一组交互对象的配对方式组合来进行测试,同时要尽量限制测试组合的配置数目,正交阵列测试系统就是挑选某个样本的特定测试技术。
(三)面向对象软件系统测试
在对面向对象软件进行系统测试时,要保证被测系统的完整性,搭建与真实用户实际使用环境相同的测试平台,并且需要参考面向对象分析的结果,对软件的架构进行验证,确保软件可以完全再现问题空间以及完整实现用户需求。系统测试不仅是要检测软件的整体功能行为表现,也是对软件设计开发的再确认,它针对的是非功能需求的测试,包括功能需求以外的所有需求以及注意事项等。系统测试是针对完整软件产品的测试,包括软件、软件运行所依赖的硬件、外设、数据、支撑软件及接口等,确保开发的软件与其依赖的各种资源能够协调运行,形成完整的软件产品。系统测试是软件测试过程中非常重要的阶段,它对测试技术的要求也是最高的。在进行面向对象软件的系统测试时,测试技术人员需要与软件的用户进行交流,根据用户提出的需求给出系统的修改建议,结合用户需求对被测试软件进行测试分析,根据分析结果建立测试用例。
三、结束语
面向对象的软件测试技术是面向对象软件开发中的重要组成部分,本文从面向对象软件的特点出发,分析了面向对象软件测试对传统软件测试的影响,介绍了面向对象软件测试的方法。
参考文献:
[1]王艳丽.面向对象软件簇级测试用例自动生成方法研究与实现[D].长春工业大学,2011.
面向对象建模 篇7
由于网络技术的迅速发展, 及互联网的普及, 新兴的教育模式正在出现。网络教学、远程教学和教育资源共享等教学模式和手段, 正逐渐产生新的教育理念, 促进了教学模式的改革。学校对网络教学系统的建设将具有重要意义。本文基于面向对象技术, 运用统一建模语言, 针对网络教学的特点, 构建一个基于Web的网络教学系统, 分析静态和动态的网络教学系统的建模过程。
1 面向对象的统一建模语言UML
1.1 面向对象技术
面向对象技术就是尽可能地按照人类认识世界的思维方法来分析和解决问题, 使人们分析、设计一个系统的方法尽可能接近认识一个系统的方法。包括面向对象的分析和面向对象的系统设计。面向对象的分析是指利用面向对象的概念和方法为软件需求建造模型, 使用户需求逐步精确、一致、完全的分析过程;面向对象的系统设计是指把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。面向对象的技术可以降低系统的耦合度, 提高复用性和维护性, 降低费用, 提高软件质量。
1.2 统一建模语言UML
UML是一种通用的可视化建模语言, 它提供从不同的角度去观察和展示系统各种特征的标准方法。在UML中, 从任何一个角度对系统所做的抽象都可以用几种模型来描述, 而这些来自不同角度的模型最终组成了系统的完整模型。UML提供了静态、动态、系统环境及组织结构的模型, 它被建模工具所支持, 这些工具可以将UML模型转换为程序设计语言代码, 反之, 也可将程序源代码转换成UML模型。
UML的视图是由一个或多个图组成的对系统某个角度的抽象。图就是系统架构在某个侧面的表示。UML提供了9种基本的图, 可以分成两大类, 一类是静态图, 包括用例图、类图、对象图、组件图和配置图;另一类是动态图, 包括状态图、活动图、时序图和协作图:
(1) 用例图 (Usecase Diagram) , 用于描述人们希望如何使用一个系统, 从用户的角度指出每个功能的参与者 (Actor) , 一个用例图最常用来描述系统以及子系统。
(2) 类图 (Class Diagram) , 描述系统的静态结构, 不仅定义系统中的类, 描述类之间的联系, 如关联、依赖、聚合等, 还包括类的内部结构, 如类的属性和操作。
(3) 对象图 (Object Diagram) , 描述的是参与交互的各个对象在交互过程中某一时刻的状态, 它可被看作是类图在某一时刻的实例。
(4) 组件图 (Component Diagram) , 描述物理组件以及它们之间的依赖关系。
(5) 配置图 (Deployment Diagram) , 描述系统执行中系统资源的配置情况以及元件到这些资源的映射。
(6) 状态图 (State Diagram) , 通过建立类对象的生存周期模型来描述对象随时间变化的动态行为。
(7) 活动图 (Activity Diagram) , 描述了活动顺序, 展现从一个活动到另一个活动的控制流。
(8) 时序图 (Sequence Diagram) , 描述对象之间传送消息的时间顺序, 用来表示用例中的行为顺序。
(9) 协作图 (Collaboration Diagram) , 按照时间和空间的顺序描述系统元素间的交互和它们之间的关系。
2 网络教学系统的建模
网络教学系统借助网络这一平台, 改变了日常老师和学生面对面的普通教学方式, 是一种有效的课前和课后的补充教学手段。网络教学系统的使用对象主要是教师, 学生和系统管理员。教师可以上传教学课件, 发布课程消息, 以及修改和更新相关教学信息。学生可以登录网站浏览信息, 查找课程资料和下载相关文件。系统管理员主要是对整个系统进行维护, 批准用户的注册申请。该系统的实现主要有3个模块组成:数据库管理模块对系统的所有数据进行管理;基本业务模块主要实现教师, 学生和管理员的相关数据信息的存贮;信息浏览模块主要是对网站教学信息的搜索和筛选。
2.1 系统分析
系统分析的目标就是建立系统的用例模型, 找出系统的参与者和各自要通过系统来进行哪些操作。网络教学系统的参与者主要有教师、学生和管理员, 他们利用该系统完成不同的操作任务。
2.2 系统设计
用例图描述参与者要实现的功能, 但对于系统内的功能实现及相互关系, 就要通过静态建模和动态建模来描述。系统静态模型可以根据系统的问题抽象, 找出系统的对象, 定义出类图, 来表示系统静态模型。建立静态模型后, 为了表达系统的动态特征, 可以建立系统的动态模型, 动态模型可以采用状态图、活动图、时序图和协作图表示, 本文选择了活动图和时序图来对网络教学系统进行动态建模。
2.2.1 活动图模型
活动图描述了参与者的一系列行为, 用来反映系统用例或操作执行的状况。它适用于工作流和并发的处理行为, 其主要任务描述并发活动和用例的协同任务, 图2描述了用户登录系统的活动, 该图有3个对象参与全过程。
2.2.2 时序图模型
每个用例都可以画一个时序图, 但实际应用中, 我们通常省略那些过于简单的时序图, 时序图表达了类与对象间信息传递的时间顺序。水平轴表示不同的对象, 垂直轴表示时间。时序图中的对象用一个带有垂直虚线的矩形框表示, 并标有对象名和类名。垂直虚线是对象的生命线, 用于表示在某段时间内对象是存在的, 对象间的通信通过在对象的生命线间的消息来表示。如图3使用时序图描述了管理员管理系统的动态模型, 该图中有4个对象参与。
2.2.3 系统设计实现
在系统设计实现阶段, 把系统的静态和动态模型通过高级程序设计语言转换成源代码, 其中最重要的一个工作就是, 用面向对象技术对系统中的类进行抽象和实例化。系统中的类和对象是程序实现的重要基础, 同时增加新类来解决诸如数据库、用户接口、通讯、设备等技术方面的问题。在对UML表示的模型进行转换时, 最好不要直接把模型转换成代码, 因为在早期阶段, 模型只是对系统结构的概要描述。
2.2.4 系统测试
完成了整个系统的设计之后, 要对系统进行测试, 通常分为单元测试、集成测试、系统测试和验收测试几个不同级别。不同的测试小组使用不同的UML图作为它们工作的基础。
3 结束语
面向对象模型把系统中所有角色作为对象, 把隶属于每一个角色的数据和操作封装在一起, 既符合人的思维习惯, 又便于系统的移植、修改和扩充, 而且在构建新的网络教学系统时可以重用这些对象类。UML模型的建立对整个系统的开发提供了清晰而一致的设计指导, 对软件生命周期的各个阶段也给予有力的支持, 是软件系统设计中必不可少的重要环节。
参考文献
[1]TOM PENDER.UML Bible[M].Wiley Publishing, 2003.
[2]WENDY BOGGS.Mastering UML with Rational Rose[M].MichaelBoggs.SyBEX Inc, 2002.
[3]尤克滨.UML应用建模实践过程[M].北京:机械工业出版社, 2003.
面向对象建模 篇8
面向对象方法已经成为软件开发的主要方法[1],面向对象的分析方法以对象作为分析问题,解决问题的核心,并对问题空间进行直接映射,使计算机实现的对象与真实世界具有一一对应关系,符合人类认识规律,有效地解决了需求分析模型和软件设计模型的不匹配现象。由于采用了数据抽象和封装技术,面向对象的程序设计降低了各模块间的耦合,可实现较高的代码利用率。基于UML建模技术可以进行面向对象[2]的分析、设计、编程、测试以及面向对象的软件过程,它以统一建模语言作为分析工具,利用面向对象的思想对问题域进行建模。本文针对建模的方法和技术进行了讨论,并结合实例加以说明。
1 UML概述
统一建模语言(unified modeling language,UML)是一种发展演变而来的通用建模语言,运用广泛,已得到很多工具的支持,并被用作行业标准,用于指定、显现、构建和记录系统密集过程的工件。UML可用于不同类型的系统(软件和非软件)、域(业务与软件)和方法(或过程)。它支持并推广(但并不要求或强制)一种过程,这种过程的特点是用例驱动的、以体系结构为中心的、面向对象的、基于组建的、迭代的、递增的和抗风险的。但UML并未指示任何特定的系统开发方法,非常灵活,可进行定制,以适应所有情况。
2 面向对象原理
2.1 基本概念
概括地说,面向对象就是把问题抽象为对象,设置属性(数据),指定事件或处理方式(代码)以达到目的,并强调从问题域的概念到软件程序和界面的直接映射[3]。
(1) 对象:
事物的抽象(即模型)对象可以被定义为一个封装了状态和行为的实体,或者说是数据结构(或属性)和操作。所有对象都是类的实例[4]。
(2) 类:
是具有相同特点的对象的集合,或者说,类是可用于产生对象的模版。
(3) 消息:
消息是对象通信的方式,也是获得功能的方式。对象收到发给它的消息后,或者执行一个内部操作(有时成为方法或过程),或者再去调用其他对象的操作。
2.2 基本特征
(1) 封装:
把数据结构同操作数据的过程(函数)衔接在一起,构成具有类的类型对象。对象具有明确的功能,并有接口与其他对象相互调用,而对象的内部代码和数据是受保护的,别的对象不能访问。这样,每一个对象就像一个部件一样,在任何可调用的程序中起作用,而其功能不变。
(2) 继承:
是面向对象编程的一个重要机制,编程者可以在原有的类基础上建立新类,实现代码的重复利用,提高开发效率。类可以以一种层次结构来安排。在这个层次结构中,子类可以从比它高的超类中继承得到状态和方法。
(3) 多态性:
描述的是如下现象。如果几个子类都重新定义了超类的某个函数(都用相同的函数名),当消息被发送到一个子类对象时,在执行时该消息会由于子类确定的不同而被解释为不同的操作。一个给定的类可以从不止一个超类中继承,称之为多继承。如果采用动态联编,继承就导致了多态性。多态性具有灵活、抽象、行为共享、代码共享等优势。
3 运用UML进行系统建模
UML是一种绘制软件蓝图的标准建模语言[5],其目的是对面向对象的系统进行可视化、详述、构造和文档化。UML可运用于软件开发过程各个阶段的建模活动,尤其是分析与设计。将UML运用于面向对象的软件系统建模时,为了体现系统的静态和动态模型以及功能模型,可以运用UML的5种图[6]:类图、用例图、协作图、顺序图和状态图,这五个图是相互联系的,都是系统不同侧重点上的一个投影[7],但在实际情况下可能只需三、四种图即可精确地定义需求。
(1) 类图:
类图的目的是识别组成新系统的对象并进行分类。在类图中,还要识别每个需要记录对象的属性或特征和操作,同时需要体现类(或对象)之间的关系,因此类图描述了系统的静态模型。通常,可以采用一个综合图来显示整个系统所有的类和关系。
(2) 用例图:
用例图使用参与者、用例及其关系描述实体功能。用例图的目的是识别新系统的使用或用例,即识别如何使用系统。用例图本质上是事件表的延伸,它描述了系统的功能模型。
(3) 顺序图和协作图:
顺序图和协作图都称交互图[8],用于参与元素间捕获协作和交互模式,它们都显示了对象之间的交互信息,但各自的侧重点有所不同。顺序图(从行为或动态模型视图)通过使用类(和消息)或对象(和激励)交互的临时焦点描述系统的动态行为,它以图形化的方式强调信息间的顺序。顺序图用来描述单个协作中一个或多个交互,包含一般和实例形式。其中,一般形式交互描述2个或多个可能的交互顺序;实例形式交互也称单独行为顺序或特定用例方案,描述一个与一般形式交互一致的实际交互顺序。一般形式和实例形式顺序图用来描述类角色(或符合类角色的对象)、消息(或符合消息的激励)和附加类(或对象)之间的交互。其中,一般形式顺序图描述两个或多个可能的交互顺序;实例形式顺序图描述一个实际的交互顺序。协作图(来源于行为或动态模型视图)通过使用类、关联和消息(或对象、链接和激励)的协作(和交互)空间和临时焦点来描述系统的动态行为。协作图的目的是识别协作完成给定业务功能的对象,一个单一的协作图用以识别对象,并展示这些对象的相互作用及对象之间发送用于执行功能的消息。协作图用来描述与零个或多个交互的协作,协作包含说明级别和实例级别。说明级别协作用来描述类角色、关联角色和消息;实例级别协作用来描述对象、链接、激励(符合类角色)、关联角色及说明级别协作的消息。说明级别协作图描述类角色、关联角色、消息和附加类(及关联)之间的协作;实例级别协作图用来描述对象(符合类角色)、链接(符合关联角色)、激励(符合消息)和附加对象(及链接)之间的协作。
(4) 状态图:
状态图通过状态和转换,描述实体的动态行为,以及组成实体的元素的状态条件、响应和动作(由事件引发)[9]。状态图也称状态表图或状态机器。实体是一个分类器,如系统、子系统或类[10]。状态图的目的是显示对象在生命期和转换期的情况。每一个对象类都含有一个状态图表,它描述了每个对象的状态和行为。状态图、协作图和顺序图三者一起共同描述了系统的动态模型。
在系统的静态和动态模型以及功能模型中,功能(用例)模型是系统的核心,它驱动着其他两个模型的开发。因此,可以采用如下建模过程:首先是系统需求;随后,分析问题领域,建立系统的用例图;接着,建立系统的静态结构模型,并将系统的功能需求分解到各个对象类,确定各个对象类的责任;然后,建立系统的动态行为模型;最后,给出物理模型。
下面以一银行系统的面相对象分析为例,介绍运用UML进行面向对象的分析过程。
4 UML建模的应用实例
为了对在软件系统开发中应用UML有一个直观清晰的了解,考虑了一个非常简单、理想化的软件开发周期,包括3个阶段:需求、分析和设计、实现。通过以一个银行系统为例来描述UML的建模过程。
4.1 系统需求
银行是与生活紧密相关的一个机构,银行提供了存款、取款、转账等业务。在银行设立账户的人或机构被称为银行的客户,一个客户可以在银行开多个账户。客户可以存钱到账户中,也可以从账户中取钱,还可以将存款从一个账户转到另一个账户;客户可以随时查询账户的情况,并查询以前所进行的存款、取款等交易记录;客户还有权利要求关闭账户。
4.2 分析问题领域
采用用例驱动的分析方法分析需求的主要任务是识别参与者和用例,并建立用例模型。通过分析银行系统的功能需求,可以识别出3个参与者:
(1) Clerk(银行职员)。可以创建、删除账户,可以修改账户信息。
(2) Customer Actor(客户)。可以存钱、取钱,并在不同的账户之间转账。
(3) Bank Actor(银行)。客户可在Bank Actor中设立或关闭账户。
通过对需求的进一步分析,可以确定系统中有如下用例:Login(登录),Deposit(存款),Withdraw fund(取款),Maintain Account(管理账户),Transfer fund within a bank(在银行内转账),Transfer fund between banks(在不同的银行之间转账)和Transfer fund(转账)。系统的用例图如图1所示。
4.3 静态结构模型
进一步分析系统需求,可以识别出系统中类及类之间的关系。系统对象的识别可以通过寻找系统域描述和需求描述中的名词来进行。从前述的系统需求描述中可以找到的名词有:银行、账户、客户和资金,这些都是侯选对象,判断是否为这些侯选对象创建类的方法是:是否有与该对象相关的身份和行为,如果有,那么候选对象应该是一个存在于模型中的对象,就应该为之创建类。
经分析可以看出,系统对象类有:Bank,Actor,Customer,Transaction,Deposit,Withdraw和Transfer。
通过对系统的不断分析和细化,可识别出用户界面类有:Bank GUI(系统的主界面),Query Dialog(用来根据账户的账号查找账户的对话框),DW Dialog(用来存款或取款的对话框),Account Dialog(用来填写或显示账户信息的对话框),Transfer Dialog(用来填写转账信息的对话框)和Login Dialog(用来输入用户名和密码的对话框)。图2表示系统的类图。
4.4 动态行为模型
为了理解系统的动态行为,还应该创建描述系统动态方面的图:顺序图、协作图、状态图和活动图。限于篇幅,用顺序图来描述为完成“存款”功能发生在系统对象之间的信息交换。图3描述了“存款”的顺序图。
4.5 物理模型
系统配置如图4所示,有4个节点:Bank Server(银行系统服务器),DB Server(数据库服务器),Internet Client(内部客户端)和External Client(外部客户端)。
5 结 语
UML是在多种面向对象分析/面向对象设计方法基础上形成的建模语言,它的目标是以面向对象图的方式来描述任何类型的系统,具有广泛的应用领域,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。实践表明,UML是一种优秀的建模语言,使用UML有助于开发者对整个系统有清晰的认识, 从而建立各种系统模型,为后期编码工作做好充分的前期准备。
参考文献
[1]SINAN Si Alhir.UML高级应用[M].韩宏志,译.北京:清华大学出版社,2003.
[2]LARMAN Craig.UML和模式应用:面向对象分析与设计导论[M].姚淑珍,李虎,译.北京:机械工业出版社,2002.
[3]刘宇翔.面向对象程序设计浅析[J].山西广播电视大学学报,2005,10(2):23-24.
[4]Grady Booch.UML用户指南[M].邵维忠,译.北京:机械工业出版社,2000.
[5]冀振燕.UML系统分析设计与应用案例[M].北京:人民邮电出版社,2003.
[6]马浩海,邵维忠,麻志毅.UML 2.0评述[J].计算机科学,2004,31(7):11-14.
[7]黄贤英.UML建模过程及在需求分析中的应用[J].计算机工程,2002,27(11):184-186.
[8]王学龙,陈平.一种UML序列图到层次状态图合成方法[J].计算机应用,2004,24(Z1):311-313.
[9]李云全,刘淑芬,申自浩.基于UML 2.0的系统建模[J].河南理工大学学报,2007,16(5):112-114.
[10]申凯,王娟.统一建模语言UML的研究[J].软件导刊,2007,32(5):36-38.
[11]白桂梅.结构化与面向对象分析方法之间关系的研究[J].现代电子技术,2009,32(20):137-139.
面向对象建模 篇9
八十年代以来,随着我国国民经济持续快速的增长,民用航空运输发展迅速,原来的空中交通管制系统已经不能满足日益增长的交通量,部分机场和终端区已出现了短时间的流量阻塞,严重干扰了航班的正常运行,结果造成大量的航班延误,给运营部门带来很大经济损失。尽管民航部门不断投入大量人力物力进行机场扩建和设备更新,但仅仅通过空中交通管制设施的改善己经不能作为提高空中交通管制容量的主要增长点,而应从空中交通管制的方式入手,建立机场,终端区,航路和飞机流的数学模型,对航线航路和管制程序进行优化。
空中交通流量管理(Air Traffic Flow Management,ATFM)是指科学地安排空中交通量,使得空中交通管制系统中总的交通量与其容量相适应。空中交通流量管理的主要作用是监视一定范围的空中交通状况,进行交通流量的预测和控制,防止特定航线、区域或扇区的流量过分集中,以求增大整个航空管制区的处理容量,减少空中和地面飞机的延误,防止空中交通管理系统超负荷运转,保证空中交通的安全和畅通[1]。
2 流量管理的数学描述及关键技术
流量管理的数学描述可以用下面的公式表示[2]:
上式中,p为空域单元,表示整个空域系统或者其中一部分,如一个航路汇合点、一条跑道、一个机场、一个管制区等,t表示时间段。hp表示t时间段内请求通过p的航空器的数量,即通过p的流量。按照流量管理的定义,如果管制发现某地点或者区域流量大于容量,即“流量饱和”时,为了保证空中交通安全、畅通,需要采取各种措施限制减少通过p的流量,或是增加p的容量,即是实施流量管理。可见,流量管理的核心任务就是保证流量与容量的平衡,防止出现饱和。
空中交通流量管理系统是一个十分复杂的系统,其关键主要包括三个部分:数据处理,策略选择和态势显示。其中数据处理包括监视数据、飞行数据、气象信息和设备状态信息等,是整个系统的基础;策略选择就是要根据当前的状况选择合适的策略,是整个系统的核心;态势显示要显示所有与流量相关的信息,包括飞行航迹、数据处理的各种信息以及流量管理方面的信息等,是整个系统的支撑。对于这样复杂的一个系统,必须建立它的功能模型和数据流程图,对其进行分析。
本文就利用面向对象的方法对空中交通流量管理系统进行分析,建立了系统模型,并在VC++6.0平台下对空中交通流量管理系统进行了初步开发。
3 空中交通流量管理系统模型
面向对象方法是围绕现实世界概念组织模型的一种崭新的思维方式,其基本思想是以对象出发构造系统。面向对象方法与传统的面向功能方法完全不同。功能方法学的重点放在指定和分解系统功能方面,这种方法似乎是最直接得到所期望目标的一种实现方式,但是一旦需求发生变化,系统可能要求进行大量的重新构造工作。面向对象方法学首先集中在应用领域的对象,然后围绕这些对象进行处理,使系统更能适应变化的需求[3][4]。
按照流量管理系统的总体功能,我们将系统分为三层共6个模块,如图1所示。
(1)信息层
信息层主要是保证系统能和有关信息源连接,接收和预处理进行飞行流量监控所需的所有外部信息,包括监视信息、飞行情报、气象信息及设备运行状态信息。在系统中含有数据接收与预处理和数据库二个模块,根据相关协议对接收的数据进行处理后存储到数据库中。
(2)决策层
决策层主要是根据监测到的流量信息,与空域容量相比较,决定是否需要采取流量管理策略对空域流量进行控制,从而避免空域堵塞。决策层包括流量监测、预警与告警,容量评估与仿真和空域与流量协同管理三个模块。
●流量监测、预警与告警模块
通过分析各类空域单元飞行流量接近或超出空域容量的程度,空域单元飞行流量增加程度以及空域单元容量降低程度,提供中长期预警、近期预警、短期预警和实时告警。
●容量评估与仿真模块
系统可在出现恶劣天气、设备停机、重要活动等影响空域容量的因素时,评估其对容量的影响,确定各机场、扇区、固定点的容量值和告警阈值。系统应能统计管制员负荷并评估扇区的主观容量。
●空域与流量协同管理模块
系统结合飞行时刻表、雷达融合数据、飞行计划等数据,对空域容量和空域交通流量进行战略预测,并根据预测结果通过流量管理协同决策,提出针对重大事件、恶劣天气和设备状态变更的飞行时刻优化、航线调整以及空域结构调整等流量战略管理方案。
(3)显示层
综合态势显示为所有的协同决策参与者提供共同的综合态势情景显示,实现对空域信息、航迹信息、流量预警与告警信息、飞行流量信息、飞行计划、气象信息以及设备运行状态信息的实时显示,并提供灵活的显示方式和强大的显示功能,参与者可根据共同的综合态势情景对流量问题进行讨论协同,探索解决方案,制定流量管理策略,同时为操作员提供查询服务。显示层只包含用户界面显示一个模块。
4 面向对象的空中交通流量管理系统建模与分析
采用面向对象的理论对空中交通流量管理系统进行分析和设计,可以提高空中交通流量管理系统的开放性,使其向着通用化发展。在系统的分析和设计过程中,将各个模块看作对象,经过抽象为其建立模块类,用对象的属性和服务描述各模块的静态特征和动态特征,用一般-特殊结构描述抽象模块与具体模块之间的关系(即继承关系),用实例连接和消息连接描述系统中各个模块之间的静态联系和动态联系。
4.1 面向对象系统模型的结构
对象模型技术(OMT)用三种面向对象的模型从三个角度对系统进行完整地描述[5]。
4.1.1 对象模型
对象模型表示系统静态的、结构化的数据。它描述了系统中对象结构,包括对象的标识、与其它对象的关系、属性和操作。
4.1.2 动态模型
动态模型表示系统的时态的、行为的控制方式。它描述了系统中与时间和操作序列有关的内容,即标志改变的事件、事件序列、定义事件上下文状态以及事件和状态的组织。动态模型着眼于“控制”,既描述系统中发生的操作序列,而不考虑操作做些什么,对什么进行操作以及如何实现这些操作。
动态模型用状态图表示。每一个状态图展示了系统中对象类所允许的状态和事件序列。
4.1.3 功能模型
功能模型则表示了系统转换功能。它描述了系统与值转换有关的诸方面,即功能、映象、约束和功能性依赖。功能模型只着眼于系统做什么,而用不着考虑如何做,什么时候去做。
功能模型用数据流图表示。数据流图表示根据输入值和函数进行的输出值的计算与值之间的相关性。
每种模型描述系统的一个侧面,但包含对其它模型的联系。对象模型描述了动态模型和功能模型操作的数据结构。动态模型描述对象的控制结构。功能模型由对象模型中的操作和动态模型中的动作所唤醒的功能组成。
4.2 空中交通流量管理系统的分析与抽象
根据系统的组成、各个组成部分的特征和功能,我们可以按模块将其抽象出以下几个基类,并定义各个基类的属性和服务。属性和服务是构成对象的两个主要因素。属性是用来描述对象静态特征的一个数据项,服务是用来描述对象动态特征的一个操作序列。系统定义的基类包括:数据接收与预处理类,流量监测、预警与告警类,空域容量评估与仿真类,空域与流量协同管理类,数据库类和用户界面显示类。下面对几个核心类作一下说明。
4.2.1 空域容量评估与仿真类
在空中交通流量管理系统中,空域容量评估与仿真的属性主要有4个部分:
空域理论容量
空域实际容量
空域动态容量
基于管制员负荷的空域容量
空域容量评估与仿真对应的服务主要有3个组成部分:
●空域静态容量评估
空域静态容量评估参数设置、读取、修改;
空域建模;
空域静态容量评估处理;
空域静态容量评估过程运行仿真;
评估参数和结果操作与存储。
●空域动态容量评估
空域动态容量评估参数设置、读取、修改;
针对气象、设备状态等动态信息的空域动态容量评估处理;
空域动态容量评估过程运行仿真;
评估参数和结果操作与存储。
●基于管制员负荷的容量评估
评估参数的读取、编辑功能;
管制员工作负荷的统计功能;
基于管制员负荷的扇区容量评估功能;
评估参数和结果操作与存储功能。
4.2.2 空域与流量协同管理类
在空中交通流量管理系统中,空域与流量协同管理的属性主要有6个部分:
空域单元预期流量
空域单元流量变化率
日常流量管理预案
基于重大事件的流量管理预案
基于恶劣天气的流量管理预案
基于设备状态变更的流量管理预案
空域与流量协同管理对应的服务也由3个部分组成:
●流量预测
数据读取与编辑
数据统计分析与预测
预测结果操作
●备选预案生成
数据读取与预处理
日常流量管理预案生成
基于重大事件的流量管理预案生成
基于恶劣天气的流量管理预案生成
基于设备状态变更的流量管理预案生成
专家决策
预案结果报存
●预案仿真评估
数据读取
日常流量管理预案仿真评估
基于重大事件的流量管理预案仿真评估
基于恶劣天气的流量管理预案仿真评估
基于设备状态变更的流量管理预案仿真评估
评估结果保存
4.3 面向对象的空中交通流量管理系统建模
建模的基本方法和过程是[6]:(1)首先从空间的角度,抽取组成流量管理系统的有用对象,包括具体的(如流量监测、预警和告警,容量评估等)和抽象的(如数据库),并抽象成类;然后确定这些对象的属性和行动(主动的和被动的)以及对象之间的联系(关联)。把它们构成流量管理问题空间的静态结构——对象模型,用对象关系图描述。(2)其次从时间的角度,考虑流量管理系统中对象(特别是由交互活动或并发操作的对象)在不同时刻的状态及发生的时序,把它们构成对象的控制结构动态模型,用状态图描述。(3)最后从功能的角度,确定流量管理系统中对象属性值从输入到输出的变化过程及相关函数操作,把它们构成数据计算或处理的逻辑结构——功能模型,用数据流图(DFD)描述。
4.3.1 对象模型
由上面的分析和抽象,很容易得到空中交通流量管理系统的对象模型,如图2所示。
4.3.2 动态模型
动态模型表示系统的控制信息,是从时间角度来描述系统中对象和关系的状态、状态转换的触发事件及对象的行为。状态是对象的属性值和链接的一种抽象,用于指明对象对输入事件的响应,由所有表征对象性质的数据组合而成。事件用于说明和控制对象从一种状态转换到另一种状态的控制消息。行为是当对象达到某种状态时的一系列处理操作。由于篇幅所限,我们仅以空域与流量协同管理为例,说明流量管理系统的动态模型,如图3所示。
由图3可以看出,空域与流量协同管理模块的状态主要由三个方面组成:(1)状态判断,根据容量评估值和流量预测值的关系判断是否需要进行流量管理;(2)形成流量管理预案,需要根据专家决策对预案作出调整;(3)预案的仿真评估及执行。
4.3.3 功能模型
对象的功能模型描述了动态模型中行为的细节,即系统中数据的变换处理过程。它为具体设计和实施对象实例状态中的行为(处理)提供了完整的接口描述和基本框架。面向对象建模方法正是利用DFD(data flow diagram,数据流图)来描述对象的功能模型。它由数据流(用带标志的箭头表示)、处理(用矩形框表示)和存储(用一对平行线表示)3部分组成。存储是由静态模型中的对象转换而来,可视为数据库。数据流是数据的活动单元之一数据集;当一个数据流“到达”时,作用于处理,处理所做的事情需详细说明。仍以空域与流量协同管理为例,其功能模型如图4所示。
从图4中可以看出目标参数在模块中的传递过程。
5 空中交通流量管理的核心技术
5.1 容量评估
目前主要的容量评估模型有两种:服从泊松分布的到达流模型和考虑导航设备的误差及人等随机因素的容量模型。这里我们结合两种方法的优点,在假设飞机流满足泊松分布的基础上,通过分析空域相关的因素,来调整计算出来的理论容量。首先介绍一下泊松分布的飞机流模型,然后按空域分析其受影响的因素。
5.1.1 具有泊松分布特性的飞机流模型
人们通常假设飞机的到达服从某个理论分布,从该分布计算样本的方法对飞机流进行仿真。大量研究表明,到达飞机流具有泊松流的特点[7]:平稳流;无后效性;普通性。其数学表述为:
在空管系统中,单位时间内到场航班的数量是一个随机变量,如上式X所示,X服从参数为λ的泊松分布,λ为航班的平均到达率(航班单位时间的平均到达数)。将排队理论应用于空管系统,对于多跑道的机场系统,如果到场航班流服从泊松分布,则有:
式中,W是每架航班的平均等待时间;λ为航班的平均到达率;t是跑道的平均服务时间,其倒数µ为平均服务率,即单位时间内跑道所完成服务的航班均值数;σ为跑道平均服务时间的标准偏差;k是跑道数。
5.1.2 容量影响因素分析
在实际确定空域容量时,受多种因素影响,如气象情况、空管设备情况、管制员个人能力、空域结构等。在确定空域容量值时,一般先考虑理想情况下的容量估计,然后根据实际情况加以修正。对于不同的空域类型,如机场、进近区、区域、航路交叉点等,容量的确定是不同的。
以机场容量为例。机场容量是指在单位时间内机场起降航班的最大数量。根据空管的规则,飞机的起飞和降落都要满足一定的间隔,主要是尾流间隔,这是确定机场容量的重要因素。同时,机场容量受气象情况的影响最大,在实际情况中,由于气象原因导致容量值变化很大,给空中交通流量管理带来困难。同时机场容量还受其它一些因素的影响[8]:
●机场的空管设备情况;
●管制员与飞行员的能力;
●飞机的机载设备;
●其它一些因素,如机场的管理状况等。
此外,机场容量是由机场内部各个组成部分的容量相互制约而形成的,这些组成部分的容量包括:
●跑道容量,这是机场容量的决定因素;
●停机位容量;
●滑行道容量。
机场容量的确定或最终形成还有赖于机场的管理,一个管理好的机场,必然会把机场容量发挥到最大。
5.2 流量管理
为了保持空中交通系统的完整性,交通管理人员必须使用限制最少的方法保证交通流的延误最小。
目前,常用的流量管理预案包括:高度限制、距离间隔、时间间隔、定位点平衡、空中等待、起飞动态排序(DSP)、航路排序计划(ESP)、到达动态排序(ASP)、改航、地面延误和地面停车等。对地面等待、动态排序和改航等策略需要建立飞机流的数学模型。
5.2.1 地面等待策略
在空中交通管理的各种方法中,地面等待策略是一种较为有效的途径,也是一种基本的方法。所谓地面等待策略就是如何确定飞机的最优起飞时间,通过地面等待来调节空中交通网络的流量,并使飞机的流量与机场、空域的容量大体匹配,从而减少延误,提高机场、空域的利用率,保证飞行安全。地面等待的实质,即用地面等待来代替空中等待。
地面等待往往是一个多元受限问题。在多元受限的地面等待策略问题中,流量控制涉及到机场、扇区、进近区和航路点等,我们把这些都抽象成容量限制单元。因此,地面等待策略就是要研究存在多个容量限制单元的情况下,合理安排飞机起飞时间,避免空域出现“过度拥挤”的状况,从而减少飞机空中等待的时间,降低飞行成本。总体说来,对地面等待策略的研究我们将分为三步:
第一步:根据多机场网络的基本理论推导出一个基本的数学模型,然后结合机场的实际情况,确定成本函数和目标函数;
第二步:多元受限的地面等待策略不仅要使目标函数保持最优,而且受多种条件的限制,因此要解决这一组合规划问题,采用启发式搜索算法,在问题的状态空间中搜索最优方案,从而优化航班时刻;
第三步:选取一些数据进行验证,对算法中的参数进行调整,以满足实际规划的需要。
5.2.2 终端区动态排序
终端区的飞机流往往是由不同类型的飞机组成的,这些飞机的前后顺序不同,其所需要的尾流间隔也不同。目前主要的排序算法有:先到先服务(FCFS)算法、约束位置交换(CPS)算法、时间提前(Time-Advance)算法、延误交换、动态尾流间隔算法以及滑动排序窗算法等。大多数大型机场所采用的是先到先服务(FCFS)法。
先到先服务算法虽然易于操作,但它容易造成航班的过度延误。这里采用一种动态排序算法,建立终端区飞机队列的动态模型,从不同类型飞机必须保持不同的“最小安全间隔标准”入手,通过对飞机队列次序的重新排列,对所有可能的飞机排序方式进行搜寻,找到一种成本(指队列中每两架飞机之间所需时间间隔的总和或以等待时间为参数的每架飞机的等待成本的总和)最小的排队次序,即是该组飞机的最佳排序方案。为了减少计算量,在对飞机进行循环排序时,将结合滑动排序窗算法,减少循环排序的次数。
5.2.3 改航策略
改航策略是空中交通流量管理的一个重要组成部分,它研究的是由于种种原因(主要是恶劣天气、导航设备失效)而使机场、空域容量下降的条件下如何组织航班的放飞以及如何为每架航班动态的选择临时航路以避开容量限制区域,以使产生的总损失最小的问题。它的主要目标就是考虑在非正常条件下怎样把经济损失降到最低。
改航问题不仅仅只是静态网络的最短路问题,它的目标是要规划所有航班的飞行方案,使总损失值达到最小。一方面不同类型的飞机对容量资源的占用所产生的经济效益不一样,只有让经济效益高的飞机优先占用容量资源才能最大限度的降低损失;另一方面,要符合各种空管习惯和规定以及要兼顾总体利益和各航空公司的个体利益。在这样的前提下做优化,其结果不可能是纯理论意义上的最优解,而只能是一个为各方所能接受的近似最优方案。所以改航问题的重点应该放在如何寻求一种公平、合理和具有明显经济效益的方案,而不是一味在数学上讨论最优解的理论值应该是多少。因此,改行策略将从以下几个方面着手解决:
1)针对恶劣天气,要建立动态的天气模型,以描述天气的变化情况;
2)建立包含机场、导航台和航路的动态网络模型,它由节点、边以及相应的拓扑关系组成,为航路选择作准备
3)为了合理的利用有限的空域资源,在兼顾公平的原则下,确定航班的优先级,有效的组织放飞顺序;
4)改行策略的关键是要解决动态网络的搜索问题,找到一条合适的航路。这里采用一种改进的A*算法,根据实际航路网络的空间分布特性,动态限制搜索区域,以降低算法的搜索规模,降低算法的时间复杂度和空间复杂度,提高算法的运行效率。
6 结束语
本文对空中交通流量管理系统进行了分析,提出了面向对象的建模思想,并以各个模块为对象进行了分析,建立了系统基本模型的类图,详细讨论了系统中各个模块的类及其属性和服务。在此基础上,探讨了基本的容量评估与流量管理策略。
面向对象模型的建立和对空中交通流量管理系统仿真的实现为下一步研究各个模块的关键算法打下了良好的基础。
参考文献
[1]阮成佳.空中交通流量管理[D].西北工业大学.2004
[2]空中交通流量管理中飞机队列优化算法研究与实现[D].西北工业大学.2001
[3]劭维忠,杨芙清.面向对象的系统分析[M].北京:清华大学出版社,1998.
[4]劭维忠,杨芙清.面向对象的系统设计[M].北京:清华大学出版社,2003.
[5]宛延闿,定海.面向对象分析和设计[M].北京:清华大学出版社,2003.
[6]周之英,肖奔放,柴洪钧.面向对象系统分析与设计[M].北京:清华大学出版社,2000.
面向对象建模 篇10
国家电网公司(以下简称国网公司)在“十一五”期间完成了SG186工程的实施,在总部及各单位建立起横向集成、纵向贯通的企业级信息系统,公司信息化水平和规模都达到前所未有的高度。“十二五”期间,国网公司提出了SG-ERP信息化战略,包括了信息运行“十二五”规划,即信息系统调度运行体系(以下简称信息调运体系)。信息调运体系规划,特别强调以业务为导向,提升信息运行整体价值,遵从国际通用标准,借鉴电网成熟经验,从组织保障、制度建设和技术支撑3个层面提出了体系建设的要求。
一单两票是关于流程的,可以说与组织保障、制度建设、技术支撑都密不可分。为更好地支撑信息系统调度运行体系规划蓝图落地,一单两票流程平台作为第一批重点项目,率先在浙江省电力公司开展试点建设。以下将从概念与范围、需求特征、平台要求等几个方面深入分析,结合面向对象思想在PI3000平台的体现,阐述面向对象建模对于一单两票系统建设的必要性和优势。
1 概念与范围
为了更好地阐述分析需求特征与平台优势,首先针对信息系统调度运行体系、一单两票、PI3000平台和面向对象建模等相关概念的内涵作简要说明。
1.1 信息系统调度运行体系
1)总体目标。以业务需求为导向,以提升信息化价值为目标,通过信息资源优化调度与配置,建设贯穿信息系统全生命周期、支撑信息化发展战略、达到国际先进水平的信息系统调度运行体系。
2)发展内涵。集中管控、统一调度、精益管理、高效运作。
3)总体框架。信息系统调度运行体系规划从组织保障、制度建设和技术支撑3个层面着手,结合电网生产调度的成熟经验和国际先进IT服务管理最佳实践,构建具有国网公司特色的、支撑企业战略目标实现的信息系统调度运行体系。信息系统调度运行体系整体框架如图1所示。
1.2 一单两票
两票的提法来源于电网调度生产领域,即工作票和操作票。一单的概念主要从IT服务管理的理念中引出。一单两票系统的设计和实现,充分借鉴了电网调度生产领域检修消缺的成熟流程,遵从了国际ITIL方法论以及ISO 20000国际标准,并在国家电网公司信息调运体系的指导下,形成了信息运维特有的一单两票,现阶段主要包括如下流程:调度管理、运行管理、检修管理、客服管理,两票归属于检修管理(见图2)。其中,调度管理包括停复役管理流程;运行管理包括值班交接班管理流程、巡检管理流程;检修管理包括缺陷管理流程、检修计划管理流程、工作票管理流程、操作票管理流程;客服管理包括故障处理流程、咨询管理流程、投诉管理流程和IT资源申请类管理流程。
1.3 PI3000平台
PI3000平台的设计目的是为二次开发人员提供快速开发的业务基础软件平台,以数据库、中间件为基础,同时它也是业务应用系统的基础,目前已在电力调度、生产、应急、信息运维领域使用。
PI3000平台具有统一业务建模、动态业务流程、多层安全控制、专业图形支持、自动任务调度等功能。
1.4 面向对象建模
面向对象的模型一般以类的形式体现,每个类都有其特定的属性和方法,访问属性时必须通过类的方法。同时,如同现实世界,类与类之间存在着很多种关系,诸如继承关系、聚合关系、构造关系等。
2 需求特征与平台优势
一个优秀的技术平台,应能贴近用户需求,方便开发部署,从而达到帮助项目建设,实现事半功倍的作用。下面将从一单两票项目需求特征出发,介绍PI3000平台面向对象建模思想和具体体现。
2.1 需求特征
2.1.1 流程应用场景化
传统的信息运维工作,主要包括了客户服务、日常巡视巡检、设备检修消缺、业务系统(排障、升级、调优)、机房基础设施检修消缺、机房值班、数据备份、告警监控等。在信息系统调度运行体系规划中,引入了信息调度的概念,强化了工作票、操作票、检修计划,细化了内网入网申请、外网入网申请、数据库申请等信息资源申请受理。
如何既符合ITIL国际方法论,又能很好地适应信息调运体系下流程场景化的要求,一单两票以ITILv2.0为基础,细化了大量资源申请类流程,补充了巡检、值班交接班等特色流程,改写了变更和发布流程为电力行业特色的工作票、操作票流程,提高具体流程与具体运维工作场景的匹配度。
2.1.2 工作流程易变性
信息系统调度运行体系作为国网公司信息运维领域“十二五”规划,是个新课题。一单两票作为信息调度运行体系落地建设的第一批项目,对于一单两票的范围、内涵、如何体现调运体系等,都是一个不断探索、不断清晰的过程,不可能一蹴而就。同时,各单位信息运维水平不一,工作流程的标准化程度不高,现阶段电子化平台与其说是建立一个成熟的流程系统,不如说是为了建立一个高适应的流程原型,通过今后不断的需求涌现,得以完善。
2.1.3 权限管理多维化
流程因为有活动状态的概念,所以仅仅通过“什么人”、“对什么对象”、“拥有什么权限”是不够的,还需要有“在什么状态下”,及“什么时候”。同时,项目需求调研过程中还发现,对于流程的查询入口和查询结果过滤,出于安全考虑,用户常常提出一些针对性的权限设置要求。
2.1.4 系统维护简单化
除了账号管理、数据备份、系统调优等常规系统维护工作外,由于一单两票作为流程系统,还需要维护用户角色信息、客户信息、组织架构信息等,甚至于一些局部的流程变更。这类维护工作的出现频度较高,对于系统本身维护能力、可配置化能力提出了较高的要求。
2.1.5 流程关系多样化
流程与流程之间不是孤立的,常常存在着错综复杂的关系,梳理并实现好这些流程之间的关系,对于提升系统的实用化水平,促进深化应用,具有重要意义。同时,流程的特性不同,流程之间的关系,有同步关系、异步关系、触发关系、选择关系、一对一关系、一对多关系、多对一关系以及多对多关系。
2.2 平台优势
一单两票系统采用PI3000业务软件平台和二次开发的技术路线开展建设。PI3000平台由南瑞公司自主开发,目前已广泛应用于电力调度、生产、应急、信息等多领域。平台广泛基于面向对象建模方法,通过封装、继承等,既保障了安全性,又实现了可复用,大大加快了软件开发的效率。
2.2.1 流程原型建模
通过PI3000平台,流程模型的搭建显得非常简单。从图3可以看出,只要界定清楚4个问题,就完成了一个流程模型的定义:一是往哪流,二是流什么,三是谁来流,四是为啥流。对应的,在PI3000平台中有4类建模,即流程建模、对象建模、应用建模和安全建模。
2.2.2 流程实例建模
如果把流程的建模比作类的定义,那么类的实例化就是流程实例。如图4所示,在异常处理流程中,有开单、解决、回顾共3个流程。迁移流程则有:受理→处理、处理→受理、处理→协助处理、协助处理→处理、处理→回访归档、回访归档→处理、协助处理→回访归档、回访归档→协助处理、回访归档→结束共9个流程。相应的每个流程实例中,分别有同样数量的活动实例和迁移实例。
为了实现上述建模设计,在PI3000平台分别设计了流程模板、流程实例、活动模板、活动实例、迁移模板、迁移实例等6张底层表,其相互关系如图5所示。
2.2.3 流程权限建模
实际工作流程中,如在审批阶段,如何确定审批人、如何界定审批环节、对应的表单是什么、哪些字段有读写权限、哪些字段只读、哪些字段不可见等,这些都是流程活动权限管理需要模型化的要素,对应到PI3000平台流程活动权限建模,就是要解决“什么人”、“在什么时候”、“对什么对象”、“具有什么权限”这4个问题(见图6)。
1)解决“什么人”的问题。在PI3000平台中,每个流程活动阶段都有设置执行人及执行人选择方式等可配置化界面。
2)解决“什么时间”的问题。通过安全建模配置流程活动,并绑定到具体流程活动上,实现可配置化。
3)解决“什么对象”的问题。通过应用建模,实现流程与表单的绑定和访问控制可配置化。
4)解决“什么权限”的问题。通过对象属性安全域的配置,可针对每个表单项分别设置具体的访问权限类型,实现可配置化。
总之,在流程活动权限管理上,PI3000平台充分运用了成熟的面向对象建模思想,较为合理有效地设计并实现了流程活动权限管理。
3 结语
基于面向对象建模思想的PI3000平台的技术优势,非常适合在一单两票流程平台建设中广泛运用。其通用的流程引擎、方便的二次开发、丰富的可配置化能力,与国家电网公司一单两票流程的场景化、标准化、易维护、易变性等需求特征相吻合。以PI3000业务软件平台为依托,建设国网公司各单位信息运维一单两票系统,对于提升IMS深化应用能力,有效促进信息调度运行体系落地建设,具有意义深远的示范作用。LIN Feng,YAO Jian,LIN Yi,et al.Object Management Dynamic Modeling for MIS of Electrical Enterprises[J].Automation o Electric Power Systems,2001,25(21):18-
摘要:在电网企业信息系统调度运行体系“十二五”规划大背景下,从项目建设实践出发,深入探讨流程系统的需求特征及其对技术平台的要求,综合分析面向对象建模方法在一单两票系统平台上的典型应用,如流程建模、流程模型与实例关系、权限建模等。面向对象建模方法在一单两票系统中的广泛应用,不仅帮助系统适应快速部署的要求,也让系统更好地适应快速发展、灵活多变的业务流程需求。
关键词:流程,PI3000平台,面向对象建模
参考文献
[1]郭池,蒋元晨,陈玉慧,等.从ITIL视角促电网企业信息化深化应用[J].电力信息化,2010,8(3):14-16.
[2]郭池,刘虎,王翠,等.国网公司事件管理流程标准研究与实践[A].2009年电力信息化创新论坛论文集[C].2009.
[3]孔震,林峰,俞俊,等.PI2000工作流引擎的设计与实现[J].电力系统自动化,2003,27(21):75-78.KONG Zhen,LIN Feng,YU Jun,et al.Design and Implementation of a PI2000Workflow Engine[J].Automation of Electric Power Systems,2003,27(21):75-78.
[4]林峰,姚健,林毅,等.电力企业MIS中对象管理动态建模技术[J].电力系统自动化,2001,25(21):18-20.LIN Feng,YAO Jian,LIN Yi,et al.Object Management Dynamic Modeling for MIS of Electrical Enterprises[J].Automation of Electric Power Systems,2001,25(21):18-20.
面向对象建模 篇11
关键词:农业;学习对象;粒度;语义结构;分类法
中图分类号:TP311.52;S126 文献标志码:A 文章编号:1002-1302(2014)03-0357-03
作为一种可重用、易获取、适应性强的数字化教学内容构件,学习对象(learning object)正受到国内外教育技术界的日益关注,并已逐渐应用于高校、企事业单位的E-learning平台和知识管理系统等。学习对象的核心特性是可重用性[1],其理想状态是可供不同时间、不同地点的不同使用者出于各种目的而使用。但纵观当前各类E-learning平台,学习资源多以课程为单元进行整体设计,课程结构一般由篇或章节构成,在实际使用时缺乏可重用性和灵活性,往往造成网络教学资源的重复建设。因此,本方案拟结合客户(某大型农业企业培训学校)的实际需求[2],改变传统的课程加工模式,尝试采用基于知识模块的学习对象模型,即按照一定的粒度和方式,将知识分解为内容相对完整的模块,同时,根据具体的学习和授课需求又可以将这些模块灵活组装,针对不同学习者呈现不同的学习路径和页面风格,从而构建出一个多层次、多粒度的可重用知识体系(图1)。
1 研究背景
1.1 学习对象理论
学习对象是结合了面向对象的计算机科学思想和有关教学理论而产生的一种新型计算机辅助教学构件。学习对象较典型的定义是任何具有可重用特性并用来支持学习的数字化资源[3]。根据该定义可知,学习对象可以是一个小程序、动画、文本块、视频流或其他形式,也可以是在技术支持学习的过程中用到的多媒体内容、教学内容、学习图标、教学软件及软件工具,所涉及到的人、组织或事件等。
学习对象的核心特性是可重用性,其实现需要内容设计、技术手段和应用方法3个方面的因素保证[4]。内容设计因素是指一个学习对象应该尽量独立完成知识点或知识块的教学目的,无需过多地求助于其他教学资源或学习对象;技术设计因素是指学习对象采用数字化设计,易被搜索获取到,能够跨平台使用,并具有兼容性技术构造;应用方法因素是指学习对象要具有灵活性、适应性,如能够适应学习者的特征、实现个性化定制、能够被灵活改制等。
1.2 需求分析
本研究的目标是对客户现有知识资源进行分析评价,制定基于知识模块的可重用学习对象模型的设计原则,为实现课件模块的开发、重用和共享提供基本流程规范和设计层面的支持,从而建立具有独到竞争优势的高效在线培训体系,进而成为未来构建智能知识服务系统的数据基础。
通过分析结果可知,该农业企业培训学校知识资源的主要特点表现为:(1)信息量大。从知识的领域范围来看,涵盖了农业系统、管理、教育在内的多个领域,是一个跨领域综合的知识集合。(2)信息的表现形式多。信息形式多种多样,包括教学及相关辅助资源在内的多种知识资源,如制度、案例、记录、报告、标准、规范等。(3)信息格式复杂。包括文本、音频、图片、PPT等多种格式的信息混杂在一起。(4)信息收集地点分散。信息来源丰富,如教师的课堂录音、课件PPT、相关管理部门、网络等。(5)使用信息的用户不同。用户类型包括企业普通员工、企业管理部门、普通企业客户等。每种类型的参与者都有各自的信息需求,需要的信息范围、侧重点都不一样。(6)资源数量和资源类型不断扩展,内容不断变化更新。
根据上述资源特点,可分析得出在该项目中学习对象的应用需求,具体包括:(1)支持微型学习。微型学习是指随时随地可能发生的、可持续性地处理碎片化学习内容的学习活动,要求课程学习内容和资源的获取具有随意性,课程学习内容具有实效性、可操作性和可再生性。有别于传统的以1节课为最小粒度的学习对象,学习者可能只需要学习知识体系中一个很小的片段。(2)支持个性化学习。该需求打破了传统固有的课程结构,学习者可以根据自己的学习起点、学习层次等实际需求,进行跳跃式或查漏补缺式的学习等,同时可以根据实际学习效果自主调整学习策略和学习路径。(3)支持自主组课。组课的过程是面向特定教学群体的知识重用过程。该需求要求对知识资源的内在逻辑结构进行梳理分类,同时能够对学习对象的语义结构进行准确描述。
1.3 研究重点
根据上述应用场景得出学习对象的分析流程(图2)。由图2可知,在学习对象的分析流程中需要考虑若干问题。其中,设计合理的知识粒度层次、对其语义结构属性进行准确表达,同时对知识资源进行分类梳理,是本试验重点研究的关键问题。具体研究重点如下:(1)粒度。学习对象的力度大小是决定学习对象重用共享的重要因素。目前对学习对象的粒度缺乏明确规定[5]。粒度划分过大,重用性会降低;粒度太小,知识体系结构的复杂度会增加;如何根据用户的实际教学需要,确定适宜的学习对象粒度是大家需要解决的首要问题。(2)描述。应采用最本源的概念形式对学习对象进行简明清晰的描述,以准确表达学习对象的语义内容,对粒度划分进行指引,减少加工人员的主观性偏差,同时为教师组课提供辅助。(3)分类。为了实现学习资源的交换、共享和重用,需要对各类知识资源的逻辑关系、耦合关系进行梳理、整合,建立科学合理的类目体系,以便对资源进行分类组织。
2 模型设计
2.1 学习对象粒度
当一个学习对象规模越大时,它的内容就能越完整,更有利于实现教学目标,所表现出的教学意义也就会越高;但同时,它的灵活性与可重用性却随着规模的增大而相应变小。在综合分析用户需求及资源特点的基础上,本项目提出以知识模块为最小教学单元的多粒度学习对象模型(图3)。其中,知识模块是模型中最小粒度层级;章节指若干知识模块的组合;课时为若干章节组合所得的一节课;课程是具有完整教学意义的多个课时组合;课程体系则指一门完整知识体系的教学结构集合。学习对象各个层次的聚合特性如表1所示。
nlc202309032002
从表1可以看出,当一个学习对象规模越大时,它所包含的教学信息越多、内容越完整,更有利于实现教学目标,所表现出的教学意义也就会越高;但同时其灵活性随着粒度的增大而相应变低。
本研究所提出的知识模块是学习对象模型的基础与核心。将原始文献拆分为若干相对独立的知识模块,从而使知识点脱离原有的上下文语境,可以单独使用,也可以与其他模块组合成章节,在知识的表达和传递上更加灵活,具有更强的适应性。
将知识模块的划分原则设定为:(1)知识模块相对独立。模块内容应表达单一的知识含义,即与语言中的“语素”含义近似,模块内容只包含一个单一的知识含义,不存在一个知识模块中多重表意的现象。(2)知识模块已是最小知识单元,不能再细分。
2.2 知识模块描述
根据上述粒度原则可知,知识模块是最小知识单元,每个模块都可以从若干角度对某个概念进行说明,大家将这些角度称为概念的属性[6]。每一概念的属性和包含的知识内容就是一个知识模块,它单独表意,没有再细分的必要。有研究表明,当一个知识点的粒度处于不可再拆分状态时,其内容往往是围绕着一个特定概念的某种属性而进行论述的,换句话说,一个概念加一个属性就可以完整表达一个基本的知识内涵,因此为了实现知识处理的简单化和关系描述的标准化,可以将每个知识单元的描述概念化,即定义一个2元组:知识模块=(概念|属性)。此外,一个知识模块还有可能同时描述多个概念,对于这种情况则将知识模块定义为:知识模块=(概念1,概念2,…,概念N|属性|概念间关系)(图4)。
一篇文献中可能有多个概念,一个概念也可能有多个属性,概念和属性之间是“一对多”的关系。可以通过对现有知识资源进行分析,总结出一些通用属性以作指引。例如,从知识阐述形式的角度可以总结出定义、背景、解释、分析、比较等属性;从知识约束内容的角度可以总结出条件、目的、范围、影响、优缺点等属性。此外,一般来说,不同类型的文档都有其通用的层次结构,可以针对资源的不同类型总结其结构属性。知识模块的语义描述对用户的检索和精确定位、自主组课都至关重要,同时也为原始课程文档的拆分确定了依据和原则。
2.3 知识资源分类
为了有效地创建、组织和编列学习对象,有必要对各类知识资源的逻辑关系、耦合关系进行梳理、整合,建立科学合理的类目体系[7]。目前常用的线性分类法层次性好,能较好地反映类目之间的逻辑关系;实用方便,既符合手工处理信息的传统习惯,又便于电子计算机处理信息。但其缺点在于结构弹性较差,分类结构一经确定,不易改动。同时,当分类层次较多时,代码位数较长、效率较低。分面组配分类法可以较好地解决电子资源分类问题,而且本身建设成本较低,能够适应资源的变化,揭示细小专深的主题。但是绝对的组配也会带来类目及其不均匀,临时组合对标引要求较高的问题。因此,本方案采用半分面组配式分类法,结合线性分类法和分面组配法的优点,在有效控制分类法规模的同时,提高分类体系的适应性和灵活性,降低标引难度。
笔者以《中国农业百科全书》《中图分类法》等为参考,首先从知识内容的角度切入,以学科脉络为主要依据,按照信息资源描述的主题内容建立分类主分表,以涵盖知识资源的全部领域范围(表2)。
3 总结
本研究提出了一种面向农业领域的可重用学习对象模型,针对当前企业E-learning和知识管理系统中存在的可重用性需求,重点对学习对象的粒度、知识模块描述、知识资源分类等关键问题进行研究,为学习对象最大程度的重用和个性化学习提供支持,为下一步技术平台开发和应用奠定良好的基础。
参考文献:
[1]胡小勇,祝智庭. 可重用学习对象的分类法[J]. 电化教育研究,2003(8):9-12,17.
[2]李建龙,李 鹤,刚成诚,等. 5S一体化集成技术及其在农业科学中的应用进展[J]. 江苏农业科学,2010(5):26-29.
[3]David A W. Connecting learning objects to instructional design theory:a definition,a metaphor,and a taxonomy[EB/OL]. [2013-05-08]. http://archive2.nmc.org/projects/lo/sap_pa_wiley.shtml.
[4]祝智庭,胡小勇. 学习对象理念的发展历程[J]. 电化教育研究,2002(9):14-19.
[5]Reusable Learning-Glossary[EB/OL].(2010-10-08)[2013-05-08]. http://www.innovativelearning.ca/archive/resources/examples/glossary.htm.
[6]Information mappin[EB/OL]. [2013-05-08]. http://www.namahn.com/resources/documents/note-IM.pdf.
[7]马张华. 信息组织[M]. 3版.北京:清华大学出版社,2008:74-130.
[8]陈洪澜. 论知识分类的十大方式[J]. 科学学研究,2007,25(1):26-31.
面向对象建模 篇12
随着计算机网络与嵌入式系统的发展,将组态软件应用到计算机控制中已成为最新的研究动向。"组态"(Configuration)的概念是伴随着集散型控制系统DCS的出现,才开始被广大的生产过程自动化技术人员所熟知的。与硬件生产相对照,组态与组装类似。组态就是用应用软件中提供的工具、方法、完成工程中某一具体任务的过程。在组态概念出现之前,要实现某一任务,都是通过编写程序(如使用BASIC, C, FORTRAN等)来实现的。编写程序不但工作量大、周期长,而且容易犯错误,不能保证工期。组态软件的出现,解决了这个问题。组态软件是一种数据采集与过程控制相结合的专用软件,在自动控制系统监控层一级的软件平台和开发环境中,用户可采用灵活的组态方式,快速构建工业自动控制系统[1]。它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。计算机控制系统的设计与实现目前主要采用组态软件的方法。国内知名组态软件有组态王、紫金桥、力控、MCGS等。
2、组态软件的主要特点和不足
组态(Configuration)为模块化任意组合。通用组态软件的主要特点:(1)最突出的特点是实时多任务。例如,数据采集与输出、数据处理与算法实现、图形显示及人机对话、实时数据的存储、检索管理、实时通信等多个任务要在同一台计算机上同时运行。(2)高可靠性。(3)封装性(易学易用)。(4)通用性。利用通用组态软件提供的底层设备(PLC、智能仪表、智能模块、板卡、变频器等)的I/O Driver、开放式的数据库和界面制作工具,就能完成一个具有动画效果、实时数据处理、历史数据和曲线并存、具有多媒体功能和网络功能的工程,不受行业限制。(5)延续性和可扩展性。用通用组态软件开发的应用程序,当现场(包括硬件设各或系统结构)或用户需求发生改变时,不需作很多修改而方便地完成软件的更新和升级。组态控制技术是计算机控制技术发展的结果,采用组态控制技术的计算机控制系统最大的特点是从硬件到软件开发都具有组态性,因此系统的可靠性和开发速率提高了,开发难度却下降了。但对于现有的组态软件还存在如下不足:(1)面向过程分析,面向功能设计。(2)解问题空间和实际系统脱离。(3)数据和算法分离,不便于数据实现和操作。(4)对于一些复杂的过程控制问题,难以实现复杂算法和复杂控制规律。(5)一般有开发环境和运行环境两类独立的环境,使用不便;(6)有自己的脚本语言,设计者需要编制一定程序等等。面对组态软件在结构设计和数据结构设计上的不足,本文利用面向对象方法进行组态的思想,对于计算机控制系统进行了面向对象分析和设计,并建立相关模型。
3、计算机控制系统的面向对象分析与设计
计算机控制系统有其自己的显著特点, 可以采用面向对象方法学的思想进行分析和设计。在整个面向对象分析中,有三个主要活动: (1) 分析计算机控制系统的特点; (2) 根据系统的需求分析,建立用例模型, 用UML创建用例图; (3) 通过所建立的用例模型,针对计算机控制系统的通用性,抽象出了各种实体类、接口类和控制类, 并给出了它们的基本属性和操作,建立了静态模型和动态模型,创建了类图、顺序图、合作图、活动图和状态图。篇幅限制,在此不再赘述。
在整个面向对象设计中,有四个主要活动:设计问题域部分、设计人机交互部分、设计任务管理部分、设计数据管理部分[2]。其中设计问题域部分实质上是面向对象分析工作的进一步延伸,在面向对象分析工作基础上进行。
3.1 系统的总体结构设计
通过系统需求分析,我们知道该系统软件是利用面向对象的思想来进行计算机控制系统的硬件和软件组态,并实现对计算机控制系统的现场监控。因此,该系统分为两个子系统:设计子系统和监控子系统。设计子系统需要数据库接口、图形用户接口完成计算机控制系统的设计和保存;监控子系统需要通讯接口、数据库接口和图形用户接口完成计算机控制系统的软件和硬件通讯、数据的存储和运行信息的查看等功能。计算机控制系统的设计子系统和监控子系统是通过对象列表实现信息的共享,把软件中表示硬件的控件和现场硬件联系起来,并加以控制,如图1所示。
3.2 人机交互界面的理想设计
人机交互部分突出人如何命令系统及系统如何向用户提交信息,其目的是设计出方便、友好的用户界面,这一部分的设计可使用如下策略:(1)对人分类。因为不同的人对于系统的要求是不同的,他们利用系统完成的工作往往也不同。(2)描述人和他们的任务脚本。(3)设计命令层次。(4)设计详细的交互。(5)继续做原型。从面向对象分析就开始做原型,现在还要继续做,人需要对提出的交互活动进行体验、实地操作,并把它们精化成一致的模式。(6)设计人机接口类。(7)根据图形用户界面GUI(如果可用的话)进行设计。
该系统用户就分为设计人员和操作人员两类,设计人员完成计算机控制系统的设计工作,即利用系统使表示硬件的控件和现场的设备进行通讯;操作人员完成计算机控制系统运行中的监控工作,即运行系统,并可查看运行信息,如曲线图、报表及报警信息。
3.3 任务管理设计
任务是进程的别称,任务管理部分用来管理任务的运行、交互等。任务管理部分的设计可采用如下的策略:识别事件驱动任务;识别时钟驱动任务;识别优先任务和关键任务;识别协调者;定义每个任务。该系统中任务管理应根据系统所实现的功能分为两部分:设计部分和控制部分。设计部分中任务管理主要完成的任务是绘图以及控件信息的数据存储;控制部分的任务则比较复杂,有事件的并发驱动,时钟驱动,优先任务等。因此,我们将主要分析计算计控制系统的运行任务管理。
3.4 数据管理设计
大部分实用的系统都要处理数据的永久存储问题。数据管理部分提供了在数据管理系统中存储和检索对象的基本结构。该系统中的数据管理主要是针对两个部分:一个是设计过程中的控件信息数据管理,目的是设计图的保存和读取;另一个就是控制过程中物理量的数据管理,目的是历史曲线图、报表以及报警信息的查看和存储。(1)控件信息的数据管理。在设计过程中,针对世面上广泛应用的和已存在的硬件设备,建立与其对应的数据库,实现控件对象的具体化,当创建某一具体型号的设备时,可直接调用数据库信息,提取属性值,这样设计人员不必再另行设置属性。如果要创建数据库中未存在的控件,不再实时保存控件的信息到数据库,采用对象列表动态存取各个控件对象的属性。在退出系统和关闭设计窗口时,要保存设计图。(2)物理量的数据管理。根据设计过程中对历史信息设计,生成相应的表格,在控制过程中按照设置好的历史信息的时间间隔直接进行存储。如果没有要求保存物理量,则不需要实时保存到数据库中去。系统提供的物理量类是数据的实时显示和实时传递的中转站,使关于实时数据的每次操作都与数据库无关,直接从物理量对象中提取其当前值即可,节省了数据库连接、存储的时间,提高了系统的运行效率。
4、系统部分功能实现
依据建立的静态模型和动态模型,结合系统架构设计和人机交互界面设计,我们利用面向对象程序设计语言Visual C++60初步实现了该系统的基本功能。在简洁的单文档界面上,可以实现较为简单的体系结构设计、控制回路和控制算法设计这两种基本计算机控制系统的设计;并能够结合实际的计算机控制系统实例进行控制,输出数据。
4.1 系统设计功能的初步实现
系统的设计功能的初步实现分为以下三个部分:实体控件类的实现、控件关联的实现、实体控件和现场设备通信的实现。(1)实体控件类是计算机控制系统设计中不可缺少的部分,系统提供的实体控件类的种类直接反映了该系统的全面性和通用性。由于是初步实现,只希望可以完成最简单的单回路输入输出单机控制的系统设计,因此只实现了较为常用的实体控件类。根据实体类的识别,在体系结构设计中可分为信息输入通道类、信息输出通道类、控制设备类和基本控件四个大类。(2)控件关联的初步实现。控件之间的关联有两种情况:一种是在同一部分设计中,控件与控件之间通过智能折线相关联,进行数据的传递;另一种则是在不同部分设计中,控件与控件之间的关联。(3)实体控件与现场设备通信的初步实现。实体控件与现场设备通信的实现也就是计算机和现场设备的通信实现。根据类的分析,计算机和现场设备的通信方式有三种:串行接口通信、并行接口通信和网络通信方式。基于是初步实现,我们只实现了A/D&D/A板卡与计算机的通信。
4.2 系统控制功能实现
系统运行过程中,控制由控制设备实现,即首先在设计窗口的对象列表中查找到控制设备类对象,调用其控制程序(ControllorProram()),在控制程序中依次调用采集数据(InputData())、计算数据(GetCtrl())、输出数据(OutputData())三个操作。在InputData()操作中,即查找控制设备对象列表中的A/D转换器类对象,调用A/D转换器对象的转换程序(TransProgram()),当数据已经传递给被控量后,则由与被控量相连的减法器对象(比较器)进行偏差量计算;然后控制设备对象的GetCtrl()操作将查找对象列表中的控制算法PID类对象,调用其控制算法程序(CtrlProgram()), CtrlProgram()操作中调用选择好的算法函数,进行计算,然后查找与控制算法对象相连接的控制量类对象,并把计算结果赋给控制量的当前值;这时,控制设备对象的OutputData()操作将查找对象列表中的D/A转换器类对象,调用其转换程序(TransProgram()), D/A转换器对象在对象列表中查找与其对应的被控量对象,获得其当前值,完成数据的输出。
4.3 系统人机交互界面的初步实现
图2是体系结构设计界面,用户点击控件工具栏中的按钮,添加新的控件。当用户点击设计窗口中的控件,控件被选中,将出现黑色线框,并且在属性/格式列表栏中出现,与该控件类的属性单和格式单。用户可以直接设置该控件的属性和格式,点击其它地方后,属性/格式列表栏自动提交并保存。
图3是控制回路和控制算法设计界面,从图中可以看出,控件的连接构成了一个控制回路,直观地表示出了计算机控制系统的控制回路和采用的控制算法。此实例采用的是最简单的单回路控制策略,Y表示被控量、U表示控制量、R表示给定参数、表示减法器(比较器)、PID表示PID控制算法。
5、结束语
对计算机控制系统进行全面分析,找出所有的有用对象,并对其属性和操作(功能)进行定义;运用UML面向对象分析与设计建模工具,建立计算机控制系统统一的对象模型,包括对象之间的静态关系模型,动态关系模型等,为研制面向对象的智能化设计与控制平台打下坚实基础。最后基于上述所建立的各种模型,初步实现了该开发系统的一些基本功能,系统可以设计出简单的单回路PID控制系统。
参考文献
[1].陈君姿, 莫林, 侯占伟.组态软件图形组态子系统的设计与实现[J].工业控制计算机, 2007, 01
[2].隗云志, 王普, 汪东军.面向对象技术在工控组态软件中的应用[J].仪器仪表学报, 2001, 02.
[3].陈涵生, 郑明华.基于UML的面向对象建模技术 (新世纪计算机及相关专业系列教材) , 2006, 08
[4].贾洞.面向对象建模技术的实践与体会[J].计算机应用, 1999, 06