一、课程描述

《软件工程》课程是计算机科学与技术专业必修的一门专业课程。为了摆脱软件危机的困扰,一门研究软件开发与维护的普遍原理和技术的工程学科——软件工程学从60年代末期开始迅速发展起来了,现在它已经成为计算机科学技术的一个重要分支,一个异常活跃的研究领域。严格遵循软件工程方法论可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。软件工程学(通常简称软件工程)研究的范围非常广泛,包括技术方法、工具和管理等许多方面,软件工程又是一门迅速发展的新兴学科,新的技术方法和工具不断涌现,真可谓五花八门层出不穷。本课程将着重从实用角度讲述软件工程的基本原理、概念、方法、工具和过程,同时也尽量注意课程的全面性和系统性。使学生学完本课程之后既能对实际的软件开发工作有所帮助,又能为今后深入研究这门学科奠定良好的基础。

《软件工程》课程是我院计算机专业的主要专业课程。该课程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。主要包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。

为培养学生的计算机应用水平,提高学生分析问题解决问题的能力,掌握开发中、大型软件的过程、方法、工具,高起点地介绍软件工程技术与最新发展,从 1996学年起,在计算机科学与技术专业中开设了《软件工程》课程,全面介绍了软件工程学科的三个组成要素:过程 --- 方法 --- 工具,2000年以后选用了《软件工程导论》教材,该教材是我国比较优秀的精品教材,连续出版四版,内容、方法、工具、技术、观点都比较先进。所以在该课程教学中结合教材内容和案例分析,加大了面向对象的系统分析与设计方法,结合 UML 建模语言与 CASE 工具,要求学生使用开发工具,提高软件系统开发的自动化水平,介绍了软件工程的一些新的技术,如面向 WEB 系统的 UML 扩展建模, Petri 网,形式化开发方法等内容。通过几年的教学实践,培养了学生规范化的软件开发方法与技能,并结合实际开发项目,使学生能够按照软件工程标准书写软件文档,能够掌握 CASE 工具的基本使用,通过案例教学和管理系统的实际开发,加强了学生开发管理系统的训练,学生的理论知识与实际能力的提高也反映在毕业设计中,学生基础理论扎实、动手能力强,能够解决实际问题,得到了相关课程老师的肯定与学生的欢迎。

  在实践环节中,安排了的《软件工程》课程设计,课程设计强调通过实际管理系统的开发、分析、训练,掌握与理解软件工程学中的基本概念、方法和原则。课程设计使学生进行一个从软件计划、需求分析、设计、编码、测试和软件开发全过程的训练,要求能够按照 ISO 的软件工程标准书写文档,课程设计作为一项实践活动是培养这种能力的重要环节。通过课程设计,可以将所学的理论,方法和技术有机地串联起来,从而为将来实践和进一步深造打下基础。也为最后的毕业设计做好理论与实践上的准备。

本课程的目的是通过对传统的面向过程的软件开发方法和面向对象的软件开发方法的介绍,使学生掌握开发高质量软件的方法;通过对软件开发过程和过程管理技术的学习,使学生了解如何进行软件度量和管理,怎样进行质量保证活动,从而能够有效地策划和管理软件开发活动。为今后毕业论文的撰写和从事软件开发和应用打下良好的基础。在实践性教学中,要求结合设计应用开发实例,采用 开发工具,完成一个小型软件系统开发的全过程,培养学生在软件设计过程中的分析问题解决问题的能力。

二、课程内容体系结构主要包括;

软件危机与软件开发过程与模型

软件工程八个阶段的概念、方法、过程、工具

软件成本的估算与度量

形式化开发方法介绍

需求分析

总体设计、详细设计、编码和软件测试

面向对象的分析、设计、实现

软件复杂度度量

软件项目与配置管理

CASE 工具的掌握与使用

三、教学组织方式与目的

针对本课程教学内容多,知识面广,学生不易全面理解掌握的特点,任课教师认真备课,在教学方法上采用黑板讲述和多媒体教学方式相结合、课堂案例讨论与习题讨论相结合的手段,不仅强调理论知识,还注意培养学生的互相沟通能力和团队合作能力,安排学生分小组进行项目实践,学生课下自行调研,分析问题,参与项目研究,撰写调研报告。使学生切实掌握软件工程方法与项目管理能力。

本课程的目的是通过对传统的面向过程的软件开发方法和面向对象的软件开发方法的介绍,使学生掌握开发高质量软件的方法;通过对软件开发过程和过程管理技术的学习,使学生了解如何进行软件度量和管理,怎样进行质量保证活动,从而能够有效地策划和管理软件开发活动。为今后毕业论文的撰写和从事软件开发和应用打下良好的基础。在实践性教学中,要求结合设计应用开发实例,采用 开发工具,完成一个小型软件系统开发的全过程,培养学生在软件设计过程中的分析问题解决问题的能力。

四、实践性教学

在实践环节中,结合教学内容安排了四周的《软件工程》课程设计,课程设计强调通过实际管理系统开发的训练掌握与理解软件工程学中的基本概念、方法和原则。课程设计使学生进行一个从软件计划、需求分析、设计、编码、测试和软件开发全过程的训练,要求能够按照 ISO 的软件工程标准书写文档,课程设计作为一项实践活动是培养这种能力的重要环节。通过课程设计,可以将所学的理论,方法和技术有机地串联起来,从而为将来走向工作岗位从事计算机应用和进一步深造打下基础。也为最后的毕业设计做好理论与实践上的准备。

五、教学过程管理

严格按大纲要求,认真、充分备课,为人师表, 教书育人, 精通教学内容,能适当反映学科最新发展;能了解掌握学生情况,严格要求并主动开展教育工作,使学生具有浓厚的学习兴趣和良好的学习风气。课程组教师能够在规定的学时内,完成课程全部教学任务要求。另外适当安排课堂讨论或答疑方式,解答学生重点、难点问题。课程组教师讲课有启发性,有深度,有利于学生创新精神和实践能力的培养。对学生的作业和实验报告提出具体的要求,学生基本上都能认真、全部、按时完成,对作业、实验报告,教师全部做到了全批全改,并对作业和实验报告中出现的普遍问题集中讲解答疑。 教学质量较高,学生评价好。