软件工程课程十篇

2024-09-11

软件工程课程 篇1

上述存在问题客观上迫切需要开发一套软件工程试验平台, 以全面提高教学质量。

一、软件工程课程试验平台主要技术实现

试验平台采用C/S体系结构, 前台采用PowerBuilder开发, 后台数据库采用SQL Server。同阶段的每个文档都使用一个表保存学生编制的内容, 提供输入、修改、删除等基本操作。由于文档中可能会出现图表、较长文字描述, 所以文档数据库的表中大量使用到二进制数据类型。学生使用该系统编制、书写文档时, 通过OLE (Object Linking&Embedding) 技术, 嵌入Microsoft Word或者Windows画笔应用软件, 方便学生编辑文档, 减少二次重复开发。学生在整个课程中, 需要提交的技术文档包括可行性分析, 需求分析, 概要设计, 详细设计, 测试标准等。这些文档之间需要保持一致性。这也是软件工程的难点与核心观念。需要学生在使用中强化这一思想。为了体现这种要求, 我们对系统中部分文档之间通过外键与触发器实现了一定程度的关联。如数据流图与数据字典的对应, 与系统功能的对应等。在学生定义数据流图的组成部分、名称后, 通过实现定义好的触发器, 系统自动在数据字典中写入相应的条目字段, 这样学生在完成数据字典时就会与数据流图完全对应, 实现一定的自动化。反之, 用户在数据字典编辑阶段, 如果定义了数据流图中没有出现的条目, 利用外键约束, 将不允许写入这样的条目。文档之间的非形式化关联是系统实现的难点。我们的解决办法是使用字段将非形式化的元素用表中的字段来描述, 使之转化成结构化数据。在此基础之上, 实现必要的关联。由于每个图表所需元素的数量, 如数据流程图中的符号, 需要在程序运行时动态确定, 因此我们利用PB开发通用报表的技术, 主要是动态SQL技术, 实现动态开辟字段数量。

为了杜绝抄袭, 系统使用了数据可系统的时间邮戳技术, 与每次学生上机完成报告的时间相关联, 作为单独的信息保存在系统中, 可供教师检查、督促学生按照教学进度每次准时完成作业, 客观上杜绝最后的一习性抄袭。学生完成全部报告后, 可以联机打印出一整套系统设计方案。作为教学文档的一部分, 这些最终报告需要存档。我们使用给文档加入背景图像的思想, 为每个学生的打印生成一个随机符号, 附在打印文档中。这个随机符号的范围来自0-9, 字母a-z, 字母A-Z共36张图片, 生成一个4位随机符号。对一个50人左右的专业班级, 从理论上可以完全保证该随机数不重复, 可以用来识别文档是否存在抄袭。当与时间戳联合使用, 能够进一步加强这种机制。

二、下一步的工作

软件工程作为计算机专业的核心课程之一, 试验平台需要解决的问题很多。后期开发准备引入智能技术, 实现简单的图形与代码的转换, 主要包括3种控制结构流程图与代码的转换, 算法控制流程图与黑盒测试的自动化编制, 模块耦合检查等。使用组建技术改造现有系统的模块, 使之具有组态软件的特点, 供其他课程, 如高级语言程序设计等自由选择某些阶段文档模块, 完成一个小型系统的开发, 如其中可行性分析等可以略去, 进一步挖掘该平台的使用价值。

摘要:软件工程作为计算机专业的核心课程, 具有内容广、理论强、实践要求高的特点。在教学中, 为了规范教学内容, 方便教师批阅、保存不同阶段文档, 文档之间前后一致, 同时杜绝文档抄袭、雷同, 开发了软件工程课程试验平台。采用PowerBuilder作为前台开发工具, 后台采用SQL Server数据库服务器, 使用关联字段、触发器实现文档的一致性约束, 采用时间戳技术与嵌入数字背景图像技术杜绝抄袭、拷贝。

关键词:软件工程课程,文档一致性,时间戳,触发器,背景图像

参考文献

[1].陈朔鹰等.软件工程实践类课程体系的建设和探索[J].北京理工大学学报 (社会科学版) , 2007 (S1)

[2].谢贤智.基于时间戳认证的零水印方案研究[J].微计算机信息, 2007 (18)

[3].廖进华, 王昭顺. BMP图像的防伪数字水印[J].计算机工程与设计, 2005 (4)

软件工程课程 篇2

软件工程是计算机科学、信息技术、软件工程等专业的教学计划中一门重要专业必修课[1], 而软件工程课程设计是针对软件工程这门课程展开的一项理论与实践相结合的重要教学活动;它不同于毕业设计, 更不同于简单的实验过程。它是软件工程教学的一个重要实践环节, 为学生综合能力的运用、技术思维的形成、创造能力的培养搭建了一个平台, 使学生除了掌握软件工程理论和方法外, 还能够综合运用已学过的程序设计、数据结构、计算机网络、管理学和经济学等课程的技能、工具解决与其相关的理论或实际问题。

在软件工程课程设计中, 很多本学科的学者与施教者总结了不错的经验, 比如“激励机制”[2]、面向对象的自主实验教学[3]、课程相关体系研究[4]及相关的案例法教学实践设计[5]等, 这些方法各有所长。我取其所长, 结合亲身教学实践, 从课程设计的目标要求, 设计内容, 设计的具体实施, 学生成绩评价体系等方面, 对软件工程课程设计教学模式作了系统的探讨。

二、软件工程课程设计的教学现状

长期以来, 很多高校培养的学生存在着“什么都学过, 却什么都不会”的尴尬局面, 专业教育、教材与实际应用需求严重脱节[6]。传统的软件工程课程设计虽然也有设计的要求, 但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上, 忽略了对教学方法和内容的更新。目前, 大多数院校软件工程课程设计课程教学中普遍存在的问题有以下几点。

1.课程设计目标不够明确, 实验和设计不加区别。把软件工程实验和设计的要求同等对待, 从而使设计内容偏少, 验证性实验内容和方法偏多, 实验过程变成了重复的复制和操作的过程, 实验教学效果不理想, 达不到培养学生独立思考和创新能力的目的。

2.课程设计内容比较陈旧, 不能与时俱进。很多从事软件工程课程设计教学的教师本身缺乏项目开发的实战经验, 对课程设计的内容往往从一些参考书籍的实例中拿过来让学生去做, 有的甚至多年不更新设计内容, 这样很容易给学生抄袭的机会, 达不到课程设计的要求;同时, 很多学生对设计的内容也不一定感兴趣, 因此也容易扼杀学生的积极性和创新能力。

3.在项目组划分确定方面, 缺乏对学生专业基础, 性格和技能的分析与匹配, 导致没有凝聚整组成员的合作精神和团队的开发能力。组长的核心作用很重要, 但在具体的设计中, 一般就是简单的按学号自然的分化, 或者学生的自由组合分组, 前者失去了团队能力的柔化组合与应用, 后者导致少数技能较差的学生不能分到组中去而处于孤军作战的局面。

4.教师制定课程设计的指导要求目的不明确、不详细, 监管力度不到位, 导致项目开发团队在执行的过程中出现安排任务不合理, 出现某些成员任务过重或者过轻的情况。

5.学生成绩的评分结果过于单一, 评价体系不够科学合理。对学生的设计成绩的评价往往是指导老师根据学生提交的报告和设计结果来评分, 这样容易忽略对学生综合能力 (包括学生的口头表达能力, 组织能力, 团队协调能力等各方面) 的评价。

因此, 为了培养高素质的综合型软件人才, 高等学校探索良好的软件工程课程设计教学模式就显得十分必要。

三、软件工程课程设计教学模式的探讨

针对当前多数院校软件工程课程设计课程教学中普遍存在的一些问题, 我根据多年的教学经验, 对该课程的教学模式作了如下探讨。

1. 指导老师根据软件工程教学的特点, 制定出软件工程课程设计的目标与通过该课程设计后可取得预期的收获。下面是我对软件工程课程设计制定的目标和可能的预期收获。

(1) 通过本课程设计的实践及其前后的准备与总结, 复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识, 比如, 软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法, 等等。

(2) 为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识 (例如, 软件工程、程序设计语言、操作系统、数据库、网络编程等) 创造实践机会。为学生提供主动学习 (比如, 对Web网页设计、ASP.NET或ASP交互网页技术、Java开发环境、网站构架如Struts, Hibernate, Spring, 商用数据库应用、电子商务、客户机/服务器技术、Visio与Rational Rose, Sybase powerdesigner软件工具等内容的学习) 、积极探索与大胆创新的机会。

