第一篇:软件工程综合性课程设计的教学实践
软件工程综合性课程设计的教学实践
--
发表日期:2010年8月10日
共浏览111 次
出处:互联网
【购买方式】【联
系方式】【关闭窗口】
--
课题名称:软件工程综合性课程设计的教学实践
摘要:综合性课程设计能有效地激发学生的学习兴趣,提高学生的动手能力,促进其综合素质的全面发展。本文阐述了开展软件工程综合性课程设计的必要性,给出了课程设计的组织方式、考核与评价方法;并且通过教学实践,提出了课程设计的创新模式。
关键词:综合性课程设计;软件工程;教学实践;创新模式
G642
1引言
软件工程课程具有综合性强,实践性要求高的特点。但是,通过教学实践发现学生普遍感觉软件工程课程中的概念抽象,不容易在课堂讲授中获取切身的体会和认识。同时,大部分学生的编程实践较少,很少参与开发实际的软件项目,对项目的背景了解甚少,欠缺在实际环境中综合运用知识的能力。因此,仅仅是在上软件工程课程的时候以固定课时的方式进行实验训练,学生很难真正理解和掌握软件工程的内涵。从实验过程来说,学生也没有足够的时间为具体的项目做好充分的准备,以完成资料查找、阅读、系统分析、设计、编码和测试等软件开发工作。此外,很多学生重视编程等技术的学习而忽视了必要的文献查找、阅读和写作的训练。
开展综合性课程设计主要是要解决本科生在学习中重理论轻实践,缺乏综合运用各种知识来完成实际工作的问题。软件工程综合性课程设计作为培养学生软件开发能力的重要教学手段为软件工程课程教学提供了理论与实践相结合的有效途径。通过参与综合性课程设计,学生能更好地掌握软件开发的基本技能,培养动手能力,锻炼分析和解决问题的能力。通过经历整个软件开发过程,学生发现和解决各种问题,能进一步培养学生的创新素质;同时,经过工程实践,学生还能建立起独立开展软件开发工作的信心和动力。
2课程设计的组织
课程设计以学生为主体,为学生提供一个既动脑又动手,并且独立实践的机会。首先实验题目要能激发学生的兴趣而不仅仅是一些常规的示例性课题。其次,课程设计的时间安排、实验的开展都需要学生自己把握。因此,在实践过程中不能按通常的课程教学来组织,需要围绕给定的具体题目指导学生自己查阅相关的资料,自学必要的开发工具,搭建实验的开发环境,完成编程和测试工作。除了软件开发实践以外,还要在此过程中培养学生的项目组织和管理能力,以及团队协作精神。老师主要是通过指引方向、讨论问题、提出建议、评价和考核完成情况为学生提供一个将所学知识进行融会贯通的环境,让学生在这个环境中自由的成长。
围绕上述的教学理念,教学过程的组织主要包括以下三个方面:
(1)制定目标和要求。让学生明确综合课程设计的重要性、需要完成的任务和考核目标,给出具体的问题领域和题目。综合性设计的题目可以按照不同的标准进行划分,例如:研究型和应用型题目,或科研型和教学型题目。研究型题目可以指定学生完成某个特定的研究问题,例如:某些比较复杂且学生没有学过的算法。应用型题目则偏重软件开发实践,训练学生掌握新的技术,例如对于网站开发类题目,不仅是简单的实现网站构建,而是引入当前IT领域最新的技术(如Ajax),使学生学会如何在较短时间内掌握一门新的开发技术。
(2)按学生的实际水平和情况进行分组管理。学生在知识掌握和运用方面有一定的差异。有的学生具有较强的分析、理解能力,但是动手能力较差;而有的学生动手能力较强,但在写作方面的训练较少。不少的学生在接触到自己不熟悉的领域时,感觉进入陌生的领域很困难,缺乏完成题目的信心。另外,很多学生由于认识上的问题,关心编程锻炼而忽视写作练习。针对这些问题,在组织管理时,要充分了解学生各自的特点,把不同类型的学生划分到一个小组中,例如:在一个小组中以五个人为上限,进行合理组合和搭配使在一个团队中既有具有较强管理意识的学生、编程能力较强的学生,又有一定写作能力的学生。在管理小组时,让每个人去尝试其他小组成员的角色,让他们从团队中学习,既发挥各自的专长,又能全面培养软件开发的才能。
(3)项目实施和指导。采用定期检查任务进度、召开团队会议、讨论问题等形式关注并检查学生的工作情况。在时间安排方面,通过一个学期来实施整个课程设计,所有实践不占用课程时间,学生利用课余时间来完成分配的任务。前期老师对如何开展工作进行指导,然后定期对学生的阶段性成果进行检查。根据学生所积累的问题的数量和重要程度不定期的做一些软件开发知识的专题指导,如软件编程规范、界面和数据库设计、软件体系架构等。在完成系统后,指导学生依据文档规范撰写实验报告。针对在写作过程中出现的条理混乱、表述不清等问题,通过讲解相应的写作模板和案例来加强学生的写作训练。最后,对学生提交的各种文档采用分析、讨论等方式进行评审和考核。
3教学实践
在综合考虑各情况的基础上,以实验项目的形式开展综合课程设计的教学活动。设计的实验题目涉及多领域的知识和工程背景。老师在指导过程中,运用引导、辅助等手段来充分发挥学生在实践中的主导作用,加强创新能力的培养,让学生充满热情地参与到系统开发,从中获取知识和经验。
(1)引导学生进入课程设计
开始课程设计时,首先召集学生,建立小组联系方式,确立项目的开发团队。给小组成员讲解综合性课程设计的目的和意义、题目背景,以及所涉及的知识领域。大多数学生是第一次完成这样较大的软件开发题目,缺乏足够的自信,老师需要通过鼓励来帮助学生扫清心理障碍。刚开始学生对整个工作没有明确的思路和规划,因此要引导学生按照项目的开发方式进行规划,包括时间安排、任务分配、确定重点、查阅资料文献,等等。通过培养学生独立查阅文献资料的能力和对系统进行分析和设计的能力,使他们能独立地思考问题,逐步摆脱对老师的依赖。
对于项目完成的成果,给出明确的规范和考核标准。在开始课程设计前需要向参加项目的成员介绍软件开发需要建立哪些文档,例如:需求规格说明书、概要设计说明书,等等,要求学生按照标准的软件工程文档来完成课程设计报告。概要讲解有关的软件开发工具,包括设计工具(MS Visio等)、开发环境工具(MS Visual Studio,Eclipse等)、测试工具(JUnit等)。这些工具的安装、配置和使用要学生通过搜索Internet、查找图书馆资料来自学掌握。
(2)培养创新能力
软件工程教学如果仅仅在抽象的概念、术语和图表上进行分析、讲解,学生没有直接的项目开发体验,不了解真实用户的需求,就很难发现在软件开发中存在的问题,这样也就限制了学生用新的思维或新的角度去思考问题。从很多IT行业的成功例子中可以发现很多优秀的人才在实践中发现问题、解决问题从而创造了新的产品和技术,甚至开拓了一个新的市场或领域。例如,Google、Facebook、P2P软件等都是从最初一点想法和实践发展起来的。因此,在综合性的课程设计中要充分考虑发挥学生自己的想象力,训练学生的创新思维。
在综合性课程设计中提出四种创新模式,通过不同的创新模式引导学生突破传统和常规的思维方式,尽可能以创造性的方式去解决实践中遇到的问题。
① 应用创新。应用创新以实际工程中的用户需求为核心,以多领域相结合,强调软件系统的实用性,例如:在指导学生确定题目时,把P2P网络和信息检索相结合提出应用软件课题。
② 技术创新。开发一个具体的软件系统需要各门课程,甚至是其他学科的知识,因此,掌握新的技术,并对多种技术进行融合创新,能极大地激发学生的积极性。例如:根据学生已掌握的操作系统知识,在实验中结合多核技术拟定“基于多核实现矩阵并行运算”的题目。
③ 研究创新。研究创新强调问题驱动和研究导向,通过给出能激发学生兴趣的研究问题,进行研讨式分析和实验。老师指导学生阅读某个研究领域前沿性的论文,在论文的基础上实现相关的算法和系统,在逐步积累的基础上,对不足的地方加以改进,实现创新。
④ 管理创新。在实际的软件项目开发中,管理比技术更重要。通过实践要让学生重视管理,学会管理,培养管理能力,实现管理创新。例如,在软件开发中经常会出现各种变化,包括软件需求、设计、源代码等都会在开发过程中出现这样或那样的改变,学生通过在实践中体会这些变化对软件开发的影响,思考如何从管理的角度去解决这些问题,从而发挥创造性。
(3)评价与考核
在实验过程中要进行阶段性评价,以讨论的方式找出软件系统和文档中的问题。将文档分发给团队成员,每个人要对其他成员的工作进行分析和衡量,对程序代码和各种文档进行评估,提出自己的看法。通过讨论以及批判性和创造性的思考,来强化学生之间的知识交流,提高其分析能力,锻炼交流和沟通技能。老师在评价时要考察学生的开发进度、商讨解决出现的技术问题,协调管理中的矛盾。在总结学生工作时要对学生作出指导,并给出改进建议。
考核方式主要是对学生开发的软件系统和课程设计报告进行评分。在评分时,要综合考虑学生的平时表现、提交的源代码、课程设计报告,以及是否具有创新性。具体来说,考核分为三个部分:第一部分是软件系统的需求分析,这一部分占 30分,主要根据文档考察学生对系统的认识和分析能力;第二部分是软件系统的设计,这一部分占30分,主要考核学生运用各种图表和语言进行系统分解和设计的能力;第三部分是软件系统的编码和测试,这一部分占40分,主要考核学生的逻辑思维能力和动手能力。
4总结
当前本科生除了掌握基本的理论知识和技能外,还需要通过训练学会如何运用各种知识来解决实际问题。综合性课程设计以培养学生的综合素质和能力为目标,以发挥学生主观能动性为指导思想,注重学生在实践过程中各方面能力的培养。通过开展软件工程的综合性课程设计,为学生建立起完成具体任务的团队合作环境,使学生真正成为学习的主动者,让学生组织项目团队,担任不同的角色,培养了组织和管理才能,提升了动手能力和创新素质。
参考文献:
[1] 周波,钟林飞.软件工程课程设计教学方法探讨[J].计算机与网络教学,2007(9):154-155.[2] 刘智,刘加伶,闫河,李唯唯.数据库课程设计的教学思路与实施[J].软件导刊,2009(1):198-199.[3] 庞晓琼.案例驱动的数据结构课程设计教学改革实践[J].计算机教育,2009(1):53-55.[4] 唐仕喜.编译技术可扩展式课程设计改革研究[J].计算机教育,2009(2):40-42.[5] 张天宝,王攀峰.试论新型教与学的关系的建构[J].教育研究,2001,(10):38.Teaching Practice of Comprehensive Course Design of Software Engineering
ZHU Da-yong1, ZHANG Xin-li2, LI Shu-quan1
(1.School of Software, University of Electronic Science and Technology of China, Chengdu 610054, China;2.Department of Math and Information, Chengdu University of Information Technology, Chengdu 610054, China)
Abstract: Comprehensive course design can effectively motivate learning interest of students, improve practical ability, and promote comprehensive quality.In this paper, we discuss the necessity of teaching practice of comprehensive course design and introduce the organization and assessment method of course design.Innovation modes of developing overall quality of students are presented through practice of teaching practice.Key words: comprehensive course design, software engineering, teaching practice, innovation pattern [1]
第二篇:软件工程与实践课程设计
《软件工程与实践》课程设计方案
本课程属专业必修课,是一门实践性较强的计算机类课程,授课对象为计算机专业及相关专业的本科生。本课程是对软件工程课程所述内容的进一步深化与具体应用,通过启发式教学和大量实例的练习,引导学生完成不同类型系统的分析与设计工作,培养学生关于软件工程理论的实际运用能力、软件开发实践动手与文档编写及组织管理能力,同时培养和提高学生在软件开发过程中的团队协作精神。
在课程设计过程中必须完成以下一些环节:
1、任务布置与说明,备有多个题目供学生选择。
2、学生自主分组,并展开软件项目的选题与论证,要求提交分组项目选题和组织分工。
3、进行可行性研究,编写可行性分析报告和项目开发计划,并进行审查。
4、获取需求,编写软件需求规格说明书,并进行审查。
5、进行系统分析和设计,编写软件分析设计报告,并进行审查。
6、通过实现系统主要界面来模拟软件实现,并进行审查。
7、编写软件测试计划,编写软件测试分析报告,并进行审查。
8、编写用户使用说明书,并进行审查。
可供选择的课程设计方案:
1、图书馆图书预定系统的设计与实现
功能如下:(1)由供书部门提供书目给订购组;(2)订书组从各单位取得要订的书目;(3)根据供书目录和订书书目产生订书文档留底;(4)将订书信息(包括数目,数量等)反馈给供书单位;(5)将未订书目通知订书者;(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
2、网络考试系统的设计与实现
要求基于B/S模式来构建整个网络考试系统,整个系统拟由试题库管理子系统、学籍管理子系统、成绩管理子系统、网络考场四大模块组成。系统用户端划分为学生端、教师端和管理员端,通过数据库操作权限设定等机制来保证系统及相关数据的安全性。
3、网上购物系统的设计与实现
着重研究、设计与实现用户管理、目录管理、信息录入管理、定单管理、浏览和查找、购物结帐等功能。
(1)会员注册、登录与管理模块,包括新会员注册、会员身份验证、会员身份注销和预定制商品。
(2)商品陈列上架模块,实现商店所有商品的分类上架,供用户浏览选择。(3)为客户提供各个商品信息细节展示模块。
(4)为客户提供所选择商品的浏览、退货等管理模块。(5)购物车模块,需要完成用户选购商品,购物订单生成功能。
4、病员监护系统的设计与实现 I.问题概述
本例为医院特级护理病房的病员监视系统。1)在每一病床旁有一个监护器。
2)在病员身上附着各种传感器,监测各种生理参数,诸如血压、呼吸、体温等,信号被送到监护器。
3)监护器带有输入键盘,用以输入病员的病号的病历号、各种监测的生理因素的安全范围值(上下限值),以及监测频率定期(监测周期)等。
4)各监测部件与中心计算机相连,后者按指定的监测频率定期地对监视器进行检查。5)检查所得到的数据记录在每个病员的记录文件上。
6)如果发现病员的生理因数超出安全范围时,在护理室有各病员的各种报警信号(灯光)出现。
7)每个监视器有一开关,用来控制监测工作。
8)本例中假设监视255个病员,每人设定4个因素。监视周期可从秒到小时变化,对每一病员进行24小时监视。
9)安全范围为十进制数值,内部表示为浮点数。病历号为9位整数。II.需要设计实时系统。
首先要确定按适当的频率监测病员的办法:一种是用中断的方法,在每个监测器内设置一个定时器;另一种是对各病员进行巡回监视。
5、学籍管理系统的设计与实现
学生学籍管理系统由三部分组成,分别是学生档案管理模块、学生成绩管理模块、学生成绩查询模块。学生档案管理模块主要是对学生档案(如基本资料、学习情况、学籍变动、备注等)进行管理,本模块又分为添加学生档案、查询学生档案、修改/删除学生档案、打印学生档案、数据库管理五个子模块。学生成绩管理模块主要是由教师对学生成绩进行管理,本模块又分为添加学生、学生管理、成绩添加、成绩管理、数据库管理等子模块。学生成绩查询模块是指学生通过输入自己的姓名和密码登陆成绩查询系统,便可查询各个科目的考试成绩,同时也可以进行密码修改。要求采用B/S结构,可以对不同角色进行权限管理。
6、内容管理系统的设计与实现
为了让用户能够实现模块共享,并考虑到安全性,需要开发一个平台展示模块的相关信息,并实现用户申请、模块的开发者上传、管理员审核等功能。
该平台需要完成的功能为:每个用户可以对模块的相关信息进行浏览,查找,若需要下载某个模块,可向管理员提出申请;模块的开发者可以上传模块的相关信息;管理员对用户的申请进行审核。
具体需求如下:
用户可以对模块的相关信息进行浏览并申请使用某些模块:
进行注册、登录;
能够对模块的相关信息进行浏览;
可按标题、内容、作者、时间、分类等方式进行查找;
将想要下载使用的模块记录下来,待浏览完毕后形成申请单,提交给管理员。模块开发者能够将自己制作的模块的相关信息进行上传:
将模块的标题、图片、作者、类别、日期、内容等信息进行上传。管理员进行管理:
对新注册的用户信息进行统计察看;
对用户的关于模块使用的申请信息进行统计审核; 对开发者上传的模块信息进行统计察看; 对已经批准并提供模块下载的用户信息进行统计察看。
7、教学网站的设计与实现
网站主要面向三类人:老师、学生、管理员,包括一个BBS。三类人权限各不相同,老师可以布置作业、修改作业、登记成绩;学生则可以通过这个网站看老师的通知、做作业、利用丰富的资源等等;管理员则主要做后台的一些修改操作; BBS模块主要用于师生之间、学生之间的交流。
学生端的功能包括:主页、登入、作业模块、查询模块、个人设置、交流、资料下载、BBS;教师端的功能包括:主页、登入、查询、通知管理、作业管理、上机管理、成绩管理、收信箱、BBS、个人设置;管理员端包括:主页、登入、数据初始化、学生管理、教师管理、BBS管理、修改个人信息。
课程设计评分标准:
1、按照参考的范例,完成规定的文档。
2、2-3人一组,完成同一文档的学生成绩相同。
3、行文流畅,格式标点正确。
4、插图必须是矢量图。
5、涉及UML的内容资料必须完整。
6、文档必须真实反映分析、设计、实现和测试的内容。
7、单独完成所有文档的学生加分。
第三篇:软件工程课程设计
软件工程课程设计实验心得
经过一个星期的软件工程课程设计,本人在老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。
一、对实验原理有更深的理解
通过该课程设计,掌握了什么是软件程序,软件程序工作的基本过程及其各阶段的基本任务,熟悉了软件程序总流程框图,了解了软件程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。
二、对该理论在实践中的应用有深刻的理解
通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解。
三、激发了学习的积极性
通过该课程设计,全面系统的理解了软件工程程序构造的一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的软件工程的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过
自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对软件工程的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除。在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解文件系统的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。
四、理解了该知识点以及学科之间的融合渗透
本次课程设计程序部分是用C语言编写的,把《计算机操作系统》,《软件工程》,《算法分析与设计》《C语言》四门学科联系起来,把各个学科之间的知识融合起来,把各门课程的知识联系起来,对计算机整体的认识更加深刻。使我加深了对《计算机操作系统》,《软件工程》,《算法分析与设计》《C语言》四门课程的认识。
第四篇:软件工程课程设计封面
淮南师范学院 计算机与信息工程系
《软件工程》课程设计
工资管理项目软件工程报告
专业班级: 计算机科学与技术08(1)班 项目组号: 组
长:程亮
组
员:吴腾、徐罗敬 指导老师:孙淮宁(教授)
2011年6月24日
工资管理软件工程分工安排
1、需求分析
负责人:程亮
参与人:吴腾
2、软件设计
负责人:吴腾
参与人:
3、编码工作
负责人:
参与人:
4、测试工作
负责人:
参与人:
工资管理项目软件需求分析报告
负 责 人: 参 与 人: 功能模型: 数据模型: 行为模型: 数据词典: 审 核 人:
2011年6月24日
工资管理项目软件结构设计报告
负 责 人: 参 与 人: 总体结构: 内部结构: 数据结构: 借 接 口: 界
面: 审 核 人:
2011年6月24日
工资管理软件编码工作报告
负 责 人: 参 与 人: 主控模块: 子控模块: 原子模块: 审 核 人:
2011年6月24日
工资管理软件系统测试报告
负 责 人: 参 与 人:, 单元测试: 组装测试: 确认测试: 审 核 人:
2011年6月26日
第五篇:《软件工程》课程设计要求
《软件工程》课程设计要求
一、课程设计目的
《软件工程》是一门实践性极强的课程。课程设计通过一个实际的项目,培养学生分析问题和解决实际问题的能力,培养学生综合应用软件工程的基本原理,方法和技术的能力,做到学以致用。
在教师的指导下,以实际应用中自选的中、小型题目为主,根据不同的题目类型选择一种开发模式,完成从系统定义、可行性研究、软件需求分析、软件设计、软件实现(编程)、软件测试,直到运行的软件生存周期各阶段的任务。
要求学生能把软件工程的基本原理和方法应用到软件的实际开发中。强化软件开发的团队协作意识,合作完成一个项目的开发过程。
二、课程设计基本要求
1、由学生自行选定题目。
2、根据学生的意愿,两人组成一个小组,也可单独完成。
3、采用学生自主完成项目为主,教师辅导答疑为辅的教学方式。
4、严格按照时间要求和进度安排,独立完成各阶段的任务。
5、课程设计的工作量,因选题不同,可以略有不同。
6、开发工具和程序设计语言自行确定。
7、要求每个小组的设计报告不少于50页。
三、课程设计报告的验收
每个小组必须提交一份完整的报告文档,包含如下八个方面的内容:
1、系统规格说明书
2、可行性分析报告
3、软件需求规格说明书
4、软件设计说明书
5、模块开发卷宗(源代码清单)和单元测试
6、软件测试计划和测试分析报告
7、软件安装手册、用户操作手册
8、项目开发总结报告
四、排版要求
1、文档内容完善,格式规范,基本符合国家标准。
2、课程设计报告的各级标题为黑体三号,正文为小四号宋体字,默认A4纸,行距为固定值22磅。