《软件工程》教学大纲Word格式文档下载.docx
《《软件工程》教学大纲Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《软件工程》教学大纲Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
二、课程目标
通过本课程的学习,学生应理解软件工程的观念和软件开发过程模型,能够应用基本的软件工程技术、方法及相关工具进行软件项目的研发和软件产品的维护,在软件开发和项目管理过程中能够表现出基本的软件工程素质。
(一)知识与技能
理解软件工程的基本概念和观念,理解并能够运用主流的软件开发过程模型;
理解并能够运用用例驱动的需求获取方法、面向对象的需求分析技术和软件设计技术、软件测试的技术与方法;
理解并能够运用软件项目管理的基本方法;
能够运用软件开发各阶段的技术工具和项目管理工具完成软件研发或项目管理活动;
能够作为用户方、需求方、验收方和维护方参与软件系统的开发和管理。
(二)过程与方法
学员与课程进度同步地展开课程项目的技术研发和项目管理活动,教师(尤其是辅导教师)在学员的学习和实践过程适时为学员提供指导和帮助。
要求并启发学员在课程项目的研发过程中反思、总结、提高,鼓励评判性思考,鼓励学员在学习和动手实践的过程中自主探索,自主提出具有一定创新性的软件解决方案。
(三)情感态度与价值观
理解软件工程师的职业道德,认识团队合作精神在软件过程中的重要性,并通过课程实践培养换位思考意识和团队合作精神。
三、内容标准
第一章软件工程导论
主要内容:
1.软件、软件工程的形成与发展;
2.软件、软件工程的概念;
3.软件过程模型。
教学重难点:
1.软件的概念和特点;
2.软件工程的观念;
3.软件过程模型和软件生命周期之间的区别和联系。
教学要求:
1.理解软件的公共特性、不同种类的软件的特性;
2.理解软件工程的目标、原则和观念,理解软件工程的意义和价值;
3.理解常用的软件开发过程模型、它们之间的异同及优缺点。
第二章软件需求获取
第1节软件需求及重要性
1.软件需求的概念,功能性需求与非功能性需求;
2.软件需求的重要性;
3.软件需求的质量要素及案例分析;
4.软件需求工程的过程模型。
1.软件需求的重要性;
2.软件需求的质量要素;
3.软件需求工程的过程模型。
理解软件需求的重要性及其质量要素;
在学习完本章后能够运用需求工程的过程模型展开软件需求的获取与分析活动。
第2节软件需求的表示方法
1.软件需求的用例描述;
2.用例之间的关系;
3.UML用例图;
4.非功能性需求的表示。
1.软件需求的用例描述方法;
3.非功能性需求的表示的精确化。
理解并能够运用用例及用例图来表示软件需求。
第3节需求获取的方法
1.什么是需求获取:
软件获取的任务和原则;
2.如何获取需求:
软件获取的过程模型,用例驱动的软件获取的方法、工具及案例分析;
3.需求获取的结果文档。
1.需求获取的过程模型;
2.需求获取的方法。
理解并能够运用用例驱动的软件获取方法。
第三章软件需求分析
第1节需求分析的任务
1.什么是需求分析:
需求分析的任务和原则;
2.需求建模技术:
为什么需要对需求建模,需求模型的UML表示(UML类图、顺序图、活动图等);
3.如何分析需求:
需求分析的过程模型,面向对象的需求分析方法、工具及案例分析。
1.需求建模技术;
2.需求分析的过程模型;
3.面向对象的需求分析方法。
理解并能够运用需求分析和建模的技术与方法。
第2节用例分析
教学内容:
1.如何基于用例描述创建顺序图;
2.如何基于顺序图导出类图。
1.基于用例构造顺序图的方法;
2.构造覆盖多个用例的全局类图的方法。
理解并能够运用针对用例构造需求模型的方法。
第3节案例分析
月球车仿真控制问题的需求建模案例;
针对案例进行需求建模的流程和技巧;
通过案例分析更深刻理解需求建模的过程与方法。
第四章软件设计
第1节软件设计概论
1.什么是软件设计:
软件设计的任务和原则;
2.什么是好的软件设计:
软件设计的质量要素及案例分析;
3.为什么需要软件设计:
软件设计的意义与价值;
4.如何进行软件设计:
软件设计的过程模型。
1.软件设计的质量要素;
2.为什么需要软件设计;
3.软件设计的过程模型。
1.理解软件设计的概念、任务、原则及过程模型;
2.理解为什么需要软件设计;
3.理解软件设计的质量要素。
第2节软件体系结构设计
1.什么是软件体系结构:
软件体系结构的概念;
软件体系结构的表示,体系结构设计的任务和原则;
2.什么是好的体系结构:
软件体系结构的质量要素及案例分析;
3.为什么需要体系结构设计:
体系结构设计的意义与价值;
4.如何进行体系结构设计:
体系结构设计的过程模型;
5.体系结构设计的技术、方法及案例分析。
1.体系结构的表示;
2.体系结构的质量要素;
3.为什么需要体系结构设计;
4.体系结构设计的技术与方法。
1.理解体系结构的概念、质量要素,理解体系结构设计的概念与过程模型;
2.理解为什么需要软件体系结构设计;
3.理解并能够运用软件体系结构设计的技术与方法。
第3节体系结构模式
1.体系结构模式的概念;
2.体系结构模式的意义与价值;
3.体系结构模式的表示;
4.典型的体系结构模式:
MVC模式、发布-订阅模式、微内核模式、反射模式等。
1.体系结构模式的表示;
2.体系结构模式的应用。
1.理解体系结构模式的概念;
2.理解体系结构模式对开发软件复用的意义;
3.熟悉并能够运用常用的体系结构模式。
第4节人机界面设计
1.什么是人机界面:
人机界面的概念;
人机界面的表示,人机界面的质量要素及案例分析;
2.什么是人机界面设计:
人机界面设计的表示,人机界面设计的任务和原则;
3.为什么需要人机界面设计:
人机界面设计的意义与价值;
4.如何进行人机界面设计:
人机界面设计的过程、技术与方法,人机界面设计的案例分析。
1.人机界面的质量要素;
2.如何进行人机界面设计。
1.理解人机界面的质量要素,理解人机界面的设计原则;
2.理解为什么需要人机界面设计;
3.理解并能够运用人机界面设计的技术与方法。
第5节用例设计
1.什么是用例设计:
2.为什么需要用例设计:
用例设计的意义与价值;
3.如何进行用例设计:
用例设计技术、方法及案例分析,类的设计、精化的技术、方法及案例分析。
1.为什么需要用例设计;
2.如何进行用例设计。
1.理解为什么需要用例设计;
2.理解并能够运用用例设计的常用方法;
3.理解并能够基于用例设计获得优化的用例实现方案和设计类图。
第6节子系统设计与构件设计
1.什么是子系统设计;
2.什么是构件设计;
3.如何提高构件的可复用性;
4.如何提高构件的易组装性。
1.如何提高构件的可复用性;
2.构件的静态与动态组装机制。
1.理解为什么需要子系统设计和构件设计;
2.理解掌握提高构件可复用性的原则和方法;
3.理解掌握提高构件易组装性的原则和方法。
第7节类的设计
1.什么是类设计;
2.类设计的主要任务;
3.如何精化类间关系;
4.如何精化类的方法和属性。
1.如何精化类间关系;
2.如何精化类的方法和属性。
1.理解并掌握精化类间关系的过程、原则和方法;
2.理解并掌握精化类的方法和属性的过程、原则和方法。
第五章软件实现
1.什么是软件实现;
2.软件实现与软件设计之间的关系;
3.完美编程的观念;
4.完美编程的规则与编程实践。
1.完美编程的观念;
2.完美编程的规则。
1.理解软件实现的任务和原则;
2.理解完美编程的观念,掌握实现高质量软件的规则。
第六章软件测试
第1节软件测试的基本概念
1.软件错误与软件测试的概念;
2.软件测试的任务和原则;
3.软件测试的过程及阶段性产品;
4.测试用例的设计及案例分析。
1.软件测试的任务、原则和过程模型;
2.测试用例的设计。
1.理解软件测试的任务和原则;
2.理解并能够运用软件测试的过程模型;
3.理解测试用例的概念并能够设计基本的测试用例。
第2节软件黑盒测试
1.黑盒测试技术及案例分析;
2.软件测试工具。
黑盒测试技术。
1.理解并能够运用黑盒测试技术;
2.能够运用工具进行各种测试。
第3节软件白盒测试
1.白盒测试技术及案例分析;
白盒测试技术。
1.理解并能够运用白盒测试技术;
第4节软件非功能性测试
1.非功能性测试的必要性;
2.非功能性测试的内容。
上述非功能性测试内容。
理解并掌握非功能性测试包含的内容。
第5节软件测试过程模型
1.单元测试;
2.集成测试;
3.系统测试。
上述软件测试策略。
理解并能够运用上述软件测试策略展开软件测试。
第6节面向对象软件测试
1.面向对象软件的特点;
2.面向对象测试的内容。
面向对象软件的测试方法。
理解并能够运用面向对象软件的测试方法。
第7节软件调试
1.软件调试的过程;
2.软件调试的主要技术;
软件调试的过程与方法。
理解并能够运用软件调试的过程与方法。
第8节软件测试管理
1.软件测试管理的内容;
2.软件测试管理的方法;
软件测试管理的方法。
理解并能够运用软件测试管理的方法。
第七章软件维护
第1节软件维护的概念和分类
1.软件维护的概念与分类;
2.软件可维护性;
3.软件维护的副作用;
4.为什么软件需要维护;
5.软件维护的任务和原则;
6.软件维护的过程模型。
1.软件维护的副作用;
2.软件维护的任务、原则与过程模型。
1.理解软件维护的副作用;
2.理解软件维护的任务、原则;
3.理解并能够运用软件维护的原则及过程模型。
第2节软件维护的过程和活动
软件维护的过程模型。
软件维护过程。
理解软件维护的各个阶段的活动。
第3节软件的可维护性和维护的副作用
1.什么是软件的可维护性;
2.影响可维护性的因素;
3.保证可维护性的复审;
4.维护的副作用及面临的问题。
影响可维护性的因素。
理解软件的可维护性,掌握保证软件可维护性的复审方法。
第4节逆向工程和软件重构
1.逆向工程的概念;
2.逆向工程的主要方法。
3.重构工程的概念;
4.重构工程主要方法。
逆向工程和重构工程的方法。
理解逆向工程和重构工程的概念和意义,能够运用逆向工程和重构工程的方法。
第八章软件项目管理
1.项目管理的概念;
2.项目管理的任务与原则;
3.为什么需要项目管理;
4.项目管理的过程模型;
5.项目管理的方法、标准、工具及案例分析。
1.项目管理的过程模型;
2.项目管理的方法。
1.理解软件项目管理的重要性;
2.理解并能够运用项目管理的过程模型及方法。
实验教学部分
教学目的:
1.培养学生运用软件工程的方法、技术和工具完成软件开发的能力;
2.帮助学生发现软件开发的核心环节及面临的技术挑战;
3.积累软件工程化开发和软件项目管理的经验,养成良好的团队合作精神。
1.针对实际应用问题,使用UML,进行需求获取、分析和建模;
2.针对实际应用问题,进行基于UML的软件设计和构造;
3.软件测试。
1.掌握利用UML进行需求获取、分析和建模的基本技能。
提交完整的需求规格说明;
2.掌握利用UML进行软件设计和实现的基本技能,提交完整的设计规格说明并给出相应的实现代码;
3.掌握软件测试的基本方法,提交完整的测试报告,并给出改正后的程序代码。
四、实施建议
(一)教学实施
1.课程学时分配表
教学内容
学时安排
讲授学时
实践学时
考核学时
小计
讲解
研讨
录像
其他
实验
上机
室外
野外
第一章
2
第二章
4
6
第三章
8
第四章
14
18
第五章
第六章
第七章
第八章
考核
36
12
50
2.教学方法和手段
多媒体教学:
以多媒体教学为主,建议在必要时利用计算机演示实际的软件开发或项目管理的方法、技术或过程。
网络教学:
学校网上教学平台->
计算机学院->
本科课程->
软件工程
(二)考核评价
考核方式:
考试+课程实验
组织方式:
笔试,开卷
成绩评定:
百分制
记分标准:
考试占60%,课程实验成果占40%
(三)教材选用
1.教材
SoftwareEngineering,IanSommerville,ChinaMachinePress,8thEd.,2006.
《软件工程》,齐治昌,谭庆平,宁洪,高等教育出版社,第三版,2012。
《软件工程实践教程》,谭庆平,毛新军,董威,高等教育出版社,2009。
2.参考书
(1)SoftwareEngineering:
APractitioner’sApproach,RogerS.Pressman,ChinaMachinePress,7thEd.,2010.
(2)PracticalSoftwareEngineering:
ACaseStudyApproach,LeszekA.Macialszeket.al.,Pearson&
AddisonWesley,2005.