(3) 使学生通过参加小组团队的开发实践, 了解项目管理、团队协作、与客户交流、文档编写、口头与书面表达的重要性。

(4) 使每个学生了解软件工具与环境对于项目开发的重要性, 并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。

(5) 通过“稍大的”富有挑战性的软件设计项目开发实践, 提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力, 提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。

2. 课程设计内容选择应该具有科学性和与时俱进性。课程设计内容选择十分重要, 既要体现时代性, 又要体现科学性和难度的适当性, 因此要求指导老师对当前软件开发领域的整个动态有总体掌握。下面是我对当前软件开发领域进行的大致归类。

(1) 网站开发类:包括休闲娱乐 (音乐, 影视, 聊天, 休闲运动, 旅游景点等) 网站;工商经济网站 (摄影, 日用家居, 玩具等) ;文学网站 (诗词/韵文, 港台文学, 民间文学, 科幻文学等) ;体育与健身网站 (极限运动, 球类, 健美/健身, 运动常识, 网球, 乒乓球等) ;卫生与健康网站 (医学理论, 医疗器械, 保健/养生, 论坛等) ;国家地区网站 (北京, 上海, 广东, 江苏, 天津等) ;教育培训网站 (小学/中学教育, 职业教育, 高等教育, 教育软件, 培训机构等) ;其他等类型网站。

(2) 应用软件类:如信息管理系统, 汉字输入, 转换翻译, 文字处理, 压缩解压, 电子阅读, 文档管理, 字体工具, 数据恢复等。

(3) 系统软件类:如系统管理, 内存管理, 文件管理, 系统测试工具等。

(4) 游戏娱乐类:如网络游戏, Flash游戏, 牌和棋游戏等。

(5) 其他:如安全病毒, 桌面工具等。

这样, 课程设计的内容可以根据学生的兴趣和爱好从以上几方面进行选择, 也可以由学生自己选择设计内容, 指导老师把握学生选择的项目难易程度, 同时提出所要达到的要求 (包括完成日期, 演示时间, 学生所要提交的成果, 文档资料, 等等) 。

3. 课程设计项目具体实施

(1) 确定开发团队。指导老师在班长和学习委员的协助下充分了解学生的兴趣、爱好、基本技能和未来学生的就业意向, 学生在教师的指导下, 有选择性地进行分组, 一般3至5人为一组, 并选定好组长。

(2) 确定开发项目。指导老师给小组成员分配好开发任务, 组长写好开发计划进程安排并提交指导老师检查以便及时修进。

(3) 中期检查与指导。指导老师根据各个团队提交的开发计划, 对各团队开发项目进程定期进行中期检查, 检查各团队的项目进展情况, 包括各个小组的开会记录, 所查阅的资料, 当前所遇到的困难, 协助与指导小组面对困难所要采取的解决方法等。

(4) 成果提交与演示。课程设计结束时指导老师要求按时提交项目的相关成果, 并组织小组团队进行演示与简短的答辩。演示过程要求学生用5—10分钟时间叙述设计原理、过程、系统运行的情况和体会, 叙述完毕后由指导老师或其他小组成员提问, 指导老师和小组成员记录该学生演示情况和回答问题的情况, 并以此作为下一阶段评定该学生成绩的一部分。

4.建立合理, 科学公正的评价体系。为了对每个开发团队中的成员成绩有个公正、公平和合理的成绩, 因此必须建立合理、科学、公正的评价体系, 本文建立的评价体系包括:学生提交成果, 学生演示与答辩, 学生自评与互评, 教师评分。学生提交成果根据表1学生所承担的角色来交付;学生演示与答辩重点体现对系统的原理、过程、结论, 以及开发体会进行表述;学生自评和互评体现了学生的自我认同和互相认同感;最后是教师的评分, 教师的评定从以下几方面全面考虑: (1) 学习态度是否端正, 总体表现; (2) 项目组织是否有条理, 协作程度; (3) 软件系统文档资料表达格式是否规范、符合要求, 表达是否准确、完整、简单明了; (4) 系统结构是否合理, 功能是否正确, 人机界面是否友好;除了符合上列基本要求具体评定可以参见下表1。最后学生的总评定成绩为:0.4×教师评定分+0.2×学生互评分+0.2×学生演示与答辩评分+0.2×学生自评分。

四、结语

软件工程课程设计是一门理论与实践相结合的应用性很强课程, 我结合自身从事软件开发的经验和多年的教学, 从以上几个方面探索了该课程的教学模式, 在实践工作中虽然取得了一定的成效, 获得了学生的认可与好评, 但仍处于尝试和探索阶段。在实际指导过程中还存在不少问题, 例如:个别学生的积极主动性不够, 存在抄袭设计成果现象, 等等。这些都需要继续努力, 尤其是随着软件产业的飞速发展, 如何培养高素质软件人才, 对教师来说更是一种挑战。因此, 教师应不断学习新的知识, 提升自身的能力, 把握学科的最新发展动态, 探索新的教学模式, 深化实践教学改革, 为我国教育事业作出更大的贡献。

参考文献

[1]张海藩.软件工程导论 (第5版) [M].北京:清华大学出版社, 2008:55-73.

[2]张引, 杨小虎, 陈越.“软件工程”课程实践中激励机制的探索[J].计算机教育, 2007, (5) :30-32.

[3]江颉, 石晓耀.面向对象的软件工程自主实验教学改革[J].实验技术与管理, 2007, 24 (7) :112-114.

[4]王薇.软件工程课程体系研究[J].计算机教育, 2007, (8) :31-32.

[5]巫华芳.软件工程教学案例设计初探[J].教育与职业, 2007, (11) :139-140.

软件工程课程教学方法探索 篇3

【关键词】软件工程课程 案例教学 项目综合实践

【中图分类号】G712.4【文献标识码】A 【文章编号】2095-3089(2016)01-0010-01

1.引言

软件工程是一门采用工程化原则指导高质量且有效的软件开发过程的课程。软件工程课程是信息专业重要的专业基础课,除了加深学生程序设计语言和数据库知识的掌握,更重要的是培养他们在软件开发管理、设计模式、系统开发工具和团队协作等多方面的技能。

传统的软件工程教学注重理论教学,没有很好地结合理论与实际应用,虽然教学过程中也引入的案例和实践环节,但没有做到有机的结合和及时的监控,往往留于形式 教学效果并不理想[1,2]。

2.教学方法探索思路

2.1 理论知识的案例教学与”一页讲义”教学

软件工程理论知识的教学还是以教师授课为主,向学生教授软件工程的基本理论和设计原则,内容力求少而精,目的是在较短时间内让学生了解现阶段最广泛使用的软件工程技术的理论基础,为下一步应用部分的学习奠定基础。首先,在教学过程中结合具体的软件开发案例,我们选择的案例不是孤立的个案,而是一组精心设计的能够贯穿软件设计开发过程的整体案例,我们选择的是一个基于Web的图书馆管理系统,由于学生对该系统业务流程和功能及操作都很熟悉,易于理解。教师在理论讲述时同步结合图书馆管理开发的各阶段进行讲解,通过这种边做边教的模式使得学生能够理论结合实际,加深印象;其次在每个章节学习之前我们都会给学生发一张“一页讲义”,讲义的内容分为两部分,一部分是本章的知识提要和重点的知识点,据此,学生即能掌握本章学习内容框架,并对学习的重点难点有所了解。另一部分是少量的课堂练习题,包括选择、填空和问答题,课堂中会抽10-15分钟作课堂练习并进行讲解讨论,及时巩固学习的理论知识。我们发现纸质的课堂练习题学生的参与度比互动性比仅使用PPT要高,且许多设计思路学生会直接记在上面,将来是比较好的复习资料。案例教学与”一页讲义”教学能较好地帮助同学认识软件开发引入工程化思想的必要性并提高学习的积极性。

2.2 拓展实践与强调团队协作

课程实践对软件工程课程具有非常重要的作用,通过实践,学生能够增强运用软件工程基础知识的能力,对系统设计技能进行训练、培养软件项目的开发能力和团队协作意识。实践环节包括两方面内容:基础实验和综合实践。

