《软件工程》课程标准
【课程名称】软件工程 【课程编码】
【课程类别】专业核心课 【适用专业】计算机及相关专业
【授课单位】 【总 学 时】72
1.课程定位和课程设计
1.1 课程性质
《软件工程》是一门迅速发展的新兴学科,是计算机及相关专业的一门专业核心课程,其研究的范围非常广泛,包括技术方法、工具和管理等许多方面,而且新的技术方法和工具源源不断涌现。该学科为软件的开发提供了一条科学途径,缓解了软件危机。
1.2 课程设计思路
本课程着重从实用角度讲述软件工程的基本概念、原理和方法,介绍如何规范地开发和维护软件;合理地安排软件开发和维护的过程;规范地书写软件工程的文档资料,以提高软件开发的效率和质量。整个课程分12章,内容涵盖:软件工程概述(软件生存周期、开发模型),软件计划(问题定义、可行性研究),需求分析(方法、步骤、图形工具、数据字典),结构化设计、过程设计工具、界面设计、数据代码设计、软件设计文档,软件编码和测试,软件维护、软件重用、逆向工程、再工程,面向对象方法与UML,面向对象软件设计与实现,Web软件工程(Web软件特性、层次结构、可用技术、设计模式、WebApp设计与测试),移动互联网与软件工程(移动互联网三要素、应用技术、安全技术),软件工程管理,软件工程技术的发展(敏捷开发与极限编程、净室软件工程、面向服务的架构技术、云计算、网构软件),软件开发实例——网上商品竞拍系统。
本课程贯彻“技能培养为主,知识够用为度”的教学思想,以学生为主体,注重学生实际操作能力与应用能力的培养。通过案例和新技术的应用,着重培养学生的实践应用技能。
2.课程目标
通过本课程的学习,旨在使学生了解软件工程的基本思想及内涵、各种软件生命周期模型的优缺点;了解软件生命周期的各个阶段的任务、目的及常用方法、最新技术及工具;熟悉面向对象软件开发方法基本思想及策略,软件技术文档构成要素及撰写方法,能编制规范的软件技术文档;以及熟练掌握各种建模工具的使用,为学生今后的工作奠定良好的基础。
3.课程内容和课时安排
本课程共分为十二个部分,分别为概述、软件计划、结构化设计、软件编码和软件测试、软件维护和软件重用、面向对象方法学与UML、面向对象软件设计与实现、Web软件工程、移动互联网与软件工程、软件工程管理、软件工程技术的发展和实例——网上商品竞拍系统。本课程具体的课程内容和课时分配如表1所示。
表1 《软件工程》课程内容及课时分配表
|
所用 教材 |
课程内容 |
学时 |
||
|
软件工程 |
4 |
72 |
||
|
1.3软件生存周期 |
||||
|
1.4软件开发模型 |
||||
|
2.1软件问题定义及可行性研究 |
6 |
|||
|
2.2需求分析 |
||||
|
2.3需求分析图形工具 |
||||
|
2.4数据字典 |
||||
|
2.5软件计划阶段文档 |
||||
|
3.1软件设计步骤 |
10 |
|||
|
3.2软件结构设计 |
||||
|
3.3软件结构设计的图形工具 |
||||
|
3.4面向数据流的设计方法 |
||||
|
3.5过程设计工具 |
||||
|
3.6用户界面设计 |
||||
|
3.7数据代码设计 |
||||
|
3.8面向数据结构的设计方法 |
||||
|
3.9软件设计文档 |
||||
|
4.1结构化程序设计 |
6 |
|||
|
4.2软件测试目标 |
||||
|
4.3软件测试方法 |
||||
|
4.4软件测试步骤 |
||||
|
4.5设计软件测试方案 |
||||
|
4.6软件测试原则和策略 |
||||
|
4.7软件调试、验证与确认 |
||||
|
4.8软件测试文档 |
||||
|
5.1软件维护 |
4 |
|||
|
5.2软件重用和再工程 |
||||
|
6.1面向对象方法概述 |
6 |
|||
|
6.4UML的应用 |
||||
|
7.1面向对象分析 |
10 |
|||
|
7.2软件架构设计和对象设计 |
||||
|
7.3面向对象系统的实现 |
||||
|
7.4面向对象系统的测试 |
||||
|
7.5面向对象方法实例 |
||||
|
8.1Web软件的特性 |
8 |
|||
|
8.2Web的层次结构 |
||||
|
8.3客户端层可用的技术 |
||||
|
8.4Web服务器层使用的技术 |
||||
|
8.5Web软件设计模式 |
||||
|
8.6WebApp设计 |
||||
|
8.7WebApp测试 |
||||
|
9.1移动互联网简介 |
4 |
|||
|
9.2移动互联网应用技术 |
||||
|
9.3移动互联网应用安全技术 |
||||
|
10.1软件工程管理概述 |
6 |
|||
|
10.2软件规模估算 |
||||
|
10.3进度计划 |
||||
|
10.4人员组织 |
||||
|
10.5软件配置管理 |
||||
|
10.6软件质量保证 |
||||
|
10.7软件开发风险管理 |
||||
|
10.8软件工程标准与软件文档 |
||||
|
11.1敏捷开发与极限编程技术 |
4 |
|||
|
11.2净室软件工程 |
||||
|
11.3面向服务的架构技术 |
||||
|
11.4云计算与软件开发 |
||||
|
11.5网构软件 |
||||
|
12.1问题定义和可行性研究 |
4 |
|||
|
12.2需求分析和概要设计 |
||||
|
12.3模块设计 |
||||
|
12.4软件测试 |
||||
4.课程实施
4.1 教学条件
我校十分注重建设和完善本课程的教学设施,如多媒体教室、网络教学平台、网络数据库等。同时,我校有一支强大的师资队伍,可以为本课程的教学和课程建设提供有力保障。
在网络资源方面,我校选择与文旌课堂建立课程合作,可有效利用文旌课堂的文旌教学管理平台实施“线上+线下”的混合教学模式,可以帮助教师进行教学,促进学生高效学习。
4.2 教学方法建议
本课程遵循“教师引导,学生为主”的原则,采用讲解、多媒体演示、翻转课堂、讨论等多种方法,努力为学生创设更多知识应用的机会。
(1)讲解法:主要用于讲授本课程的基础知识等理论性较强的知识。
(2)多媒体演示法:在讲解过程中,借助音频、视频、图片等直观手段来呈现教学内容,在激发其学习兴趣和积极性的同时,不断提高其知识储备能力和综合文化素质。
(3)翻转课堂法:坚持学生的主体地位,鼓励学生在课上对自己学到的知识点进行分享和讲解,并对其讲解进行补充和评价,不断完善学生的知识结构,加深其对所学知识的理解。
(4)讨论法:鼓励学生运用所学知识进行主题讨论,使其在讨论中逐步提升思辨能力、欣赏能力等。
教师在教学过程中,可根据学生的实际情况灵活选用教学方法,因材施教,尽量照顾到每一个学生的学习需求。
4.3 教学评价与考核要求
本课程考核体现多元评价方法,重视教学过程评价,突出阶段评价、目标评价、理论与实践一体化评价等。考核成绩包括形成性测评(50%)和终结性测评(50%)。
形成性测评占50%,其中
1.考勤(10%):本项考核通过课前点名考核学生的课堂出勤率。迟到15分钟以内每次扣1分,迟到15分钟以上或无故缺勤一节课每次扣2分,无故缺勤5次及以上者,取消本课程成绩。
2.课程参与度(20%):本项考核主要通过线上课程参与度、线下课堂提问和课堂积极发言来评判学生的学习态度、学习主动性、课堂参与程度,以及学生的思辨能力、问题解决能力及其对课堂教学知识的掌握情况等。只要学生能按时参加线上和线下听讲,即可获得10分的基本分。学生上课发言一次或线上讨论区有效发言(与话题相关)一次,即可另外获得0.5分,课堂和讨论区发言最多可得10分。学生的最后成绩为“10+发言得分”。
3.作业情况(20%):本项考核主要通过学生作业来检测其对教学主体内容的掌握与理解程度、实际应用知识的能力、自主学习能力、信息收集与处理能力等。每次作业成绩按照相应标准而定,学生作业质量划分为优秀(10分)、良好(8分)、中等(7分)、及格(6分)和不及格(0分)五个档次。最后的作业成绩为学生作业完成质量成绩的平均数。
终结性测评占50%。主要考核学生在学完本课程后所达到的水平,通过期末考试进行考核。期末考试为线上考核(20%)+线下大作业形式(30%)形式,主要评估学生对本门课程基本知识的掌握情况与综合运用能力。