版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、以软件维护为导向的软件工程实践教学 摘 要:软件维护在现实的软件开发过程中占有十分重要的地位,本文介绍了我院的软件维护实践教学的教学方案以及具体实施情况。<br>关键词<br>本文来自:计算机毕业网 :软件工程;软件开发;实验;实践教学;软件维护<br><br>1 软件维护在软件工程实践教学中的意义<br><br>软件工程是一门理论与实践并重的基础课程,教学内容紧密围绕软件开发过程中的各种工程化方法、技术和思想1。在现实的软件开发过程中,软件维护占有很重要的地位,许多报告都指出软件维护成本已经占到总体成本的40%70%以上
2、。软件维护关注于“变化”,包括纠错性(corrective)、适应性(adaptive)、完善性(perfective)、预防性(preventative)等维护类型2。当前的软件工程教学中一般都已经包括了软件维护相关理论和方法相关的内容,例如软件维护及可维护性的概念、软件维护的类型和过程、变更管理以及软件再工程等。但软件工程实践教学仍然以瀑布式的正向开发过程为主,主要体现需求分析、设计、实现和测试等基本开发活动,缺少软件维护的实践训练。<br>由于软件维护在软件开发中的重要性,许多国内外学者都呼吁在软件工程教学中引入软件维护实践(如文献3)。在软件工程实践教学中引入软件维护内容主
3、要基于以下这些考虑。<br>首先,软件维护在软件开发中占有十分重要的地位,典型的软件工程开发中花在软件维护上的时间往往比软件开发还要多3。而且,大部分毕业生进入软件开发机构后都是从维护性的开发任务开始的。<br>其次,软件维护实践还能使学生更直观地体会和理解软件工程方法和原则的重要性。软件工程教学中系统地讲授了许多重要的软件工程方法和原则,包括软件文档规范、设计原则(如层次化、高内聚低耦合等)以及编码习惯(如标识符命名、注释和排版等)等,其中大部分都与软件的可维护性相关。通过对文档不全、设计混乱和编码习惯不好的软件系统进行维护,可以对这些方法和原则获得直观、深入的认识和
4、理解。例如,对标识符命名不规范、缺少注释、排版混乱的代码进行阅读和理解,可以深刻认识到好的编码习惯对于维护工作的重要性。<br>此外,软件维护实践能使学生更好地认识软件开发的现实困难。缺陷报告、需求变更、软硬件平台的变化等导致软件演化的因素在现实的软件开发中总是存在的。通过在实践教学中设置阶段性的需求变更,可以让学生对于现实的软件开发有更加真实的体验,从而提高对迭代、增量式开发等实用的软件开发方法和技术的认知。<br><br>2 软件维护实践教学方案<br><br>软件维护主要包括纠错性、适应性、完善性和预防性维护四种类型2:纠错性维
5、护是针对所发现的错误或缺陷而对软件进行的修改;适应性维护是为了适应外部环境(如硬件、操作系统、外部规则等)的变化而对软件进行的修改;完善性维护是由于功能扩展而进行的软件修改;预防性维护是面向未来的维护需要,为了提高软件的适应性和可维护性等而进行的系统优化和改进。软件维护实践教学应以循序渐进的方式覆盖这四个方面的软件维护任务,同时穿插并突出相关软件工程方法和原则的体验和熏陶。<br>根据这一总体目标,相应的软件维护实践教学将在给定的作为维护对象的遗留系统基础上,分三个阶段进行,如图1所示。遗留系统分析评估阶段的主要目的是在理解遗留系统需求的基础上对系统的外部和内部质量进行初步的了解和
6、评价。系统改进维护阶段的目标是以当前系统需求为基础,对遗留系统的缺陷和错误进行修改,对系统内部的设计、实现以及文档质量进行改进。系统需求演化维护阶段通过若干次迭代的需求和系统环境变更,进行系统的完善性和适应性维护。针对新需求和系统环境设置的修改将通过系统测试确认,测试结果反馈给系统改进维护阶段,从而进行相应的纠错性维护活动。此外,系统修改过程中发现的内部质量问题(例如可扩展性上的不足等)同样也会反馈给系统改进维护阶段,从而进行相应的预防性维护活动。这种反馈关系以及需求和系统环境变更的迭代进行使得后两个阶段将反复迭代进行。<br>(1) 遗留系统分析评估阶段<br>与传统
7、的基于分析、设计和实现的软件工程实践教学不同,软件维护实践教学以已经开发完成的遗留软件系统作为起点。每个小组分配到的遗留系统都是由其他人开发的,犹如在软件开发中接手其他小组的维护工作。因此,首先要求他们在理解项目当前需求的基础上,对所分配的系统进行分析和评估,从而为后续的维护活动打下基础。这阶段的主要实践任务包括:<br><br>图1 软件维护实践教学过程<br><br>1) 理解遗留系统需求。与正向软件开发一样,软件维护实践也要从了解系统需求开始。需求是评价当前系统质量,进而规划并实施各种纠错性、适应性、完善性和预防性维护活动的基础。<b
8、r>2) 系统测试及外部质量评价。外部质量因素是那些用户能轻易观察到的软件特性,例如功能正确性、性能、可靠性、可用性等2。通过系统测试,可以针对用户需求得到遗留系统的外部质量总体评价,以及待纠正的错误和缺陷列表,从而为纠错性维护打下基础。<br>3) 系统理解及内部质量评价。内部质量是指与系统内部设计和实现相关的质量特性,例如可理解性、可维护性、可扩展性等,它们对于软件工程师而言是十分重要的2。通过阅读遗留系统文档(可能残缺不全或质量不高)以及系统代码,同时借助于相关辅助理解工具的支持,获得对系统设计(如体系结构和模块结构等)和代码的初步理解,在此基础上对系统的设计和实现质量
9、进行评价,从而为预防性维护打下基础。<br>这一阶段首先强化了对于软件测试的实践。在以往的教学实践中,我们发现学生在正向开发阶段往往不太重视测试(对于自己开发的系统进行测试往往会觉得没有必要或比较敷衍了事),且常与调试混淆。而在软件维护实践中,测试对象是他人开发的系统(实践中常常发现学生对于测试、评价其他人开发的系统比较有兴趣),而且测试结果直接决定了对遗留系统的外部质量评价和纠错性改进方案,因此学生往往会认真对待。系统理解能力也非常重要。在教学实践中,可以鼓励学生充分运用相关辅助理解工具进行系统理解,例如Eclipse相关插件所提供的代码UML视图、类语法树、调用关系图、度量信息
10、等辅助理解功能。<br>除此之外,系统理解及内部质量评价还强化了对于软件工程设计和实现原则的认识。通过阅读遗留系统文档和代码,学生们可以深切体会到好的系统设计、编码风格以及文档规范对于软件开发的重要性。实践中,他们经常会抱怨遗留系统文档不全或不一致、设计混乱、编码风格不好,而这些其实也正是他们自己在正向开发阶段很容易出现的问题。<br>(2) 系统改进维护阶段<br>系统改进维护阶段将在遗留系统分析和评估基础上,进行纠错性和预防性维护。针对用户需求以及一般的软件设计和实现质量准则,从外部质量和内部质量两个方面对遗留系统进行改进。这阶段的主要实践任务包括:&l
11、t;br>1) 纠错性维护实施。针对系统测试过程中发现的问题,进行纠错性维护,包括消除系统意外出错、纠正与功能需求不一致的地方、改进系统性能、可靠性等非功能质量方面的不足。<br>2) 回归测试及总结。纠错性维护结束后,通过回归测试验证纠错性维护的效果,并进行总结。<br>3) 预防性维护方案制定及实施。针对系统内部质量评价中发现的问题以及纠错性维护中遇到的困难(例如难以扩展的系统结构等),制定并实施对系统的预防性维护方案,包括对系统设计和编码质量的改进,以及对开发文档的补充和完善等。<br> </p> <p> <p>
12、;4) 系统评审及总结。预防性维护结束后,对系统的设计、代码及文档进行评审,总结改进情况以及所获得的体会和经验。<br>这一阶段首先涵盖了纠错性维护和预防性维护实践。其次,预防性维护实践通过系统设计、开发文档、编码风格等方面的改进,强化了相关软件工程方法和原则的训练。<br>(3) 系统需求演化维护阶段<br>前两个阶段的软件维护实践都还停留在原有系统基础上,系统需求演化阶段将通过用户需求和系统环境的变化,引导学生进行完善性和适应性维护实践。由于现实中的软件开发一般都包含多次迭代和增量,因此这阶段的维护实践也将迭代进行多次。这阶段的主要实践任务包括:<
13、br>1) 需求和系统环境变更分析。在原有系统需求基础上,提出若干新的扩展功能要求和系统环境变更(例如改变原有的数据库管理系统),要求学生通过与助教的沟通和交流明确需求和系统环境变更要求。<br>2) 系统修改方案制定及实施。根据变更要求和对系统设计、实现的理解确定系统修改方案并加以实施。<br>3) 系统测试。针对需求或系统环境变更进行系统测试,对系统修改进行确认,所发现的错误和缺陷将反馈给纠错性维护活动。<br>4) 系统内部质量反馈。针对需求或系统环境变更的修改活动可以对系统的内部设计和实现质量进行检验,暴露设计、实现及文档等方面的问题,这些问题
14、将反馈给预防性维护活动。<br>系统需求演化维护阶段除了涵盖完善性和适应性维护实践外,还具有以下几个方面的作用:使学生体验到真实软件开发中多次迭代的增量式开发过程;通过需求变更直观体会到可维护性、可扩展性等内部设计和实现质量的重要性;验证改进维护阶段对于改进系统内部质量的效果,加深对于良好的软件设计、编码和文档习惯的认识。<br><br>3 教学方案实施<br><br>软件工程课程实验可以按照由浅入深的顺序分为认知性导入实验、方法性实验和综合实践三个部分,其中前两部分穿插在一个学期的软件工程课程中进行,而综合实践则可以在后续的软件实践
15、类课程中安排1。在教学实践中,软件维护实践应该作为综合实践安排,此时学生已经有了软件工程课程教学和一些正向开发实践(主要包括需求分析、设计和实现)基础。软件维护实践以35人的小组为单位,每个人可以分别担任需 摘 要:在计算机组装与维护课程的实践教学中,为增强学习的效果,我院从实验内容和考核方式上进行了改革,使学生在宽松的学习氛围中,既提高了对该门课程的学习兴趣,又掌握了一项实验操作技能。本文介绍了我院的教改情况。<br>关键词<br>本文来自:计算机毕业网 :实验内容;考核方式;应用;兴趣<br> <br>1 引言<br><br
16、>随着计算机应用的不断普及,学生动手组装计算机的热情也在不断高涨,兼容PC机以其价格低廉 (相对于品牌机)而深受在校大学生的喜爱,学生通过这门课程的学习,不仅能掌握计算机硬件的理论知识,更为自己能独立组装计算机(DIY)而对该课程产生了浓厚的兴趣。目前,很多高校开始把“计算机组装与维护”作为选修或开放实验课程来开设,其目的是为了培养学生的实践动手能力,掌握一技之长。由于现行的理论或实验教材,作者从编写到出版,需经过一段较长时间,但计算机的各个部件在不断升级,性能日益提高,带来了计算机新技术、新产品与相对滞后的教材内容相矛盾,要使学生能跟上硬件发展的步伐,传统的实验教学内容和考核方式已不能
17、适应课程发展的需要,要使实验内容跟上市场计算机硬件的变化,学生能产生该门课程兴趣,对该课程的实验内容和考核方式的改革势在必行。<br><br>2 课程的特点和要求<br><br>学生学完“计算机组装与维护”课程后,所要达到的目标是:使学生掌握计算机硬件的基本知识和基础理论,能用所学知识选购和组装计算机,具备计算机软、硬件安装、调试和维护的基本技能,常用软件的使用,局域网的搭建。<br>该课程的特点:(1)课程内容多、知识面广,包括计算机组成部件、硬件安装、硬件测试、系统BIOS设置、优化、硬盘的分区规划、软件安装、局域网的建设、计算机
18、日常维护。(2)知识更新快,具有鲜明的时代特征。新知识、新产品不断出现,只有不断更新教学(实验)内容才能满足学生了解新产品和新技术的要求,做到与时俱进。(3)课程注重实践,培养学生的实践能力,根据该课程的特点,要达到学习的效果和课程的目的,必须通过大量的实践教学环节来完成。<br><br>3 实验内容改革<br><br>计算机组装与维护是一门实践性较强的基础课程,要求内容新、更新快,对教师的要求也很高,需要不断学习和提高。该门课程一般总学时32,占2 个学分,结合本课程的特点,摒弃过去的先讲后练,甚至是只讲不练,在充分利用实验室计算机资源的基础上
19、,进行实验内容和考核方式的改革,采取边讲边练,或者是先练后讲的教学模式。在课程的学时安排上,我们是理论为12学时,实验为20学时,基本内容大致分为6个独立的项目,现分别说明。<br>实验1.认识硬件(4学时)。通过理论讲解,使学生对计算机的主要硬件(主板、内存、CPU、硬件、光驱、显示卡、显示器)的性能指标,工作原理有一个感性的认识,通过网上计算机硬件价格、性能的查询;结合市场调研,要求学生写出计算机硬件的调研报告3,在某个价位的配置清单等手段,使学生从感性上对计算机组装产生兴趣。<br>实验2.计算机组装与维护(4学时)。计算机组装与维护实验进行拆装的成本较高,破坏性
20、较大,为此,我们采取的方法是利用现有实验室原有资源,例如我们采用03年购买的清华同方机型进行拆装,要求明确目标、拆装顺序、拆装过程中的注意点(曾经有学生拆硬盘上的螺丝);在此熟练的基础上,给予指导,我们准备了15套目前较流行的计算机产品组装,进行分组实验,经过教师检查,方可上电。使得学生既掌握了计算机组装的步骤,又能接触到新产品,不至于用到的都是过时产品。<br>实验3.常见故障的分析与判别(2学时)。由于现行的计算机维修,主要是板卡级的,替代法也是常用的方法之一,在本次实验过程中,要求学生能对实验2中的常见的一些故障能进行分析、判断,在相互讨论的基础上,自己能独立排错,以便解决实
21、验过程中遇到的问题。通过本次实验可以培养学生的团队合作精神和独立分析问题和解决问题的能力。<br>实验4.系统的安装(XP和WINDOWS 2000 Server)(4学时)。通过本次实验,使学生掌握系统分区、硬盘格式化、BIOS的设置、系统的安装、网线的制作方法,利用H3C的交换机组建一局域网。<br>实验5.有关系统相关软件的使用(4学时)。该实验涉及四个方面的内容,要求学生必须掌握,涉及软件的下臷和使用。<br>(1) 系统的备份(GHOST的使用)。<br>(2) 系统的优化(WINDOWS 优化大师的使用和注册表的了解)。<br&
22、gt;(3) 系统的测试(Sisoft Sandra的使用)。<br>(4) 常用杀毒软件的使用(瑞星、金山毒霸、卡巴斯基)<br>实验6.多媒体软件的安装与使用(2学时)。内容涉及<br>(1) 图像处理软件<br>(2) 声音<br>(3) 播放器的安装与使用(豪杰、real PLAY、暴风影音)<br><br>4 考核方式的改革<br><br>通过该门课程的学习与实践,我们在考核方式上也进行了相应的改革,传统的考核方式是7+3模式,即理论占70%,实验占30%;我们采取的方式是3+
23、7模式,即理论占30%,实验占70%。理论考核为辅、动手操作为主。笔试考核为辅、实践操作比重高于笔试,各单项实验项目独立计分。这不仅使学生在考核上把风险分散到各个实验项目中去,也不必担心考试通不过,再次重修,真正使学生的实践动手能力得到提高;在实验的考核方式上采取多种形式。<br>(1) 分组讨论(实验2)<br>(2) 调研报告(实验1)<br>(3) 实验报告书<br>宽松式的实验环境,学生在课内安排实验如不能及时完成的话,可以利用业余时间,由学生本人提出预约申请进行补做,达到规定的要求,分项目进行单独计分,目的只有一个,就是通过实践的练习,
24、确实把按大纲规定的要求落到实处,使学生能在轻松学习的基础上掌握一项技能,体现学以致用的原则。<br><br>5 结束语<br><br>目前,计算机已广泛应用于各行各业,因此懂得计算机的软、硬件安装,常见的报错信息、检测方法,日常的维护和保养,“计算机组装与维护”势必将成为学生比较感兴趣的课程之一,尤其对于民办本科的学生来说,加强实践动手能力的培养已成为大家的共识,通过对实验教学的改革,目的是为了提高学生的学习兴趣;通过考核方式的改革,消除学生对该门课程由于理论考试不及格而带来的负面影响,使学生能快乐学习,体会实验过程所带来的快乐和成功感,确实让这
25、门课程变成大家想学又愿意学的一门课程,事实证明,通过本学期对该门课程的改革,无论从内容上还是考核方式上,都取得了很好的效果,学生反映较好,收效甚大。<br><br>参考文献:<br>1 徐鲁雄. 改革计算机信息素养教育模式 推进素质教育J. 计算机教育,2006,(8):57-61.<br>2 张世伟. 浅谈计算机组装与维护课的教学模式J. 重庆科技学院学报,2007,(5):165.<br>3 周苏. 专业课程教学测评的创新实践J. 计算机教育,2008,(7):88-91.<br>4 高尚,别小川.“计算方法”实验内容
26、的改革J. 实验室研究与探索,2007,26(10):106-107.<br>5 孙中胜,高长宝. 微机组装升级与维护M. 北京:清华大学出版社,2005.<br>6 周苏等. 大学计算机专业基础课程实验教学的改革与创新C. 大学计算机基础程报告论坛论文集2005M. 北京:高等教育出版社.<br>7 李秉璋等. 以提高应用能力为目标进行计算机专业课教学J. 计算机教育,2006,(12):28-31.<br>8 范跃进. 面向创新型国家建设的应用型创新人才培养模式探索J. 中国大学教学,2006,(9):24.<br><br&
27、gt;The reform of the content and methods of examination in“Computer assembly and maintenance”<br>TAO Jian-ping<br>(School of NanXu,Jiangsu Univ.of Science and Technology,Zhengjiang 212004,China)<br>Abstract: In order to enhance the Effect of learning the computer assembly and maint
28、enance, in the practice courses, content and assessment from the experiments carried out on the way of reform, so that students study in the relaxed atmosphere,They not only increase the interest in learning courses but master the skills.<br>Key words: The contents of experiment; The methods o
29、f Assessment; Application ; Interest<br> </p> <p> </p> <p> </p> 摘 要:软件维护在现实的软件开发过程中占有十分重要的地位,本文介绍了我院的软件维护实践教学的教学方案以及具体实施情况。<br>关键词<br>本文来自:计算机毕业网 :软件工程;软件开发;实验;实践教学;软件维护<br><br>1 软件维护在软件工程实践教学中的意义<br><br>软件工程是一门理论与实践并重的基础课程,教学内容
30、紧密围绕软件开发过程中的各种工程化方法、技术和思想1。在现实的软件开发过程中,软件维护占有很重要的地位,许多报告都指出软件维护成本已经占到总体成本的40%70%以上。软件维护关注于“变化”,包括纠错性(corrective)、适应性(adaptive)、完善性(perfective)、预防性(preventative)等维护类型2。当前的软件工程教学中一般都已经包括了软件维护相关理论和方法相关的内容,例如软件维护及可维护性的概念、软件维护的类型和过程、变更管理以及软件再工程等。但软件工程实践教学仍然以瀑布式的正向开发过程为主,主要体现需求分析、设计、实现和测试等基本开发活动,缺少软件维护的实践
31、训练。<br>由于软件维护在软件开发中的重要性,许多国内外学者都呼吁在软件工程教学中引入软件维护实践(如文献3)。在软件工程实践教学中引入软件维护内容主要基于以下这些考虑。<br>首先,软件维护在软件开发中占有十分重要的地位,典型的软件工程开发中花在软件维护上的时间往往比软件开发还要多3。而且,大部分毕业生进入软件开发机构后都是从维护性的开发任务开始的。<br>其次,软件维护实践还能使学生更直观地体会和理解软件工程方法和原则的重要性。软件工程教学中系统地讲授了许多重要的软件工程方法和原则,包括软件文档规范、设计原则(如层次化、高内聚低耦合等)以及编码习惯(如
32、标识符命名、注释和排版等)等,其中大部分都与软件的可维护性相关。通过对文档不全、设计混乱和编码习惯不好的软件系统进行维护,可以对这些方法和原则获得直观、深入的认识和理解。例如,对标识符命名不规范、缺少注释、排版混乱的代码进行阅读和理解,可以深刻认识到好的编码习惯对于维护工作的重要性。<br>此外,软件维护实践能使学生更好地认识软件开发的现实困难。缺陷报告、需求变更、软硬件平台的变化等导致软件演化的因素在现实的软件开发中总是存在的。通过在实践教学中设置阶段性的需求变更,可以让学生对于现实的软件开发有更加真实的体验,从而提高对迭代、增量式开发等实用的软件开发方法和技术的认知。<b
33、r><br>2 软件维护实践教学方案<br><br>软件维护主要包括纠错性、适应性、完善性和预防性维护四种类型2:纠错性维护是针对所发现的错误或缺陷而对软件进行的修改;适应性维护是为了适应外部环境(如硬件、操作系统、外部规则等)的变化而对软件进行的修改;完善性维护是由于功能扩展而进行的软件修改;预防性维护是面向未来的维护需要,为了提高软件的适应性和可维护性等而进行的系统优化和改进。软件维护实践教学应以循序渐进的方式覆盖这四个方面的软件维护任务,同时穿插并突出相关软件工程方法和原则的体验和熏陶。<br>根据这一总体目标,相应的软件维护实践教学
34、将在给定的作为维护对象的遗留系统基础上,分三个阶段进行,如图1所示。遗留系统分析评估阶段的主要目的是在理解遗留系统需求的基础上对系统的外部和内部质量进行初步的了解和评价。系统改进维护阶段的目标是以当前系统需求为基础,对遗留系统的缺陷和错误进行修改,对系统内部的设计、实现以及文档质量进行改进。系统需求演化维护阶段通过若干次迭代的需求和系统环境变更,进行系统的完善性和适应性维护。针对新需求和系统环境设置的修改将通过系统测试确认,测试结果反馈给系统改进维护阶段,从而进行相应的纠错性维护活动。此外,系统修改过程中发现的内部质量问题(例如可扩展性上的不足等)同样也会反馈给系统改进维护阶段,从而进行相应的
35、预防性维护活动。这种反馈关系以及需求和系统环境变更的迭代进行使得后两个阶段将反复迭代进行。<br>(1) 遗留系统分析评估阶段<br>与传统的基于分析、设计和实现的软件工程实践教学不同,软件维护实践教学以已经开发完成的遗留软件系统作为起点。每个小组分配到的遗留系统都是由其他人开发的,犹如在软件开发中接手其他小组的维护工作。因此,首先要求他们在理解项目当前需求的基础上,对所分配的系统进行分析和评估,从而为后续的维护活动打下基础。这阶段的主要实践任务包括:<br><br>图1 软件维护实践教学过程<br><br>1) 理解遗留
36、系统需求。与正向软件开发一样,软件维护实践也要从了解系统需求开始。需求是评价当前系统质量,进而规划并实施各种纠错性、适应性、完善性和预防性维护活动的基础。<br>2) 系统测试及外部质量评价。外部质量因素是那些用户能轻易观察到的软件特性,例如功能正确性、性能、可靠性、可用性等2。通过系统测试,可以针对用户需求得到遗留系统的外部质量总体评价,以及待纠正的错误和缺陷列表,从而为纠错性维护打下基础。<br>3) 系统理解及内部质量评价。内部质量是指与系统内部设计和实现相关的质量特性,例如可理解性、可维护性、可扩展性等,它们对于软件工程师而言是十分重要的2。通过阅读遗留系统文档
37、(可能残缺不全或质量不高)以及系统代码,同时借助于相关辅助理解工具的支持,获得对系统设计(如体系结构和模块结构等)和代码的初步理解,在此基础上对系统的设计和实现质量进行评价,从而为预防性维护打下基础。<br>这一阶段首先强化了对于软件测试的实践。在以往的教学实践中,我们发现学生在正向开发阶段往往不太重视测试(对于自己开发的系统进行测试往往会觉得没有必要或比较敷衍了事),且常与调试混淆。而在软件维护实践中,测试对象是他人开发的系统(实践中常常发现学生对于测试、评价其他人开发的系统比较有兴趣),而且测试结果直接决定了对遗留系统的外部质量评价和纠错性改进方案,因此学生往往会认真对待。系统
38、理解能力也非常重要。在教学实践中,可以鼓励学生充分运用相关辅助理解工具进行系统理解,例如Eclipse相关插件所提供的代码UML视图、类语法树、调用关系图、度量信息等辅助理解功能。<br>除此之外,系统理解及内部质量评价还强化了对于软件工程设计和实现原则的认识。通过阅读遗留系统文档和代码,学生们可以深切体会到好的系统设计、编码风格以及文档规范对于软件开发的重要性。实践中,他们经常会抱怨遗留系统文档不全或不一致、设计混乱、编码风格不好,而这些其实也正是他们自己在正向开发阶段很容易出现的问题。<br>(2) 系统改进维护阶段<br>系统改进维护阶段将在遗留系统分
39、析和评估基础上,进行纠错性和预防性维护。针对用户需求以及一般的软件设计和实现质量准则,从外部质量和内部质量两个方面对遗留系统进行改进。这阶段的主要实践任务包括:<br>1) 纠错性维护实施。针对系统测试过程中发现的问题,进行纠错性维护,包括消除系统意外出错、纠正与功能需求不一致的地方、改进系统性能、可靠性等非功能质量方面的不足。<br>2) 回归测试及总结。纠错性维护结束后,通过回归测试验证纠错性维护的效果,并进行总结。<br>3) 预防性维护方案制定及实施。针对系统内部质量评价中发现的问题以及纠错性维护中遇到的困难(例如难以扩展的系统结构等),制定并实施对
40、系统的预防性维护方案,包括对系统设计和编码质量的改进,以及对开发文档的补充和完善等。<br> </p> <p> <p>4) 系统评审及总结。预防性维护结束后,对系统的设计、代码及文档进行评审,总结改进情况以及所获得的体会和经验。<br>这一阶段首先涵盖了纠错性维护和预防性维护实践。其次,预防性维护实践通过系统设计、开发文档、编码风格等方面的改进,强化了相关软件工程方法和原则的训练。<br>(3) 系统需求演化维护阶段<br>前两个阶段的软件维护实践都还停留在原有系统基础上,系统需求演化阶段将通过用户需求和系统环
41、境的变化,引导学生进行完善性和适应性维护实践。由于现实中的软件开发一般都包含多次迭代和增量,因此这阶段的维护实践也将迭代进行多次。这阶段的主要实践任务包括:<br>1) 需求和系统环境变更分析。在原有系统需求基础上,提出若干新的扩展功能要求和系统环境变更(例如改变原有的数据库管理系统),要求学生通过与助教的沟通和交流明确需求和系统环境变更要求。<br>2) 系统修改方案制定及实施。根据变更要求和对系统设计、实现的理解确定系统修改方案并加以实施。<br>3) 系统测试。针对需求或系统环境变更进行系统测试,对系统修改进行确认,所发现的错误和缺陷将反馈给纠错性维护
42、活动。<br>4) 系统内部质量反馈。针对需求或系统环境变更的修改活动可以对系统的内部设计和实现质量进行检验,暴露设计、实现及文档等方面的问题,这些问题将反馈给预防性维护活动。<br>系统需求演化维护阶段除了涵盖完善性和适应性维护实践外,还具有以下几个方面的作用:使学生体验到真实软件开发中多次迭代的增量式开发过程;通过需求变更直观体会到可维护性、可扩展性等内部设计和实现质量的重要性;验证改进维护阶段对于改进系统内部质量的效果,加深对于良好的软件设计、编码和文档习惯的认识。<br><br>3 教学方案实施<br><br>软件
43、工程课程实验可以按照由浅入深的顺序分为认知性导入实验、方法性实验和综合实践三个部分,其中前两部分穿插在一个学期的软件工程课程中进行,而综合实践则可以在后续的软件实践类课程中安排1。在教学实践中,软件维护实践应该作为综合实践安排,此时学生已经有了软件工程课程教学和一些正向开发实践(主要包括需求分析、设计和实现)基础。软件维护实践以35人的小组为单位,每个人可以分别担任需 摘要:“网络程序课程设计”教学实践中存在教学内容涉及面广、新技术多、实验时间有限等问题。本文提出,通过精选教学内容和设计合适的课程综合实验,可以引导学生学习和掌握最新的网络程序设计技术,了解网络技术的发展趋势,能够极大地提高同学
44、们的动手能力和团队协作能力。这些教学研究与探索,对“网络程序课程设计”的课程建设有一定的借鉴作用。<br>关键词<br>本文来自:计算机毕业网 :网络编程;程序设计;综合实验;教学探索<br><br>1引言<br><br>计算机网络的飞速发展和网络新技术的不断涌现,对计算机专业学生的网络程序设计和动手能力提出了很高的要求。作为一门重要的实践课程,“网络程序课程设计”对引导学生掌握最新的网络程序设计技术,培养学生的主动性、协作精神和创新能力具有重要的作用。学生们对这门课程也非常感兴趣:一方面通过上网接触到大量的网络应用程序,
45、对其中的原理充满了好奇;另一方面则是有主观愿望去动手编写网络程序。<br>本文以国防科技大学计算机学院开设的“网络程序课程设计”为例,系统地介绍了该课程的教学体系以及在教学实践中的一些经验和探索。第2节和第3节介绍了课程的相关情况和课程教学内容的选择,第4节介绍了课程综合实验的设计和考核等相关内容,第5节评估了教学效果,希望能对“网络程序课程设计”的课程建设有一定的借鉴作用。<br><br>2课程概述<br><br>“网络程序课程设计”面向本科三年级学生,教学内容包括TCP通信等网络编程基础、ASP/PHP/JSP等动态网页编程语言、
46、Brower/Server模式、J2EE等等,所需的预修课程包括计算机网络、操作系统、程序设计初步等系列课程。整个课程包括32学时,其中讲授16学时,课内上机16学时。<br>“网络程序课程设计”在教学和实践中存在如下几个难点:(1)课程涉及面广,涉及到网络通信、数据库、操作系统和程序设计等多方面的知识;(2)课程涉及的新技术多、内容更新快,无法一一讲授和实践;(3)课程时间有限,课堂上无法讲授太多知识内容,也无法安排大型综合实验。针对本课程的特点,我们在教学实践中精心选择教学内容,引导学生们学习最新的网络设计技术,并通过综合实验锻炼学生们的各方面能力,较好的解决了教学实践中存在的
47、困难,取得了不错的教学效果。<br><br>3课程教学内容选择<br><br>“网络程序课程设计”涉及到许多方面的教学内容,主要包括:<br>网络编程基础<br>了解和掌握Client/Server模型和Brower/Server模型;网络应用和数据库系统;网络应用基本架构;HTML/XML和网页设计基础;网络编程技术基础。<br>要求:掌握网络通信的两种典型模型,掌握网络应用基本架构,掌握HTML和XML以及相互间的主要差异,了解各种主要的网络编程技术和优缺点。<br>2)ASP编程基础<b
48、r>了解和掌握ASP编程基础、重要组件、错误处理与调试;ASP数据库编程;VBScript和JavaScript等脚本语言、ASP工具;<br>要求:掌握ASP的编程的技术和方法,掌握基于ASP的数据库应用编程技术,熟悉VBScript和JavaScript等脚本语言,熟悉主要的ASP工具的使用。<br>3)PHP编程<br>了解PHP编程基础、语法概述、PHP函数、类和对象;基于PHP的数据库操作技术;基于PHP的动态网页实现技术;基于PHP的网络应用实现技术;<br>要求:掌握PHP编程语言的基本成分,熟悉PHP在网络应用中的使用。&l
49、t;br>4)COM+组件编程<br>了解COM+组件、接口原理、DLL和类、COM+组件的包容与聚合;ATL;ActiveX控件;COM+组件服务器;对象缓冲池;消息队列;<br>要求:掌握COM+组件技术的基本原理,基于COM+组件实现自动化的技术,组件的管理和消息队列。<br>5)J2EE技术<br>要求掌握Java服务器模型,JSP简介;Java Servelet,Java Beans,JDBC;Java分布计算技术、JSP标签和EJB技术<br>要求:掌握JSP的主要技术,掌握基于J2EE开发网络数据库应用的企业应用解
50、决方案。<br>因为课时有限,不可能对以上内容面面俱到的讲授,因此我们选择了1)网络编程基础、2)ASP编程基础和5)J2EE技术作为讲授的重点,并且特别强调学生的自学能力。推荐合适的教程和指导书,引导学生们自学课程内容,并积极开展动手实践。<br><br>4课程综合实验设计<br><br>“网络程序课程设计”在讲授有关网络编程的基本原理和基本技术的基础上,通过综合实验使学员熟练掌握有关网络程序设计基本方法、网络应用基本框架、网络程序设计主要过程等知识内容,并具备设计和编写大型网络程序的能力。因此设计一个合适的课程综合实验,是非常重要
51、的。<br>4.1课程综合实验<br>综合考虑教学内容和教学大纲的要求,出于考察学生对教学内容的掌握和学习能力的目的,我们设计了一个课程综合实验,要求同学们自由分组协同完成。课程实践要求学生在Windows平台上,选择JSP、ASP或者PHP等动态网页语言,设计并实现一个呼叫中心(Call Center)管理系统。<br>综合实验具有较为现实的研发背景:自来水公司等公共服务行业公司每天都要面对大量市民的咨询和投诉,人工接听电话已经难以为市民提供优质的服务。因此,通过建立24小时的呼叫中心系统,提供“来电来信来访”三来服务,可以为用户提供全方位的服务。统一规划
52、的呼叫中心管理平台,是满足公共服务企业为广大客户提供服务的窗口、互动的平台。<br>综合实验中的呼叫中心管理系统包含停水查询、水费查询、投诉举报等业务功能(如图1所示),并可以最终扩展成为一个技术专业化、具备配套完善公共服务行业服务流程和特点的呼叫中心平台,为来自电话语音用户、互联网用户、灵通短信用户提供全方位不间断的业务受理、业务信息反馈、问题解答、费用和账务信息查询、水费催缴等功能为一体的综合业务服务语音信息平台。<br><br>我们设计的这个课程综合实验考察同学们对网站规划、数据库、网络通讯、网页设计等多方面知识的掌握,考察同学们的创新精神、自学能力和
53、团队协作能力。<br>4.2综合实验实现平台的选择<br>“网络程序课程设计”的课程综合实验,要求同学们用动态网页语言、数据库和Web服务器一起构建和设计实现一个中型的网站。动态网页语言是课程学习和实践的重点,它也往往决定了综合实验的实现平台。现在常用的动态网页语言有ASP、JSP、PHP等几种。这几种动态网页语言具有各自的特点,并且都有一定的应用前景。因此引导学生选择合适的动态网页语言,成为确定讲授内容和课程实践手段的一项重要任务。<br>因为学生们大多没有接触过这几种动态网页语言,而8周的课程实践也无法要求学生们全部掌握和精通这几门语言,因此在课程讲授时
54、必须重点分析这几门语言的优缺点、适用环境,引导学生根据自己的学习基础和兴趣,选择最合适的动态网页语言,并最终确定与之配套的Web服务器和数据库。<br>4.2.1PHP<br>PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并耦合PHP特有的特性,使Web开发者能够快速地写出动态页面。<br> </p> <p> <p>PHP是完全免费的开源产品,可以从PHP官方站点(http: /)自由下载。PHP与同样是开源产品的Web服务器Apache和数据库MySQL搭配使用,可以快速搭建
55、动态网站系统。因此国外有众多的网站系统由Apache、PHP和MySQL一起构建,这些免费软件降低了建站的成本,其搭配后的执行效率也比Windows平台中的常用搭配IIS、ASP和ACCESS要高。<br>PHP中有一套常用的可以提供一般数据库事务需要的基库PHPLIB,程序员也可以利用PHP编写外围函数去间接存取数据库,具备较好的灵活性。但是PHP提供的数据库接口支持彼此不统一,比如对Oracle、MySQL和Sybase的接口都不一样,处理起来就不方便了。<br>PHP作为一个开源程序,具有简单的语法和丰富的函数,但是PHP缺乏规模支持和多层结构支持,导致PHP只适
56、宜于编写小型网站。<br>4.2.2ASP<br>ASP是微软公司推出的Web服务器IIS系统自带的脚本语言,利用它可以执行动态的Web服务应用程序。<br>ASP使用VBScript 和JavaScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。ASP可以使用普通的文本编辑器(如Windows的记事本)进行编辑设计,而无须编译,即可在服务器端直接执行。ASP程序具有与浏览器无关的特性:ASP所使用的脚本语言均在Web服务器端执行,客户端只要使用可执行HTML码的浏览器,即可浏览ASP网页内容。ASP还可以通过服务器端的脚本来产
57、生客户端的脚本。<br>ASP能与任何ActiveX Scripting语言兼容。除了可使用VBScript或JavaScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其它脚本语言,如Perl和Tcl等。利用COM/DCOM技术,ASP可以拥有更加强大的功能和可扩充性。<br>ASP简单易学、易于维护,在国内非常受欢迎。ASP与IIS和SQL Server/ACCESS构成了构建网站的一种很好搭配,是小型网站应用的最佳选择。但是ASP局限于Windows平台,不能很好的跨平台重用。<br>4.2.3JSP<br>JSP是S
58、un公司推出的动态网页开发语言。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。<br>JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。<br>JSP在技术结构上有着其他脚本语言所没有的优势:JSP可以通过JavaBean等技术实现内容的产生和显示相分离,有助于保护源代码,并保证任何基于HTML的Web浏览器的完全可用
59、性;JSP强调可重用和跨平台的组件,可以使用JavaBeans或者EJB来执行应用程序所要求的更为复杂的处理,进而完成企业级的分布式大型应用,而基于组件的 <P>课件中调入Flash动画探析</P><P>关键词:FLASH;课件;计算机;教学 <BR>摘要:Flash(中文译为“闪动、一闪”)这个英文单词是一个用于制作网络动画的软件的名称,在今天已是广为人知了。Flash作为现代的一种新的设计方式和娱乐方式,不仅有它所具有的趣味性,并且还有视觉和听觉上的双重享受,更因为其实用功能,成为课件中不可缺少的一种表现形式。 <BR> <
60、/P><P><BR>Flash是美国的MACROMEDIA公司于1999年6月推出的优秀动画设计软件。它是一种交互式动画设计工具,只需加入自己的创意,利用flash技术,则可把人生的感悟以及所想表现的东西用它可以将音乐,动画以及富有新意的界面融合在一起,以制作出高品质的动态效果。 <BR>Flash在中国起初只是一些爱好者出于个人兴趣制作的Flash作品,传到网上以供网民浏览,由于它的功能强大、制作流程简单,更多的人喜好这种表现形式。因此,Flash的制作逐渐兴盛。 <BR>为何Flash会吸引这么多人的注意力,笔者认为是主要在于以下几个特点: <BR>1.体积小但效果好。Flash采用矢量图形和流式播放技术,保证了图形的质量和观看速度。通过使用关键帧和图符使得所生成的动画(.swf)文件非常小,因此适合在课件中插入。 <BR>2.跨媒体性强,制作、改动成本低廉。Flash除了可以在互联网上进行传播,在电视、手机等载体上进行发布、传播外,还可以在多种软件中插入。 <BR>3.视觉冲击力比其他的形式要强。同一个产品,如果采用Flash形式会更容易吸引受众的注意。 <BR>4.Flash的形式具有亲和力和交互性优势。如通过点击、选择等动作决定动画的运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教科版八年级物理上册《6.2物质的密度》同步测试题及答案
- 北师大版二年级语文上册表格式教案
- 景区保安部管理规范
- 能源大数据分析理论与实践 课件 7.能源系统
- 2024高中地理第五章区际联系与区域协调发展第一节资源的跨区域调配-以我国西气东输为例练习含解析新人教版必修3
- 2024高中生物专题5DNA和蛋白质技术课题1DNA的粗提取与鉴定课堂演练含解析新人教版选修1
- 2024高中语文第三课神奇的汉字第4节咬文嚼字-消灭错别字练习含解析新人教版选修语言文字应用
- 2024高考化学一轮复习第3章金属及其化合物知识拓展专题侯德榜制碱法精练含解析
- 2024高考化学一轮复习第二部分排查练十一重要的有机化合物含解析
- 2024高考地理一轮复习第一章地球与地图第三讲地理信息技术的应用学案
- 《交通规划原理》课件
- (完整版)四年级口算题大全100道
- 警察急救能力培训课件模板
- 倍加福-KFU8-UFC-信号隔离或转换模块中文操作指导
- 2024年意识形态工作专题会议记录【6篇】
- 河北省唐山市2023-2024学年高一上学期期末考试数学试题(含答案解析)
- hdpe土工膜施工工艺
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 急救药品的序号及作用课件
- 《比特币完整介绍》课件
- 当食物成为抚慰:善待自己重塑大脑告别情绪性进食
评论
0/150
提交评论