基础实验通过CASE(计算机辅助软件工程)工具的学习并运用这些工具加深学生对软件生命周期各阶段的理解,着重培训学生对需求分析、概要设计、详细设计以及软件测试阶段相应辅助工具的掌握,并运用这些工具进行各阶段辅助设计。例如:运用Microsoft Visio绘制软件结构图、程序流程图等;使用ERWin辅助数据库设计;运用Rational Rose完成需求分析与系统设计中的用例图、类图、顺序图和部署图等绘制。基础实验主要实现软件工程各生命周期阶段教学内容的延伸与应用,强调CASE工具的运用,使得软件开发能够更高效、标准地进行。

2.3 培养工程管理与应用能力

软件工程强调使用工程化原则指导软件开发,因此对于软件开发过程中的项目管理也是学生需要关注和学习的内容。除了理论教学中需要对软件项目管理进行讲述外,在基础实验和综合实践环节,我们也加入了项目管理内容的实践,通过Microsoft Project学习项目资源的合理调度,通过VSS(Microsoft Visual SourceSafe)进行代码管理,防止各成员间代码版本的冲突,并且要求学生在综合实践环节必须使用这些工具,并作为考核的一项内容。

2.4 创造实践环境

在软件工程学习过程中可以让学生接触一些现成的软件系统,通过对商业化软件系统的观摩,能够让学生认识复杂系统的集成方案,加深对整体框架的理解,同时对真正软件系统的界面设计、出错处理、系统管理等方面有所了解,学习软件设计开发过程中注重软件的可用性、可操作性、健壮性和可维护性。由于我们专业特点,与医院和医用软件公司有长期的合作关系,可以免费获得一些成熟的软件系统(如:医院信息系统),这为学生创造了一定的实践环境。计算机或其他信息相关专业的教师也可以根据自身专业特点有意识的收集具有代表性的系统,供学生参观学习。

3.教学方法具体实践

在教学方法实践过程中,理论和实践部分并不是相互独立的,应当根据理论教学的推进,结合相应的案例并且逐步实现各阶段的文档。我们在课程教学初期,首先给以自主结合的方式完成分组,选定相应需要开发的子系统并分配给各小组。题目选定后,随着理论教学的推进,要求各小组逐步提交各阶段文档,而不是学期末一起上交,这样能规范各模块的开发按照先文档,后设计再编码的步骤进行,避免系统编码完成后再补充文档的尴尬。部分文档提交后需要集中小组长进行一定的讨论,特别是整体数据库的设计需要所有小组共同分析讨论来完成,教师旁听并指导,指出缺陷和不足,并综合得到最终设计结果。各模块接口设计由相关模块小组长共同讨论完成。在学期末专门安排一次课用于综合实践答辩,由小组代表对软件的设计和开发进行总结汇报并演示开发的系统。

在课程的考核方式上进行优化,强调实践能力,因此综合实践的部分的考核比例增加至40%,理论考试占40%,而平时分占20%。为了避免部分学生“浑水摸鱼”,我们会根据小组成员对项目开发做出的贡献进行度量,设置相应的权重,综合实践的考核分数根据贡献权重计算得到。这样能够激发学生的实践热情,并合理的体现各学生工作量。

4.结束语

软件工程课程非常强调理论联系实践程,在理论教学中引入贯穿整个学习过程的具体案例,能够提高理论的实用性;“一页讲义”式的教学能够帮助学生对整体知识框架的把握,配合具体的课堂练习能够及时对理论知识进行巩固。在教学过程中,我们始终把实践环节放在主要的地位,通过综合系统子模块开发,让学生认识到模块化设计和团体协作的重要作用;我们同时也关注项目管理知识的传授。教学结果证明,通过上述教学方法的探索与改革,能有效地提高了学生的学习兴趣,增强了学生使用软件工程方法和技术解决实际问题的能力,培养了学生团队合作精神。

参考文献:

[1]张剑波,方芳,袁国斌.软件工程专业实践教学体系改革[J]. 计算机教育,2013(12):37-41.

[2]王卫红,杨良怀,江领.软件工程优势专业的建设与发展[J]. 计算机教育,2013(10):1-4,9.

[3]吴建斌, 陈中育,叶荣华.软件工程类课程教学模式改革探索[J].中国信息技术教育,2013(5):119-121.

[4]Hay P,Katsikitis M.The expert in problem-based and case-based learning: necessary or not[J]. Medical Education, 2001, 35(1):25-30

软件工程课程 篇4

时间:2009-03-22 08:47 来源: 作者: 点击:1059

学院在课程体系制定、课程计划安排上制定了严格的规定与规范的操作程序。课程体系、教学计划由学院主管院长负责,对国内外大学、大型IT企业进行调研、分析,确定社会对人才的需求和人才知识、能力、素质的构成,而后由主管院长召集相关教师起草方案,再经学院教学指导委员会专家和企业专家进行论证,并报学校教务处审核、批准,由此形成本科生、硕士研究生的培养方案。同时,根据学科发展和社会需求的变化,学院通过增加或变更选修课、开设讲座等方式动态调整。目前,软件学院主要课程设置按课程体系关键域分类如下。

1)数学基础(本科):大学数学I、概率论与数理统计、数值分析、离散数学等。

2)软件基础(本科):数据结构、汇编语言程序设计、面向对象编程与设计、可视化程序设计基础、操作系统、数据库系统、C/C++程序设计、算法分析与设计、编译原理、软件工程等。

3)硬件基础(本科):数字电子技术、计算机系统基础、数字通信原理、微机原理与技术、计算机网络原理等。

4)专业技术(本科):大型数据库技术、软件体系结构、系统级编程技术、数据挖掘、嵌入式系统、J2EE应用开发、.NET架构软件开发、设计模式、建模与测试、信息安全、软件开发案例分析、并行程序设计、多媒体技术及应用、网络与分布式计算、计算机图形学等。

5)工程管理(本科):软件开发项目管理、软件质量管理与控制、企业管理、网络营销、商务谈判技巧、软件度量及应用、心理学、商务英语等。

6)数学基础(双证硕士):应用统计、组合数学、应用数学方法等。

7)软件理论基础(双证硕士):现代软件工程、面向对象与构件技术、高等计算机算法、移动计算等。

8)数学基础(工程硕士):运筹学、工程数学基础、应用数学方法等。

软件工程专业实践类课程体系研究 篇5

软件工程涉及计算机科学技术、数学、管理科学与工程等诸多学科, 已经由最初的一个学科方向发展成为以计算机科学技术为基础的一个新兴的交叉学科。很多高校将软件工程作为独立的专业,目标是社会培养合格的软件开发人才。随着社会信息化在各行各业的深层次应用,社会对软件工程专业的人才需求量非常巨大。但高校培养出来的人才与社会的需求存在一定的差距,主要表现在:

企业对软件人才的要求是具备自学的能力、分析解决困难的能力、团队合作开发的能力,文档编写能力、沟通的能力;知识结构应该包括计算机基本原理理论、软件开发技术、软件工程生命周期相关的技术。

学生的实践编程能力有待进一步的提高,目前绝大部分高校软件工程专业的师资都是由原计算机专业的教师转化过来,教学计划与教学方式偏重于理论,而软件专业则更偏重于工程。导致目前部分高校软件工程专业的学生实践动手能力甚至不如社会培训机构培养的学生。

学生的学科知识有待完善,主要表现在学生学习了大量的理论知识,但没有有效的融会贯通,是零散的。部分高校在软件工程的教学计划,尤其是选修课的设置上与计算机专业相差不大,而在选课是没有相应的指导,也导致了学会的知识结构在大学阶段就是不完整。

本文在总结本校软件工程课程设置的基础上,探讨了应用性本科院校软件工程专业实践类课程体系,并在如何实施这套课程体系。

2、软件工程专业课程体系

应用型本科院校软件专业定位应该是以培养具有较高自学能力、编程能力、分析解决问题能力的软件开发工程师为目标。在实施这个目标的过程中,最难的就是培养学生的实际编程能力。如何提高学生的编程能力,合适的课程体系是至关重要的。

软件人才的培养应该划分层次,可以划分为专业理解力培养、软件开发基础理论培养、专业技能培养、实际项目能力培养。为培养这些能力,其课程体系如表1所示:

该软件工程课程体系主要有以下特点:

一、注重专业能力层次的培养

