1.引言
随着计算机行业的蓬勃发展,整个社会对于计算机应用型人才的需求也在逐年攀升,计算机专业的特点就是一门实践应用型很强的学习专业教育。因此计算机专业的本科教育也需要从学术理论型人才培养向实践型人才培养转变,在理论学习的基础上需要更加注重专业技能的培养,这是现今本科教育特别是三本高校教育在新时期背景下的一个发展趋势。大型应用软件设计是我校计算机科学与技术专业学生的一门专业选修课,选修开设针对大四的学生,课程学习的目的就是引导学生了解大型应用软件的设计过程,逐步培养学生在实践项目中的软件研发的能力。
2.课程设计安排
大型应用软件课程开设的一个最大特点是:课程的教育是依托真实的项目为背景,以项目的设计为课程主要教学内容,根据项目设计开发的各个阶段,系统的将计算机专业的数据库理论、面向对象程序设计方法、软件工程和高级语言程序设计的相关知识融会贯通,真正让学生做到从理论专业学习到实践操作运用的飞跃。通过对本课程的学习,要求学生熟悉目前主流设计平台ASP.NET的Web的开发与设计,UML的设计与建模,大型数据库软件Oracle11g的使用,B/S的设计方式和软件设计的环节以及软件的生命周期;软件的测试与部署。
本课程开始主要的教学方法:本课是一门纯实践性的课程,首选在多媒体教室授课和机房教学,这样教师可以在课堂上一边讲解基础理论知识,一般在通过实际的若干演示,让学生们可以立刻看到设计和操作出来的效果,这样才能到达基本的学习效果,课程上教师需要精心设计示例,分解步骤,然后再由教师引导,学生们严格按照软件研发的各个步骤,循序渐进地去做,让每个学生都深入到软件设计中,最终达到独立设计的目的,不断提高学生独立设计、开发软件的能力。
实验课程必须选用具体的开发工具来实现,建议选用操作安装方便、在Windows下功能强大的VS2010设计平台和。NET来完成Web页面的设计。无论学生在之前掌握的是Java语言,还是C++语言,ASP.NET的C#语言在语法习惯上与他们有很大相似性,可以由教师引导,让学生自学掌握熟,VS2010的设计研发模式可以降低对学生用高级语言编程的要求,易学会,且上手快,学生容易实际操作,适合于短期的软件设计课程的教学要求。
本课是程序设计类课程,必须通过编程验证、设计来掌握所学内容,针对课程特点,建议学生的设计以"教务管理系统"为项目背景。选择"教务管理系统"主要有两点原因,一是教务管理与同学的实际生活和学习息息相关,便于学生收集相关资料,容易了解需求,便于设计的时候得心应手,贴近实际;二是信息管理系统涵盖了目前大型应用软件设计中对信息的采集、录入、修改、查询和删除等主要功能模块的设计,有助于学生系统的掌握好设计的相关功能操作,对于其今后开展类似的软件设计起到举一反三的效用。
本课程的教学设计主要是由教师引导,学生自己动手操作,教师为学生提供相关的项目及实践操作要求,讲述要达到的课程成果,学生需要了解相关的基础知识,明确设计原理、思路以及相关设计目标和实际操作步骤,自己动手独立完成设计。下面是针对本门课题的特点设计的相关课时安排。
实验课程设计内容和要求:(以下仅为示例,学生可自由选择项目)项目名称:教务信息管理系统项目开发工具:TFS、VS2010、。NET项目设计目标:教务管理系统包含以下十个子功能模块的设计,即:①课程库和培养方案管理、②年级教学计划管理、③课程管理、④选课模块管理、⑤考试管理、⑥成绩管理、⑦学生学籍管理、⑧教师信息管理、⑨教学场所管理、⑩系统模块管理。
项目设计的功能模块以小组为单位,每一个小组由7-10名学生自由组成,共同完成项目的设计与开发,功能模块的大小与复杂程度可根据各个小组的实际情况自行决定相关设计方案。
3.实践教学内容设计
针对大型应用软件设计课程是一项纯实践性的课程的特点,本文主要着重介绍关于应用软件设计中需求分析阶段和概要设计阶段中关于UML建模的部分。
3.1教务管理系统需求分析
教务管理系统是整个学校管理系统的一个重点,根据学校教育的实际情况,从业务角度来分析,将教务管理系统按照功能模块划分成以下十个功能模块:课程库和培养方案管理、年级教学计划管理、课程管理、选课模块管理、考试管理、成绩管理、学生学籍管理、教师信息管理、教学场所管理、系统模块管理。
3.2系统建模
在本节中,将以选课模块为例进行UML建模。首先进行静态建模,以用例图来规范化地描述学生选课模块的功能,帮助我们更好地了解系统需求,以类图来描述选课模块的结构化设计,从系统实施的角度描述整个系统;其次进行动态建模,以活动图来描述学生选课模块中整个交互过程。
3.2.1静态建模
3.2.1.1选课模块用例分析
建立用例图首先要确定系统的边界和角色。角色是指在系统外部和系统进行交互的某类人,也可以是某个系统。可以根据每个角色感受到的功能来描述系统的完整功能。
依据学校的实际业务情况,在教务管理系统的学生选课模块中,其功能包括了三部分:第一部分包括学生选课设置,学生选课数据查询,学生选课数据统计,学生选课门数统计,学生名册的打印,初始化选课课程,设置停开课程,这些功能属于教务处使用;第二部分包括综合选课、分级课选课、公共选修课选课、大学体育选课、重修课选课、查询选课结果、查询个人课表、退课,这些功能属于已经注册的学生使用;第三部分公共课表查询包括按专业、教师、教室、时间查询,这些功能属于所有用户(包括教务处、各个学院的教学秘书、教师、学生、匿名用户)使用。
选课模块功能结构图如图3-1所示:
【2】
分析该模块可以得到的角色有:教务处、各个学院的教学秘书、教师、学生、匿名用户。经过对选课模块中这些人员的角色进行分析整理后得到顶层用例图,如图3-2所示。
对顶层用例图进行细化,得到二级用例图中的选课设置,如图3-3所示:通过用例图规范化的描述,可以进一步明确了系统的功能,使用户和开发者双方可以从高层次把握系统的主要功能,为后续的设计打下坚实的基础。也为系统开发编码阶段提供清晰的有关角色、权限的指导。
3.2.1.2选课模块类图分析
在建立系统的静态模型中,进一步工作是确立系统的类图。
类反映的是一种面向对象方法看待物理世界的观点,它是面向对象的标志。建立类图的过程,实际上是对现实世界的一个抽象过程,它将现实世界中与问题有关的各种对象及其相互之间的各种关系进行适当的抽象和分门别类的描述。UML的最终目标是识别出所有必须的类来,确定类的属性和操作,分析这些类之间的关系,从而通过编程语言来实现这些类,并最终实现整个系统。
对类的识别,通常的方法是从用例中来识别。用例图实际上就是一种对系统描述的形式,因此,可以根据用例图来识别类。根据选课模块的用例图,可以发现此模块主要包含学生基本信息、选课课程、选课设置这三个实体类。学生基本信息类属性有学号、姓名、年级、专业等;选课课程是指在课程安排模块进行了定课程、定时间、定地点、定教师、定教材后的一个特定课程,其主键是教学班ID,它是专门用于选课的实体类;选课设置类包含了可选门数、选课时间等设置信息。
选课模块包含学生基本信息、选课课程、选课设置这三个实体类。一个学生可以选多门课程,一个课程也可以被多个学生选,因此学生基本信息与选课课程之间是多对多的关联关系,于是产生了一个选课结果的关联类,教学班ID与学号作联合主键;选课设置是针对学生选课的,一个学生必定受一条选课设置条件的约束,一个选课设置可以约束多个学生,因此学生基本信息与选课设置是多对一的关联关系。
一般的,类图描述了系统在运行时所有数据必须满足的通用特征,在类图中每个实体类在数据库中都有相应的表,实体类的属性对应数据库表中的字段。因此通过类图的建立,可以为数据库实施阶段提供清晰的指导。
3.2.2动态建模
在建立好系统的静态模型后,需要分析和设计系统的动态结构,建立相应的动态模型,从而更好地理解用例的行为。在UML中可以通过行为图(包括状态图和活动图)和交互图(包括顺序图和协作图)来实现动态建模。对于某些复杂的实时系统,系统状态变化较多,可以通过状态图来描述类的对象所有可能的状态以及事件发生时状态的转移条件。
合作图与顺序图相似,顺序图主要强调的是交互的时间顺序,合作图主要强调的是交互的语境和交互对象的整体组织。顺序图按时间布图,合作图按空间布图,它们之间是等价的,可以互换。活动图可以细化用例,描述系统功能性行为,并且描述用例之间的顺序依赖关系;也可以理解和建模业务过程和工作流,处理多线程应用;甚至可以用于描述复杂的计算型算法。为了清楚的表达需求,这里用活动图来对选课流程进行更详细的描述。
4.结束语
在教学设计中,应该明确一点,教学内容的设计要由重知识传播向重学生发展转变,应由重教师教学内容选择向重学生学习方法指导转变,教师要想在教学方法上有新的突破,就充分理解和把握教学目标和要求然后在结合课程特点和专业重点在课堂设计上多下功夫和心思,使学生们能够对所学的课程提高兴趣和积极性,有助于学生课上能够集中精力投入学习中去。
1.问题引入环节
问题引入,这类似于情景设计,软件的知识点往往是一个问题,当然,问题的理解要想深刻一点,问题不能仅仅是"引入"一下就完事,我们需要"问题驱动式"软件教学,把解决问题贯彻始终。
2.师生互动环节
师生互动环节对于课程学习是很重要的,在上课时由教师提问,学生回答,然后大家针对问题和答案在各抒己见,提出自己的观点看法,不断完善补充,最终老师在梳理总结,针对一些理解偏差大的教师要及时纠正,这是很好的课堂交流方式。这种训练,极其重要而有效,极易激发学生的学习兴趣、学习积极性和参与性,有助于学生发散性思考和不断探索,整个教学过程由教师根据教学目标和课程内容精心设计,成为一环扣一环,使学生能轻松地一小步一小步达到预定目标,让学生愉快的学习。
3.课堂实验环节
在课堂实验中,由教师提出实验的目的,然后针对老师设置的实验问题,学生们在分小组讨论,最终将每个同学的答案在汇总梳理,这样能培养学生解决问题的能力和团队合作精神。课堂实验课上,由学生独立完成实验内容,老师在一旁引导和监督,还能及时了解和掌握学生的实际操作能力,针对学生在实际操作中存在的问题和不足,能够及时的给予学生相关指导,这也是一种将理论知识应用于实践的培养方式,可以不断提高学生的实践操作能力。在这种学以致用的驱动下,学生对课堂的知识会有更加深刻的体会理解,更容易将所学的知识融会贯通、举一反三、灵活的运用;老师则,帮助学生可以尽快。
参考文献:
[1]软件工程导论,张海藩,清华大学出版社,2003.
[2]软件工程,齐志平、谭庆平、宁洪,高等教育出版社,1997.
[3]软件统一开发过程,GradyBooch,机械工业出版社,2002[4]UML基础、案例与应用,JosephSchmuller着,李虎、王美英、万里威译,华中理工大学出版社,1999.
[5]UML基础与Rose建模案例,吴建、郑潮、汪杰着,人民邮电出版社,2004.
[5]UML技术手册,SinanSiAlhir,机械工业出版社,2002[7]VisualStudio2005TeamSysterm软件测试专家教程,TomArnold,清华大学出版社,2008.
[8]C#2005&.NET3.0高级编程,ChristianNagel,清华大学出版社,2007.
[9]Oracle11g权威指南,谷长勇、王滨、陈杰等,电子工业出版社,2008.
[10]Oracle数据库管理与应用系统开发,刘荣华、涨杨、聂颂、邹晨,人民邮电出版社,2005.