课程简介 Course Introduction
《软件工程》是计算机科学与技术等专业教学计划中一门综合性和实践性很强的核心课程。本课程的目的与任务主要是讲授软件开发的原理、方法及过程,使学生了解和掌握开发软件应遵循的流程、准则、标准和规范,  了解和掌握开发软件的最新技术和工具,培养学生的软件分析能力和实际动手能力,学会用工程化的方法开发软件,为今后更深入地学习和从事软件工程实践打下良好的基础。
一、教学目的与要求
基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件开发环境与开发工具,软件的评审、测试与维护,项目计划与项目管理。
基本要求:了解软件项目开发和维护的一般过程,了解软件开发的传统方法、最新方法以及软件工程领域的发展方向,能用软件工程的方法参与软件项目的分析、设计、实现和维护,能按软件工程规范编写软件文档。
二、教学重点与难点
教学重点:软件开发各阶段的目标、任务、特点和步骤,结构化系统分析、系统设计、系统实现和系统维护,面向对象的分析和建模、面向对象设计、面向对象的实现过程。
教学难点:软件需求分析,软件测试。
三、教学方法与手段
本课程概念较多,因此教学形式以讲授为主。对课程中的关键性概念、设计思想方面的问题辅以课堂讨论的形式,作业应尽可能在CASE环境下完成,课程实训以小组为单位,各小组应首先构建出基本体现主流软件技术的开发环境,并严格遵循软件工程规范进行软件项目的分析、设计、实现、维护和编写软件文档。
教学大纲 Teaching Syllabus

软件工程》课程教学大纲

课程类型: 必修课 课程代码: 课程学时: 64 学分: 4

适用专业:计算机科学与技术、软件工程、信息与计算科学等(师范/非师范)等本科专业

开课时间:年级 1或2 学期 开课单位: 计算机科学学院

大纲执笔人: 谢赞福 大纲审定人:

《软件工程》是计算机科学与技术等专业教学计划中一门综合性和实践性很强的核心课程。本课程的目的与任务主要是讲授软件开发的原理、方法及过程,使学生了解和掌握开发软件应遵循的流程、准则、标准和规范, 了解和掌握开发软件的最新技术和工具,培养学生的软件分析能力和实际动手能力,学会用工程化的方法开发软件,为今后更深入地学习和从事软件工程实践打下良好的基础。

一、教学目的与要求

基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件开发环境与开发工具,软件的评审、测试与维护,项目计划与项目管理。

基本要求:了解软件项目开发和维护的一般过程,了解软件开发的传统方法、最新方法以及软件工程领域的发展方向,能用软件工程的方法参与软件项目的分析、设计、实现和维护,能按软件工程规范编写软件文档。

二、教学重点与难点

教学重点:软件开发各阶段的目标、任务、特点和步骤,结构化系统分析、系统设计、系统实现和系统维护,面向对象的分析和建模、面向对象设计、面向对象的实现过程。

教学难点:软件需求分析,软件测试。

三、教学方法与手段

本课程概念较多,因此教学形式以讲授为主。对课程中的关键性概念、设计思想方面的问题辅以课堂讨论的形式,作业应尽可能在CASE环境下完成,课程实训以小组为单位,各小组应首先构建出基本体现主流软件技术的开发环境,并严格遵循软件工程规范进行软件项目的分析、设计、实现、维护和编写软件文档。

四、教学内容、目标与学时分配

本课程采用多媒体教学形式,用可视化方法演绎概念,通过实际操作讲解软件开发环境和开发过程。

具体的教学过程和学时分配如下:

(一)软件工程概述(6学时)

1、教学内容

(1)软件的概念:软件的发展、软件的定义、软件的特点、软件的种类。

(2)软件工程的概念:软件危机与软件工程的定义、软件工程的目标、软件工程的原则。

(3)软件生存周期与软件开发模型:瀑布模型、原型模型、螺旋模型、面向对象与组件模型、 混合模型

2、教学要求

了解:软件生命周期及软件开发的各个模型。

理解:产生软件危机的原因,软件工程方法的重要意义。

掌握:三类软件开发方法:面向数据流方法、面向数据结构方法和面向对象方法。

(二)软件计划(3学时)

1、教学内容

(1)可行性研究的任务

(2)可行性研究的步骤

(3)系统流程图

(4)成本/效益分析

2、教学要求

了解:可行性分析的基础和主要任务。

掌握:可行性研究的方法和步骤。

(三)软件需求分析(5学时)

1、教学内容

(1)需求分析的任务与步骤:需求分析的任务、 需求分析的步骤、 需求分析的原则

(2)需求分析方法:面向数据流的分析方法、面向数据结构的分析方法

(3)需求规格说明与评审

2、教学要求:

了解:需求分析的目标、任务和步骤。

理解:需求分析文档在软件工程中的意义,需求分析阶段评审和复审的重要性。

掌握:结构化需求分析的方法,能正确使用数据流图、数据词典和加工说明等需求描述手段,编写需求分析文档。

(四)概要设计(5学时)

1、教学内容

(1)软件设计的原则:模块化、抽象、信息隐藏和局部化、模块独立性。

(2)概要设计的任务与步骤:概要设计的任务、概要设计的步骤。

(3)概要设计的方法:面向数据流的设计方法、面向数据结构的设计方法。

(4)概要设计文档与评审。

2、教学要求

了解:软件设计的概念与原则。

理解:软件设计原则和设计文档在软件工程中的意义,概要设计阶段评审和复审的重要性。

掌握:面向数据流的设计方法、面向数据结构的设计方法,编写概要设计文档

(五)详细设计(5学时)

1、教学内容