专业理解力培养主要训练学生对专业的理解力,理解冯.诺伊曼计算机体系原理,让学生知道计算机能解决那些问题,不能解决那些问题,同时注重培养学生面向过程的程序设计的基础能力。

软件开发基础理论培养主要是学习软件开发基本理论与训练基本技能。大二学年后,学生应该具备查相关资料的能力,配置软件开发环境能力,独立的开发桌面应用的能力,并拥有较强的实践动手能力。

专业技能培养主要训练学生的专业技能,在在培养的过程中,时刻注重完善学生的学科体系。

实际项目能力培养主要在第四学年完成,主要是训练学生软件开发实践经验,在开发中进一步完善学生的学科知识,为企业提供较强专业能力的人才。

二、注重课程设计体系建设

目前,大多院校的课程设计太多,学生在学习过程不得不做很多的课程设计,但质量却不高。最典型题目是"学生信息管理系统"、"学生选课系统",学生在做这一类题目是大多是只完成的对数据库的增加、删除、修改等操作,并没有设计真正的业务逻辑。而从导致缺乏对学生实际项目中的需求、设计、测试等环境能力的培养。

三、注重学科融合

部分学生在选课时,由于缺乏相应的选课指导,导致学生课程的不完整。即使选课完整的部分学生,却由于课程体系的设置,并没有把所有学科知识融合起来,形成实际的软件开发能力。

3、软件体系设施的关键问题

新的课程体系对软件工程专业的师资有较高的要求,同时对于课程教学组织也有较要求,因为实践过程中,必须把基础的理论知识融合到后期的实践类课程中,而实践类课程的特点就是必须注重学科知识,以学生为主体,要引导学生对专业的兴趣,通过一定的课程设计让学生拥有学习的成就感。

1、建立小组学习机制。

软件开发的学习特点之一是知识点广泛,而这些知识点只需要知道,并不需要更深层次的理解,借助小组的力量快速扩大学生软件开发的知识点是较好的学习方式。而且,小组学习能够增加学生的团队协作精神,锻炼小组成员的沟通能力。

在教学过程中,小组组长负责监督小组成员的学习,对于实践环节,由组长负责检查,老师在随机抽查,这样既能落实教学任务,又能激发学生学习的主动性。

2、重视师资的培养。

目前,大多高校的师资偏重理论,而且专注于某个方向的理论,对于软件开发的缺乏全局性的思维,这就需要高校培养部分实践能力较强的师资。

另外,某些课程的主讲老师最好是聘请在软件企业开发一线的开发工程师,能把真实的软件场景带给学生,有利于提前让学生进入工作的状态。

3、注重课程设计的实际效果

"c程序课程设计"针对一年级学生个体,训练学生面向过程的编程思维,熟悉面向过程的软件开发模型,培养学生的编程能力。实践完成后,学生能够熟练掌握c语言的特点,尤其需要熟练文件、以及图形界面的等相关知识点,累计编程量在1500行以上。学生题目以学生熟悉的简单业务为主,如"成绩管理系统"等。

"软件开发基础课程设计"是针对二年级学生个体的设计性实验,训练学生面向对象的编程思维,熟悉面向对象的软件开发模型。主要基于java的swing技术和C#的windowsForm技术,训练学生开发基于windows环境下的桌面应用开发能力,让学生理解图形界面程序设计中面向消息的编程模型。这个阶段结束后,学生应该具备独立搭建软件开发环境的能力,独立查阅资料的能力。在实际教学实践过程中,要求一般小组完成的编程量应该在8000行以上。

"软件开发课程设计"定位在设计性和综合性实验, 应与相应的理论教学配合, 针对具有一定理论基础和编程能力的学生的综合性实验, 采用小组开发方式, 通过设计一些超越学生已有知识水平的中型问题, 例如企业信息管理、计算机网络、操作系统、编译原理、人工智能背景等问题, 引导学生进行自主学习, 通过小组协作开发,让学生熟悉软件工程的全过程。这个过程仍然关注重点关注学生的实际编程能力和学科知识的融合。该阶段结束后,学生应该理解当前的应用服务器的原理,理解数据库连接池的原理,理解编译原理、理解插件机制等。

"软件项目实践"主要针对四年级学生,要求学生以团队开发的形式, 按照实训步骤在规定的时间点完成规定的训练任务完成从需求分析建模 (需求由案例给出) 、设计、代码编写、测试、部署的全过程。题目应该是来自软件企业的真实项目,在这个过程中应该让学生了解实际的软件项目应该包括一些基础软件设施例如:权限管理、组织架构管理、基础数据管理、日志管理、性能优化、软件架构等。在这个过程中,不要求学生真正理解,但应该要求学生了解实际商业项目的开发。

4、讲授实践课程时,必须把课程体系中涉及的知识点不断融合进来。

通过"理论-实践-理论-再实践"的教学模式,在实践中融入基础理论知识,在理论中广泛讲解软件开发的知识点。

4、小结

以完善学科知识和培养实践动手能力的最显著的特点就是在教学实践过程中,引导学生把计算机软件相关的学科知识融合起来,真正理解Web应用系统的原理,形成学生主动学习、自主协作、探索创新的新型教学模式。这种教学模式真正推进培养学生创新精神和实践能力的素质教育,培养的学生理论水平远远高于培训机构的学生,实践动手能力又高于普通高校的学生。经过2届学生的实践,取得了较好的教学效果。

参考文献

[1]教育部高等学校计算机科学与技术教学指导委员.高等学校计算机科学与技术专业发展战略研究报告暨专业规范 (试行) [M].北京:高等教育出版社, 2006.

[2]华南农业大学信息学院.软件工程专业指导性教学计划[R].广州:华南农业大学, 2007.

[3]林丕源, 刘才兴.消化吸收SWEBOK, 制定科学的软件工程专业教学计划[J].高等农业教育.2006 (6)

软件工程课程 篇6

软件工程是指导计算机软件开发和维护的工程学科, 是培养学生软件开发能力和项目管理能力的一门重要课程, 国内大多数地方高校的计算机相关专业都开设了这门课程。随着软件工程技术的不断发展, 软件工程领域的开发方法不断更新、丰富, 软件企业对软件工程能力的要求越来越高。为适应技术的发展, 对现行的"软件工程"课程教学改革势在必行。

2、软件工程课程的特点

2.1 前导课程较多, 综合性强

软件工程前导课程包括计算机导论、数据结构、操作系统、数据库系统概论、计算机网络、高级语言编程等。这些前导课程着重培养学生对局部问题的解决能力, 而软件工程课程则着眼于培养学生解决全局问题的能力。从某种程度上说, 软件工程研究的就是如何在实际开发中综合运用所学的理论和方法, 在有限时间和预算条件下开发出高质量的软件。

2.2 应用实践性强

软件工程是一门应用实践性强的课程, 它是前人开发经验的提炼与总结。学生在学习过程中不仅要掌握概念、原理、方法等理论性知识, 还要通过软件开发的亲身实践, 才能真正体会其中的意味, 真正达到学以致用的目的。

2.3 课程内容发展迅速

自1968年提出"软件工程"以来, 软件工程的发展迅速。软件开发方法百家争鸣, 除了传统软件工程和面向对象软件工程外, 还有面向构件软件工程、净室软件工程和形式化软件工程等。然而, 教材难以及时、全面、准确地反映当前一些新方法新技术和新工具。因此, 教师不能拘泥于教材的限制, 在教学过程中要更新教学内容, 开拓学生视野。

2.4 需要具有软件工程开发经历的师资力量

软件工程教学需要理论与实践的紧密结合, 没有大型软件开发经验的教师无法胜任实践教学, 即使是从事多年软件工程教学的教师也很难仅凭理论教学就达到预期的教学效果。软件工程教学还需要与时俱进, 不断更新知识。这些都已成为地方高校软件工程教学人员的巨大挑战。

3、软件工程教学改革的几个方面

针对软件工程课程的重要性及特点, 根据地方高校的实际情况, 我们认为软件工程教学改革首先应从教学内容、教学模式、教学资源这三方面展开。

3.1 教学内容的改革

