《软件工程——原理·方法与应用》
课程教学大纲(48学时)
适用专业:计算机科学与技术专业、计算机软件专业、计算机应用专业等学时数:48 讲课:32 课内实验:16 学分:3
编写者:顾春华一、教学性质、目的与要求
《软件工程》是计算机科学与技术专业、计算机软件专业、计算机应用等专业本、专科生的一门的专业基础课,旨在使学生掌握软件工程的基本概念、原理和方法,从软件开发技术、软件工程管理和软件工程环境等几个方面了解如何将系统的、规范化的和可以度量的工程方法运用于软件开发和维护中。要求学生通过本门课的学习,基本掌握结构化方法、面向对象方法等软件开发技术,初步了解软件复用的概念及基于构件的开发方法,同时对软件工程管理和环境等内容有一个总体的了解。
作为高校本科软件工程课的主要教材,《软件工程——原理·方法与应用》并行讲解了第一、二代软件工程,全书注重实践,广举实例,名副其实地成为原理与应用紧密结合的教材。如果适当删节,也可供专科学生软件工程课使用。
二、教学内容及学时分配本课程共包括15章,讲课需要31学时,余下1学时,可用于复习或作为机动时间。
第一章 绪论(2学时)
本章主要介绍软件的基本概念、软件危机、软件工程学的范畴、传统软件工程和面向对象软件工程以及软件工程的应用。最后对软件工程教学中的常见问题进行了讨论,给出了本书的导读。
重点掌握:学习软件工程的意义,面向对象软件工程和传统软件工程的比较。
第二章 软件生存期和软件开发模型(2学时)
本章从叙述软件生存周期开始,介绍了传统的软件开发模型(瀑布模型、快速原型模型)、软件演化模型(增量模型、螺旋模型)、面向对象过程模型(构件集成模型)、基于形式化方法的软件开发模型(转换模型、净室模型)等。
重点掌握:各种软件开发模型的内容,不同开发模型的特点比较。
第三章 软件需求分析(4学时)
需求分析是软件生存周期中的一个重要阶段,本章在介绍了软件需求分析的任务、步骤后,分别按结构化和面向对象两类方法,给出了需求分析模型和它们的描述工具,并结合实例进一步阐述了结构化分析和面向对象分析的过程。
重点掌握:两种分析模型。
难点:分析模型描述工具
第四章 软件设计概述(2学时)
软件设计是软件开发中最富有创造性的一个阶段。本章主要介绍软件设计的一般概念,包括软件设计的任务、基本原理、模块化设计和设计文档等内容。这些概念适用于任何开发方法和开发过程,可以为后面两章的教学奠定基础。
重点掌握,软件设计的任务、基本概念,模块化设计,设计文档。
难点:模块与构件,抽象与细化,信息隐藏等第五章 传统的设计方法(4学时)
本章介绍了传统的设计模型,以及从分析模型导出设计模型的一般方法。重点讲述了面向数据流设计的结构化设计方法(包括结构设计和过程设计)和面向数据结构设计的Jackson设计方法。
重点掌握,结构化设计模型,结构化设计方法。
第六章 面向对象的设计方法(4学时)
本章概述了面向对象设计的任务和设计模型,并从系统设计、对象设计和领域对象设计等几个方面介绍了面向对象设计的主要内容和描述工具。
重点掌握内容:模型对象设计模型,系统设计,对象设计。
难点:领域对象设计第七章 UML(1学时)
本章主要讲述统一建模语言UML的组成、特点和应用,以及如何进行静态建模、动态建模和物理架构建模,最后简单介绍RUP。本章内容主要由学生自学,课堂学时仅指明重点,有条件时可结合模拟项目进行实践。
重点掌握内容:UML中的视图与图。
第八章 编码和语言选择(自学)
本章主要讲述编码的目的与风格,常见的编码语言和编码语言的选择,主要由学生自学。
重点掌握内容:编码的风格,编码语言的选择。
第九章 软件测试(4学时)
本章阐明了测试的基本概念,用大量实例详细介绍了黑盒测试和白盒测试的测试用例设计方法,以及面向过程多模块程序的测试策略,以及常用的纠错技术。最后介绍了面向对象软件的测试策略和面向对象的测试用例设计,讨论了它们与传统方法的差异。
重点掌握,黑盒测试,白盒测试,多模块程序测试,面向对象的测试。
难点:测试用例设计,面向对象的测试用例设计第十章 软件复用(2学时)
本章概述了软件复用的基本概念,介绍了领域工程(包括领域分析、可复用构件、可复用构件库)和基于构件的软件开发等内容,简单讨论了面向对象技术与软件复用技术的相互关系。
重点掌握内容:软件复用的概念,领域工程,基于构件的软件开发。
难点:可复用构件库第十一章 软件维护(1学时)
本章介绍了软件维护的种类,软件可维护性的属性,以及软件维护的实施和管理等内容,简介了软件再工程的概念和方法。
重点掌握内容:软件维护,软件再工程。
第十二章 软件项目计划(1学时)
软件生存周期的起始两个阶段是问题定义和可行性研究,本章补叙了这两个阶段的基本活动,同时介绍了软件风险分析和项目计划文档等内容。
重点掌握内容:问题定义、可行性研究、项目计划。
难点:软件风险分析第十三章 软件工程管理(1学时)
本章简要介绍了软件工程管理的相关内容,包括软件估算模型、软件成本估计、人员的分配与组织、项目进度安排和软件知识产权保护。
重点掌握内容:资源估算模型,COCOMO模型,软件项目管理。
难点:软件成本估计第十四章 软件质量管理(2学时)
本章在概述了软件质量保证和认证的基本概念后,介绍了软件可靠性、程序正确性证明、软件度量以及CMM软件能力成熟度模型、ISO 9000国际标准等内容。
重点掌握内容:质量保证和质量认证的基本概念,软件可靠性,CMM软件能力成熟度模型和ISO 9000国际标准等。
难点:程序正确性证明、软件度量第十五章 软件工程环境(1学时)
本章介绍了软件工程环境的基本概念,理想环境的模型,CASE环境的组成与结构等内容,给出了两个CASE环境的实例。
重点掌握内容:理想环境模型,CASE环境的组成。
三,教学基本要求
1. 课堂讲授在多媒体教室中采用电子教案授课,上课时边讲边演示。
2. 作业每章适当布置课后作业。
作业批改方式:个别抽查(每个同学的作业至少批改一次)、习题课集体讲解、通过网络公布参考答案。
课内实验 (16学时)
选择有一定规模的实际项目作为实验内容,划分成多个子系统后由学生分组设计与开发,实验进度和课堂教学同步,由教师给出文档标准模板,学生分别担任项目经理,项目组长,系统分析员,程序员和测试员等角色,参与实际项目的管理、分析、设计、编码和测试等工作并书写完整的文档;项目经理和项目组长还要考虑子系统间的接口,项目组协调等工作考核方式平时上课、作业 30%
实验演示、团队协作及文档 40%
期末笔试 30%。
四、本课程与其它课程的联系先修课程:程序设计语言后继课程,
五、教材及参考教材教材:,软件工程 原理、方法与应用》史济民等编著 高等教育出版社参考教材:《Software Engineering –A Practitioner’s Approach》Fifth Edition,R.S.Pressman,Mc Graw Hill
《Software Engineering Theory and Practice.》Second Edition,Shari L,Pfleeger,Prentice Hall
《软件工程》,齐治昌等,高等教育出版社