摘要:本章根据我校计算机学院软件工程课程设计教学的现状和学生情况, 从软件工程课程设计的教学目标与要求、设计内容与具体实施方案、学生成绩评价体系等方面, 结合教学经验对软件工程课程设计实施模式做了系统的研究与分析。
关键词:软件工程; 课程设计模式; 研究;
Abstract:
This chapter is based on the current situation of the software engineering course design teaching and the students' situation of our school, from the teaching objectives and requirements of software engineering curriculum design, design content and specific implementation plan, student achievement evaluation system, etc, the design implementation model has been systematically studied and analyzed.
Keyword:
software engineering; curriculum design mode; research;
一、引言
软件工程课程是培养学生具有计算机软件项目的分析和设计能力的核心课程。课程设计则是软件工程课程的一个重要教学环节,是对学生进行计算机软件项目的训练。通过课程设计的实施,使学生能够综合运用软件工程课程的理论和实践知识,分析和解决计算机工程的复杂实际问题,并运用所学知识熟练掌握软件方法;使学生得到实际项目的过程化训练,并具有对复杂工程问题的分析、设计和实现的能力;使学生掌握结构化、面向对象的软件方法,并能应用计算机辅助工具对较复杂的问题进行分析和设计;培养学生具有能使用网络工具及信息技术工具,查询并分析解决设计过程中所需的相关研究资料的能力。
二、课程整体规划
软件工程课程设计教学安排2周,由学生组队,通过小型项目实践软件的整个生命周期。本课程实践结合软件工程课程教学,主要目标如下:(1)通过本课程设计的实践及其前后的准备,总结、复习、领会、巩固运用软件工程课堂上所学的软件开发方法和知识。(2)为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学的多门课程知识(如软件工程、程序设计语言、数据结构、操作系统、数据库、网络编程等)创造实践机会。(3)使学生通过参加小组团队的开发实践,了解项目管理、团队合作、文档编写、口头与书面表达的重要性。通过"稍大的"富有挑战性的软件实验项目开发实践,为学生提供主动学习、深入实践、积极探索与大胆创新的机会。(4)通过课程设计实践,提高学生的自学能力、书面与口头表达能力、创造能力、软件把控能力和与团队其他成员交往和协作开发软件的能力,提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。(5)使学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握一两种较新或较流行的软件工具或计算机应用技术和技能(如基于Java (ASP、PHP等)技术的Web编程,软件开发文档编制工具Office、Visio、Rose等,数据库SQL Server或Oracle、My Sql等)。
具体的课程安排规划见下表:
三、引导式的项目实施
(一)教学任务设计
由于软件工程课程开设在大二,学生基本上学习了数据库原理与应用、java等课程,有了一点编程经验和系统概念。本课程设计把几门相关课程结合起来,寻求切合点。采用案例引导式的教学理念的实施步骤如下:(1)学习课程设计指导书和分组。学习研究课程设计指导书,进行分组(根据个人志趣自愿结合3-5人一组),并且明确每个学生在开发小组中扮演的角色及承担的职责(包括选出组长)。(2)确定目标、初步方案,准备、试用开发环境与工具;每个小组确定开发目标及初步方案;选择、准备、试用开发平台及数据库、辅助设计工具、其他有关开发工具。(3)完成软件项目生命周期各阶段的工作。
(二)团队分工与项目计划安排
小组开发各阶段的任务及成员角色分工。在实施过程中,小组长必须承担起领导责任,不定期召开小组开发工作研讨会(建议5-8次)。会前有准备,会议有记录(包括日期、出席人员、主题、讨论纪要、结论与问题、计划与行动分工。事后要保存好以备教师检查),会后有分工和检查。开发小组工作会议的可能内容:(1)选题内容及开发方案研讨;小组成员分工;开发计划拟定。(2)同类系统资料查询、研究、分析,制定项目规划书,需求分析说明书;系统原型及成员分工确认。(3)原型系统研讨或者需求分析确认。(4)数据库设计及应用研讨。(5)系统概要设计(模块设计或者类设计)。(6)系统集成测试、开发文档整理、汇总。(7)关键技术难点的解决方案研讨。
四、发散式的软件创意
发散式教学是一种注重锻炼学生思维能力与创新意识的教学方法,在学生掌握一定知识后,能够多角度、多层次地提出问题,并思考解决问题。在软件工程课程设计教学中,采用发散式的教学理念,激发学生软件设计的潜力与兴趣,具体体现在本课程设计的教学内容上。
1.设计题目。从学生身边的小应用出发。身处在问题当中,激发创新与改进意识。根据我校管理模式,设计如下题目:湖工大奖学金评定系统;计算机学院监考安排系统;湖工大社团管理系统;校园二手货交易系统;湖工大兼职系统;计算机学院作业管理系统;计算机学院课程设计管理系统;计算机学院教师考核系统,湖工大校友交流平台;班级管理APP.
2.设计报告要求。根据软件企业的文档规范要求,合理制定了本课程设计的报告内容与规范要求:(1)书面材料。每个学生提交个人课程设计稿交给组长。由组长汇总一套(整个系统的一套文档,按照软件生命周期顺序装订)连同小组打印报告一并按时交给教师(要求注明分工、角色、个人承担和完成任务等)。小组项目开发记录本(含小组进行课程设计的活动日志与会议记录)。注:组长把小组报告、开发记录本统一交给教师。报告内容包括: (1) 系统规划书; (2) 项目计划书(角色承担和任务分工); (3) 需求分析报告(文字加数据流图或者用例图); (4) 总体设计说明书(文字加结构图或者类图、对象图); (5) 数据库设计说明书(cdm图、pdm图); (6) 详细设计(核心模块算法及程序结构图); (7) 测试报告(测试方案、测试结果); (8) 使用文档(包括安装说明和使用说明)与帮助文档; (9) 总结设计收获体会、设计的特点和方案的优缺点; (10) 参考文献。(2)软件与电子文档。 (1) 电子文档:报告的电子文档、数据库的sql文件、数据字典的excel文件; (2) 系统的源代码。
五、结语
本文论述了计算机相关专业的软件工程课程设计的教学模式,在工作任务模式的思想下,根据软件的开发流程以及学生的学习特点,用引导式教学形式使学生了解软件的整个生命周期及运作模式,再通过发散式教学,拓宽学生的设计思维,从而对软件工程课程设计提出并讨论新的教学模式。
参考文献
[1]曾明星, 周清平, 王晓波, 李珍。软件工程专业"项目化"教学实施体系的构建[J].实验室研究与探索, 2013, (05) .
[2]何月梅, 杜海艳, 王保民。《软件工程》课程教学改革的探索[J].中国成人教育, 2009, (13) .
1软件发展危机1.1软件的定义及特点软件是按照顺序组织的计算机数据和指令的集合。一般软件被分为系统软件、应用软件和编程语言。其中系统软件为计算机使用提供最基本的功能,最基础的软件就是操作系统;应用软件是在系统软件的基础上衍生出来的为用户提...
随着网络信息时代的到来,人们的生活中越来越离不开手机、电脑等电子产品。他们可以通过软件购买商品、点餐、预约车等服务。...
1软件工程需求分析综述.通常情况下一个完整的软件开发链条中包括前期的需求分析与软件综合设计与中期的软件代码编写以及后期的软件测试以及维护过程.而其中最重要的就是前期进行良好的软件工程需求分析,只有在深入、准确分析的基础之上才能有序、合理的进...
数据挖掘技术是软件工程领域中一项新的应用技术,可以将数据信息转化成知识与信息的方式,能够满足人们对信息的大量需求.在软件工程领域中,数据挖掘技术可以应用到漏洞数据库、源代码库、版本信息记录等数据库中进行大量数据信息的挖掘.因此,数据挖掘技术也称...
作为计算机软件开发的主体,技术人员负责软件工程规划、生产和检验等多个环节,并在其中起到了重要的作用。...
随着管理信息系统研究以及应用的不断深入,越来越多的相关研究人士意识到,如果在管理信息系统研究的过程中不应用软件工程思想,那么则会在很大程度上制约管理信息系统开发领域的进步。我国管理信息系统开发领域虽然对软件工程思想的应用有了一定的研究,并...
随着我国经济的飞速增长,计算机软件的开发规模不断扩大,单纯的软件升级已经无法满足我国越来越高要求的市场需要,为满足我国软件工程数据快速增长的技术需求,软件工程数据挖掘技术的建设逐渐成为我国信息化发展过程中需要着重关注的重点。1软件工程数据...
工程基础建设是软件开发的重要方面,提升软件工程化开发水准,在预算范围内开发符合要求的高质量应用软件,是软件工程化建设发展的关键。软件工程化发展的过程中应该根据实际情况出发,利用现有工作经验进行软件工程化建设。1软件工程化的基本形式软件工...
在计算机软件技术的高速发展中,为我国现有社会发展建设提供了帮助,但是由于计算机软件工程建设工作实施是具有双面性的,如果不能科学的管理,将会出现一系列的问题。...
计算机软件的工程化是十分重要的,计算机作为新兴的学科,涉及的知识面很广,其中包括了计算机管理学、计算机逻辑学、逻辑数学、计算机科学等科目。...