根据美国计算学会ACM 2001年制定的ACMCC2001草案[1], 软件工程学的七大核心专题是:软件过程和软件生命周期模型、需求分析、软件设计、测试和评估、软件进化、软件项目管理、软件工具和环境。而大多数高校软件工程课程的学时为48+X (X为根据专业及培养需要而增加的) [2], 几十学时根本无法满足这七大专题。因此, 教学内容的选择应注重基础性、成熟性, 不仅要体现先进性、系统性, 而且教学内容应有助于提高学生求解软件的能力, 尤其是提高学生直接参与软件开发和管理的能力。如:软件设计应以面向对象系统分析OOSA、面向对象系统设计OOSD为主;软件进化应强调可维护软件的特征、软件成熟度、软件重构和软件重用;软件项目管理应强调开发人员的组织、项目进度、软件评估、项目风险、软件质量保证、软件配置管理、项目管理工具等。同时, 选择一本好教材非常重要。教材不仅要介绍经典的软件工程原理方法, 还应介绍当前流行的软件工程方法、特点及发展方向, 应重点介绍目前实用的原理技术。教师在教学中应适当补充一些新知识, 如:基于构件的方法、敏捷方法、净室软件工程等, 结合实例分析应用, 辅以小组讨论、报告会、讲座、作业等多种方式, 激发学生学习兴趣, 加强学生动手动脑能力和自学能力, 起到启发和指点作用。

3.2 教学模式的改革

目前, 有的地方高校软件工程教学模式仍停留在以教师为中心的接受式教学模式;有的学校只注重理论教学模式, 却忽略了实践教学模式。这些传统教学模式在教学实践中暴露出许多问题, 如:理论与实践不能紧密结合, 片面地强调理论学习的重要而忽视实际能力的培养。对此, 不少同仁也深有同感, 认为传统教学模式必须改革。我们认为在整个软件工程教学活动中, 教师应承担传授、讲解、答疑、控制、指导等多重任务, 而不是单纯地传授知识, 教师应为学生服务;学生承担主动学习、提问、实践、讨论、上交作业等多重任务, 而不是被动地接受知识。学生可根据自身特点有针对性地展开学习, 教师则因材施教。

例如:我院是湖南省内的一所地方高校, 其生源主要来自省内的二本学生。根据教学需要, 针对实际情况, 我们提出并实践"五步"教学模式, 即教师传授理论原理--教师案例分析--学生讨论--学生实践--学生提交作业。这"五步"不一定要顺序进行, 可根据实际需要进行调整, 在不同阶段教学主体发生变化, 既能突出教师的作用, 又能调动学生的积极性和创造性, 较好地做到理论与实践相结合。同时, "五步"教学模式可以将整个教学活动的周期延长, 从课堂内拓展到课堂外, 又从课堂外引伸到课堂内, 教师课堂内的讲解会引发学生课堂外的思考与实践, 学生课堂外的疑惑会在课堂内受到重视和解答。因此, "五步"教学模式能更有效地激发学生展开课内课外学习, 提高学生的自学能力和动手能力。

3.3 教学资源的改革

软件工程作为一门实践性和综合性很强的课程, 需要辅助软件 (CASE工具) 丰富的实验环境支撑, 而要建立一个完备的软件工程实验室其投入相当大。国防科学技术大学就拥有湖南省内甚至全国高校中最先进的软件工程实验室, 其投入上百万。显然, 对于地方高校而言, 限于资金和人才的短缺, 构建这样的实验室是不现实的。那如何进行教学资源的改革呢?在2008年湖南省首届计算机系主任论坛上, 很多院校的代表就提出在湖南省内高校中实现教学资源共享, 搭建网络平台, 由重点院校带动地方院校, 这样做既可以节约国家财政支出, 又可以提高已有的硬件教学资源和软件教学资源的利用率, 达到资源整合的目的, 还可以加大地方高校和重点高校之间的沟通与协作, 提高地方高校本科教育的整体水平。当然, 在具体实现上还有许多细节有待沟通与研究。

4、结束语

以上是对地方高校软件工程课程教学改革的探索和思考, 希望以此话题引起同行的讨论。

参考文献

[1].教育部软件工程学科课程体系研究课题组.中国软件工程学科教程[M].北京:清华大学出版社, 2005

软件工程课程 篇7

软件工程课程是计算机专业的一门专业必修课程, 该门课程主要用于指导计算机软件的开发和维护, 其内容涉及技术、方法和管理等诸多方面, 对于培养计算机专业学生的工程能力及专业素养具有举足轻重的地位。

但在该课程的传统教学中, 存在着理论性强、课程内容较抽象, 学生难于理解, 学习动力不足等现象。针对这些问题, 笔者在该门课程的教学实践中, 对课程中的教学资源进行了开发, 所开发的教学资源不仅包含传统类别的教学资源, 还针对本门课程的特点, 增加了新的类别, 并进行了总结和示例说明。

1 现存问题分析

软件工程课程是一门综合性和实践性都很强的专业基础课程, 主要内容包括:软件设计与开发的过程与方法, 软件测试与维护技术, 软件项目管理等。其课程内容繁杂, 理论与技术方法众多, 课程中涉及的概念、原理比较抽象、复杂, 难于理解。在传统的课程教学中, 教师多按照教材的编排来组织教学内容, 而教材大多偏重于概念及原理的理论性阐述, 可操作性及实用性略显不足, 学生在学习过程中容易感到枯燥、乏味, 难以激发学习热情。

2 应对措施

针对教材中知识讲解偏理论化, 实例、案例资源不足, 学生学习兴趣不高的情况, 笔者在教学过程中注意改进教学方法、丰富教学手段, 着重在课程教学资源的开发上做了一些有益的尝试, 以提高学生的学习兴趣, 缩短理论与实际应用的距离。

3 教学资源开发具体内容

根据我国《教育资源建设技术规范》 (以下简称《规范》) , 教学资源可以分为以下八类[1]:媒体素材 (包括文本类素材、图形图像类素材、音频类素材、视频类素材、动画类素材五大类) ;试题库;试卷;课件与网络课件;案例;文献资料;常见问题解答;资源目录索引。

其中, 试题库、试卷、课件与网络课件资源、常见问题解答, 在以往的教学中已经进行了开发, 在现阶段的教学中, 在完善上述资源的基础上, 主要对课堂教学中经常使用到的几类资源如媒体素材、案例、文献资料等进行了开发, 并结合本课程的特点, 补充了诸如应用实例、源程序实例、行业新兴技术等教学资源。总结起来, 主要对以下八类教学资源进行了开发和扩充:

3.1 媒体素材

媒体素材是一类重要的教学素材, 其中音视频素材尚有待于在今后的教学中进行开发, 现阶段的教学中主要对以下三类媒体素材进行了开发:

1. 文本类素材

对于文本类素材的开发, 这里主要指在教学的过程中, 针对所讲授内容, 补充相关的文本类参考材料, 供同学们进行拓展阅读。

例如:在编码风格部分, 关于标识符的命名方法, 提供了对“匈牙利命名法”进行介绍的材料;对于如何进行适当的注释, 给出了对序言性注释的一般格式进行说明的文本材料, 这些文本类素材使得相应知识点得到了延伸, 满足了有更高学习要求的同学的需要。

2. 图形图像类素材

图形图像类素材是本门课程教学资源开发的一个重点, 这类资源的作用显而易见, 它可以使抽象的概念形象化、具体化, 便于学生理解。

例如:在讲解“原型系统”这一概念时, 通过展示建筑物原型模型的图片来帮助同学们理解什么是“原型”;在讲解“软件的特点”这一知识点时, 对于“软件不存在磨损和老化”的这一特点, 通过展示零件磨损的图片, 与软件无磨损的图片进行对比, 让学生对软件的这一特点有更直观的感受……

课程中可开发的这类图形图像资源还有很多, 通过对这一类资源的开发和利用, 改变了传统的软件工程课程理论化、抽象化的教学方式, 使知识的传授更具形象性和生动性。

3. 动画类素材

对于涉及动态变换及变换过程的知识点, 在课程中开发了相应的动画资源来进行动态演示, 使得转换过程更加的清晰明了。

例如:变换型数据流图和事务型数据流图映射为程序结构图的变换过程、集成测试中采用深度优先或广度优先进行自顶向下结合的测试过程, 都可开发相应的动画素材来实现动态演示。

3.2 案例

在教学过程中, 还开发了大量的案例资源, 以培养学生的学习兴趣、激发学生的学习热情[2]。

例如:对于“软件危机”这一知识点, 使用软件开发史上“软件危机”的典型案例———IBM公司在开发IBM 360 系列机操作系统时所陷入的历史上著名的“软件开发泥潭”的例子来进行说明。

