面向对象uml课程设计(共10篇)
摘要:在项目管理中,项目客户关系管理是实现项目成功实施的重要环节。本文以交通项目为背景,把面向对象建模技术应用在其项目客户关系管理系统的建模设计过程中,使用可视化的统一建模语言UML对该系统进行了详细的分析和设计。关键词:项目;CRM;PCRM;UML;用例
Abstract:In project management,project customer relationship management acts an important role for a SUCCeSSfUl implementa‘tion of project.In this paper,the object·oriented modeling technology is used to design the project customer relationship manage‘ment system based on tragic engineering projects,and the function and components of the system are designed and described indetail by using visual unified modeling hnguag UML.
Key words:pmject;CRM;PCRM;UML;use case
一、引 言
CRM(Customer Relationship Management)是指企业针对各方面信息进行实时采集和动态跟踪,然后进行综合、分析、处理、统计,进而辅助企业进行以客户为中心的全面运营管理¨。客户关系管理的理念要求企业必须完整地认识整个客户生命周期,提供与客户沟通有效的统一平台,提高员工与客户接触的效率和客户反馈率,提高客户的忠诚度、满意度以及降低企业经营成本,从而提升企业客户的价值,提高企业利润收入。项目是一个组织为实现既定的目标,在一定的时间、人员和资源约束条件下,所开展的具有一定独特性的一次性工作。项目的含义非常广泛,既可以是一个大型的工程项目,也可以是一项新产品的开发、一项科研课题的研究,或一项特定的服务。项目的客户是使用项目成果的个人或组织,任何一个项目都是为项目的客户服务的,所以在项目管理中必须认真考虑项目客户的需要、期望和要求¨J。项目客户关系管理(Project Customer Relation— ship Management,PCRM)系统是在项目管理过程中,用来捋清各种客户关系、对客户行为进行分析并提供决策支持的系统。采用传统的结构化设计方法很难满足现在大型软件系统的要求,而面向对象技术实现了软件的可重用性和可扩展性,提高了系统的稳定性,并使系统易于理解和维护,针对系统特点我们选择面向对象技术对项目客户关系管理系统进行分析、设计。
1、项目客户关系管理系统的特点
项目客户关系管理是以通过持续改进提高客户满意度为中心,不断实现对项目质量、成本、进度的控制,建立适应客户不断变化需求的灵活的组织结构,以全面客户满意为目标,最终与客户建立长期良好的
合作关系,实现双赢的管理方法 J。客户关系的管理应以项目的实施过程为主线,客户关系管理贯穿于项目管理的整个流程中,尤其要把握项目进度计划实施与客户关系管理实施的协调。项目管理是在有限的资源条件下,为实现项目目标所采取的一系列管理活动,传统的项目管理系统多是在企业内部进行进度、成本、资源、费用的管理。项目客户关系管理系统中:项目客户应该参与项目整个过程,客户提供项目;客户为项目提供主要信息,表达自己的需求;客户约束项目;客户提出项目变更并审核变更;客户接收项目交付物并使用产品。客户管理的目标和项目管理的目标是统一的,即实现客户的全面满意。’在项目全生命周期中,存在客户与项目、客户与企业的频繁的各种形式的交互,基于软件可重用性和可扩展性,开发该系统应该采用面向对象技术。
二、可视化的统一建模语言UML 2.1 UM L概述
统一建模语言UML是一种定义良好、易于表达、功能强大且普遍适用的可视化图形面向对象技术建模语言 J。它溶人了软件工程领域的新思想、新技术和新方法,它的作用域不只限于支持面向对象的分析与设计,还适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。UML采用图形化的表示法,主要包括用例图、类图、包图、状态图、活动图、序列图、协作图、组件图和部署图等。这些图为系统的分析、开发提供了多种图形表示,它们的有机结合可以分析和构造一个一致的关系,并不是每个项目都会用到所有的图,许多项目并不需要状态图或活动图,但一般项目至少产生用例图、序列图和类/协作图。在软件开发过程中,UML是软件开发人员表达设计思想、进行交流沟通的非常有效的工具。2.2 RoSE简介
Rational Rose是一种面向对象的分析建模工具,利用这个工具,我们可以建立起用UML描述的软件系统的面向对象模型,并且可以自动生成和维护VB、C++、Java等语言的代码框架。应用Rose进行系统建模的过程大概如下:
(1)识别系统的用例和角色:识别出角色(Actor)与各功能用例(Use Case)O(2)系统分析:建立Sequence(序列)视图、Collaboration(协作)视图以及State(状态)视图。(3)系统设计:确定系统的类及类的属性、操作、各类之间的关系,建立起详细的Class Diagram(类图)。
(4)代码实现:在建模完成后,开发人员利用RationalRose工具可以生成程序代码框架,并对代码框架进行修改和补充,形成完整代码;而且,还可根据代码逆向生成UML模型。
三、PCRM 系统设计
3.1 PCRM 总体功能结构图
项目客户关系管理系统主要由四大功能模块组成:客户管理、项目管理、服务管理、日历管理。对每一功能模块进行分析,可得到详细的子功能,如图1所示。作为PCRM系统基础的客户管理模块,其结构形式以客户资源管理为基础,客户分析为核心,兼顾实现潜在客户和合作伙伴管理的子功能。项目管理功能模块实现项目全生命周期的各个环节进度、成本、质量以及客户关系的协调管理,包括市场分析、项目采购(招投标)、合同管理、项目进度管理、项目绩效考核等子功能。服务管理功能模块实现项目生命周期、客户生命周期内外客户服务相关内容管理,划分为客户接触管理、客户评价/投诉、需求变更管理等子功能。由于篇幅的限制,图1并不是最终细化的功能结构图,比如说客户分析子功能还应进一步划分为:客户群分析、客户满意度分析、客户价值分析、客户流失分析等,项目进度管理子功能还应进一步划分为:项目资源管理、成本控制、进度计划等。四大功能模块的子功能模块之间是有效结合,它们相互协作、相互贯穿,最终使行业中的企业运行模式从“以项目为中心”向“以客户为中心”进行转变。
3.2项目管理功能模块Use Case视图
图I表示了系统最大的功能模块的划分,对每一个功能应再创建用例图,进一步明确其功能。由于项目管理功能模块是整个系统的核心模块,我们仅对项目管理功能模块用例进行进一步细分,其它模块的建模过程与其类似。项目管理功能模块的用例图如图2所示。注:途中“通常ADU操作”,指的是“ADD、DELETE、UPDATE操作”,细化后的底层用例都应实现“通常ADU操作”,图2中并没一一标出。
项目管理功能模块中涉及的参与者包括:企业领导、项目经理、项目执行人员、合作伙伴、客户、相关厂商等。其中企业领导、项目经理、项目执行人员、合作伙伴等角色参与到项目管理的整个过程中;而角色客户与项目实施方紧密地沟通交流、协作,参与进度计划、成本控制、项目资源管理、项目绩效考核、合同管理等;相关厂商可能只参与某些项目的合作投标过程。3.3 建立Sequence图
定义出各功能模块的基本功能、建立起系统的Use Case视图以后,下一步应该针对每个Use Case的业务操作流程绘制其Sequence视图。Sequence视图反映系统中若干个对象之间的动态协作关系,分析对象之间消息的先后次序,说明对象之间的交互过程,以及系统执行过程中,在某一具体位置将会发生什么事件。我们以“对客户沟通记录”操作为例说明sequence 视图的建立过程:相关人员登录项目管理主界面,打开项目采购中的客户沟通记录界面,选择、打开记录界面,在界面上根据权限对数据库进行增删改操作(权限及输入的合法性检验过程略)。这个过程我们可以初步建立一个完全面向操作过程的se—quence视图,如图3所示。此处我们没有绘制协作图,协作图可以由所画的
Sequence视图动态生成。其它功能模块的建模过程也与此类似,这里不再说明。3.4系统类图设计
对系统的Use Case图进行分析,我们可以得到系统的类图,在分析阶段,可以找出大部分的类以及类中的大部分的属性,剩余的类和属J陛可以在详细设计阶段通过Sequence图找出。类图设计过程中,具有相似行为或属性的类应合并,以避免类的冗余、提高类的抽象性和继承性。客户沟通局部类图如图4所示。
3.5 PCRJVI系统的代码结构设计
PCRM系统我们采用如图5所示的三层软件结构,分为User Services(用户层)、Business Services(业务层)、Data Services(数据服务层),这种结构有利于类的重用和扩展,有利于提高类的抽象性和继承性,这正是面向对象设计的优势所在。三层结构中各类的功能如下:User Services层中的边界类PCRM defineform实现界面显示功能,边界类Facade运行界面中的函数和过程;Business Services层中的PRCM Man—ager集合管理类和PCRM持久实体类对界面提交的数据进行业务逻辑处理,负责数据修改的Modify类、负责数据读取的Fetch
类和DataAccess类将业务逻辑处理好的数据提交给Data Services(数据服务层)进行数据存取;Data ewices(数据服务层);OLEDB(ADO)/ODBC类通过DBMS(数据库管理系统)实现
对数据库的存取。
应用此三层软件结构,结合面向对象设计过程中设计的类图,图3所示的对客户沟通记录操作的Sequence图可以转化为如图6所示的对客户沟通记录操作的程序Sequence图。这时,在Rose中可以自动生成对客户沟通记录进行增删改的VB、C++、Java等语言的代码框架了。
四、结束语
本文对项目客户关系管理这个项目管理中的新课题作了一定研究探讨,并以交通项目为背景定义出了一个项目客户关系管理系统。在这基础上以统一建模语言UML为工具,将面向对象技术应用于项目客户关系管理系统设计中,使得系统具有更好的可重用性、可维护性,在一定程度上实现了软件开发的自动化、实现了软件设计和编码的无缝的连接,提高了软件开发的效率和质量。有关项目客户关系管理许多问题还有待于进一步研究,项目客户关系管理系统还有待进一步完善。参考文献:
[1] 夏安邦,孙欣.对当前CRM研究的综述和讨论[J].中国制造业信息化,2004,33(5):13—17.
[2] 戚安邦.项目论证与评估[M].北京:机械工业出版社,2004. [3] 陆菊春.浅析项目客户关系管理[J].商业时代,2003(17):22.
[4] Boggs W.UML与Rational Rose 2002从入门到精通[M].北京:电子工业出版社,2002. [5] 马重明,张学旺,范时平.基于UML的软件体系结构开发方法[J].计算机工程与应用,2006,42(4):118.120.
关键词:UML,面向对象,分析,设计,案例教学
UML面向对象分析与设计是软件技术专业开设的一门重要的专业基础课程,该课程的知识主要分为三大部分,分别是UML基础、面向对象的设计原则和面向对象的设计模式。统一建模语言UML贯穿与软件开发过程的不同阶段,为软件开发人员建立整个系统的模型,告诉开发人员“做什么”和“怎么做”。在软件开发的不同阶段UML的侧重点又有不同,在需求分析阶段,系统分析师可以用UML来描述用户的业务模型,从而给系统设计师做进一步的设计;在系统设计阶段,系统架构师或系统设计师可以用UML来描述架构模型以便让程序设计师进行实现设计;在详细设计阶段程序设计师可以用UML来描述具体对象模型给编程者来具体实现。由此可以看出UML是用来清晰地描述模型的,它的作用是将计算机软件开发技术和面向对象的设计思想联合起来,对软件生产工业产生了极大的影响,因此,“统一建模语言UML”课程的重要性显而易见[1]。
面向对象设计原则是设计模式的灵魂,它描述了对象设计和职责分配的基本原则。也就是说,如何把系统数据抽象成对象,如何决定一个系统有多少对象,每个对象都包括什么职责。如单一责任原则、开放—封闭原则和接口隔离原则等等。
面向对象设计模式,是在面向对象设计中针对重复发生的问题的描述和解决办法的统称。如适配器模式、装饰模式和策略模式等等。
综上所述,该课程的主要内容涵盖了软件开发过程中的各个阶段,以及面向对象设计原则和处理常见问题的方法,对软件技术专业学生的重要性是极其重要的。
1 教学现状及存在的问题
案例教学(Case Method)是由美国哈佛法学院前院长克里斯托弗.哥伦布.朗代尔(C.C.Langdell)于1870年首创,后经哈佛企管研究所所长郑汉姆(W.B.Doham)推广,并从美国迅速传播到世界许多地方,被认为是代表未来教育方向的一种成功教育方法。20世纪80年代,案例教学引入我国。现在,案例教学已经扩展到很多课程。
所谓案例教学,是一种通过模拟或者重现现实生活中的一些场景,让学生把自己纳入案例场景,通过讨论或者研讨来进行学习的一种教学方法,主要用在管理学、法学等学科。教学中既可以通过分析、比较,研究各种各样的成功的和失败的管理经验,从中抽象出某些一般性的管理结论或管理原理,也可以让学生通过自己的思考或者他人的思考来拓宽自己的视野,从而丰富自己的知识[2]。
案例教学的过程中,教师的角色应当有所转变,从以前的老师讲、学员听到现在的组织者、引导者和激励者。
1.1 案例教学内容和方式
1)采用分组的形式,让学生自由组合,并共同推举一个组长。教师提出案例场景,鼓励同一个组内的学生思考、讨论,最后由组长提交结果。
2)各组长或组员对于自己组内形成的结果进行阐述,各组之间可以相互质疑其结果或直接反驳。
3)对各组的结果进行评议,给优秀的组全体成员加分。这样使枯燥乏味的内容变得生动活泼,又促进学生的团队协作能力的提高以及增强其集体荣誉感。
1.2 UML面向对象分析与设计的案例教学中也存在的问题
1)案例的选取不当。如果案例的选取不当,直接影响了学生对课程知识的掌握和后续知识的学习(面向对象的设计原则和模式)、也影响了课程的教学目标和专业的培养目标。
2)沟通协作不够。案例教学更加强调教师与学生的沟通和协作,同时也强调小组内学生之间的沟通和协作。如果师生之间沟通不到位,容易造成学生对案例的理解不到位,分析出的结论与期望值也就相差很大;如果小组成员之间沟通协作不力,就会产生分化,有的同学积极响应老师提出的问题,而有的确出现依靠他人的思想,自己不去积极思考。
3)案例不适合特定专业。各专业有各自的培养计划和培养目标,但是由于授课教师的专业限制,不可能针对每个专业都制定不同的教学案例。例如:Web应用开发专业、移动应用专业都有开设该课程,但授课教师却不能针对两个专业分别制定案例。如果针对各专业制定不同的教学案例,就能更符合各专业的培养方向和培养目标。
2 解决方案
为了提高教学效果和学生的学习效果,针对上述三个问题,结合课程特点和各专业培养方案以及培养目标,现提出以下解决方案。
1)对于案例的选取,应当将课程特点、学生的知识背景以及专业相结合,选择的案例不能太简单,让学生觉得索然无味,提不起学生学习的兴趣;也不能太难,由于建立模型是依赖于建模者对被建模的业务领域的了解的,而授课的对象是大二学生,他们从小学上到大学,所学又为软件专业,对其他行业(商业、金融和外贸等等)业务知识的掌握基本为零,并且没有软件开发经验,所以选取的案例应当结合学生的知识背景,是学生比较熟知的,否则在授课中又要讲解领域知识,这样授课难度就可想而知了,也不能达到教学目标和学习效果。
2)对于沟通协作问题,首先是老师和学生的沟通,授课老师在将需要建模的案例场景展示给学生的时候方式不应该太单调。例如只是采用大量的文字描述一个案例场景,这样学生容易觉得枯燥。如果采用卡片、动画或者现场模拟的方式将案例场景展示学生,这样学生会觉得上课是一件轻松愉快的事情,而不是枯燥和痛苦,也会让学生对该课程产生浓厚的兴趣。让学生在对业务处理流程有一定的了解的情况下再去思考、分析和讨论,可能会取得更好的效果。但是这里又存在两个问题,一是如果采用卡片或者动画来展示案例场景,需要多媒体、图形图像等专业老师给予支持,并且需要大量的时间去准备;二是如果让学生进行案例场景的现场展示,有时候会遇到有的学生不愿意配合的问题。其次是小组内部学生之间的沟通,如果出现问题,授课老师应当积极的了解其情况,加强思想教育工作,使之积极的融入到小组的讨论和分析中去。
3)对于案例不适合特定专业的问题,可以针对各专业建立教研室,教研室的教师根据课程内容和要求,以及专业培养目标共同商议案例的选取,使之既能达到课程要求,又能贴近其所学专业,不能让学生觉得学了这些东西好像和我所学的专业都没有关系。例如:Web应用开发专业,选择的案例最好与其Web应用开发有关;移动应用所选择的案例最好能和移动应用的开发有关。
3 UML案例教学流程
3.1 案例的选择
前面已有论述,案例的选择应当集合学生的知识背景和专业背景,对于学生来说是比较熟悉的,所以在就选择了网上图书管理系统,该案例比较有实用性,难易适中,也贴近学生的现实生活。如果在后面授课过程中出现学生对该领域的业务知识不了解的情况,也能就近取材,通过自己去借书、还书或者扮演图书馆管理员也能充分掌握该领域的工作流程,这样就便于学生将所学理论和现实应用相结合,也提高了学生的学习兴趣。但是该案例较适合Web应用开发专业、对于移动应用就不太适合,前面已论述其原因。
3.2 案例教学的实施
以前在案例教学中缺乏经验,从一开始就拿出案例,对案例进行分析讲解的过程中,需要哪些知识再讲哪些知识,最后学生听不明白讲了些什么,也不明白哪些是重点。所以,案例教学实施之前,有必要用一定的时间采用传统的授课方法对知识点进行讲解,在这个过程中最好通过其他例子来说明问题,尽量不要使用案例。在学生对基本知识点有了一定了解和掌握之后,再提出案例。
下面是案例教学实施的几个步骤:
1)场景介绍:用较短的时间对案例场景进行介绍,可以是文字介绍、现场模拟或者动画演示。例如,讲活动图对“读者借书”的业务流程进行建模的时候,可以先让学生进行现场模拟,或者到图书馆去亲身体验,或者采用动画的形式将案例场景展示给学生,从而先了解业务流程。
2)小组讨论:学生对案例场景了解了以后,告诉小组讨论的方式方法,就以小组为单位,组内相互讨论,在给定时间内得出结论。因为这是一项复杂的任务,也是软件工程中的必然一个环节,需要团队的合作,单凭某一个人来独立完成,必然会造成遗漏,这样既培养了学生发现问题,解决问题的能力,同时,也培养了学生团队合作意识,锻炼了其团队合作能力。(下转第7754页)(上接第7750页)
3)小组长讲述各自的结论:学生完成给定的任务以后,首先让小组长阐述、展示所代表组的结论,并且说明产生结论的原因。然后,看学生对其他组的结论是否有疑义,或者对其他组的结论进行反驳,从而了解学生对基本知识和案例场景的理解和掌握程度。同时,这个讨论的过程中,能让学生加深对所学知识的理解和掌握,也能体会到所学知识在实际软件开发过程中的应用。
4)总结点评:在第三步完成以后,对学生的结论进行总结点评,也可以和学生一起讨论,得出最合适结论,以帮助学生对所学知识的理解和应用。然后,为各组现场评分,以激励学生学习的热情和兴趣。
3.3 实验
实验也是案例教学的重要一环,主要是让学生掌握建模工具的使用方法,也是及时了解学生对课程内容掌握情况的手段。这需要学生充分发挥主观能动性,以锻炼其分析问题,解决问题的能力。在实验室内,老师应少讲,主要是给予提示,对于个别问题个别讲解,对于普遍性问题集中讲解。可以先选取案例中的小部分,进行讲解和演示,让学生在下边操作,以掌握工具的使用方法。然后再让学生以小组为单位,进行集中讨论,最后以小组为单位提交实验成果。
4 结束语
“UML面向对象分析与设计”教学的最终目的是要让学生学会使用UML工具进行软件设计及软件开发,培养学生的实际动手能力、发现问题和解决问题的能力。所以在案例的选取方面要精,要有代表性和典型性。
要让学生通过一个案例的学习能掌握基本知识,达到课程教学目的并且能够举一反三,而且能应用到实际的软件开发中去,需要对案例的精心选取、准备和认真授课,也需要不断地对案例教学的授课方法进行总结和探索,通过实践来检验授课方式和方法的教学效果。
参考文献
1.引言
面向对象分析与设计方法学,代替传统的面向过程的结构化分析与设计方法,已逐渐成为现代软件工程领域中的主流方法。特别是随着90年代末统一建模语言UML的广泛应用,结合UML的面向对象分析与设计方法在国内外学术界和产业界普遍受到重视,成为软件工程三个要素之一。
面向对象分析与设计是软件工程专业开设的一门重要的专业基础课程。该课程主要分为UML基础,面向对象的设计原则和面向对象的设计模式。而统一建模语言UML贯穿于软件开发过程的不同阶段,为软件开发人员建立整个系统的模型 告诉开发人员做什么和怎么做。在软件开发的不同阶段的侧重点又有不同:在需求分析阶段,系统分析师可以用UML来描述用户的业务模型,从而给系统设计师做进一步的设计。在系统设计阶段,系统架构师或系统设计师可以用UML来描述架构模型以便让程序设计师进行实现设计,在详细设计阶段程序设计师可以用UML来描述具体对象模型给编程者来具体实现。由此可以看出UML是用来清晰地描述模型的,它的作用是将计算机软件开发技术和面向对象的设计思想联合起来,对软件生产工业产生了极大的影响。因此,统一建模语言UML课程的重要性显而易见。面向对象设计原则是设计模式的灵魂,它描述了对象设计和职责分配的基本原则。面向对象设计模式是在面向对象设计中针对重复发生的问题的描述和解决办法的统称。综上所述,该课程的主要内容涵盖了软件开发过程中的各个阶段,以及面向对象设计原则和处理常见问题的方法,对软件工程专业的学生是极其重要的。
2.“讲授—案例—互动—实践—考评”五段课堂教学新模式
该教学模式通过“讲授”让学生系统掌握整个知识体系,运用“案例”激起好奇心和引发应用和创新的动力,引导学生自主学习“扩展”知识面和建构自己的新知识,在项目“实践”中综合应用强化创造,最后通过综合“考评”合理评定出学生的成绩。加强工程化的教学内容建设,在课堂教学系统地传授知识的基础上,注重工程性的课程案例和循序渐进的课程项目实践的有机结合,为学生自主性和研究性的扩展学习搭建优良的网络教学环境。
1)“系统讲授”让学生系统地掌握整个知识体系。教学内容强调工程化,适应软件开发技术发展快的特点,不断跟踪国际最新标准和最新技术,及时更新教学内容,反映基于构件、模型驱动和面向服务等现代软件开发技术的最新发展趋势。课堂教学采用启发式教学,指导学生阅读经典学术论文并进行综述、评介和讨论,撰写读书笔记,培养学生阅读、概括、评价、撰写和表达等基本科研能力。
2)“案例教学”让学生置身于模拟的真实环境中,學习如何进行具体实践和问题解决,引发学生研究性学习和创新的动力。案例分为基础-扩展-提高等3个阶段。基础阶段针对UML和OOAD方法等基本内容,着重于单项练习和简单系统设计;扩展阶段着重于架构设计和设计模式、框架设计和复用等现代技术,将基础阶段的简单系统扩展为基于构件和框架复用、支持持久框架的Web系统;提高阶段则结合专题讲座,了解最新技术发展趋势。
3)“网络加自主的互动方式” 创造多元化的教学环境,将课堂上的教学与课堂外的师生互动无缝的进行集成。当今互联网环境为我们提供了便捷、丰富的交互手段,借助其以整合不同的教学要素来提升整体的教学效果,这也符合以学生为中心的教学理念。基于以上的认识,在教学过程中,可以依托网络教学平台提供丰富的互动方式,在网络上共享学习资源、在线讨论、即时沟通,达到了充分调动学生学习热情的目的。在交互的过程中,通过开放性的问题驱动学生自主选择感兴趣的方向做深入的学习和研究,充分地释放学生的个性和创造力。整体而言,课下教学组织在网络加自主的互动方式支持下有力的支持并拓展了传统的课堂教学,不仅对教学效果有明显的提升,而且对培养学生的主动性、协作能力乃至钻研精神和创新意识都有着潜在的不可忽视的帮助。
4) “项目实践”培养学生运用知识、解决问题和团作协作的能力。学生参照课程案例、文档模板、实践指南和参考资料,结合有助教指导的课内上机、课外自由上机和有助教在线指导的网上辅导教室等多种教学手段,以3-5人的小组为单位的团队方式完成一个课程项目,项目题目和需求是在教师指导下由学生自主确定,以鼓励创新。项目进度和课堂教学及课程案例基本同步,循序渐进。
5)“综合考评”从知识、创新、应用等多方面进行评价,根据每节课、每次作业、项目的每阶段评审和考试来综合考核成绩。成绩一般由课堂表现、每周作业、读书笔记、项目阶段审核和项目答辩、期末考试等部分组成。
本课程充分利用信息技术,课堂教学采用多媒体信息技术手段,基于Web的网络教学平台提供论坛、答疑、作业、问卷调查等课程互动功能,网上辅导可提供无时空限制的即时学习、小组讨论和辅导帮助等功能。
课堂教学实施方面,研究启发式、交互式等多种形式的教学方式。建立网络教学平台,同学生充分沟通,不断学习、改革和实践。摈弃了过去只注重书本内容的教授,引进了实际工作的案例。大量的案例分析,促使学生从实际出发,从现实的角度看待问题、分析问题。对项目工程的亲身实践,使得学生把所学转化为所用,并在所用中不断充实。
3.教学内容顺序及对应的学时安排如表1
除本课程的课程项目实践外,还可鼓励学生参加其他实践活动,如大学生学生创新项目的申报,可进一步强化5段式教学新模式中的 “实践”,培养学生解决实际问题的能力和创新能力。
4.课程的重点、难点及解决思路
本课程的设计符合UML最新国际标准,覆盖了国际软件工程知识体系的相关知识点,分析和设计并重,原理和案例兼顾。课程内容的重点主要有UML可视化建模技术、领域建模和面向对象系统分析方法、面向对象系统设计方法、设计模式、框架设计和复用等方面。课程内容的难点主要有对UML的深入理解和运用、领域对象识别和关系分析、架构因素分析和架构设计、分析类与设计元素的区别和联系、设计模式的深入理解和运用等。解决办法主要是通过分阶段的综合性课程案例、循序渐进的工程性课程项目实践等加强实践性教学环节,让学生在实践中学习和领悟。 另外,本课程由于工程性和实践性很强、相关技术发展快、涉及面广,在课程体系建设、教学建设和实施等方面都存在挑战。
5.实践教学的设计思想
循序渐进、手段多样的工程性课程项目实践。学生参照课程案例、文档模板、实践指南和参考资料,结合有助教指导的课内上机、课外自由上机和有助教在线指导的网上辅导教室等多种教学手段,以3-5人的小组为单位的团队方式完成一个课程项目,鼓励创新。进度与课堂教学和课程案例基本同步,循序渐进。
进一步搭建网络教学平台,将部分学生的优秀作品在平台中展示。学生利用课外时间以团队方式完成多个实际软件项目的开发,实验进度和课堂教学基本同步。项目题目和需求是在教师指导下由学生自主确定,以鼓励创新。通过实践,学生能把所学转化为所用,并在所用中不断充实,同时也加强了软件工程规范的训练,培养了学生的团队精神和沟通能力。
6.结束语
通过本课程的教学,使学生掌握面向对象技术原理、面向对象的软件系统分析和设计方法、软件设计模式等,能结合UML和工具进行面向对象的软件系统分析和设计,并具有软件开发实践和项目组织的初步经验、创新意识、团队精神。
《Java面向对象程序设计语言》课程设计(实验)指导书
一、对学生的基本要求:
1、理论联系实际、严肃认真、实事求是的科学态度和勇于探索的创新精神。
2、运用所学基础理论与专业知识分析和解决实际问题,培养独立思考完成任务的能力。
3、运用Java面向对象程序设计方法、标准与规范开发小型应用软件系统。
二、设计的要求及内容及要求:
应用Java面向对象程序设计语言开发小型应用软件系统。可以从给定的选题中选择一个课题或自拟课题(自拟课题需经指导教师批准),完成系统分析、设计和开发。
具体要求如下:
(1)针对你所选择的系统进行需求分析,写出系统的功能要求,设计的应用程序应具有的功能要素。
(2)程序代码应符合教学中应该具有的规范要求,类名、方法名,属性名称应与设计中实际的应用含义相符,程序中具有相应的注释。(3)程序的界面要合理、美观。
(4)每人最终提交一个可行的应用软件程序和规范的课程设计说明书。说明书应严格按照说明书的要求,格式清晰、规整。并提交所设计程序的电子文档。
三、设计进度: 1、17周周一~周二:选题,系统的需求分析。分析并规划你所设计的系统应达到的功能,满足什么样的要求。2、17周周二~周四:系统设计。分析要达到你所要求的功能需要编写什么类,规划类的层次结构,设定好类明、方法名、属性名;规划你所设计的系统应具有什么样的界面布局。查阅资料帮助自己规划好你的系统。3、17周周五~18周周二:程序设计。根据自己所规划的程序进行具体代码设计,代码设计要符合程序设计的规范要求,注意程序的编写格式。4、18周周三:程序测试。对自己所规划的程序进行测试,看是否有异常及程序Bug出现,并进行调试修正程序代码。5、18周周三:编写课程设计说明书。按照本指导书要求格式编写程序设计报告(见附件)。6、18周周四上午交所设计程序的电子文档,和课程设计说明书的电子文档。7、18周周四~周五:成绩评定。等待指导老师提问答辩。
四、选题
根据自己的爱好从以下题目中选择一个题目进行设计。
1、设计题目:学籍管理系统
设计目的:设计一个学籍管理系统,保存所有学生信息。
第1页 设计要求:学籍管理系统一般包括学生的基本信息,如,学号、姓名、班级、籍贯、联系电话、学生成绩等;能够添加、查找、删除学生信息等功能;程序执行时候,需要从文件中导入数据,程序推出后再将数据保存到文件中。
2、设计题目:出版物管理
设计目的:对出版物书籍、CD或者磁带进行管理。
设计要求:使用图形界面的方式,对书籍、CD或者磁带的基本信息进行管理。
书籍界面包括:书籍的名称、书籍的价格、书籍的出版社、书籍的作者、书籍的ISBN、及书籍的出版日期等;可以通过选择菜单来进行书籍信息的添加、修改和删除等,所有的书籍信息会显示在一个列表组件中,当某本书籍的信息改变时,列表中会相应的进行改变。CD界面包括:CD的名称、CD的价格、CD的出版社、CD的演唱者、CD的发行者、CD的ISRC等;可以通过选择菜单进行CD信息的添加、修改和删除,所有CD信息会显示在一个列表组件中,当某张CD的信息改变时,列表中会相应的进行改变。
磁带界面包括:磁带的名称、磁带的价格、磁带的出版社、磁带的演唱者、磁带的ISRC等;可以通过选择菜单进行磁带信息的添加、修改和删除,所有磁带信息会显示在一个列表组件中,某张磁带的信息改变时,列表中信息会相应的进行改变。
3、设计题目:Java程序编辑器
设计目的:设计一个Java程序编辑器,能够进行简单的文字处理。
设计要求:类似一个Windows系统的记事本,能够实现打开、保存文件;查找、替换字符串;定时自动更新文件,并创建备份文件;将Java的关键字以不同颜色或不同字体显示。
4、设计题目:设置日期时间属性
设计目的:设计类似Windows系统中“设置日期时间属性”的窗口及功能,综合运用各种组件、日期类、日历类、线程等内容。
设计要求:设计类似Windows系统中“设置日期时间属性”的窗口及功能,设计相似界面,实现日期和时间的多种运算和显示,保证运算正确性。
5、设计题目:交通信号灯的线程设计
设计目的:使用多线程设计,同步机制设计一个交通信号灯。
设计要求:设计线程;设计路口信号灯示意图界面;进一步将两个方向的信号灯分成3种车道灯:左转、直行和右转;根据车流量进行时间的模糊控制。
6、设计题目:聊天程序
设计目的:图形界面与Socket通信及输入/输出流的综合运用。
设计要求:设计一个图形界面,以Socket通信机制实现类似QQ的网络聊天程序,该聊天程序最少可以达到两个人聊天,并可以保存聊天的内容。
7、银行贷款多种还款方式的计算
设计目的:图形界面与算法设计。
设计要求:设计一个图形界面,在界面上能够实现的实际贷款和还款的一般规则(参照教材P409)。
第2页
8、日历组件
设计目的:图形界面与算法设计。
设计要求:自定义一个日历组件:显示当月日历、当前日期、上/下日历等,界面样子参照教材P409。
9、地址薄管理器
设计目的:图形界面与输入/输出流和文件操作。
设计要求:设计一个存储朋友电子邮件地址及电话号码的地址薄应用程序,界面自行设计(也可参照教材P411)。
(1)设计一个人员类,成员变量包括类别、姓名、电话号码和邮件地址等,成员方法包括插入、移动、删除、更改类别等。所有人员信息保存在以对象为单位的记录文件中,以对象流实现数据读取和保存功能。
(2)设计图形用户界面,在此界面上可实现针对朋友电子邮件和电话号码的各种操作(可参照教材P411)。
(3)添加主菜单和快捷菜单,实现插入、删除、移动等功能,快捷菜单会根据当前组件自动执行不同对象的插入、删除、移动等操作。
10、搜索文件
设计目的:图形界面与输入/输出流和文件操作。
设计要求:参照Window的资源管理器,给特定搜索文件名的部分字符,在制定的范围内搜索文件,显示搜索结果的文件名列表、文件路径及文件属性。
其他选题,需征求指导教师同意,由指导教师根据拟定的题目难度给予相应的评分标准。
五、考核内容及分值分配
1、课程设计说明书。(30分)1)正文:(手写课程设计报告4页以上)(20分)(1)、概述
包括项目背景、编写目的、软件定义、开发环境、所用的知识等内容。
(2)、功能说明
问题陈述、需完成的功能。
(3)、程序类说明
定义的类、接口等的名称,并将其在程序中起到的作用进行简要说明,并根据面向对象程序设计的原则画出类的层次关系图。(4)、软件系统测试说明
对你所设计的软件进行使用测试,列举该软件出现的问题和不完善的地方。
(5)、用户使用说明
将所设计的软件能够达到的功能进行描述。2)结束语:(5分)
第3页 写出完成本课程设计的心得,有哪些收获。软件还需要哪些改进。3)参考文献:按照要求格式写出你所参考的文献资料。(5分)
2、开发的应用软件系统(60分)1)程序代码的格式(10分)
代码格式是否规范,是否有相应的注视,程序类名、方法名、属性名是否具有可读性。2)程序界面设计(10分)
界面设计布局是否合理美观,操作是否简单方便。3)程序功能(40分)
程序功能是否达到了你所选系统的要求。基本满足可得24~28分;完全满足可得28~32分;完全满足并能够进行相应的异常处理可得32~40分;如果在此基础上还能进行相应创新可根据创新的程度进行适当加分。
3、答辩及课程设计说明书资料归档规范性(10分)
注:每个学生都要独立完成一个题目,如发现雷同者,对所有雷同学生按照不及格处理。
附件:说明书(论文)格式(可以参照论文范例)2.说明书(或论文)结构及要求
(1)封面(由商学院统一发课程设计封面纸)(2)任务书(由指导教师填写)(3)目录
以上内容由指导教师统一下发。(4)正文:(4页课程设计报告纸以上)1)、概述
2)、功能说明 3)、程序类说明
4)、软件系统测试说明 5)、用户使用说明(5)结束语
(6)参考文献(资料)
参考文献必须是学生在课程设计中真正阅读过和运用过的,文献按照在正文中的出现顺序排列。各类文献的书写格式如下: a.图书类的参考文献
序号 作者名·书名·(版次)·出版单位,出版年:引用部分起止页码。b.翻译图书类的参考文献
序号 作者名·书名·译者·(版次)出版单位,出版年:引用部分起止页码。c.期刊类的参考文献
序号 作者名·文集名·期刊名·年,卷(期):引用部分起止页码。
第4页
(7)附件
可以根据说明需要将设计界面及相关其他材料附在此处,也可以没有。
首先,对象的引入方便了在软件虚拟世界中模拟现实世界。现实世界是由很多独立的抽象或具体物体组成的,比如房子、汽车、空调、书等等。为了构建更真实的虚拟世界,在软件中需要存在用于表达类似现实物体的编程元素,这正是引入对象概念的意义所在。
以对象为设计中心,迫使设计者在关注程序所需实现功能的同时不至于忘记通过抽象去塑造概念,以便用对象表达之。由于抽象获得的对象有助于隐藏复杂度,这在一定程度上简化了通过对象表达和理解软件虚拟世界的难度。也由于对象的存在,使得设计更加的生动和具有更强的自我解释能力。
从软件设计者的角度:如果希望塑造的对象在现实生活中存在,这有助于他借助现实引导自己的设计,他也应尽量将虚拟世界中对象的行为塑造成与现实世界的相近;如果希望塑造的对象在现实生活中并不存在,他只能借助对象的行为和状态去塑造对象(的概念),此时应注意行为、状态与概念间关系的合理性,否则所塑造的对象将令人费解。
从软件维护者的角度:如果对象在现实生活中存在,这有助于他借助生活经验快速掌握设计;如果在现实中找不到对象的影子,他仍可以通过对象的行为掌握对象的概念,这同样有助于他更方便地维护软件,
其次,面象对象设计由于强调以对象为中心,因而具备更强的封装能力。在大多支持面向对象设计的编程语言中,更强的封装能力除了意味着更具信息隐藏能力外,还使得封装的边界既明显又更不易被突破,这有助于在软件的维护过程中维持“形”。某种程度上,面向对象设计强化了软件行业推崇的模块化设计。
再次,面向对象设计中的继承和多态技术除了进一步提高通过软件模拟现实世界的能力外,还能让设计更灵活、易变更和方便复用。
显然,面向对象设计的优势是通过使得设计方法更抽象而获得的,这也解释了为什么掌握面向对象设计比掌握面向过程设计更难。现实中,由于有些工程师难以转变为从对象、继承和多态的角度思考设计,使得运用面向对象设计这一方法举步为艰。
面向对象设计的关键是用对象表达抽象概念,如果抽象出的概念并不清晰,则所获得的设计一定不会好。千万不要误以为运用面向对象设计所获得的设计就一定比面向过程的好。好方法获得好结果的前提仍需要我们运用好。
实习报告
学 年:20010-201
1学年第一学期
试验名称:面向对象程序设计 姓 名:李
芳
班 级:电子商务(本)0902班 学 号:0902110206
一、实习目的
1.了解SQL Server的集成环境、系统的菜单、工具栏、企业管理器、查询分析器的使用方法。
2.掌握创建数据库、数据表的方法;掌握数据表的操作命令;熟悉T-SQL命令的使用。
3.了解基本命令的使用方法;掌握常用函数、表达式的使用方法,掌握程序控制结构的使用和程序设计,掌握变量的作用范围和自定义函数的使用。
4.熟悉VB与数据库管理系统的连接方法,较熟练地掌握利用向导、数据环境、数据控件等工具开发应用程序的基本操作界面。
5.熟练掌握常用算法程序、常用统计程序、数据排序方法、简单数据加密和解密程序、矩阵基本操作程序的编写、调试和使用。
在这几天的实习,培养了我们对于visual basic 的开发平台软件和开发岗位所需能力。实习过程中能够掌握对计算机编程的基本思路和方法语句等,尤其是编一个程序的创新思想,养成良好的可视化程序编程思维,培养自己较强的逻辑思维能力和创新思维能力,最终能够应用Visual Basic开发平台解决社会实际工作的需求,软件开发的能力。此外,在开发程序的同时,还增强了我们的团队协作精神。通过这个实习进一步了解计算机语言和编程。掌握VB中的常用控件的属性和事件、方法。利用控件编写程序。
二、实习内容
一、SQL Server基本操作
1.数据库操作
2.创建学生情况表及数据录入
学生情况表206结构设计
学生情况表206记录信息
课程情况表206结构设计
课程情况表206记录信息
选课情况表206结构设计
选课情况表206记录信息
二、程序设计
1.SQL Server 与程序设计语言连接
1)利用VB数据窗体向导生成学生情况表206的录入界面如下:
选课情况表206
课程情况表(主从)206
学生情况表(主从)206
2).利用数据控件设计数据表操作界面,用数据控件完成各数据表的添加、修改、删除、查询等操作的窗体。
数据表综合操作206
2.编写程序求1000以内的所有素数。
3.计算最大公约数和最小公倍数
4.对任意偶数进行素数分解
5.百钱百鸡问题
6、成绩统计
7.字符统计
8.选择法排序
9.冒泡法排序
10.设计程序封面
11.系统集成界面设计
三、实习总结
1、主要收获
通过实习,我掌握Visual Basic程序设计的相关理论知识,掌握VB语言开发简单应用程序的总体思路和步骤,熟悉其开发环境,掌握常用的基本控件的实用方法和系统属性的设置。在熟悉VB语言基本语法、语句结构的基础上,能利用VB语言采用不同的编程语句实现相同的功能,并解决实际中的一些问题。理解数据库的概念和优势,掌握VB的数据库访问技术,能进行数据绑定控件的连接和设置,了解SQL语言的简单实用,能进行数据库相关的简单应用程序的开发。通过参考实例,能进行实用窗体的设计,并添加相应的控件,进行消息映射,并在控件中显示信息,实现信息的添加,删除,查找等功能,最终完成一个实用的管理系统的开发和设计。利用所学知识进行VB程序开发的整体规划和语言测试。通过参与综合实验,使我能够对VB程序设计产生更为实际的感性认识,能对VB应用程序的开发有一个完整的认识,能借鉴VB语言应用的成功经验并运用到实际工作中去,为将来从事V B程序设计相关的工作打下坚实的基础,以更好的适应社会对程序设计应用人才的需要。
2、总结的经验
a、作系统前,先构思系统,根据要完成的功能,进行模块划分。b、先添加控件,再编程;变量先定义,再使用,并注意初始化。c、代码书写规范,一定要按层次结构书写。注意适当添加注释,对子函数,变量进行说明
3、心得体会
事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我的学到了不少VB与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师刘春光,谢谢他的悉心指导和热心帮助。由于我水平有限,加之时间短暂,学到的 知识还有很多的
四、参考资料
1.《SQL Server应用教程》人民邮电出版社 主编:郑阿奇 2.《Visual Basic程序设计》中国矿业大学出版社 主编:龚尚福 3.《VB程序设计案例汇编》 沈洪、施明利等 清华大学出版社
目前,VG5400稀有气体质谱仪测控系统是基于传统结构化方法开发的,此方法缺点具体表现在分析与设计之间存在鸿沟、软件维护难、不易移植等。
面向对象方法是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计方法。它将数据和对数据的操作封装在一起,作为一个整体来处理,采用数据抽象和信息隐蔽技术,将整体抽象成一种新的数据类型——类,并且考虑不同类之间的联系和类的重用性。此方法与人类思维习惯一致,软件具有易于维护、可复用性好等优点[1,2]。
统一建模语言(UML)是一种通用的标准建模语言,UML面向对象建模机制包括用例建模机制、静态建模机制和动态建模机制。用例建模机制定义了系统内功能的具体设计及协作关系的描述;静态建模机制定义了系统中重要对象的属性和操作以及这些对象之间的相互关系;动态建模机制定义了对象的时间特性及对象为完成目标任务而相互进行通信的机制[3]。
当前,基于面向对象建模已成为大型软件开发的重要手段,同时UML是面向对象技术领域内占主导地位的标准建模语言[4]。因此,基于UML面向对象建模机制对质谱仪测控系统进行分析建模,有助于对系统进行设计建模。
2 质谱仪测控系统工作原理及功能需求
2.1 工作原理
VG5400稀有气体质谱仪测控系统由激光熔样系统、纯化系统、质谱仪主机和计算机控制软件四部分组成,主机配有离子源、磁分析器、电子倍增器(带离子计数器)和法拉第杯(带电压表)[5,6,7,8]。质谱仪测控系统结构如图1所示。
由图1可知,用户将待测样品放入激光熔样系统,计算机通过RS232串口Com1控制激光机的开启与关闭,对待测样品进行加热,使之成为气体进入纯化系统;计算机经由ISA总线型板卡PCL730卡与阀门连接,通过电平的高低转换来控制阀门的打开与关闭,控制气体进入纯化腔,气体纯化之后进入离子源进行离子化或者排出纯化腔;计算机经由ISA总线型板卡GPIB卡与磁分析器连接,通过GPIB卡设置电磁场大小,使离子按照质荷比的大小分离开;被分离的离子流聚焦于接收器上,经电子倍增器、法拉第杯等增益放大后进行电子学测量,以文件形式保存测量数据,具体可通过ScanCard读取离子计数器计数或者通过RS232串口Com2读取电压表MA3710读数。所测得离子流相对峰高正比于它所代表的同位素丰度,由离子流质谱图可确定同位素丰度[5,6,7,8]。
2.2 功能需求
质谱仪测控系统的功能为:系统配置、测试与校正、峰扫描、测量峰顶、过程编辑、样品分析、样品计算。对上述的每个功能,用一个子系统来实现[9]。质谱仪测控系统中子系统及其依赖关系如图2所示。
由图2可知,测试与校正子系统、峰扫描子系统、测量峰顶子系统、过程编辑子系统、样品分析子系统都要使用系统配置子系统中的配置文件,除此之外,样品分析子系统要使用过程编辑子系统中的过程文件,样品计算子系统要使用样品分析子系统中的数据文件。
3 UML面向对象模型
样品分析子系统是质谱仪测控系统软件开发的重点所在,因此以样品分析子系统为例,基于UML面向对象建模机制对其进行用例建模、静态建模和动态建模[9,10,11]。
3.1 建立用例模型
系统的用例模型是建立系统面向对象模型的基础,对系统的功能以及与系统进行交互的外部事物进行建模,具体可以通过用例图来描述[11]。样品分析子系统用例图如图3所示。
由图3可知,用户使用用例“控制阀门”来选择样品所在位置,在选择时要使用“系统配置子系统”中的信息;使用用例“读过程文件”来读取过程文件结构体数据,在读取时要用到“过程编辑子系统”中的信息。使用用例“分析扫描”中包含的“写数据文件”来保存样品数据信息,供“样品分析子系统”使用。同时用例“预分析扫描”和“分析扫描”包含用例“找峰”。
3.2 建立静态模型
UML面向对象建模中,通过静态建模来确定系统静态结构,具体可以通过类图来描述。类图用来描述系统中各类对象以及它们之间的各种关系[11]。基于质谱仪测控系统工作原理,分析样品分析子系统中对象之间的关系。计算机通过RS232串口Com1来控制激光机的开启与关闭,通过PCL730卡来控制阀门的打开与关闭,通过GPIB卡来设置磁分析器的电磁场大小,通过找峰来进行样品分析,通过ScanCard来读取离子计数器的计数值,通过RS232串口Com2来读取电压表MA3710的电压值,通过文件来保存数据。样品分析子系统类图如图4所示。
3.3 建立动态模型
UML面向对象建模中,通过动态建模来确定系统动态行为,具体可以通过顺序图来描述。顺序图用来描述一组对象之间动态的交互关系,着重描述对象间消息传递的时间顺序[11]。基于样品分析子系统用例图和类图,分析样品分析子系统中对象之间的消息传递关系。用户控制阀门、读过程文件、设定参数和创建数据文件,与对象“阀门”和“文件”进行消息传递;开启激光机与对象“激光机”进行消息传递;如果过程数小于或等于输入过程数,同时过程数为1,则执行预分析扫描,根据预分析峰质量找峰,与对象“峰”、“磁场”、“电压”进行消息传递;再执行分析扫描,若过程数为1,同时要进行本底测量,则测量本底和进样;之后进行循环测量,同时将循环测量的数据保存于文件中。分析结束后,选择是否排空,控制阀门。样品分析子系统顺序图如图5所示。
4 结 论
本文对样品分析子系统进行了用例建模、静态建模和动态建模,给出了样品分析子系统的分析模型,该模型能正确描述系统的问题域和系统责任,为进一步建立设计模型奠定了理论基础。基于UML面向对象建模机制对系统进行建模,有助于理解系统功能需求,有助于把握系统中对象之间的相互关系,有助于描述系统中对象间消息传递的时间顺序;同时可以缩短开发周期,提高开发质量,具有良好的应用前景。
参考文献
[1]梁玮.基于UML的面向对象建模方法研究[J].软件导刊,2009,8(1):47.
[2]李霖.面向对象技术在软件开发中的应用[J].计算机与信息技术,2007,27:362.
[3]胡秀,王书爱.基于UML的面向对象的系统建模[J].保山师专学报,2008,27(2):82.
[4]周舸.UML面向对象建模在网上图书销售系统中的应用[J].电脑与信息技术,2007,15(2):46.
[5]中国科学院地球化学研究所.http://klodg08.bj19.host.35.com/Article/ShowInfo.asp-ID=5.
[6]北京大学同位素年代学实验.http://sess.pku.edu.cn/or-ganization/obce/arar/apparatus.html.
[7]中国科学院广州地球化学研究所.Ar-Ar实验室http://ararlab.blog.china.com/200708/822981.html.
[8]王民涛.工业质谱仪及在化肥行业中的应用[J].化工自动化及仪表,1994,21(1):55.
[9]麻志毅.面向对象分析与设计[M].北京:机械工业出版社,2008:188-196.
[10]李扬,黄方,李鸿斌,等.IEC61499功能块控制系统的UML建模[J].化工自动化及仪表,2004,31(5):44-48.
一、培养学习兴趣
为了使初学者能尽快地掌握计算机知识,进入计算机的应用领域,在课程讲授过程中,要特别注意培养学生的学习兴趣。初接触计算机时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的感念、规则、定义、要求和机械的格式出现,很容易使部分学生产生枯燥乏味的感觉。为了把学生的好奇转化为学习兴趣,授课时作者从具体问题入手,让学生先从感性上认识新知识,继而再讲授理论要点。
在首次课上,给学生找一些《高等数学》、《线性代数》等已学课程的问题,用算法语言来求解,使学生体会程序设计的用途和一种全新的解决问题的方法。在课程的进行中,引导学生学一种算法,就尝试在同行课程中应用。作者还经常介绍一些趣味性算例,如:“迷宫问题”等[1],来培养学生的学习兴趣,让大家积极主动地获取知识,打好程序设计基础。整个教学过程中应该把解题思路、方法和步骤当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。
二、循序渐进讲解
绝大部分学生是第一次接触面向对象程序设计的概念,通俗、易懂的教学原则同样适合于这门课的教学。在课程讲授过程中,作者没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重教材的系统性、科学性,又注重易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言规则和程序设计方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。
三、改进教学方法
作者要求学生事先预习,实际上就是要求他们课前自学,讲课时以学生预习过为起点,只讲难点、重点,这样既给了学生思维分析的余地,又节省课时。这就要求必须精选教学内容,注意详略安排。如在讲到“类与对象”,“继承与派生”[2]这些关键性章节时就讲的特别精,使学生能够熟练掌握、理解透彻,而讲到“输入输出流”时,让学生做到一般了解即可。课堂上找一些程序设计较好、解题思路清晰的例题让学生自己读,找出精妙之处和不理解之处,对普遍性的问题共同讲解,个别问题课后解答。
作者特意地设置一些不同深浅的笔误和口误,马上让学生肯定对与错,以考查学生注意力集中的程度,提高他们的敏锐性和判别力。对有些问题,给出一种程序设计方法后,让学生讨论,还有没有其它的程序设计方法和思路,让他们发表意见,提出自己的解题思路和编程方法,给学生交流不同思路和观点的机会。这就要求老师既能引导又能放开,既有事先的精心备课,又有课堂上的`因势利导,同时也可以从学生讨论中提出的问题来丰富教材内容,使得教与学相得益彰,共同进步。
四、习题与上机实践
做习题是复习所学内同的过程,也是深入学习的过程。作者每次课后给学生布置一些有代表性的习题,以巩固课堂上所学的内容。也通过学生的作业情况来了解学生对课程内容的掌握程度。对作业中比较普遍出现的错误,在下次课上当堂讲解,使得学生能对学过的东西理解透、掌握牢。作业中新颖的程序设计方法和思路,也当堂宣讲或作业批注,以鼓励创新型的学习方法。
每次实际上机操作前,都根据实验教学计划,有系统地布置上机实习作业,让学生明确上机任务,编写好上机调试的程序,使学生在每次上机实践中都有收获。作者让学生按照自己的姓名、学号命名自己的程序文件,调试成功后存入磁盘,并撰写实验报告,课程结束后结合学生的程序和实验报告来评定实验成绩。课程结束前作者坚持进行总结,把所学的内容作一个概要分析,前后联系起来,使学生对所学课程内容能够融汇贯通。
参考文献
1.刘璟,周玉龙.高级语言C++程序设计.第二版[M].北京:高等教育出版社,
面向对象设计实践建议:
(1)首先问题结构分析和抽象表达:识别出几个关键类及其关系,这时候和具体的数据表示和结构都没有关系;
(2)根据问题要满足的功能,定义每个类外部可访问的行为,不涉及类的内部行为和数据,并规划这些类如何协同来完成系统功能,逐层分解。
(3)对每个类,定义它应该保存的属性及类型,和相应的数据控制行为(外部可见),从而满足对外部可见行为的实现;
(4)系统输入和输出的处理。分析输入和输出的层次性和模式特征。如果如层次性,则按照相应模式分层进行处理。顶层一般可交给主类进行处理;往下各个层次应该交给对输入分析结果感兴趣的类去处理,减少信息耦合度。
面向对象程序设计课程是我院计算机类专业本科生的一门重要的专业必修课程, 对于学生掌握面向对象的基本概念和思想, 利用面向对象方法进行分析问题和解决问题的能力培养十分重要。然而, 随着社会信息化程度的提高, 在近几年的教学过程中, 我们发现, 作为一门理论知识和实践技术并重的课程, 现有的教学模式已不能完全满足培养创新型应用人才的教学目标, 存在着下面几个方面的主要问题:
(一) 课程知识体系的设置无法兼顾学生个体差异
信息技术能力的培养已经成为基础教育的重要组成部分, 然而由于地域的信息化水平不同, 来自不同地区的学生信息技术掌握水平存在差异。目前的教学大纲中知识体系设置不能满足全体学生的个性化、差异化需求, 教师很难在教学过程中同时兼顾到不同层次学生的学习需求。
(二) 有限的课程学时与较大的教学容量存在着明显冲突
目前该课程共有48学时, 教学方式上采用理论教学和上机实践两个环节, 包括理论教学32学时和上机实践16学时。由于理论和实践学时均相对有限, 学生要熟练掌握各知识模块的运用, 需要另外花费较多的课余时间开展自主学习, 否则很难完成既定的教学目标。
(三) 课程教学活动设计难以满足每个学生的个性需求
合理的教学活动设计和个性化的教学过程实施, 可以有效促进学生的学习主动性, 达到大纲要求的教学培养目标。目前, 相对统一的教学过程和教学活动设计缺乏针对不同层次学生的个性化需求, 难以实现因材施教、培养学生自主创新能力的目标。
随着以可汗学院 (Khan Academy) 与TEDEd为代表的国外在线微视频学习资源的出现与流行, 触发了教育工作者将微视频应用于课堂教学的可行性探索。同时, 移动网络和智能手持设备的迅速发展, 使得在线学习和移动学习逐渐成为一种新的发展趋势, 该学习方式强调内容的微型化与时间的灵活性, 突出学习的灵活性和方便性, 便于学生根据个体特性进行自主学习。微课程的理念正是通过将基础知识、教学重点、难点、典型案例等内容录制下来整理成精简的视频及各类微教学资源, 以方便学生及时下载和按需使用。因此, 本文针对面向对象程序设计课程现状及面临的问题, 从不同层次的学生需求出发, 开展微课程教学模式探索, 研究微课程与传统教学模式的有机结合方式, 以期为微课程在面向对象程序设计课程中的深入研究和实践提供实践经验, 为现有教学问题的解决提供参考思路。
二、基于微课程的面向对象程序设计课程教学模式设计
(一) 微课程教学设计
微课程理念是1993年美国的Leroy A. Mc Grew教授所提出的60秒课程及1995年英国的T.P. Kee提出的一分钟演讲的概念基础上发展而来, 微课程能够为学生提供“自助式”的教学资源, 帮助学生理解核心概念和重点技能, 在短时间内将学生的注意力集中在明确的主题上, 让学习者在较短的时间内掌握核心知识和重要技能, 给学习者带来成就感和满足感。由于内容重点突出、时间设置合理、便于理解和记忆, 可以大大提高课程教学效果。
微课程教学设计是一个比较复杂的系统工程, 一般由选题设计、时间设计、教学结构设计、资源设计和教学语言设计等环节构成。
1.微课程选题设计。微课程的选题要明确精练, 教学内容要清晰, 结合课程内容进行详细分析和分解, 可以针对课前导入、关键概念、重点难点突破、典型案例分析及课外拓展延伸等形成一系列不同形式和内容的微课程选题。
2.时间设计。微课程是课堂教学过程的辅助, 相对于传统课堂最大的不同是时间短, 以保持学生高度集中注意力。微课程的时长一般设置为10分钟以内。
3.教学结构设计。微课程的教学结构要完整, 主题要明确, 内容设计要逻辑清晰、重点突出, 收尾小结要画龙点睛, 教学过程主要包括教学问题的引入、教学内容的组织安排、延伸思考的思维启发等环节。
4.教学资源设计。微课程选取的教学内容一般要求内容明确、主题突出、相对完整, 包括多媒体教学课件、教学启发与反思、随堂小测验、学生信息反馈等相关教学资源, 构成一个内容丰富、主题明确、结构紧凑的微教学资源环境。
5.教学语言设计。在微课程教学中, 由于时间所限, 语言的准确精练尤为重要。在教学过程设计中, 要把讲述的内容与语言表达、手势、表情进行有机结合。尽量做到语言生动、精炼、富有感染力。
(二) 基于微课程的教学模式
“微课程”教学模式力求对课程教学活动进行重新规划, 以改变传统教学中师生角色关系。教师通过详细分解教学知识点, 围绕知识点进行微教案设计及微视频制作, 设计课前导读引导学生完成自主学习, 将整理形成的微学习资源上传到课程网络教学平台, 并通过与传统课堂教学相结合, 实现学生学习、评论、反馈及教学研究等功能。学生通过网络获取所需的学习资源, 不再单纯依赖教师在课堂上讲授, 还可以根据自己的时间和精力情况自由选择空余时间对教师课前设计的问题、课后复习及练习进行自主学习和自觉思考。
在“微课程”教学理念的指导下, 构建基于“微课程”的面向对象程序设计课程教学模式框架, 如图1所示。从图中可以看出, 学生的自主学习是主线, 体现以学生为本, 师生互动是不可缺少的关键要素, 帮助学生内化知识。该教学模式主要分成课前自主学习、课堂互动学习、课后复习巩固三个模块, 并在教学设计中将教师活动和学生活动两部分有机结合起来, 主要过程描述如下。
1.课前自主学习:教师针对教学内容进行知识结构分析, 结合不同层次学生的个性化学习要求提供不通过层次的微教学资源, 包括学生课前导读、基础知识讲解、重点难点视频等。在“微课程”网络学习平台上, 学生结合自己的学习情况和教学任务要求, 研究教师上传的微视频、PPT等素材完成教师要求的自主学习。
2.课堂师生互动:课堂教学是师生面对面交流的最佳平台, 学生在课前自主学习的基础上, 利用课堂教学平台的优势带着问题参加课堂互动, 教师注重针对重要知识点、难点、共性问题等进行详细讲解和点评, 学生除了基础知识、核心知识点和共性问题的掌握外, 不同层次同学可以结合各自的学习层面要求积极开展协作交流和学习探讨, 基于此, 教师也可更深入了解学生课前自主学习的状态和对知识的需求及掌握。
3.课后复习巩固, 教师针对已完成的教学活动进行教学反思和总结完善, 学生在完成课后作业、测试评价的基础上, 通过总结分析实现对知识的进一步巩固和内化。
三、基于微课程的面向对象程序设计课程教学模式实施
为了更好地发挥微课程教学模式在面向对象程序设计课程中的应用优势, 我们对该模式下的教学设计过程实施进行了详细规划, 划分为学生课前学习导读、学习任务和问题设计、协作学习过程设计等具体实施阶段, 类和对象是面向对象程序设计课程中最基础和核心的知识环节, 以下结合这部分内容将各阶段的实施要点详述如下:
(一) 学生课前学习导读
“微课程”教学模式是对传统课堂的课外延伸, “微视频”是其中重要的教学资源, 承担着课堂内容引入、重要知识点详解、实践操作过程演示等多重任务;在每个章节教学之前, 设计学生课前学习导读非常重要, 首先要针对学生个性化特点进行需求分析;结合教学大纲要求, 确定多样化的学习内容;既要注意知识点的广度和深度, 又要注意任务的逻辑性和递进性。
(二) 学习任务和问题设计
学生课外学习的内容, 通过PPT、“微视频”等多种资源的形式满足不同层次同学的需求。通过任务驱动方式引导学生自主学习, 结合每个知识点设计学习任务与问题, 任务的设计要紧密联系各章节知识点, 以知识掌握的渐进性、整体性为主要设计原则。实例设计部分通过设计贯穿课程的程序实例、循序渐进地涵盖重要知识点内容, 既考虑与前期C语言课程的衔接, 又满足C++核心知识点的覆盖, 同时还为后续相关课程 (如可视化程序设计、数据结构) 的学习打下良好的基础, 起到一举多得的作用。基于以上原则, 将类和对象这章节的学习任务和问题设计如下图2所示:
(三) 协作学习过程设计
学生按照任务要求可以自由选择学习时间, 对微教学资源的知识重点进行自主学习。在新课堂教学上, 教师主要结合重要知识点及学生共性问题进行讲解和剖析, 有重点、有针对性, 有利于激发学生的求知欲望, 同时, 教师引导学生分享解决问题的相关技术和方法, 也可扩展大家的思路, 在交流和讨论过程中促进知识的内化, 提高学生的学习热情和创新意识。
四、结束语
“微课程”教学模式是一种新的教学组织模式, 它是对传统教学模式的支持和补充, 注重因材施教, 培养学生的自主学习能力。深入探索和实施基于微课程的教学模式, 需要在构建网络教学平台、微教学资源制作、学习任务计划、学习资源整合等方面进行详细设计, 更重要的是, 要提高学生的主动参与度和内在学习动力, 对教师和学生也都提出了更高的要求。因此, 在后面的工作中, 我们将依照设计思路, 以面向对象程序设计课程为载体, 进一步深入探讨“微课程”教学模式, 并根据实践反馈不断改进完善, 以期为微课程教学模式在高等教育中的推广实施提供思路。
参考文献
[1]胡铁生.“微课”:区域教育信息资源发展的新趋势[J].电化教育研究, 2011, (10) :61-65.
[2]黄建军, 郭绍青.论微课程的设计与开发[J].现代教育技术, 2013, 23 (5) :31-32.
[3]刘小晶, 张剑平.教学视频微型化改造与应用的新探索[J].中国电化教育, 2013, (3) :101-105.
[4]李红美, 等.虚实融合环境下的学习活动及其设计[J].中国电化教育, 2013, (1) :23-29.
【面向对象uml课程设计】推荐阅读:
面向对象总结10-19
C#面向对象学习心得07-17
新课程化学教学课程评价对象探讨论文06-13
面向课堂,解读教学文本10-09
以史为鉴面向未来09-17
教师读《面向个体的教育》个人的心得总结09-07
面向生物工程药物化学的教学改革论文06-25
批评对象05-31
发展对象谈话纪实06-21