软件工程课程教学大纲
课程名称:软件工程 课程编号:H18117 英文名称:Software Engineering 课程属性:限选课 学 时:56 学 分:3.5 先修课程:高级程序设计语言、数据库原理、网络原理等
适用专业:计算机科学与技术 一、课程简介
本课程是计算机科学与技术、软件工程和网络工程专业本科学生的骨干课程,是一门涉及知识面较广的综合性和实践性很强的课程。它对于培养学生的软件开发素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义。
1.知识掌握
主要内容包括软件工程的基本概念及原理、面向过程的软件需求分析与设计的方法及过程、面向对象的软件分析与设计方法与过程、软件测试的方法、软件质量管理的方法与过程、项目计划与管理的方法。
2.能力培养
通过本课程的学习,使学生掌握大型软件系统开发的基本方法、了解软件开发的全过程。要求学生掌握软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的发展方向;如何用工程化的方法开发软件项目,以及开发过程中应遵循的流程、准则、标准和规范。为今后从事软件工程实践打下良好的基础。
3.教学方法
在教学中要采用知识讲授与实际案例分析相结合、知识吸纳与实际动手操作相结合的教学手段,使学生不仅学到了知识,还基本具备了将知识与实际相结合的能力。 二、课程内容及学时分配
教 学 环 节 课 时 安 排 讲课 40 习题课 讨论课 实验课 上机 16 其它 合计 56
第一单元:软件工程概述(建议学时数:4学时) 【学习目的和要求】 1.知识掌握
了解的软件的发展过程、正确理解什么是软件、正确理解软件的特点、了解软件的分类、正确理解软件危机的概念、正确理解软件工程的概念、理解掌握软件生存周期、理解掌握软件工程过程与目标
2.能力培养
能正确理解软件工程的基本概念和原理
1
3.教学方法 讲授知识与演示 【重点】
软件危机的产生、软件工程过程。 【难点】
软件工程过程
第二单元:需求分析(建议学时数:6+4学时) 【学习目的和要求】 1.知识掌握
了解基于计算机的系统的系统元素;掌握可行性研究的目的与步骤;理解并掌握软件需求分析的目的与任务;理解并掌握结构化分析方法及所用工具;了解快速原型化方法;了解需求定义与评审。
2.能力培养
能用结构化分析方法对软件项目进行需求分析。 3.教学方法
讲授知识、案例分析与上机实践相结合 【重点】
软件需求分析、结构化分析方法 【难点】
结构化分析方法
第三单元 软件设计(建议学时数:6+4学时) 【学习目的和要求】 1.知识掌握
深刻理解软件总体设计的基本任务,软件设计的基本原理.理解模块化,抽象,信息隐蔽,模块独立性等概念。熟练掌握结构化设计方法(要求能划分数据流的类型,将其能换成软件结构图,并能根据优化准则将其优化.)。熟练的使用详细设计描述工具来设计模块中的算法及程序的逻辑结构。
2.能力培养
能用结构化设计方法对软件项目进行设计。 3.教学方法
讲授知识、案例分析与上机实践相结合 【重点】
将一个复杂型数据流图转换成软件结构图并优化;流程图、盒图、PAD图、过程设计语言的应用。
【难点】
将一个复杂型数据流图转换成软件结构图并优化 第四单元 面向对象技术(建议学时数:6学时) 【学习目的和要求】 1.知识掌握
理解并掌握面向对象的概念;包括类、对象、消息、继承、多继承和动态绑定;理解什么是Rational统一开发过程,并掌握该过程有哪些阶段及核心工作流;理解并掌握UML统一建模语言,并掌握UML统一建模语言所用到的符号、图及规则。
2.能力培养
能用UML统一建模语言建立模型。
2
3.教学方法
讲授知识与案例分析相结合 【重点】
Rational统一开发过程的作用;如何用UML统一建模语言建立模型,并能正确表示出来。
【难点】
Rational统一开发过程的作用
第五单元 面向对象分析与设计(建议学时数:5+4学时) 【学习目的和要求】 1.知识掌握
理解并掌握面如何使用用例获取需求,建立功能模型;理解并掌握如何由功能模型导出分析对象模型和动态模型;理解并掌握面向对象设计如何进行,有哪些原则和步骤。
2.能力培养
能用面向对象的技术与方法对软件项目进行需求分析与设计。 3.教学方法
讲授知识、案例分析与上机实践相结合 【重点】
建立分析模型;使用面向对象概念建立系统体系结构 【难点】
建立分析模型;使用面向对象概念建立系统体系结构 第六单元 软件体系结构(建议学时数:3学时) 【学习目的和要求】 1.知识掌握
理解并掌握面软件体系结构的概念;理解并掌握软件体系结构的设计过程;理解并掌握特定领域的体系结构的两种体系结构模型(类属模型、参考模型);了解分布式系统的主要特征、典型的分布式系统的体系结构和分布式对象体系结构;理解并掌握设计模式的原则、基本要素、模板、特性和类型等
2.能力培养
能在软件项目的开发过程构造软件系统体系结构 3.教学方法
讲授知识与案例分析相结合 【重点】
如何构造软件系统体系结构;如何理解使用设计模式; 【难点】
如何构造软件系统体系结构
第七单元 软件测试(建议学时数:4+2学时) 【学习目的和要求】 1.知识掌握
理解并掌握面测试的目的和原则;理解并掌握测试方法与测试用例设计;理解并掌握软件测试的策略;了解软件测试的种类;理解并掌握程序的静态测试;了解程序调试。
2.能力培养
能设计测试用例对软件进行测试 3.教学方法
讲授知识、案例分析与上机实践相结合
3
【重点】
测试方法与测试用例设计的理解和掌握 【难点】
测试用例设计
第八单元 面向对象的测试(建议学时数:2+2学时) 【学习目的和要求】 1.知识掌握
理解并掌握面向对象测试的概念;理解并掌握开发前期的面向对象测试;理解并掌握开发后期的面向对象测试;了解分布式系统的测试。
2.能力培养
能对用面向对象开发的软件进行测试。 3.教学方法
讲授知识、案例分析与上机实践相结合 【重点】
开发后期的面向对象测试 【难点】
开发后期的面向对象测试
第九单元 软件质量(建议学时数:2学时) 【学习目的和要求】 1.知识掌握
了解软件质量的定义、质量保证的基本概念,了解软件质量保证、软件质量度量的基本方法。
2.能力培养
能在软件项目开发过程中进行质量管理。 3.教学方法
讲授知识与案例分析相结合 【重点】
质量模型;质量度量;配置管理 【难点】 质量度量
第十单元 软件项目计划与管理(建议学时数:2学时) 【学习目的和要求】 1.知识掌握
了解软件开发成本结算、软件项目进度安排、软件项目计划内容的基本概念。;理解软件开发成本结算的CoCoMo模型;软件项目进度安排中的Ganto图;深入理解软件项目计划的重要性及各个环节之间的联系。
2.能力培养
能在软件项目开发过程中进行项目计划与管理。 3.教学方法
讲授知识与案例分析相结合 【重点】
软件开发成本估算、软件项目进度安排、软件项目计划内容。 【难点】
软件开发成本估算
4
三、考核方式及要求
1. 平时上课、作业完成情况占期末成绩的10%。 2. 实验完成情况占该学科期末总评成绩的20%; 3. 期末考试 占70% 四、教材及参考书 教材:
1.郑人杰、殷人昆、陶永雷.实用软件工程.第二版. 清华大学出版社.2002.7. 参考书:
1.冀振燕.UML系统分析设计与应用案例.人民邮电出版社.2003.6.
2. [美] Stephen R.Schach.面向对象与传统软件工程. 机械工业出版社.2006.2. 3.张海藩.软件工程导论.第五版. 清华大学出版社.2009.10. 五、责任认定
1.大纲执笔人:金光毅 2.大纲审定人:
3.制定时间:2011年11月
5