再比如, 在软件测试一章, 用微软公司曾经经历过的失败的经验教训来说明软件测试的重要性……

还可以让同学们自己例举一些案例, 这样不仅可以大大丰富案例的数量, 还可以提高他们的学习兴趣和热情。

3.3 应用实例

针对课程特点, 对于涉及系统分析与设计方法方面的教学内容, 补充了应用实例类教学资源来进行实例化教学[3]。

例如:在结构化方法中介绍数据流图的画法时, 例举了仓库定货系统的实例;在面向对象方法中讲解面向对象的分析与设计过程时, 例举了图书管理系统面向对象分析与设计过程的实例。

3.4 源程序实例

在软件工程课程教学中, 有大量的知识点是对设计、编码及测试中的一些普遍原理的说明, 在传统的课程教学中, 对这些知识点大多概括性的介绍, 没有与具体的程序设计实例相结合, 使得学习者在学习的过程中感觉较抽象, 很难与编程实际相结合。针对这一问题, 我们在课程中补充了程序实例类教学资源来配合对相关原理的说明, 避免了抽象化的说教, 使同学们更容易理解, 同时又使得该课程的教学与同学们的编程实践更加贴近, 缩短了理论原理与编程应用的距离。

例如:对于黑盒测试和白盒测试的几种方法, 通过相关的实例程序来进行具体化的说明;再比如, 对于面向对象的基本概念, 如类、对象、实例、消息、继承、多态等, 也开发了相应的C++源程序实例, 以说明相关概念在面向对象编程中是如何实现的。

3.5 行业新兴技术

在课程教学中, 还补充了对行业新兴技术进行介绍的课程资源, 这一类资源由于具有鲜明的课程特点, 因此在这里单独作为一类资源列出。

其中一个典型的示例, 便是在实现与编码一节所引入的对目前两大主流开发平台:.NET平台和J2EE平台进行比较的介绍性资料。

3.6 实践题目

软件工程是一门实践性很强的课程, 除了理论教学, 也安排有上机实践环节。为了更好地开展实践教学, 提高学生的实践能力、工程能力和创新能力[4], 我们精心设置了一系列功能目标明确、贴近学生学习生活实际、难度适宜的实践题目, 组成题目库, 供学生们组成开发小组自主选择题目来进行实践。这样的方式充分发挥了学生的主观能动性, 对学生相关能力的培养也起到了很好的促进作用。

3.7 软件工程文档规范及范例文档

为了更好地指导学生完成实践内容, 在课程中还提供了各种软件工程文档规范及相应的范例文档, 供同学们进行学习参考。

3.8 文献及网络资料

对于该类资源的开发, 在《规范》中提到的文献资料的基础上进行了扩展, 增加了网络资料, 并在每章教学结束时推荐给同学们, 以供他们进行更深入的学习和参考, 例如, 在测试一章, 向同学们推荐了以下文献及网络资料:

1. 参考文献:《软件测试》, 作者: (美) Ron Patton. 译者:周予滨姚静等. 机械工业出版社, 2002 年3 月

2. 51testing软件测试网http://www.51testing.com/

3. 软件测试术语http://jingyan.baidu.com/article/597a064375691c312b5243f4.html

4 结语

以上是笔者教学资源开发所涉及的一些具体内容, 在此基础上可进一步建立课程的资源目录索引。教学资源的开发是一项艰巨的工作, 还有待于在今后的教学中不断地补充和完善。通过现有资源的开发, 较大程度地丰富了该门课程的教学资源, 打破了传统的抽象化理论说教的教学模式, 在教学实践中, 明显感受到课堂有了更多的活力, 学生的学习积极性也得到了很大的提高, 对于推进软件工程课程教学模式的改革具有积极的意义。

摘要:针对传统软件工程课程教学中存在的理论性强、课程内容较抽象, 学生难于理解、学习动力不足的现象, 对作者在教学实践中所开发的几类常用教学资源进行了总结和探讨, 在传统教学资源类别的基础上补充了新的类别, 并对每一种教学资源选取了课程中的典型示例予以说明, 对软件工程教学模式改革进行了有益的探索。

关键词:软件工程,教学资源开发,教学模式改革

参考文献

[1]孙为军, 傅秀芬.软件工程课程网络教学资源建设的研究[J].广东工业大学学报 (社会科学版) , 2010 (B07) :180-182.[期刊]

[2]叶卫华.浅谈案例教学法的作用[J].职业圈, 2007 (05X) :80-82.[期刊]

[3]余阳, 汤庸.《软件工程》实例化教学探索[J].中山大学学报论丛, 2003 (5) :8-13.[期刊]

软件工程课程 篇8

[关键字] 课程项目教学改革 IT企业就业要求 职业能力 职业素质

一、课程项目化改革的背景

随着高校不断扩招,高校毕业生的人数成阶梯式增长。相应的,高校的毕业生的数量在岗位的问题上形成了巨大竞争。软件工程专业的毕业生数量也是相当庞大的,其中国家级示范性软件学院有37所,还有一定数量的省级示范性软件学院,在这种形势下, 地方高校软件工程专业的毕业生的就业形势更加严峻。高等教育分为理论研究型教育和实践应用型教育,地方高校更应看重教育的应用型,因此学科设置及课程设计应以社会需求为导向,以就业方向所需要的专业技能为指向,合理安排课程体系。传统的计算机类高等教育更注重计算机理论的培养,缺乏实战训练,导致学生毕业后很难满足企业的用人需求,不能满足软件工程专业的就业要求。结合地方高校软件工程专业的培养目标,以及IT就业市场对软件人才素质的要求,笔者认为在软件工程专业需要开展项目课程改革。

二、课程项目教学设计思路

课程项目教学设计思路是:一、根据市场的需求,动态设计课程教学内容,并设置若干个与实际应用接近的项目,课堂教学内容围绕项目展开;二、在课程的实践教学中,引入IT企业中真正的项目,将其有机的嵌入到课程实践教学中,在教师的指导下,让学生自主完成项目,教师需要对学生的项目提交物进行检查、评估。在以上的思路中,课堂教学内容、实验教学内容都与项目进度一致,培养学生的自主学习能力及岗位适应能力,让学生明确理论知识学习的必要性及如何实现理论联系实际。

三、项目教学改革系统设计实践

(一)设置课程

对于软件工程专业进行项目教学改革,首先需要对理论知识和内容进行精简和整合,明确“要设置哪些课程,为什么要开设这些课程及这些课程之间的关系”。首先,课程内容的设置要以市场需求和就业要求为依据。其次,要明确岗位对合格从业人员的要求,包括专业知识、职业能力和职业素质,然后根据要求具体设置课程;最后,整合从业要求包含的课程,理清从业要求各项能力之间的逻辑关系,重构课程体系和知识序列。软件工程专业课程的设置应打破原有学科体系下的课程结构,在完成必须进行的思想政治类课程外,要按照市场的需求动态设置课程。

(二)确定内容

首先,课程的内容必须覆盖就业需求所涉及到的专业知识,破除原有学科体系对知识既定顺序的要求,要以职业所需带动专业所学。不能让理论知识和实际应用脱节,造成学生学习兴趣的丧失,让学生产生学习知识没有实际用途的错觉。其次,课程内容应涉及就业能力及素质的培养,优秀的软件工程从业人员不但要有过硬的专业知识,包括编码能力、英语水平外,还应具备一定的思想高度,如团队精神、求知欲和进取心:(1)随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件企业中的程序员可以分为两种,一种程序员可能对编程工具很熟,专业能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能力不一定很强,但程序较为规范,团队合作意识好。第二种人更适合现代软件企业发展的需要。(2)软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。从业人员应具有较强的学习总结能力、需求理解能力以及对新技术的敏感性。

(三)实施课程改革

1、保障措施的构建

一是基于项目课程教学的资源保障。学校应为项目课程教学进行给予资源的保障。这些资源包括实验器材、实际项目的引进,网络的畅通,为学生建立良好的学习环境。

二是基于项目课程教学的主体保障。教学任务能过顺利完成,主体部分是教师,为了保障项目课程教学能取得预期的效果,应选择“双师型”教师,这种类型的教师可以外聘行业专家,或是对本校的教师进行实际项目的培训,让教师具有企业工作的经验,将这些经验融入项目教学中,让理论知识更好的融入实际工作中,明确知识在实际项目中的应用点。

