软件工程导论教学大纲.docx
《软件工程导论教学大纲.docx》由会员分享,可在线阅读,更多相关《软件工程导论教学大纲.docx(15页珍藏版)》请在冰豆网上搜索。
![软件工程导论教学大纲.docx](https://file1.bdocx.com/fileroot1/2023-1/23/a9641ada-f52e-42f1-ac4d-d9ec00c4ecb4/a9641ada-f52e-42f1-ac4d-d9ec00c4ecb41.gif)
软件工程导论教学大纲
软件工程导论教学大纲
一、说明
(一)课程性质
软件工程导论是计算机科学与技术专业的核心课程之一,属于必修课程。
该课程的先修课程有计算机导论、程序设计基础、数据结构、面向对象程序设计、离散数学等,后续课程有算法分析与设计,程序设计、软件测试等。
软件工程是研究软件开发维护和软件管理的一门工程科学,本课程是计算机科学与技术专业指导性教学计划规定的教学环节中的一部分。
通过本课程的学习,使学生了解软件工程的概念、原理和技术,初步掌握软件开发的基本方法和常用工具,建立软件开发和维护的工程化意识,培养独立思考的能力和团队合作的精神,为后续相关课程的学习以及从事软件开发与维护的实际工作打下良好的基础。
(二)教学目的
本课程的教学目的,应使学生掌握大型复杂软件系统的开发方法、规则和工具。
首先,应使其克服长期书写小程序形成的“重编码、轻分析设计;重编码、轻技术资料建设和管理”的习惯;其次,要理解软件工程原理/方法/规则的必要性和掌握其技术细节;第三,要了解软件工程学的进展和前沿动态;第四,要通过软件系统设计的练习,巩固和应用所学知识。
(三)教学内容
本课程面向软件工程专业的学生,介绍软件系统性质、目标、环境的分析方法,目标系统逻辑联系、功能联系、控制联系和状态转换过程的描述方法,软件结构、测试方案的设计要求和分析方法,软件工程学新进展,以及上述过程所用的规范化图文数表模型。
具体包括:
软件工程概念及其过程模型、结构化分析/设计/实现方法和工具,面向对象方法学及面向对象的概念、模型、分析方法、设计方法、实现方法,软件项目管理及其定量度量方法、相关国际标准。
最后介绍佩特网等形式化方法、统一建模语言、软件常用技术和软构件的分类与检索。
(四)教学时数
本课程的教学总时数为90学时,其中,课堂教学时数为54学时,实验教学时数为36学时。
(五)教学方式
本课程的难点在于,学生不曾经过大型软件开发的训练,因此在讲解中要适时插入大量软件开发事例,要求教师具有一定的软件开发经验;本课程不安排具体编程环境和开发语言的学习,但必须以大型软件开发实例说明问题,因此要求教师熟悉多种开发环境和开发语言;此外,软件开发技术的滞后和软件应用的广泛性所形成的反差,要求教师了解并适时提出计算机辅助软件工程(CASE)的问题。
因此,作为教师,应把案例的收集和规律的提取作为重点;作为学生,重点是掌握基本思想和基本方法及其综合应用。
教学中以讲授和讨论为主,实验内容则是在PowerDesigner、Visio、Project、IBMRationalRose等CASE环境下实习理论教学中的建模、分析和管理过程。
二、本文
理论部分
第1章软件工程学概述
教学要点:
本章对计算机软件工程学进行简短的概述。
首先要通过回顾计算机系统软硬件关系的发展简史,说明开发软件的一些错误方法和观念是怎样形成的。
然后列举这些错误方法带来的严重弊病(软件危机),澄清一些糊涂观念。
为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。
应总结计算机软件技术发展的历史经验教训,借鉴其他工程领域的管理技术。
教学时数:
4学时。
教学内容:
1.1软件危机(0.5学时)
1.软件危机的介绍。
2.产生软件危机的原因。
3.消除软件危机的途径。
1.2软件工程(1学时)
1.软件工程的介绍;
2.软件工程的基本原理;
3.软件工程方法学。
1.3软件生命周期(0.5学时)
1.4软件过程(2学时)
1.瀑布模型
2.快速原型模型
3.增量模型
4.螺旋模型
5.喷泉模型
6.Rational统一过程
7.敏捷过程与极限编程
8.微软过程
考核要求:
1.识记:
软件工程的概念、软件工程的基本原理和方法。
2.领会:
按照在软件生命周期全过程中应完成任务的性质,在概念上可以把软件生命周期划分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试以及运行维护共8个阶段。
第2章可行性研究
教学要点:
本章通过从技术、经济、操作可行性三个角度分析,用最小的代价在尽可能短的时间内确定文体是否能够解决。
教学时数:
5学时。
教学内容:
2.1可行性研究的任务(0.5学时)
2.2可行性研究过程(0.5学时)
2.3系统流程图(1学时)
1.符号;
2.例子;
3.分层。
2.4数据流图(2学时)
1.符号;
2.例子;
3.命名;
4.用途。
2.5数据字典(1学时)
1.数据字典的内容;
2.定义数据的方法;
3.数据字典的用途;
4.数据字典的实现。
2.6成本/效益分析(选讲)
1.成本估计;
2.成本/效益分析的方法。
考核要求:
1.识记:
数据流图的基本符号只有4种,它是描绘他对未来的物理系统的设想时,系统流图是一个很好的工具;数据字典精确定义了数据流图中每个元素。
2.领会:
可行性研究进一步探讨问题定义阶段所确定的问题是否可行的解。
3.综合应用:
使用数据流图和数据字典来分析系统的流程和复杂数据信息,更好分析软件系统的可行性。
第3章需求分析
教学要点:
本章主要是介绍了需求分析阶段要做的任务,需求分析的方法,以及通过实体-联系图,层次方框图和IPO图来直观描述需求内容。
教学时数:
7学时。
教学内容:
3.1需求分析的任务(1学时)
1.确定对系统的总和要求;
2.分析系统的数据要求;
3.导出系统的逻辑模型;
4.修正系统的开发计划。
3.2与用户沟通获取需求的方法(1学时)
1.访谈;
2.面向数据流自顶向下求精;
3.简易的应用规格说明书;
4.快速建立软件原型。
3.3分析建模与规格说明书(0.5学时)
1.分析建模;
2.软件需求规格说明;
3.4实体-联系图(2学时)
1.数据对象;
2.属性;
3.联系;
4.实体-联系图的符号。
3.5数据规范化(选讲)
3.6状态转换图(1学时)
1.状态;
2.事件;
3.符号;
4.例子。
3.7其他图形工具(1.5学时)
1.层次方框图;
2.Warnier图;
3.IPO图。
3.8验证软件需求(选讲)
1.从哪些方面验证软件需求的正确性;
2.验证软件需求的方法;
3.用于需求分析的软件工具。
考核要求:
1.识记:
为了更好的理解问题,人们常常采用建立模型的方法,结构化分析实质上就是一种建模活动,在需求分析阶段通常建立数据模型、功能模型和行为模型。
2.领会:
需求分析是发现、求精、建模、规格说明和复审的过程。
3.综合应用:
使用E-R图建立数据模型,使用数据流通建立功能模型,使用状态图建立行为模型。
。
第5章总体设计
教学要点:
本章应使学生学会用各种图形描绘软件结构。
描述程序处理过程的工具,可分为图形、表格和语言三类,这三类工具各有所长,教学中应该让学生能够根据需要选用适当的工具。
教学时数:
6学时。
教学内容:
5.1设计过程(1学时)
5.2设计原理(1学时)
1.模块化;
2.抽象;
3.逐步求精;
4.信息隐藏和局部化;
5.模块独立。
5.3启发规则(2学时)
5.4描绘软件结构的图形工具(2学时)
1.层次图和HIPO图;
2.结构图。
5.5面向数据流的设计方法(1学时)
1.概念;
2.变换分析;
3.事务分析;
4.设计优化。
考核要求:
1.识记:
模块耦合和模块内聚是模块独立化的必然结果,我们力争在软件开发中做到高内聚低耦合。
2.领会:
总体设计阶段主要由两个小阶段组成。
首先需要进行系统设计,从数据流图出发设想完成系统功能的若干种合理的物理方案,最终确定一个最佳方案。
然后进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。
第6章详细设计
教学要点:
本章主要介绍了软件开发中对系统的详细设计,根本目标是确定应该怎样具体实现所要求的系统,得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写程序。
教学时数:
7学时。
教学内容:
6.1结构程序设计(0.5学时)
6.2人机界面设计(1.5学时)
1.设计问题;
2.设计过程;
3.人机界面设计指南。
6.3过程设计工具(3学时)
1.程序流图;
2.盒图;
3.PAD图;
4.判定表;
5.判定树;
6.过程设计语言。
6.4面向数据结构的设计方法(1学时)
1.Jackson图;
2.Jackson方法。
6.5程序复杂程度的定量度量(1学时)
1.McCabe方法;
2.Halstead方法。
考核要求:
1.识记:
人机界面设计是接口设计的一个重要的组成部分。
过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,他的任务是设计解题的详细步骤。
2.领会:
详细设计阶段的关键人物是确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的蓝图。
第7章实现
教学要点:
本章主要介绍了编码和测试这两个阶段。
编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。
测试则是在单元编码完成后做的单元测试,确保软件的可靠性。
教学时数:
8学时。
教学内容:
7.1编码(1学时)
1.选择程序设计语言;
2.编码风格。
7.2软件测试的基础(1学时)
1.软件测试的目标;
2.软件测试准则;
3.测试方法;
4.测试步骤;
5.测试阶段的信息流。
7.3单元测试(1学时)
1.测试重点;
2.代码审查;
3.计算机测试。
7.4集成测试(1学时)
1.自顶向下集成;
2.自底向上集成;
3.不同集成测试策略的比较;
4.回归测试。
7.5确认测试(1学时)
1.确认测试的范围;
2.软件配置复查;
3.Alpha和Beta测试。
7.6白盒测试技术(1学时)
1.逻辑覆盖;
2.控制结构测试。
7.7黑盒测试技术(1学时)
1.等价划分;
2.边界值分析;
3.错误推测。
7.8调试(0.5学时)
1.调试过程;
2.调试途径。
7.9软件可靠性(0.5学时)
1.基本概念;
2.估算平均无故障时间的方法。
考核要求:
1.识记:
白盒测试和黑盒测试是软件测试的两类基本方法,在测试过程的早期阶段主要用白盒方法,后期则更多用黑盒测试。
2.领会:
实现包括编码和测试阶段,编码阶段一定考虑系统的需求来选取编程语言,测试阶段主要使用白盒和黑盒测试技术。
第8章维护
教学要点:
本章主要介绍了软件维护过程,软件的再工程过程,整体介绍了软件工程最后一个阶段软件维护过程。
教学时数:
5学时。
教学内容:
8.1软件维护的定义(0.5学时)
8.2软件维护的特点(1学时)
1.结构化维护和非结构化维护差别巨大;
2.维护的代价高昂;
3.维护的问题很多。
8.3软件维护过程(0.5学时)
8.4软件的可维护性(1学时)
1.决定软件可维护性的因素;
2.文档;
3.可维护性复查;
8.5预防性维护(1学时)
8.6软件再工程过程(1学时)
考核要求:
1.识记:
文档是影响软件可维护性的决定因素。
预防性维护实质上是软件再工程。
2.领会:
维护是软件生命周期的最后一个阶段,也是持续时间最长、代价最大的一个阶段。
软件工程学的主要目的就是提高软件的可维护性,降低维护的代价。
第9章面向对象方法学引论
教学要点:
面向对象方法学比较自然地模拟了人类认识客观世界的思维方式,本章教学应使学生了解面向对象方法的概念和规律和工具,能够用面向对象的思想描述问题域,从而建立关于软件系统的对象模型,当然,出于面向对象建模的需要,也要重温过程建模和功能建模方法。
教学时数:
6学时。
教学内容:
9.1面向对象方法学概述(0.5学时)
1.面向对象方法学的要点;
2.面向对象方法学的优点。
9.2面向对象的概念(1学时)
1.对象;
2.其他概念。
9.3面向对象建模(1学时)
9.4对象模型(1学时)
1.类图的基本符号;
2.表示关系的符号;
9.5动态模型(1学时)
9.6功能模型(1学时)
1.用例图
2.用例建模
9.73种模型之间的关系(0.5学时)
考核要求:
1.识记:
什么是面向对象方法学,它有什么优点。
确定对象模型、动态模型和功能模型的建立方法。
2.领会:
面向对象方法学认为,客观世界由对象组成。
任何事物都是对象,每个对象都有自己的内部状态和运行规律。
第10章面向对象分析
教学要点:
本章介绍面向对象思想和方法在具体软件系统分析中的应用,包括一些具体的操作技术,如对象、属性、联系和行为的初选和求精等。
本章讲述的自动取款机系统和电梯系统这两个实例,应该有助于读者更深入、具体地理解面向对象分析的方法与过程。
教学时数:
6学时。
教学内容:
10.1面向对象分析的基本过程(0.5学时)
1.概述;
2.3个子模型和5个层次。
10.2需求陈述(1学时)
1.书写特点;
2.例子。
10.3建立对象模型(1学时)
1.确定类与对象;
2.确定关联;
3.划分主题;
4.确定属性;
5.识别继承关系;
6.反复修改。
10.4建立动态模型(2学时)
1.编写脚本;
2.设想用户界面;
3.画事件跟踪图;
4.画状态图;
5.审查动态模型。
10.5建立功能模型(1学时)
1.画出基本系统模型图;
2.画出功能及数据流图;
3.描述处理框功能。
10.6定义服务(0.5学时)
考核要求:
1.识记:
建立对象模型、建立动态模型、建立功能模型。
2.领会:
分析就是提取系统需求并建立问题域精确模型的过程,他包括理解、表达和验证3向主要工作内容。
实验部分
(一)基本要求
《软件工程实验》是《软件工程导论》课程教学中不可分割的重要组成部分。
实验课程设计的思想是帮助学生理解和掌握软件工程导论的基本概念、基本原理、技术和各种模型的创建,熟练掌握软件生命周期,通过适当的编程提高学生的编程能力、感受软件工程学各个阶段的任务以及实践动手能力,提高学生对课程的学习兴趣,加强创新精神与综合素质的培养。
(二)实验项目总表
序号
实验项目名称
学时数
项目类别
项目类型
1
JDBC过程
2
编程
必做
2
XML的介绍和解析
6
基础
必做
3
Visio工具的使用
2
基础
必做
4
Struts2.0框架的使用
6
编程
必做
5
Navicat工具的使用
4
基础
必做
6
Hibernate3.0框架的使用
6
综合
必做
7
网上商城项目开发
10
综合
选做
(三)实验项目内容及要求
实验一:
JDBC过程
实验内容:
使用eclipse编写JDBC链接的过程。
实验目的:
通过加载mysql的驱动,实现对mysql的增删改查等操作。
实验要求:
1.以个人或小组为单位进行编写JDBC的连接过程;
2.在实验报告中详细列出JDBC的连接过程。
实验二:
XML的介绍和解析
实验内容:
熟悉XML文档的特点,分析其文档结构,掌握DOM和SAX两种解析方法。
实验目的:
熟悉XML和对其进行解析。
实验要求:
1.熟练XML文档结构和实现其解析过程;
2.在实验报告中列出XML两种解析方法的过程。
实验三:
Visio工具的使用
实验内容:
1.安装Visio工具;
2.使用Visio绘制数据流图和E-R图;
实验目的:
熟练使用Visio绘制数据流图和E-R图。
实验要求:
熟练使用Visio绘制数据流图和E-R图。
实验四:
Struts2.0框架的使用
实验内容:
1.认识Struts框架
2.熟悉Struts框架的过程。
3.熟练使用Struts2.0框架。
实验目的:
熟练使用Struts2.0框架。
实验要求:
1.写出Struts2.0的集成过程。
2.完整编写Struts2.0的使用过程。
实验五:
Navicat工具的使用
实验内容:
1.安装Navicat工具;
2.熟悉Navicat工具的使用;
3.掌握类图关系持久化的方式。
实验目的:
熟练使用Navicat工具的使用。
实验要求:
安装和使用Navicat工具。
实验六:
Hibernate3.0框架的使用
实验内容:
1.集成Hibernate3.0过程;
2.使用Hibernate3.0实现ORM过程。
实验目的:
熟练使用Hibernate3.0实现数据持久化过程。
实验要求:
1.成功集成Hibernate3.0过程;
2.将数据通过Hibernate3.0成功持久化到数据库文件。
实验七:
网上商城项目开发
实验内容:
这是一个网上商城的项目开发,通过实现商品展示,用户管理,购物车管理等功能。
实验目的:
通过大项目的编写不仅练习编程技术还让学生感受软件工程的过程。
实验要求:
1.实现商品展示,用户管理,购物车管理等功能;
2.使用瀑布模型开发;
3.标准化各种产出文档。
本课程使用教具和现代教育技术的指导性意见
本课程课堂采用多媒体授课,课件中包括重点、难点原理和算法的动画演示,课程还有精品课程教学网站,提供了教学课件、习题、实验和大量相关教学、辅导资料,教师和学生可以充分利用这些现代化教学手段提高教学水平和效率。