(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf_第1页
(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf_第2页
(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf_第3页
(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf_第4页
(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机应用技术专业论文)面向对象技术在网络考试系统中的研究与实现.pdf.pdf 免费下载

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

文档简介

北京邮电 人学硕 f 学位论文面向 对象技术在网 络考试系统中的研究与r v 用摘 要 摘要 “ 面向对象” 是软件领域的一个热点名词。 面向对象技术也从单纯的面向对象编 程发展到面向对象分析,面向对象设计和面向对象测试。并且面向对象比传统的面向 过程的开发方法有着无法比拟的优势,因此在软件构造过程中得到了良好的效果,在 软件领域得到了广泛的应用。 随着信息技术的发展, 利用信息技术手段为教育服务的网络教育这几年得到了空 前的发展。 世界各国纷纷投入大量人力物力进行相关技术的研发与推广。 在此形势下, 国家教育部组织多家单位进行国家十五攻关项目“ 网络教育关键技术及示范工程”的 研发。本文就是针对这种项目 研发展开的探讨。 论文分五部分以网络考试系统为项目 平台论述了用面向对象方法构造应用系统。 首先介绍了面向对象的基本思想和用面向对象技术构造系统的过程及方法一一面向 对象软件工程, 其中涉及了面向对象基本概念, 面向对象软件工程的主要阶段及任务, u n l面向对象建模语言 等。接着引入了面向 对象的有关设计模式,为面向对象的设计 提供了经典的设计思路。最后针对网络考试系统的特点,通过面向对象开发方法和传 统的面向过程的开发方法的比较,重点讨论了网络考试系统的体系结构和获得的复用 险 ,详细的叙述了用面向对象技术在构造系统时的各个阶段的主要成果和笔者的经验 体会。因为项目 在部分测试,所以本文没有对面向对象的测试进行论述。 作者参与了网络考试系统研发的全过程, 对面向对象技术在开发中的应用做了大 量实际的工作,实践证明面向对象思想是个成熟的思想,面向对象的开发方法是构造 类似系统的首选方法,相信对于其它软件开发会有重要的指导和借鉴意义。 关键词:软件开发 面向对象 软件工程 网络教育 体系结构 设计模式 u m l 北京邮电人学硕 学位论文:面向 对象技术在网 络考试系统中的研究与 应用ab s t r a c t ab s t r a c t o r ie n t e d o b j e c t ( 0 0 ) is v e ry h o t in t h e f i e ld o f s o f t w a r e n o w a d a y s . 0 0 t e c h n o lo g y h a s a ls o d e v e lo p e d f r o m p u r e 0 0 p r o g r a m m i n g i n t o 0 0 a n a ly s is , d e s ig n a n d t e s t i n g . a s d e v e lo p in g m e t h o d s o f 0 0 h a s s u p e r io r a d v a n t a g e c o m p a r e d w it h t h o s e o r ie n t i n g p r o g r a m, t h e y p e r f o r m w e ll i n t h e p r o g r e s s o f s o f t w a r e c o n s t r u c t i n g a n d a p p l ie d w id e ly in t h e f ie ld o f s o f t w a r e . wit h t h e d e v e lo p m e n t o f in f o r m a t io n t e c h n o l o g y , n e t w o r k e d u c a t i o n t a k e s g r e a t c h a n c e t o d e v e lo p . e v e ry c o u n t ry in t h e w o r ld i n v e s t s e n o r mo u s ly in r e s e a r c h a n d a d v e rt is e m e n t o f r e l a t i n g t e c h n o lo g ie s . i n s u c h s it u a t io n , m a n y a u n it s i n c h in a , c o o p e r a t e in t h e n a t io n a l 1 0 th f iv e - y e a r p la n p r o je c t o f k e y t e c h n o lo g y a n d d e m o n s t r a t io n o n n e t w o r k e d u c a t io n , c a lle d u p o n b y t h e n a t io n a l e d u c a t io n d e p a rt m e n t . t h i s d is s e rt a t io n e v o lv e s a d is c u s s io n o v e r t h e d e v e lo p m e n t o f s u c h a p r o j e c t t h e d is s e rt a t i o n d e s c r ib e s h o w t o u s e 0 0 t o c o n s t r u c t a p p lic a t io n s y s t e m, w h ic h t a k e s n e tw o r k t e s t in g s y s t e m a s t h e p r o j e c t p la t f o r m, a n d h a s b e e n d iv id e d in t o 5 p a rt s . a t t h e b e g i n n i n g o f t h is p a p e r , b a s ic c o n c e p t io n o f 0 0 , a n d t h e m e t h o d a n d p r o g r e s s o f c o n s t r u c t i n g s y s t e m w it h 0 0 t e c h n o lo g y a r e i n t r o d u c e d , w h ic h r a n g e f r o m s o f tw a r e p r o j e c t t o u m l . i n t h e f o l lo w in g , d e s ig n m o d e s , w h ic h p r o v id e c la s s ic a l t h in k i n g i n 0 0 d e s ig n a r e d e s c r i b e d . f in a lly , w it h r e g a r d t o t h e f e a t u r e s o f n e t w o r k t e s t in g s y s t e m , t h is p a p e r e m p h a s iz e s o n p r e s e n t a t io n o f t h e a r c h it e c t u r e o f t h e n e t w o r k t e s t in g s y s t e m a n d it s r e u s a b i lity , a n d g iv e s d e t a il d e s c r i p t io n o f t h e ma in a c h ie v e me n t a t e v e ry s t a g e a n d m y o w n e x p e r ie n c e w h e n c o n s t r u c t in g t h e s y s t e m. a s p a rt s o f t h e s y s t e m e n t e r i n t o t h e s t a g e o f t e s t in g , t h e r e is n o m e n t io n o f 0 0 t e s t in g i n t h is p a p e r . a s t h e a u t h o r o f t h is d is s e rt a t io n , 1 h a v e e x p e r ie n c e d t h e w h o le p r o g r e s s o f d e v e lo p i n g t h e p r o g r a m o f n e t w o r k t e s t in g s y s t e m, a n d d o a lo t o f p r a c t ic a l w o r k w it h 0 0 in t h e m e a n t im e . a l l t h e f a c t s p r o v e t h a t 0 0 t h i n k in g is i n g r e a t m a t u r e , s o 0 0 m e t h o d c a n a lw a y s b e c o u n t e d o n w h e n c o n s t r u c t i n g s i m i la r s y s t e m . i b e lie v e t h a t 0 0 h a s g r e a t u s e f o r r e f e r e n c e a s t o s o f tw a r e p r o j e c t s . ke y words : o r ie n t e d o b j e c t , s o f t w a r e e n g in e e r i n g , n e t w o r k e d u c a t i o n , s o f t w a r e a rch i t e c t u re , d e s i g n mo d e , u ml 北京哪电大学硕 : 学位论文:面向对象技术在网络考试系统中的研究与应用前 吉 月 q舀 很久以米,一直想写点关于面向对象方面的感想,但每次写到一半总觉得言 而无 物,虽然看了不少有关面向对象的书籍和资料,一到下笔时常是泛泛而谈。现在有国 家项目的支持,从实践的角度来理解面向对象,是谓有的放失。 书市上关于面向对象的书有很多, 其中不乏精品, 这里推荐笔者的几本珍藏。 面 向对象的系统分析 邵维忠、 杨芙清 2 0 0 2 ) , ( c 十 十 对象模型 候捷 2 0 0 1 ) , ( j a v a 编程思想( 第二版) ( 京京工作室译的中文版) a ( c + + 编程思想 刘宗田 邢大红 孙 慧杰等译 2 0 0 0 ) 4 面向对象的提出起始缘于编程语言, 但发展到如今, 经过几代大师的完善和充实, 面向对象己经成为软件领域普遍接受的, 代表软件构造发展趋势的思想和方法。 如今, 面向对象己经不再局限于编程语言,它的精髓包括在软件构造的各个层次和阶段,甚 至可以上升到哲学层面。 “ 软件是现实世界在机器世界的抽象反映,构造的软件系统 的小同缘j - 对现实世界的认识的不同。面向对象的精髓是 一切从现实世界开始” , 笔者如是说。 面向对象是一种方法,更是一种思想。思想是理念,而方法必须有相应的预定义 步骤 ( 也叫过程)和辅助的工具。所以论文的叙述过程中,很难说这是思想,那是方 法。寄意于境,寓义于情。标题中的 “ 面向对象技术”也正因此而出。 “ 文以题而出,题因文而起, 。既然是研究,研要细,究要根。通俗地说,就是 要细细地探索事物的来龙去脉。笔者尝试着在本文叙述用面向对象技术构造系统时回 答两个问题:是什么?为什么?并附加自己 在项目实践中的体会。一则为面向对象技 术 的 交 流提供自 己 力 所能 及的 力 量, 又则总 结自 己 的 思 路, 澄 清头 脑中 混 浊。 鲁迅常 说: “ 吾日三悟其身” ,学习亦如此,不断总结才有提高,有云: “ 温故而知新” 。 实践出真知,这些心得体会都是来自自身的不断学习和实践。在网络考试系统项 1 1 , 1 1 ,笔者参与了项目 从系统定义、需求分析、系统设计和编程实现几个阶段。在每 个阶段都尽心尽力地做了许多实际的开发工作,如饥似渴地阅读了大量的关于面向对 象的理论书籍和技术文档。 笔者撰稿时,项目 正进入最后测试阶段) 。 网络考试系统是个很复杂的系统,设计面较广,可以写的东西很多。和开发系统 一样,要想完全描述清楚一个系统,应该多视点考察系统,多视点是解剖复杂的好办 法。本文的视点是面向对象。还有其他视点如分布式、j 2 e e架构等视点。如果想了 解的话可以参看笔者项目 组同学黄凯东、董跃武、姬艳丽的毕业论文以及其他项目 论 文集中的论述。 在项目的开发过程和本文的写作过程中,受到很多的帮助和关心,在这谨代表我 北京邮电人学硕 学位论文:面向对象技术在网络考试系统中的研究与 应用 前 台 个人向他们致以衷心地感谢。 感谢我的导师上官右黎副教授,三年来的悉心指导将使我终身难忘。 感谢研究所的文福安副教授,感谢他在项目开展过程中对我的帮助和关心。 感谢项目组黄凯东、董跃武、姬艳丽、李冬云、马润娥等同学的真诚帮助。 感谢我的同门师妹王散颖对我英文学习的帮助。 感谢所有带给我快乐的人。 论文承蒙国家教育部项目的资助,特致殷切谢意。 北京邮电 大学硕 学位论文面向 对象技术在网 络考试系统中的研究与应用绪论 第1 章 绪论 1 . 1论文背景 在网络技术逐渐渗入社会生活各个层面的今天,传统的教育方式和考试方式也面 临着变革, 网络考试是一个很重要的方向。 网络教育是推动我国教育规模的主要动力, 网络教育也是网络技术最重要的应用领域之一。 现代远程教育利用的是现代教育手段, 通过网 络将内容以数据的形式传送到学生 的设备上,这些内容包括视频、音频、图片、文字等。同时,也用上述形式接受学生 的问题,并进行回复。网络在教育资源和学生之间架起沟通的桥梁,这样学生就可以 实时或非实时地接受教育。与传统的广播教学、电视教学等远距离教学不同,现代远 程教育以素质教育和灵活多样的个性化发展为教育目 标,用网络形式进行教学活动。 学生能够登陆网络,就可以不受时间、地点的限制接受教育。现代远程教育将现行的 常规教育和传统教育相融合,逐步成为与信息社会发展相适应的教育形式。 基于 we b技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既 可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库 中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用 计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序 等操作。 网络考试系统是 “ 十五”国家科技攻关计划一一网络教育关键技术及示范工程项 目 组下作业和考试管理工具课题中的一个子系统,该课题是开发一个与课件联系紧密 和基于we b的多媒体作业管理工具和考试管理工具,将支持大规模的在线学习和考 试,而网络考试系统则提供一个在线多媒体考试系统,同时保证考试的公正、安全实 施。 本课题是以网络考试系统为背景,对现代远程教育中的难点一一网络考试问题进 行研究,探索一条较好的解决途径。 1 . 1 . 1 网络考试系统研究的意义 现在世界范围内远程教育和网上大学正在蓬勃兴起, 网上教育支撑系统也层出不 穷, 但考试管理系统和作业管理系统还不能适应目 前的需求。 从国内 角度来说, 1 9 9 6 年国 家批准清华大学、 北京邮电 大学、 浙江大学和湖南大 学四所院校进行网上大学试点,并初步取得了成功。随后国家又批准了 4 0余院校开 展远程教育。国内许多大学在开展本校网上教育的同时开发了一些网上教学支持平 台,特别是些支持教学的智能工具和效率工具。比如,北京邮电大学的网络交互多 m休课件制作工具、网1考试系统、作业提交系统、校园管理系统等。但在对现有的 北,y ; u ilf 电人学q ; 卜 学位论文:血向对象技术在网络考试系统中的研究与应用绪论 网上大学进行了解后,发现整个教学环节中作业和考试管理相对薄弱。 在作业管理方 面提供的仅仅是简单的作业发布功能, 作业的提交大多数通过m a i l 实现, 不利于教师 的批改;网上考试只限于一些小型的自测,大规模的考试还是基本保留在教室中。 从国外的情沉来看,在美国,每年大约有近 , ,7 0 0万人通过网络接受教育和培 训;在欧洲,网络教育规模也很大. 巨大的需求推动了网上教育业的快速发展。目 前, 在国际市场上比 较著名的网上教育软件产品有: l o t u s公司的l e a r n in g s p a c e 、英属 哥 伦比 亚大学计算机科学系开发的we b c t , wb t s y s t e m公司的t o p c la s s 和加拿大 s i m o n f r a s e r 大学开发的v i rt u a l- u 等。美国的n t u 、英国的o p e n c o l le g e 都是十 分典型的网络教育示例。 整体来说, 国外的网上考试和作业有一定的优势, 但在师生交 互、 作湘管理 卜 还是停留在基于b ib s , m a il 的异步方式, 一定范围内的考试采用的技 术还停留在局部范围内基于c lie n t - s e r v e r 结构的应用程序, 真正应用性很好的作业和 考试管理工具也还没有出现。目 前国际上网络教育发展的趋势向双模式的方向发展, 即采用虚拟校园和实际学校相结合的方式。从技术上看将以增强网络学习的交互性为 主,例如网络授课、虚拟实验、网络课程制作、教育代理工具。在学习中突出协同学 习、团队学习。在管理上体现出对学生的学习行为管理、智能的网络课程管理等。 目前各国都在加紧研制新一代远程教学系统,它的目 标是提供更好的系统交互能 力、网络服务质量和系统可扩展性。 新一代的 远程教学系统将在in t e r n e t 上运行动态 实时多媒体信息,实现虚拟沉浸式交互环境,通过广域网大规模地进行实时网上授课 和优质课程的视频点播。新一代远程教学系统的网络传输结构将具有很强的可扩展性 和不同系统间的互操作性。教育信息内容从简单的文件系统组织向教育信息资源库建 设发展,从以课程教学内容向以学科体系为出发点构建教学内容过渡。学习软件将体 现学习者主动学习、个性化学习和探索性学习的新型教学思想。网络教育软件组件库 技 术和 课件自 动生成工具将使得规 模化和 产业 化制作网 络教育软 件产品 成为 可能。 教 学过程监督、管理、评价和网络教育系统的组织、实施、安全控制、管理将得到一体 化设计和实施。 许多国际组织和机构己被视为网络教育的先驱。其中赢利性机构如菲尼克斯大 学、 c a l ib e r 教育网络公司; 美国州政府和系统性区域组织如加利福尼亚虚拟大学、 密 执安虚拟大学;美国地区联盟如西部州长大学、南部地区电子学校;其他国际机构和 组织如英国开放大学、香港公开大学、澳大利亚开放教育机构、开放教学服务机构; 网络教育机构如跨国教育 ( g a t e )全球联盟、加拿大远程教学协会、澳大利亚开放 和远程教学协会、美国远程教学协会、西方教育通信合作组织等。 1 . 1 . 2 研究开发的必要性及意义 发展网络教育在当前历史时期具有非常重要的意义,教育部在“ 面向2 1 世纪教育 振兴行动计划, 中决定, 实施现代远程教育工程, 在未来的三年中中央政府将集中投入 相当数量的资金,并广泛吸取地方、企业、 个人的资金和力量共同完成现代远程教育 北京邮电人学硕 卜 学位论文:面向对象技术在网络考试系统中的研究与 应用绪论 框架的构建。网 络教育在2 1 世纪将成为教育的重要模式。 网络教育是计算机、互联网和多媒体技术相结合为代表的信息技术在现代教育学 思想的指导 卜 对传统教育模式的革新。它是一种全新的教育模式,是教育的革命。它 的最终口 标是构建我国的终身教育体系。这是 一 个涉及整个民族素质,关系到我国在 国际上的竞争力的大事,同时是一项跨学科的,富有挑战性的研究课题,它的发展成 功与否取决于信息技术的发展。信息技术发展的深度和广度决定了网络教育的深度和 广度。因此发展网络教育迫切需要对相关的新技术和关键技术进行攻关。 网络教育技术攻关的主要目的,是为了攻克目 前制约我国网络教育发展的关键性 技术难点,探索符合我国国情的网络教育的模式、规范和标准,研究开发一批具有自 主知识产权的网络教育软硬件支持系统,并建设不同层次的网络教育示范工程和网络 教育资源,为构建国家现代化教育框架提供坚实的基础。 与传统教育方式一样,作业、考试、练习、测试是教育的重要环节。随着远程教 育的日益成熟和不断扩大规模,如何处理大量学员的作业、测试与考试,与渐感匾乏 的师资力量和管理人员之间的矛盾逐渐扩大。远程教育急需解决作业、考试、测试的 整套解决方案,包括作业、考试、测试的发布、提交、批改和统计分析等功能。 作业的布置、提交与批改,在学习过程中是非常重要的一环, 老师可以 通过它得 到教学效果的反馈,既可以了解不同学生的学习情祝,以便因材施教,又可以发现教 学过程或课件中存在的问题,并采取措施加以修改、完善。总之,作业.是沟通教师 的教” 与 学生的“ 学 的重要手段。 考试在教育中所起到的作用,包括测试学生的智力水平、检验知识的掌握程度, 是其他教育形式无法替代的。在远程教育中,远程考试系统也占有同样重要的作用。 由于借助了计算机和国际互联网,使得远程考试在许多方面优越于传统考试。 此外,学生在日常学习过程中所需的练习习题库、作业库,也是网上考试系统所 急需解决的问题之一。各门课程经过积累都具有了容量庞大的试题库后,学生就可以 直接进行网上自 测,对提高学习效果起到积极作用。 从教师方面来看,对于此系统的需求应该比学生更加急迫。首先,每次作业、测 试、考试的出题对于很多老师都是一项比较麻烦的工作、需翻阅大量的参考资料,从 茫茫题海中寻找出几十道题,要考虑考查的知识点范围要广泛,难易适中,考查学生 的多种能力和综合能力等等诸多相互关联的因素,因此出一份教师自己 满意的试卷, 往往要耗费大量的时间和精力, 并且要反复查找很多次。 因此教师需要一个十分方便、 快捷地组卷工具,来代替人工完成组卷工作。 目前,我国教育现状是师生比例远远超出了教师的工作负荷,在远程教育中此现 状将会更加明显。 大量的学生作业和考卷的 批改工作占 用了 教师的很大一部分工作时 间,而且这其中又有很大一部分是简单重复性的工作,例如对客观题目的批改、计算 分值、分数统计等,这些工作都用计算机完成,不紧准确而且快速。因此使用网上考 北京邮电大学硕 卜 学位论文:面向对象技术在网络考试系统中的研究与 应用绪论 试系统代替教师完成一部分重复性很强的工作,将会是所有教师对系统的另一重要需 求。 此外,作业考试系统将满足众多教师对于大量试题、试卷的管理工作,使教学资 源得到进一步的充分共享利用。 从学校或者培训机构的角度来看,对于组织考试、管理考试一直是一项繁琐的工 作。如何有效地进行考试的组织管理,对作业考试系统提出了很多不单是技术上的问 题,更重要的是一种管理思路和管理方法的变革。对于考试环节中的许多重要因素, 比如考试的公平性、有效性、保密性和易于管理,考试结果的全面分析,为以后的教 学改进提出准确详实的指导性报告等,也都是校方的重要需求。 目 前、国内己经有四十多所大学开展了现代远程教育。在远程教育发展速度越来 越快的情况下, 对学生进行考试, 成了困扰远程教育的一大难题。 例如, 北邮、 清华、 北人等学校每年在考试的时候都需要派出大量的老师进行监考,给远程教育带了极大 的不便,严重制约了远程教育的发展。 总之,作业考试系统将主要面对使用者不同的需求,力争在提高远程教育系统, 提高学生的积极性,加快教学信息的反馈,推动教育质量的提高等方面发挥重要的作 用。 1 . 1 . 3 面向对象 自 面向对象技术诞生以来, 它已经深入到计算机科学技术的各个领域, 初期及很 长 段 时 间 以 来, 面向 对 象 技 术 针 对的 是 编 程 领 域, 相 对 于 传 统 的 结 构 化 编 程 方 法 而 言,一般认为面向对象是一种新型的程序设计方法,或者是一种新的程序设计范型, 是一种应用对象、类、封装、继承、聚合、消息传送,多态性等概念来实现系统的程 序设计方法。 随着面向对象技术的发展,自s o年代以来,面向对象技术己深入到计算机软件 领域的儿乎所有分支,远远超出了程序设计语言和编程技术的范畴。现在,面向对象 ( o b j e c t - - o r i e n t e d 或o b j e c t - o r i e n t a t i o n ) 不 仅是一 些具体的软 件开发 技术与 策略, 而且是一整套关于如何看待软件系统与现实世界的关系 ,以什么观点来研究问题并 进行求解,以及如何进行系统构造的思想。 概括的说,面向对象的基本思想是, 从现实世界中客观存在的事物 ( 即问题域对 象)出发来构造软件系统,并在系统构造中尽可能应用人类的自 然思维方式。开发一 个应用系统软件是为了解决现实世界的问题。这些问题所涉及的业务范围称软件的问 题域。面向对象技术强调直接以问题域也就是现实世界中的事物为中心来思考问题, 认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系 统的基本构成单位,而不是用一些与现实世界中的事物相差甚远,并且没有对应关系 的想象概念来构造系统。这可以使系统直接地映射问题域,保持问题域中事物及其相 互关系的本来面貌。而不是建立在自 身独有的概念、符号、规则、策略基础上的一种 超脱人类日常尘活的思维方式。面向对象强调应用人类在日常的逻辑思维中经常采用 北京邮电人学硕 卜 学位论文:面向对象技术在网络考试系统中的研究与 应用绪论 的思想方法与原则, 例如抽象、 分类、 继承、 聚合、 封装等等。 这使得软件开发者能 更有效的思考问题, 并以其他人也能看得懂的方式把自己的认识表达出来。 具体的说, 面问对象的主要特点有: 今 从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的 抽象表示,并以此作为系统的基本构成单位。 . 事物的静态特征,即可以用一些数据来表达的特征,用对象的属性表示,事 物的动态特征,即事物的行为,用对象的操作 在本文中对象的操作、方法 和服务具有相同的含义,可以通用)来表示。 . 对象的属性和操作结合为一个整体, 成为独立的实体, 对外屏蔽其内部细节。 , 对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对 象的相同描述,每个对象是类的一个实例。 令 通过在不同程度上应用抽象的原则, 抓住事物的本质, 剔除事物的次要因素, 可以得到类的层次关系,从而简化系统构造过程及其文档。 . 复杂的对象可以由简单的对象构成。 , 对象的动态联系可以通过消息机制实现。 , 对象间的静态关系可以通过关联关系表达。 所以, 在用面向对象技术开发的系统中,以类的形式进行描述并通过对类的引用 而创建的对象是系统的基本构成单位。这些对象对应者问题域中的各个事物,它们的 属性和操作刻画了事物的静态特征和动态特征。对象之间的各种关系以及对象间的消 息机制如实地表达了问题域中事物之间实际存在的各种关系。 因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构, 都可以直接地映射问题域。正是因为面向 对象看待现实世界的方式和现实世界的组织 方式是一致的,它才得以能够如此迅速地发展,并走向实用。面向对象不但能够将问 题域结构映射到系统模型中,同时,它从一开始就支持软件重用,这位它的发展奠定 了坚实的基础,因为软件重用直接导致了开发成本的降低和软件质量的提高。另外, 由于对象本身的自治特点,使得面向对象系统的可扩展性和可维护性大大地提高。 简而言之, 面向对象技术是一种先进的软件开发方法, 对软件生命周期的各个阶 段,包括分析、设计、编程、测试与维护,以及它所涉及的各个领域,如人机界面数 据库、软件复用、形式化方法、 c a s e 工具与环境等, 都己形成或正在形成面向对象的 理论与应用技术体系。 1 .2论文的内容 针对网络考试系统庞大、 复杂和涉及面广的特点, 研究面向对象技术在实际软件 项目 开发全过程的应用,包括面向 对象的系统分析 o o a , 面向 对象的系统设计 o o d , 面对象的编程语言o o p 和面向对象测试o o t ,为相同或相关领域的软件项目的组织实 施提供可复用的解决方案和可借鉴的参考意见。 要了 解项目 详细情况, 参考网 络考试系统开发文档之 网络教育技术研究所 2 0 0 3 ) 0 北京邮电大学0 1 11 卜 学位论文:面向对象技术在网络考试系统中的研究与应用面向对象技术 第2 章 面向对象技术 面向对象技术是一种先进的软件构造方法,它应用对象 ( 属性和操作的封装) 去对问题域的实例进行抽象,并应用分类技术来管理对象,应用继承机制管理对象之 i fl j 的相似性,并且通过对象间的消息连接来实现对象之间的通信。所以面向对象包含 一些重要的概念和实现机制,只有很好的理解这些概念和机制,才能在软件构造中自 如的应用面向对象技术。下面介绍这些基本概念和主要的机制。 2 . 1面向对象技术基本概念 2 . 1 . 1 对象 ( o b j e c t ) 对象是问题域或实现域中某些事物的一个抽象描述, 它反映该事物在系统中需要 保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封 装体。 4 般地, 对象大多对应现实世界中存在的可观实体, 可以是一个事物, 有形的, 如一台计算机,一辆汽车,也可以是一个概念,无形的,如一笔业务,一项计划。对 象都具有自 身的特征一一静态特征和动态特征。前者是可以用数据来描述的特征,术 语用属性来表达,而后者是对象所表现的行为或对象所具有的功能,术语称服务或操 作。一个对象可以有多个属性,也可以有多项服务。一个对象的属性和服务被结合为 一个整体,对象的属性只能有这个对象的服务访问。 书然, 有些对象,比如在软件系统中为实现某种逻辑体系结构而引入的控制类对 象,在现实世界中并没有直接的对应物。但是,通常还是可以把这些对象看作是依据 现实世界中的某些对象的结构和行为特征派生出来的。也就是说,对象总可一这样或 那样的方式反映人类对现实世界的理解。要注意地是,严格地讲,对象还不是现实世 界客观实体或概念本身,而是对这些客观实体和概念的抽象描述,说到底还是人类对 现实世界的一种理解。例如一辆汽车,在一个机械师看来它是由许多零部件组成的一 部机器,而对推销员来说,它的重要特征是品牌、性能、价格等。 除了属性和操作两个构成对象的主要因素外, 对象标识是另一个重要的因素。 所 有的对象都是独立的实体,都有其唯一的标识,就像两个一模一样的物品其实还是两 个不同的物品,这是由对象固有的存在性所决定的,与它们的特征是否相同无关。对 象的标识有 “ 外部标识”和 “ 内部标识”之分。前者供对象的定义者或使用者调用, 后者供系统内部唯一的识别对象。 2 . 1 . 2 类 ( c l a s s ) 分类是一种分析和解决问题的重要方法,是认识客观世界的一种常用的思维方 式,通过应用抽象原则进行分类,忽略事物的非本质特征,只注意与当前目 标有关的 本质特征,找出事物的共性,得出一个抽象的概念,可以有效地使复杂问题简单化, 发现复杂问题的内在规律,从而更深刻地了解问题的本质,进而找到解决问题的有效 北京邮电大学顿 卜 学位论文:面向对象技术在网络考试系统中的研究与应用面向对象技术 方法。在使用面向对象技术来构造软件系统时,它涉及了软件设计中的两个重要术 语数据抽象和过程抽象。在软件开发过程中,数据抽象和过程抽象总是伴随在高 级抽象到低级抽象的转换过程中,过程抽象把完成一个功能的动作系列抽象为一个过 程名和参数表,以后通过指定的过程名和实际参数调用此过程;数据抽象则把一个数 据对象的定义或描述抽象为一个数据类型名,用此类型名可定义多个具有相同性质的 数据对象。面向对象中的类就是一个封装了数据抽象和过程抽象的单元,其中数据抽 象称为属性描述类的数据数据属性,过程抽象称为方法、操作或服务描述类的动作属 性。 所以, 作为抽象概念的类是一些共同特征事物的集合, 是对属于该类的全部个体 事物的统一描述。在面向对象方法中,一般认为,类是具有相同属性和操作 ( 服务) 的一组对象的集合它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性 和操作两个主要部分。 2 . 1 . 3 类和对象的关系 在面向对象中, 类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间 的关系。类是般化的描述,描述了属于该类的全部对象所具有的共性,即给出了所 有对象的抽象定义,是一个模板( t e m p l a t e ) ,类的作用是定义对象。而对象是实实在 在、彼此独立的客观实体,是符合类定义的一个实体,也就是说,一个对象可称作类 的实例 ( i n s t a n c e ) ,在程序中,实例意味着每个对象都有自己的存储空间,以保存 自己的属性值。这里应该区分属性和属性值,类对属性进行定义,对象可以对所定义 的属性进行取值。也就是说,同类对象具有相同的属性与操作,是指它们定义的形式 相同,而不是说每个对象的属性值都相同。. 类和对象的关系其实也可以参照过程式语言中的类型( t y p e ) 与变量( v a r i a b l e ) 的关系,他们很相似,都是集合与成员、抽象描述和具体实例的关系。类型用于定义 数据,而类用于定义对象,值得注意的是,在面向对象技术中,既有类的概念也有类 型的概念,比如在c + + 中,用类型定义对象的成员变量。 2 . 2面向对象技术的主要机制 2 . 2 . 1 抽象 ( a b s t r a c t )机制 抽象是软件方法学中的一个概念, 是控制软件复杂性的基本策略, 软件构造过程 其实就是一个在不同抽象级别考虑和处理问题的过程。是一个从较高级抽象到较低级 抽象的逐步具体的过程。抽象是一种忽略与系统目 标无关的非本质特征,而集中于与 当前系统目标有关的本质特征的机制。在系统分析与设计中,抽象是为了更好地识别 系统本质的需求。事实上,抽象机制并非面向对象方法所特有的一个特征,在诸如结 构化方法等其他系统分析与设计方法中,也都不同程度地运用了抽象机制。 如前所述,对象是事物两种特性一行为和状态的抽象,状态是行为的结果,行为 是状态或内部结构的变化。对象抽象机制就是把对象的这两种特性一动态特性和静态 北京邮电大学硕 ! : 学位论文:面向对象技术在网络考试系统中的研究与应用面向对象技术 特性抽象为数据结构以及在数据结构上所施加的一组操作,并把他们封装在一起,使 对象状态变成对象属性值的集合,变成对象功能后作用的集合。 抽象机制改变了基于控制的传统结构化程序设计中将数据抽象和功能抽象 即过 程)分离的做法,而是把代表事物属性的数据抽象和代表事物行为的功能抽象有机地 结合为一体,因而具有广泛的适用性和富有独立自 治的特性,更有利于程序的模块化 标准化和部件化,且更适合人们用自 然语启 一对事物进行抽象描述,更符合人们的一般 思维方式和规律。 2 .2 .2 消息 ( m e s s a g e ) 机制 客观世界的各种事物都不是孤立的, 而是相互联系相互作用的, 他们之间存在着 大量的交互行为。实际问题中的每一个个体也是相互联系相互作用的,相互作用依赖 于个体之间的通信联系。如果对象之间不能够相互通信;那么类和对象的概念是无法 完整地、有效地描述问题域,即无法描述动态行为。因为个体之间的相互联系反映了 问 题的静态结构,而相互作用则放映了问题的动态变化。 对象的交互作用通过消息传递机制来完成的。 消息通信是指面向对象方法中对象 之间相互通信。它非常类似于传统的程序设计语言中子程序之间通过参数的方式调 用。 消息用来请求对象某一处理或回答某些信息的要求; 消息统一了数据流和控制流; 某一对象在执行相应的处理时,如果需要,它可以通过传递消息请求其他对象完成某 些处理工作或回答某些消息;其他对象在执行所要求的处理活动时,同样可以通过传 递消息与别的对象联系。因此,程序的执行是通过对象间传递消息来完成的。 发送消息的对象称为发送者,接受消息的对象称为接收者,发送者和接受者之间 形成了消息连接,这种消息连接表明了对象之间的处理以来关系。消息中只包含发送 者的要求, 他告诉接收者需要完成哪些处理, 但并不指示接收者应怎样完成这些处理。 消息完全由接收者解释,接收者独立决定采用什么样的方式完成所需的处理。一个对 象能够接收不同形式,不同内容的多个消息:相同内容的消息也可以发送到不同的对 象;不同的对象对于形式相同的消息可以有不同的解释,能够做出不同的反映。 消息的形式用消息模式来描述,一个消息模式定义了一类消息,他可以对应不同 内容的消息。 对于同一消息模式的不同消息, 同一对象所作的解释和处理都是相同的, 只是处理的结果可能不同。对象固有的处理能力按消息分类,一个消息模式定义了对 象的一种处理能力。消息模式不仅定义了对象所能受理的消息,而且还定义了对象的 固有处理能力,是对象接口的唯一信息。使用对象只需了解它的消息模式,所以对象 北京邮电 人学硕十学位论文:面向 对象技术在网 络考试系统中的研究与 应用 面向 对象技术 具有很强的“ 黑盒性” 。 值得说明的是,虽然面向对象技术中使用的是消息这一自然语言名词 ( 这也正是 采用消息这一名词的原因之一,另一原因是使它更具有适用性,而不受具体实现的限 制) ,但是它不是指实实在在的物理消息,而是一种反映对象具有响应某种消息的行 为能力的表征,或者说是一种对象接受请求能力的反映乙比如某个类中某个操作,这 个操作就是类与 外界的接日,表明该类的实例化对象具有响应另一个对象对该操作的 请求的能力。用消息机制来解释,就是外界通过消息来请求该类的实例化对象提供的 该服务 操作) ,当然要标明要求服务的名称和参数。该类实例化对象收到这个请求 后先分析请求的合法性, 然后执行请求的操作, 具体的操作过程则封装在对象的内部, 也就是说对象接受消息后,如何完成所需要的计算、数据加工或信息处理的任务,从 而改变了该对象的状态,由对象自 行决定,外界无从得知。因此,我们可以说,程序 功能的实现解决问题的过程是对象之间相互联系相互作用的过程,是由 对象行为进行 的, 而对象行为又是通过消息和方法完成的。 用专业术语来说,消息机制类似于结构化程序中的操作符或子程序的调用机制, 但一者有着本质的不同,对于传来的消息, 对象可以 传回相应的回答消息, 但这种返 回并不是必须的。 2 . 2 . 3 继承 ( i n h e r i t a n c e )机制 继承是面向对象技术中一个非常重要的、表达类之间相似性的机制。继承具有重 要的现实意义。 在现实世界中大量的实体都存在一定的相似性,这种相似性不仅表现 在外形上,而且还表现在实体的行为和内在特性上。通过继承机制,能够简化对现实 世界事物的认识和描述,能够很大程度上利用这些相似性,从而可以更好管理系统的 类, 在定义新类时达到简化工作的目的。 换句话说,在定义特殊类时,不需要把它的 一 般 类己 经 定 义的 属 性 和 操 作 重 复 地 书 写 一 遍, 只 需 要 声明 它 是 某 个 类 的 特 殊 类, 并 定义它自己的特殊属性和操作, 这使得类的定义得到简化, 也方便管理。 如 图2 -1 ? 所示。 图中男人和女人都继承了人的 “ 穿”操作和外表这个属性,但在男人和女人两 个类中并不需要重新定义一遍,而是自 动获得的。另外男人和女人还可以定义自 己 的操作 “ 扛” 和 “ 绣” 。声明:笔者只是为了 说明继承的概念,图中并不包含性别歧 视之意。 继承机制刻画的是类的一般性和特殊性的关系。 被继承的类称为父类或超类, 继 l 京邮电人学 顿 卜 学 位论文 面向对象技术在网络考试系统中的 4 叶 究与应用面向对象技术 承的类称为子类。子类拥有父类的全部属性和操作,这包含了 “ 自 动拥有”和 “ 隐含 地复制”的意味。就是说,子类既有自己新定义的属性和操作,又有从它的父类继承 卜 来的属性和操作,它是隐式地 不用书写) 义的属性和操作还可以被更下层的子类继承, 描述具有了层次结构,处于同一层次结构中的 类共享顶层类所定义的属性和操作。因此,继 承机制使类从一开始就具有了继承和被继承的 能力,简而台 之,就是具有了重用和被重用的 能力。 得到。并且子类继承来的和它 自己新定 即继承是可以传递的。这样就使得类的 口卜 / 如上所叙,继承机制是面向对象技术可一提 高软件开发效率和软件可重用性的重要原因之 一, 是面向对象方法实现可重用性的前提和最有 效的特性, 不仅支持系统的可重用性,而且还促 男人 女人 ! , 扛 。 今 绣0 进了系统的可扩充性。因此继承机制又称可重用机制 图z 一1继承示意图 ( 也称代码共享机制或程序共享 对象机制) ,它是软件部件化的基础。可重用机制很好地避免了属性描述信息和操作 程序信息的冗余,简明自 然地把客观事物的行为和状态及个体之间的层次关系和所属 关系抽象为计算机的数据模型或算法程序。 继承分为单继承和多继承。如果一个子类继承了两个以上的父类的属性和操作, 则这种继承就叫做多继承,否则称为单继承。多继承的实现取决于编程语言的支持。 继承是任何一种面向对象语言 o o p l必须具备的功能,多继承则未必,有些编程语台 如j a v a 就不支持多继承。 2 .2 .4 封装 ( e n c a p s u la t i o n ) 机制 封装又称信息屏蔽,来自以7 0年代的软件设计思想,它是指软件组成部件 ( 模 块、子程序、方法等)应当分离或隐藏为单一的设计。封装是面向对象技术的一个重 要原则。它又两层含义:一是把对象的全部属性和操作

温馨提示

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

评论

0/150

提交评论