三是体现工作氛围的教学场所保障。教学场所分为两类,由校内课程设计实验室和校外实训基地共同组成。课程改革根据教学进度的安排,分别在校内实验室和校外实训基地进行,使软件工程专业的学生感受到课程改革所体现的职业氛围,提升学生的职业素质。

上述的第二点和第三点可以采用在当前较为有效的“校企合作”,笔者在此不具体展开。

2、教学环节的设计

一是细致设计教学环节保证教学过程的流畅进行,安排好项目的引入时机,因材施教。

二是设计科学的课堂评价体系,采用项目课程教学方式有别于传统的课堂教学。项目课程教学更注重学生理论联系实际的能力,注重学生的应用能力,因此应加大过程的考核评价力度,淡化结果考核比重,鼓励学生积极参加到项目的实施过程中,学会学习。过程考核可以分为:教师对于学生的考核,学生之间的互评等多元化全方位考核。

总的说来,课程的项目教学法的本质是以学生就业技能与素质的培养为本位,以项目为驱动,以学生积极参与为主体,以“双师型”教师为主导,营造岗位环境的学习环境,发挥学生的自主学习性、创造性,圆满完成教师设计的项目教学任务。软件工程专业的课程项目教学法是行之有效的教学方法,能够切实提高学生的就业能力,增加学生成功就业的“本钱”。

参考文献:

[1] 张海燕,曹深燕,高职经济类专业课程项目教学改革系统设计,职业技术教育,2010.08

软件工程课程设计总结 篇9

学号:20806032039

在我们整个软件工程过程中,我体会到了许多,也学到了许多。

在项目要进行自由分组后,我们的项目小组便诞生了。我们小组由3个成员组成,在相互商量后我们也确定了我们组的项目,是做一个校园文件管理系统。我们也随即做了分工。我们的项目也正式开始了。

需求调研和分析对于软件开发过程至关重要。我们在开发时如果不进行调研和分析,那么对于后来的项目进展将产生致命的后果。我们在项目的开发中便遇到了这样的问题。我们开始自己随意的计划整个系统的设计,然后报给老师,老师作为一个客户并不是全部认同,随后我们也必须按着客户的要求更改我们的设计报告。我也明白了,再做一个系统时,必须随时和客户保持沟通,随时了解他们需要什么,他们想要什么功能。如果我们不去和客户沟通,不去调研客户的需求,做出来的系统即使在我们看来是一个很好,很完美的产品,但是如果客户不认同,那么我们所做的一切都是徒劳,还要返工去修改,费时费力。所以在做任何一个项目时,前期的需求调研和需求分析都是必须的,这是在做一个项目的基本,是关系成败的重要一环。

对于一个项目,它的需求设计也非常重要。在我们的文件管理系统开发的过程中,遇到了一些问题,出现的这些问题很多都是非常棘手的,我们为了解决这些棘手的问题浪费了大量的时间,我们不得不在工程代码上改了又改,在数据库里增表、删表、加数据、减数据,当然,在文档里也要做出相应的修改以适应新的功能。还好,我们能及时地发现问题,通过相互沟通讨论,问题也得到了解决。通过总结,我们也意识到,我们大家在做需求分析和进行需求了解时仅仅考虑了一些基本的功能,而至于管理员和客户之间的联系,以及具体的一些流程我们都没有深究,而导致我们到后期花费了大量的时间用于修复之前没有考虑周全而带来的问题。如果我们的需求设计能够比较清晰和完善,那么我们在开发过程中便会很明白的知道我们应该实现什么样的功能,在数据库里应该怎样建表,以什么方式插入数据,从而可以避免反复修改工程的问题,也能避免出现可能毁坏整个工程的问题。整个工程的需求设计对于一个项目的顺利进展至关重要。

对于文档在软件工程中的作用,我在这次项目开发过程中有了更加深刻的理解。文档在软件开发过程中是很有用的,文档是一项必不可少的东西,但文档也不能太多,太过繁琐,如果是那样就不太好了。首先我们要明确开发过程中为什么要写这些文档,文档的最根本的作用是为了更好的沟通。一个项目或产品可能需要延续很长的时间,开发过程中可能需要很多的环节,可能会遇到很多的问题和很多的解决的方法,这时,我们需要文档的帮助,我们需要有一个东西来记录,我们需要有一个共同的声音。文档只不过是一个准绳,将开发中的各个树枝树叶扶正。如果,这个准绳太多太紧,大树可能会发育的很高很直,但是就是有些畸形,如果这个准绳太少太松,大树可能就会变成灌木丛。文档的多少、繁简是有度的,绝对不能说越多越好。我觉得,文档需要说明解决问题的方法而不是解决问题的理论,因为解决问题的理论是在文档形成中做到的。文档完整即可,每一份文档说明一个问题,无需将多个文档的内容放在一个文档的里面。除了重要阶段形成文档,其它部分都只是讨论或者说是想法。不要让文档成为累赘,如果真是这样,我认为就是该考虑写这些文档的必要性的时候了。我们在文档的时候,一定要明白为什么要写这些。

在整个项目开发过程中,我们也同时遇到了许多程序接口问题,页面和功能相结合的问题,数据库建表的问题,这些问题都是源于我们项目小组成员之间的沟通不足。我深刻认识到,在项目开发时,项目小组中各个成员之间的相互沟通是非常重要的。如果我们要在功能方面作出修改,那么程序人员和页面人员及数据库人员就必须相互沟通,共同对整个程序作出相应的修改,这样才能避免最终整合时出现问题。

在这十个周里,我还对软件工程有了新的理解。在我以前的理解当中,软件工程,无非就是一个人或者几个人或一个团队集中在一起进行编写代码的工作,以实现开发出所用的软件。但现在我明白了,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。所以,软件工程就不仅仅是单一的编程过程了。它包括了系统分析->建模->概要设计->详细设计->编码->测试->维护。编码可以理解为编程,这个只占总时间的20%左右。编程只是其中的一小部分。

在这次项目里我完成了许多工作,在界面设计上我完成了,首页、全部的商品页面、全部的用户页面及部分管理员页面的制作,在后期项目整合过程中修改了功能和界面结合时出现的bug,还有数据库插入数据及解决数据库集中整合时出现的问题。这些工作我都顺利完成了,虽然并不能算是非常的出色,但也算是尽力了。现在看到自己辛劳的成果,我感到很欣慰。

软件工程课程 篇10

软件工程是建立在计算机科学基础上、指导计算机软件开发和维护的工程学科。本课程已成为计算机及信息学科相关专业最重要的专业基础课之一,在计算机科学专业和软件工程专业的人才培养上发挥着非常重要的作用。

软件工程是一门研究研究软件开发与维护的普遍原理和技术的工程学科,其研究的范围非常广泛,包括技术方法、工具和管理的等多个方面,软件项目的过程、组织和管理涉及面广,理论性、技术性、工程性都很强。软件工程自身的抽象性与应用性都很强,在目前教与学的双向过程中存在不少问题,致使教学效果很不理想。如何提高“软件工程”的教学水平和学生的学习效果,是国内外学者广泛探讨的话题。我从软件工程教学中存在的问题出发,在更新教学内容、激发学生的学习兴趣、改进教学方法与手段、加强实践环节、改革考试方式等方面提出了一些具体的建议。

二、目前教学中存在的问题

1. 教学内容陈旧。

近年来,软件工程中的WEB应用开发技术、软件重用技术、原型开发方法、软件构件、集成化CASE工具与环境等领域取得了显著的进展,而国内各高校使用的教材,因编写时间的限制,在先进技术的跟进、知识结构、内容取材及实践环节等方面或多或少存在缺陷,有的甚至还停留在对面向过程的结构化方法上,却忽略了目前更适用更流行的面向对象方法,有的教材连项目组织、软件成熟度、软件构架、项目风险等十分重要的内容都未给予足够的论述。同时,软件工程作为一门正在飞速发展的学科,目前大部分教材难以及时、全面、准确地反映当前一些新方法新技术和新工具。

2. 教学方法不当。

