软件工程教学大纲版.docx
《软件工程教学大纲版.docx》由会员分享,可在线阅读,更多相关《软件工程教学大纲版.docx(17页珍藏版)》请在冰豆网上搜索。
软件工程教学大纲版
《软件工程》课程教学大纲
一、课程名称
课程编号
课程名称
学时
学分
开课专业方向
课程类别
软件工程
SoftwareEngineering
54
3
计算机科学与技术(师范汉、蒙)
限选
计算机科学与技术(非师范)
限选
二、课程性质
(一)修读对象
计算机科学与技术(师范、非师范)相关专业的本科学生。
授课语言:
汉语。
(二)课程特点
软件工程是20世纪60年代末期为解决“软件危机”而产生的,并迅速发展起来的新兴学科,现在已经与计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。
《软件工程》课程从传统软件工程入手,介绍软件工程的概念、技术和方法,包括软件的开发模型、软件项目管理、软件质量度量、可行性分析、需求分析、软件设计、编码、测试、维护;面向数据流的分析与设计方法、面向对象的分析与设计方法;对软件重用、快速原型技术作简要的介绍。
本课程属于计算机科学与技术专业课程体系的核心课程。
(三)与其它课程关系
1先修课程
计算机程序设计基础、数据结构、数据库原理
2后续课程
软件工程课程设计、专业实习、毕业设计等
三、课程教学目的
(一)课程目标
1知识目标
通过本课程的学习,使学生了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,使学生对软件系统生产工程化的具体思想、基本要求和先进方法均有较全面的了解。
为更深入地学习和今后从事软件工程实践打下良好的基础。
2能力目标
通过整个教学过程,从工程实施的角度培养学生对已学知识的综合运用能力,养成良好的软件开发风格,具备从事软件系统开发、测试与项目管理的基本能力。
3情感目标
培养学生的系统意识,较好的团队合作精神等工程素养。
(二)教学模块目标
教学模块(章)
教学目标
一软件工程概述
1、了解软件危机产生的原因;
2、掌握软件工程的基本概念;
3、了解软件生命周期的概念,掌握生命周期各阶段的划分及各阶段的任务;
4、了解软件工程方法学的概念及其演化。
二软件过程
1、了解软件过程概念;
2、了解各软件过程模型的内容以及特点;
3、了解支持软件过程的CASE技术。
三项目管理
1、了解软件规模和工作量估算的技术和方法;
2、了解人员组织原则和组织方式,能以小组为单位对简单项目进行人员组织;
3、了解和熟悉软件质量的概念,了解软件质量的保证措施;
4、了解软件能力成熟度模型的基本内容。
四需求分析基础
1、理解需求分析的重要性、需求含义的多样性;
2、了解需求工程过程的主要活动及其之间的关系;
3、了解需求分析的任务,熟悉需求获取的方法;
4、了解需求规格说明书的体系结构。
五结构化分析方法
1、掌握结构化分析建模的方法;
2、理解面向数据流分析中数据流图(DFD)、数据字典(DD)、实体关系图(ERD)、状态转换图(STD)等建模元素,能进行简单系统的需求分析。
六面向对象分析方法
1、了解面向对象分析的基本过程;
2、了解和熟悉面向对象的需求陈述基本方法;
3、熟悉和掌握三种模型建立的过程及方法,用例图、类图、动态图的绘制。
七软件设计基础
1、理解软件设计的目标、任务和过程;理解总体设计和详细设计的划分意义;
2、理解软件设计要遵循的原则。
八结构化设计方法
1、掌握模块独立原则、面向数据流的设计方法;
2、理解表示总体设计结果的软件结构工具、表达详细设计结果的过程设计工具;
3、理解软件编码实现及对软件质量的影响。
九面向对象设计方法
1、了解面向对象设计的准则和启发规则;
2、了解软件重用的概念及实现重用的途径;
3、了解使用划分子系统的方式进行系统分解的方法,了解子系统间交互的方式,了解系统的组织方式;
4、了解和熟悉问题域子系统、人机交互子系统、任务管理子系统、数据管理子系统设计的内容;
5、熟悉设计类服务的方法
6、了解实现关联的方法,理解设计关联的意义
7、了解优化设计的几个途径。
十软件测试基础
1、了解软件测试的基本概念,特别是测试的方法和步骤;
2、了解单元测试、集成测试、验收测试的内容和过程;
3、了解软件调试的经验;
4、了解软件测试文档。
十一结构化软件测试技术
熟悉和掌握黑盒测试和白盒测试技术,能进行简单目标系统的测试
十二面向对象测试技术
了解面向对象测试策略、测试用例设计。
十三软件维护与进化
1、了解和熟悉软件维护的定义及特点;
2、了解和熟悉软件维护的过程;
3、了解软件的可维护性的决定因素;
4、了解预防性维护及再工程的基本内容。
四、课程教学原则与教学方法
本课程概念较多,因此教学形式以讲授方式为主。
重点:
系统分析、系统设计、系统实现、系统维护
难点:
需求分析、软件测试
在教学过程中,可采用多媒体教学、案例教学、课堂讲授、课堂讨论、写设计论文等多种形式结合进行教学。
为加强和落实动手能力的培养,可采用协作式、激励式教学,组织学生成立项目小组,鼓励发扬协作精神,鼓励以学生团队参加校内外组织的各项活动,小组成员相互交流,碰撞思维火花,有助于学生巩固知识,培养学生的自主创新能力和工程素养。
五、课程总学时
课程教学总学时数为54学时,学分为3学分。
六、课程教学内容要点及建议学时分配
教学模块(章)
知识单元(节)
主要知识点(目)
建议学时
一软件工程概述
软件与软件危机
软件的定义、特征、分类、演化过程
4
软件危机的表现、产生原因、解决途径
软件工程
软件工程定义
软件工程的目标、研究内容、基本原理
二软件过程
软件过程
软件过程定义、基本活动
4
软件生命周期
软件生命周期的定义、阶段、基本任务
软件过程模型
瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、基于组件的开发模型
计算机辅助软件工程(CASE)
CASE定义、分类
软件工程方法学
结构化方法学出现的历史背景、特点
面向对象方法学优点及方法演化的必然性
三项目管理
概述
项目管理的目标、对象、活动、原则
4
人员组织与管理
人员组织原则及形式、团队建设
软件项目规划
软件规模估算、软件成本估算
软件项目计划
制定步骤、原则、格式说明
进度管理
进度计划、活动网络
风险管理
风险识别、分析、应对计划、监控
软件配置管理
软件配置基本概念、管理活动、管理工具
四需求分析基础
软件需求概述
软件需求的定义、层次、种类及关系
2
需求工程过程
需求获取、需求分析、需求规格说明、需求验证、需求管理
需求获取技术
面谈、问卷调查法、会议讨论法、界面原型法、可运行原型系统法
五结构化分析方法
概述
结构化分析建模的指导思想及原则、模型的种类、面向数据流的分析方法
6
数据流图(DFD)
元素的种类、图形符号及含义、分层、绘图步骤
数据字典(DD)
条目的种类、符号及含义、加工条目的描述方式:
结构化语言、判定表、判定树
实体关系图(ERD)
元素的种类、符号及含义
状态转换图(STD)
元素的种类、符号及含义
实例分析
教材购销系统的数据流图及数据字典的建立
六面向对象分析方法
概述
面向对象分析需求建模的5个基本原则、目标及任务、流行的方法、3种模型及5个层次、分析过程基本流程(步骤)
6
领域分析
复用类库及领域分析、分析过程及模型描述元素:
类、属性、关系、行为操作、通信事件、变迁事件及时序
面向对象分析过程
用例分析及创建方法、用例分析实例、类-责任-协作者建模(CRC)、定义结构和层次、定义主题和子系统
对象关系模型
对象关系分析及标识、关系的导出步骤
对象行为模型
基于用例标识事件、状态的表示
UML及用例图
UML的历史、目标、概念域、视图、用例视图
七软件设计基础
概述
软件设计的目标、任务、过程及层次划分、规格说明
2
软件设计原则
模块及模块化、抽象与逐步求精、信息隐藏与局部化、模块独立:
耦合性和内聚性
八结构化设计方法
结构化总体设计
信息流分类及软件模块结构图映射步骤、变换分析、事务分析、设计优化及启发式规则
6
结构化详细设计
设计任务、标准、模块算法流程描述工具:
程序流程图、盒图、PAD图
结构化编码实现
选择实现语言的要素、编码风格要素、结构化设计实例
九面向对象设计方法
面向对象的系统设计
设计金字塔、模块化设计标准及原则、设计过程的步骤、子系统构件的定义
6
系统设计过程模型
Rambaugh提出的设计步骤及相关设计活动
对象设计过程
对象类的详细设计及描述、类属性的数据结构和操作的算法详细设计
设计模式
设计模式描述、设计模式使用机制
UML模型
模型的概念、用途、层次、内容、含义
UML视图
静态视图、交互视图、状态视图、活动视图、物理视图、模型管理视图、扩展组件、视图的关系
系统设计实例
架构设计、类设计
十软件测试基础
概述
软件检验与有效性验证、软件验证方法
2
软件测试
测试目标、过程及步骤、信息流
软件测试说明书
引言、项目背景、质量目标、资源需求、测试策略、测试计划
十一结构化软件测试技术
白盒测试
定义、逻辑覆盖、基本路径覆盖
4
黑盒测试
定义、等价类法、边界值分析法
十二面向对象测试技术
测试的视角
视角的扩大、应避免的问题
4
测试OOA和OOD模型
模型的正确性、模型的一致性
面向对象测试策略
面向对象语境中单元测试、集成测试、有效性测试
测试用例设计
含义、传统测试用例的可用性、基于故障的测试、编程对测试的影响、测试用例与类层次、基于场景的测试设计、表层结构和深层结构
测试过程
测试内容:
对象、结构、主题、属性和实例关联、服务和消息关联
类的测试方法
随机测试、划分测试
类间测试用例设计
多各类的测试、从行为模型导出的测试
面向对象系统测试
系统测试的目的、测试内容
十三软件维护与进化
遗留系统
存在的问题、系统评估
2
软件变更
软件维护、软件体系结构的转换、软件再工程
习题课
2
合计
54
七、课程的实践教学环节要求
(一)作业要求
每章布置一次书面作业,作业内容视各章情况布置,每次2-4题,紧扣各章要求掌握的内容。
另外,会适当补充课外习题。
(二)实践教学要求
教师在授课之初将学生分成小组(3-5人),每个学生小组选择一个实践项目,按讲课进度逐步完成相关实验大作业,以小组为单位提交,小组成员的成绩相同。
具体要求见《软件工程实验》课程教学大纲。
八、教材和主要教学参考资源
(一)主要教材
孙家广,刘强.软件工程--理论与实践,高等教育出版社,2008.
(二)主要教学参考书
[1]王华,周丽娟.软件工程学习指导与习题解析,清华大学出版社,2012.
[2]张海藩.软件工程导论,第四版,清华大学出版社,2003.
[3]窦万峰.软件工程方法与实践,机械工业出版社,2010.
(三)推荐的相关学习网站
[1](UML软件工程组织)
[2](希赛软件工程专家网)
九、课程考试与评估
本课程采取闭卷考核评价方式,最终成绩按百分制计算,其中平时成绩占40%,期末考试成绩占60%。
课程负责人:
林民课程群负责人:
朝力萌编写日期:
2012.12.12
《软件工程实验》课程教学大纲
一、课程名称
课程编号
课程名称
学时
学分
开课专业方向
课程类别
ExperimentforSoftwareEngineering
9
0.5
计算机科学与技术(师范汉、蒙)
限选
计算机科学与技术(非师范)
限选
二、课程性质
(一)修读对象
计算机科学与技术(师范、非师范)相关专业的本科学生。
授课语言:
汉语。
(二)课程特点
本课程配合《软件工程》课程理论教学,重点介绍软件生存周期各阶段所用到的主流CASE工具,把软件工程的概念和理论知识融入到实验内容中,使学生更加深入地理解软件开发中各阶段的技术、方法和工具的基本使用方法。
实验内容包括软件文档规范与标准、软件分析与建模、软件测试和软件项目管理4个部分,每个实验包括背景知识、实验工具的特点、功能、安装和基本概念与使用方法等部分。
(三)与其它课程关系
1先修课程
计算机程序设计基础、数据结构、数据库原理
2后续课程
软件工程课程设计、专业实习、毕业设计等
三、课程教学目的
(一)课程目标
1知识目标
通过本课程的学习,使学生了解软件生存周期各阶段所用到的主流CASE工具的使用知识,加深理解软件开发中各阶段的技术、方法和工具的基本使用方法。
初步掌握软件项目系统分析、编写文档、源码设计与控制、使用工具等基本技能。
2能力目标
通过整个教学过程,从工程实施的角度培养学生对已学知识的综合运用能力,养成良好的软件开发风格,具备从事软件系统开发、测试与项目管理的基本能力。
(二)教学模块目标
教学模块
教学目标
实验1软件项目管理工具MicrosoftProject的基本应用
使用MicrosoftProject2003制定一个具体软件项目进度计划,理解软件项目管理的目的、用途和意义。
实验2软件开发绘图工具MicrosoftVisio的基本应用
使用MicrosoftVisio绘制提交一个与某软件项目有关的程序流程图、数据流图、状态转换图、实体——关系图、网络结构图
实验3数据建模工具PowerDesigner的基本应用
使用PowerDesigner绘制提交一个与某软件项目有关的概念数据模型视图、业务处理模型视图、物理数据模型视图
实验4面向对象建模工具RationalRose的基本应用
使用RationalRose绘制提交一个与某软件项目有关的业务分析模型及设计模型:
用例图、类图、对象图、时序图、协作图、活动图、组件图、配置图,掌握RationalRose的基本操作与建模过程
实验5功能测试工具WinRunner的基本应用
结合应用案例,掌握WinRunner的基本测试流程;了解WinRunner基本测试要点;掌握对象识别和脚本录制;掌握GUIMap对象查找及GUIMap文件的保存及脚本执行及查看结果方法
实验6负载测试工具LoadRunner的基本应用
了解LoadRunner的工作原理和组织架构;掌握脚本录制与回放以及脚本修改方法
实验7自动化测试工具PurifyPlus的基本应用
了解PurifyPlus的应用场景及各测试组件用途、掌握PureCoverage基本测试流程、掌握Purify基本测试流程、掌握Quantify基本测试流程。
实验8软件配置管理工具VisualSourceSafe的基本应用
结合案例掌握VSS工具的基本使用方法;理解软件配置管理的目的、用途和意义
四、课程教学原则与教学方法
以上机实验操作为主,进行验证性实验和设计性实验。
以封闭实验和开放性实验形式展开训练,以相互协作、相互讨论形式组织学习实践。
五、课程总学时
课程教学总学时数为9学时,总学分数为0.5学分。
六、课程教学内容要点及建议学时分配
序号
实验项目名称
建议学时
必开
选开
每套仪器人数
实验类型
1
实验1软件开发绘图工具MicrosoftVisio的基本应用
1
必开
1
综合
2
实验2软件项目管理工具MicrosoftProject的基本应用
1
必开
1
综合
3
实验3数据建模工具PowerDesigner的基本应用
1
必开
1
综合
4
实验4面向对象建模工具RationalRose的基本应用
1
必开
1
综合
5
实验5功能测试工具WinRunner的基本应用
1
必开
1
综合
6
实验6负载测试工具LoadRunner的基本应用
1
必开
1
综合
7
实验7自动化测试工具PurifyPlus的基本应用
1
必开
1
综合
8
实验8软件配置管理工具VisualSourceSafe的基本应用
1
必开
1
综合
9
实验总结
1
合计
9
七、课程的理论教学环节要求
具体要求见《软件工程》课程教学大纲。
八、教材和主要教学参考资源
(一)主要教材
窦万峰主编,《软件工程实验教程》机械工业出版社,2009
(二)主要教学参考书
[1]张虹.软件工程与软件开发工具,清华大学出版社,2004.
[2]孙家广,刘强.软件工程--理论与实践,高等教育出版社,2008.
[3]张海藩.软件工程导论,第四版,清华大学出版社,2003.
[4]窦万峰.软件工程方法与实践,机械工业出版社,2010.
九、课程考试与评估
每次实验环节都必须提交相应的实验报告,以实验报告的质量作为考核的标准。
最终成绩按百分制计算,实验报告成绩占80%,平时成绩占20%组成。
课程负责人:
林民课程群负责人:
朝力萌编写日期:
2012.12.17