(1)详细设计的任务与原则:详细设计的任务、详细设计的原则。

(2)详细设计的方法:程序流程图PFC、N-S图、PAD图、HIPO图、过程设计语言PDL。

(3)详细设计规格说明与评审。

2、教学要求

了解:详细设计的目标、任务、原则与步骤,详细设计方法的选择。

理解:详细设计文档在软件工程中的意义,详细设计阶段评审和复审的重要性。

掌握:详细设计的方法,详细设计文档编写,详细设计的过程描述工具(程序流程图、盒图、PAD图和HIPO图、过程设计语言PDL)的使用。

(六)面向对象的分析与设计方法(8学时)

1、教学内容

(1)面向对象方法的基本概念和特征。

(2)面向对象分析:确定对象、确定属性、定义操作、对象间通信。

(3)面向对象设计:面向对象设计概念、面向对象设计方法、程序构件及接口、细节设计。

(4)UML方法:UML的发展与特点、UML建模、利用UML开发软件的过程。

(5)面向对象实例分析与设计。

2、教学要求

了解:面向对象的基本概念和特征,对象、类、类的层次结构,方法和消息的实质,对象模型、动态模型、功能模型的元素、结构和构造方法。

理解:面向对象分析的设计的方法,面向对象方法对软件工程的重要意义。

掌握:UML建模的方法。

(七)实现(编程) (4学时)

1、教学内容

(1)程序设计语言:程序设计语言分类、程序设计语言特点、程序设计语言选择

(2)编程风格

(3)编程效率

(4)编程安全

(5)面向对象编程技术

2、教学要求

了解:程序设计的目标与任务、编程使用的程序设计语言的特性以及程序设计风格的重要性。

理解:编程应当遵循的原则以及面向对象编程的特点。

掌握:两种以上主要结构化编程语言和面向对象编程语言。

(八)软件测试(6学时)

1、教学内容

(1)结构化的软件测试:软件测试的概念和原则、测试的概念、测试的原则、测试的方法

(2)软件测试技术:白盒测试、黑盒测试

(3)软件测试的步骤:单元测试、综合测试、确认测试、系统测试

(4)纠错技术

(5)面向对象的软件测试

(6)软件测试计划与测试分析报告

2、教学要求

了解:软件测试的目标、原则以及测试方案的建立和测试过程。

掌握:软件测试的方法和步骤,软件排错和软件可靠性的评测方法。

(九)软件维护(5学时)

1、教学内容

(1)软件维护的定义、分类、特点

(2)软件维护步骤及组织

(3)软件的可维护性

(4)软件维护的副作用

(5)逆向工程和再生工程

2、教学要求

了解:软件维护过程

(十)软件质量与质量保证(4学时)

1、教学内容

(1)软件质量的定义

(2)影响软件质量的因素

(3)软件质量保证策略

(4)软件质量保证活动

(5)软件质量保证标准

(6)软件评审

2、教学要求

了解:软件维护过程

掌握:软件质量保证的概念、策略和方法,软件评审或测试的方法和步骤。

(十一)项目计划与管理(4学时)

1、教学内容

(1)软件项目特点、管理的特殊性及软件管理功能

(2)确定项目的工作要求

(3)确定软硬件资源

(4)人员的计划及组织

(5)成本估算及控制

(6)进度计划

(7)软件配置管理

(8)软件管理方案

2、教学要求

了解:项目计划与管理的基本内容

(十二)新方法及技术专题(9学时)

五、实践教学内容要求与说明

1、课程实训的内容和要求

课程实训要求学生开发一个实际可运行的系统。整个开发过程按照软件工程学的观点,从系统需求分析开始,进行需求分析,系统设计,程序设计和测试,并编制出各阶段必要的文档。在编写文档时,必须严格遵照软件工程规范,最后完成和提交四个软件文档:需求规格说明书、概要设计说明书、详细设计说明书和用户手册。

课程实训以小组为单位,构建一个能体现当前软件开发的主流技术的实际软件运行环境,实训过程尽可能在CASE环境下进行。

2、课程实训的时间安排

课程实训安排1~2周时间(分散或集中)

具体实践教学内容及要求,详见相应的实践教学大纲。

六、考试范围与题型

1、考试范围与分数比例

本课程采用实践操作与笔试考核相结合的方式,操作以课程实训内容为主,占总成绩的30%-50%,笔试采用闭卷形式,主要考核对概念的理解和软件分析能力,笔试占总成绩的70%-50%

2、考试题型与分数比例

客观题60%-70%,主观题(设计、创意等)占40%-30%

七、教材与参考资料

1、教材

教材是课程体系系统性和完整性的依据。教材应概念清晰、便于自学,名词术语应符合国家通用标准,要突出重点、兼顾一般,教材应相对稳定。

参考书应能反映当前最新技术与方向,是教学内容的补充和辅助材料。

推荐教材:

(1) 郑人杰,等,《软件工程概论》,机械工业出版社,2013年

(2)江开耀等,《软件工程》,西安电子科技大学出版社,2003年第1版

2、参考资料

(1)周之英. 《现代软件工程》,科学出版社,2000版。

(2) 郑人杰等《实用软件工程》,清华大学出版社,1997版。

(3)齐治昌等 《软件工程》,高等教育出版社,2004年(第二版)

(4)王慧芳等,《软件工程》,渐江大学出版社,2006年版


留言板 Message Board
条留言  共

  • 参与互动
    Interaction

  • 扫码加入课程
    Scan QR Code
需要验证您的身份,请输入请求信息:
  • 学号号:
  • 班级选择:
  • 附注信息:

扫一扫二维码,快速加入本课程!

放大二维码 查看使用方法
课程
引导