目前有些高校仍然把软件工程列为纯理论课程,教学的工具就是一张嘴、一支粉笔和几乎是教课书内容翻版的教学课件,使得学生往往是被动地接受知识,非常地枯燥乏味,很难激发学习兴趣。另外软件工程课程的教学内容是针对较大规模的软件项目开发而设计的,十分庞杂,涉及面非常广,很多知识建立在实践经验基础之上,这种“填鸭式”的教学方法,对于尚未踏入社会、没有项目经验的学生而言,很难理解该课程的精髓,很容易对该课程产生虚无缥缈的感觉,使整个教学过程流于形式,该课程变成需要死记硬背的课程,学生在学习完课程后将一无所获。

3. 学生学习中存在的问题。

在传统的教学过程中,软件工程往往是一门独立的理论性课,学生对软件工程的抽象理论容易感到枯燥乏味。这门课不涉及具体软件项目,不怎么涉及软件算法,没什么逻辑推理,不像程序设计课程那样能带给学生智力上的快感,激发学生的学习兴趣和热情。不少学生认为软件工程就是一些条条框框,由于缺乏实践经验,缺乏合作开发软件的感性体会,他们在学习过程中难以理解软件工程的精髓,很难在头脑中将软件工程的抽象理论和实际联系起来,因此较难对这门课程产生学习兴趣。

4. 教学实践环节薄弱。

软件工程的理论并不是空洞的理论,它的许多理论及规范均来自于实际需要和前人的经验总结,它的目标是实实在在地做出一个满足用户要求的系统出来,这是一个很具体的实践过程。通过学习,学生应该具备从事工程实践的技能,包括软件项目的系统分析、编写文档、源码设计与控制、使用工具等基本技能。因此,教师需要将基本概念、原理和实现技术与具体的软件项目相结合,以实例增进学生理解,以实践锻炼学生的工程能力。然而,在当前的教学中,普遍存在理论教学与具体实践脱节的现象,有时甚至缺乏进行教学实践的场所与环境,这样势必造成学生无法真正理解软件工程的精髓,更难以做到学以致用。

三、软件工程教学改革建议

以上分析了当前软件工程课程在教学中存在的一些问题。随着教学改革的不断深入,软件工程的教学改革在迫在眉睫。下面我就软件工程课程的教学改革谈一些建议。

1. 更新教学内容。

在教学实践中,应该结合软件工程的发展和国内外软件企业的人才需求现状,不断更新教学内容,更要注重一些新方法新技术的讲授。例如,关于软件工程方法学,重点讲授面向对象方法学,略讲传统的结构化方法,注重面向对象方法在内的一些新方法新技术,让学生尽快熟悉和掌握软件重用、快速原型、集成化CASE环境等,同时要保持教学内容对先进技术的跟进,介绍一些目前已经推出或比较成熟的新方法,如:基于组件的方法、面向Agent方法、敏捷软件方法等。而对一些没有长久生命力的,并且在今后的项目实践中又很少用到的知识,尽量少讲,这样既有助于开拓学生的视野和培养创新意识与开发能力,又能使他们步入工作岗位的时候而不落伍。

2. 提高学生的学习兴趣。

“兴趣是最好的老师”,是学生求知欲的源泉,是思维发展的动力。教师应从教材实际出发,讲究教学方法,激发出学生对本课程的学习兴趣,这对于教学效果的保障具有重要的意义。“软件工程”包含了较多的理论内容,且大多数学生都是第一次接触,是一门理论联系实际的综合性很强的课程。所以教师应通过多媒体动画等教学手段生动地剖析基本概念和基本原理,并以基本概念和基本原理贯穿软件工程知识体系的方式组织教学内容,让学生深入理解基本概念和基本原理背后的深刻内涵,并让学生系统地掌握各知识点之间的逻辑关系。要鼓励学生主动地提出问题、分析问题、解决问题,激发学生的主动学习兴趣。

课堂讨论也是一个提高学生学习兴趣的有效途径。教师在每堂课讲完之后应该给学生留出5分钟时间,要求学生通过讨论对所学知识进行总结归纳,然后进行评价。评价方式可以是学生相互交换自己总结的内容并进行讨论,最后由教师补充、纠正和提炼知识点。这种方法不仅能提高学生总结归纳能力,而且能激发出学生的学习兴趣,使学生主动地参与到教学当中。

3. 加强实践和工程训练,提高学生的实践能力。

软件工程是一门实践性很强的课程,实践环节能使学生对整门课程中的方法、技术、工具等有亲身的体验和系统理论知识的梳理,对整个教学质量的检验具有举足轻重的作用。抓好实践环节,对培养新型的合格的软件人才具有十分重要的意义。因此在努力提高课程教学质量的同时,还应该加强实践环节的管理。

软件工程的实践以课程设计为主,教师可根据学生的能力,设计一套完整的课程设计方案。课程设计的目标是通过在课程实践的一系列环节中,如需求分析、设计、编码和测试,让学生提高其综合运用软件工程的方法、技术、工具、过程进行软件开发和软件项目管理的能力,并培养其团队协作的精神。

课程设计要求完成的项目必须具有一定的规模和复杂性,教师可将学生划分为6—8人的项目小组,项目组成员相互合作共同来完成一个项目。各项目小组应严格按软件工程各阶段的要求来完成该项目,在项目开发的各关键阶段(可行性研究、需求分析、总体设计、详细设计、测试和项目开发总结),各小组都要进行报告,由老师和其他小组现场提问,最后教师给出点评,这种阶段评审有利于各小组开发进度和质量的保障。

在课程设计结束时,每个项目组应提交软件产品和规范的软件开发文档(项目开发计划、需求说明书、总体设计说明书、详细设计说明书、测试分析报告和项目开发总结报告等)。课程设计完成后必须进行现场答辩,在答辩过程中,不仅对学生进行评分,而且指出学生的不足,提出改进的意见和建议。通过现场答辩的方式可以让学生进一步明确今后需要改进的方向,使自身在分析问题、解决问题、交流沟通、团队协作、谈判沟通、适应发展等方面的能力获得较大的提高。

4. 教学方式与教学手段的改革。

软件工程的原理、方法、技术若不与实际项目结合,学生往往难以有深刻的体会。因此,为增强授课效果,提高学生学习的积极性,课堂讲授应引入项目式教学法。教师可设计一个完整的、规模适中、难易适度的软件项目,在讲授软件工程基本知识点时结合该项目进行重点讲解,即以该项目作为贯穿整个软件工程授课的主线。

为了提高课程教学质量,激发学生的学习兴趣,不仅可以采用多媒体教学方式,而且可以建立软件工程课程的教学网站。软件工程课程网站中不仅有该课程的介绍,而且有大量的教学资源 (多媒体课件、实验指导、自测题、试卷库、常用软件工程新技术介绍、新工具介绍和演示、有价值的参考书籍和网址等) ,学生还可在网站上提出自己在学习过程中遇到问题或者对本课程的教学好的建议,教师或其他学生则可进行回答或共同探讨,为广大师生学习、交流、提高提供很好的途径。

5. 考核方式的改革

很多高校软件工程课程传统的考核方式以期末书面理论考试为主,但软件工程是一门实践性非常强的课程,原有的考核方式使学生不注重实践能力的提高,倾向于被动地接受理论知识,学习缺乏兴趣和主动性,只是在考试前突击复习来应付考试。理论考试成绩不是重点,主要是看学生能否在软件开发过程中贯彻软件工程学的思想和方法。因此,要加大实践考核的比重,如课堂出勤占10%;课堂表现占10%,为力避学生考前突击现象,本课程在平时课堂教学中采取课堂提问方式或者进行一些基础理论的测验,帮助学生循序渐进地巩固基础知识点;课程设计占40%;期末考试占40%。采用以上考评方法,学生们将非常重视课堂上的发言,以及知识的运用和创新,主动学习的积极性将会大大地提高。

总而言之,要改进软件工程的课程教学,除了要遵循教育学的普遍规律、合理安排好课程内容外,还要培养学生的学习兴趣,重视理论与实践的结合。

参考文献

[1]张海藩.软件工程导论 (第五版) [M].北京:清华大学出版社, 2008.

[2]曹薇.高职院校软件工程课程改革探析[J].高教论坛, 2008, (02) .

[3]陈丽萍, 张芳.软件工程教学方法探讨[J].教学园地, 2009.3.

[4]郝水侠.《软件工程》的教学模式及方法的探索[J].科技创新导报, 2009, (01) .

上一篇:中国人面临双重挑战下一篇:犯罪规制