温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
年科文
软件工程
教学大纲
36
18
软件工程课程教学大纲
英语名称 Software Engineering
适用专业 计算机各专业
课程类型 专业根底课
学 时 数 36+18
学 分 数 2.5
一、编写说明
(一) 本课程的性质、地位和教学目的
软件工程课程是计算机各专业的主要专业课程,通过课程学习与实际训练掌握与理解软件工程学中的根本概念、方法和原那么。使学生进行一个从软件方案、需求分析、设计、编码、测试和软件开发全过程的训练,要求能够按照软件工程标准书写文档,通过实验和课程设计,可以将所学的理论,方法和技术有机地串联起来,从而为将来实践和后续课程打下根底,还可以为最后的毕业设计做好理论与实践上的准备。
(二) 大纲制定的依据
教学大纲应根据2023年新修订的专业教学方案中人才培养目标和人才规格的定位要求,结合我国经济社会开展以及我院办学层次的实际制定或修订,突出能力培养、强化实践教学。
(三) 大纲内容选编原那么
⑴本大纲所列各章节的讲授内容是以教材为主,并参照相关的资料编制。
⑵本大纲所列的各章节的内容坚持理论与实践相结合的原那么,紧密结合软件工程开展前沿,讲授的实际内容可随软件工程领域的开展动态有所变动。
〔四〕实践环节
1.实验一
〔1〕名称:软件开发绘图工具Visio
〔2〕主要内容与要求:
1.了解Visio工具软件的功能特色、安装、工作环境和根本操作等各方面的根本知识;
2.掌握应用Visio工具绘制软件开发图形的根本操作
3.了解开发Visio解决方案的根本概念
4.学习应用Visio工具绘制E-R图、程序流程图、数据流图、网络图等图形。
〔3〕学时分配:2
2.实验二
〔1〕名称:系统分析与建模工具PowerDesigner
〔2〕主要内容与要求:
1.初步了解系统分析与建模工具PowerDesinger的根本概念和操作界面。
2.了解PowerDesigner的三个模型:业务处理模型、概念数据模型、物理数据模型及相互关系。
3.用PowerDesinger工具进行一个简单系统分析建模操作。
〔3〕学时分配:6
3.实验三
〔1〕名称:小型系统分析设计
〔2〕主要内容与要求:
1、根据自己的爱好与熟悉领域,选择一个课题进行练习。
2、根据题目中规定人数自由组合开发小组,每一开发小组选一负责人,每组人数2-4个人,并且明确每个学生在开发小组中扮演的角色及承当的职责〔包括选出组长〕。
3、所有实习题均由开发小组自己给出更具体的需求说明;
4、在本学期结束前由任课教师检查开发小组的实现结果;
5、每一份文档均有目录,所有技术文档前面有总目。
6、每一开发小组最终交付的文档包括∶
软件方案任务书,注意写清楚开发小组中每个人的分工。
需求规格说明书〔数据流图、数据字典、IPO图〕
总体设计说明书〔系统流程图、模块结构图、模块描述〕
数据库设计说明书〔根据题目性质决定是否需要〕
详细设计说明书〔用PAD图描述每个模块的主要算法〕
软件测试方案书
用户使用手册
项目开发总结报告
〔3〕学时分配:10
〔五〕教学时数分配表
章节
序号
教
学 学
时 环
节 教学内容
讲 授
讨 论
见习
实 验
其 它
小计
一
软件工程学概述
4
二
可行性研究
3
三
需求分析
3
四
形式化说明技术
2
五
总体设计
5
六
详细设计
4
七
实现
6
八
软件维护
1
九
面向对象方法简介
4
十
管理技术
2
复习2
总 计
34
2
36
〔六〕考核方法与要求
1.平时成绩:平时成绩占15%,包括出勤、课堂提问、作业、讨论等;
2.实践成绩:实践成绩占15%,包括上机出勤、实验报告等。
3.期终考试成绩:期终考试成绩占70%
4.综合考核成绩的计算:平时成绩占15%+实践成绩占15%+期终考试成绩占70%
〔七〕教材与主要参考书
按使用的重要性程度、顺序排列,并注明:
按使用的重要性程度、顺序排列,并注明:
1.教材:
张海藩,软件工程导论〔第四版〕,清华大学出版社,2023年
2.主要参考书:
1. Roger S.Pressman,软件工程—实践者的研究方法(第6版〕,机械工业出版社,2023。
2. Shari L.Pfleeger,软件工程—理论与实践 (第3版〕,人民邮电出版社,2023 。
3. 王庆育,软件工程,清华大学出版社,2023
〔八〕修订说明
二、课程简介
软件工程是计算机学科中一个年轻并且充满活力的研究领域,已成为高等学校计算机教育方案中的一门核心课程。通过课程学习与实际训练掌握与理解软件工程学中的根本概念、方法和原那么。使学生进行一个从软件方案、需求分析、设计、编码、测试和软件开发全过程的训练,要求能够按照软件工程标准书写文档,通过本课程实验,可以将所学的理论,方法和技术有机地串联起来,从而为将来实践和后续课程打下根底,还可以为最后的毕业设计做好理论与实践上的准备。
三、教学内容章节纲要
第一章 软件工程学概述
〔一〕 教学目标:
掌握软件的特点,软件生产开展的三个阶段,各阶段的特点,软件危机的产生及其表现形式;初步了解软件的生存周期模型;理解软件工程的定义及特点,软件生存期各阶段的特点和内容;深刻理解软件危机产生的原因,了解瀑布模型等各软件过程及特点。
〔二〕 教学内容:
第一节 软件危机
1.△软件危机的表现;
2.△产生软件危机的原因;
3.△尝试解决软件危机的途径。
第二节 软件工程
1. 软件工程的介绍
2.软件工程的根本原理
3.软件工程方法学
4.△软件生命周期介绍
第三节 软件过程
1.△瀑布模型
2.△快速原型模型
3.增量模型
4.螺旋模型
第二章 可行性研究
(一)教学目标:
深刻理解可行性研究的必要性;掌握可行性研究的任务及可行性研究的具体步骤;了解系统流程图的作用及符号表示;重点掌握数据流图画法和学会数据字典表示方法。掌握本钱效益分析的方法。
(二)教学内容:
第一节 可行性研究的任务
1.可行性研究的目的和任务、步骤
2.技术可行性、经济可行性、操作可行性。
第二节 可行性研究的过程
1.掌握可行性研究的步骤
2.了解可行性研究阶段文档书写内容
第三节 系统流程图
1.了解系统流程图符号和用途
2.掌握系统流程图的画法。
第四节 数据流图
1.了解数据流图的符号,介绍DFD的四种成分〔数据流、加工、文件、数据源点与终点〕以及每一成分的命名原那么与本卷须知;
2. △○介绍DFD的分解步骤、分解原那么以及要注意的一致性问题。
3.数据流图用途
第五节 数据字典
1.数据字典的内容
2.△数据字典中定义数据的方法
3.数据字典的用途和实现
第六节 本钱效益分析
1.本钱估计;
2.△本钱/效益分析的方法;
第三章 需求分析
(一)教学目标:
深刻理解需要分析阶段的概念及任务;熟练掌握数据流图的细化及ER图,IOP图的画法,掌握状态图画法。
(二)教学内容:
第一节 需求分析的任务
1.确定对系统的综合要求
2.分析系统的数据要求
3.导出系统逻辑模型
4.修正系统开发方案
第二节 与客户沟通获取需求的方法
1.△○面向数据流自顶向下求精
2.快速建立系统原型
第三节 需求分析工具
1.分析建模与规格说明
2.软件需求规格说明
第四节 实体-联系图
1.实体-联系图的符号
2.实体-联系图的画法和用途
第五节 数据标准化
复习数据库系统原理中讲过的第一范式、第二范式、第三范式
第六节 状态转换图
1.状态、事件、符号等根本概念
2.△○状态转换图画法及例子
第七节 其他图形工具
1.层次方框图
2.△IPO图
第四章 形式化说明技术
(一)教学目标:
会用有穷状态机表示系统行为,了解Petri 网;
(二)教学内容:
第一节 概述
1.非形式化方法的缺点
2.形式化方法的优点
3.应用形式化方法准那么
第二节 有穷状态机
1.△○概念、画法和用途
2.例子
第三节 Petri 网
1.使用Petri 网表示系统处理过程
2.例子
第五章 总体设计
(一)教学目标:
深刻理解软件总体设计的根本任务,软件设计的根本原理。深入理解模块化,抽象,信息隐蔽,模块独立性等概念,明确度量模块独立性的耦合性及内聚性,掌握模块之间的各种耦合关系〔无耦合、数据耦合、控制耦合、公共环境耦合、内容耦合等〕与模块内部的内聚关系〔功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚等〕。熟练掌握结构化设计方法(要求能划分数据流的类型,将其能换成软件结构图,并能根据优化准那么将其优化)。
(二)教学内容:
第一节 设计过程
了解总体设计过程的9个步骤;
第二节 设计原理
1.△○模块化
2.抽象
3.逐步求精
4.△○信息隐藏和局部化
5.△○模块独立性
第三节 启发规那么
了解7条启发式规那么
第四节 描绘软件结构的图形工具
1.层次图和HIPO图;
2.结构图SC;
第五节 面向数据流的设计方法
1.概念
2.△○变换分析
3.△○事务分析
4.设计优化
第六章 详细设计
(一)教学目标:
掌握结构化程序设计根本概念、三种根本控制结构,能熟练的使用详细设计描述工具〔流程图、N-S图、PAD图、过程设计语言〕来设计模块中的算法及程序的逻辑结构;熟练掌握判定表、判定树;了解Jackson方法的概念、掌握程序复杂度的度量方法。
(二)教学内容:
第一节 结构程序设计
自顶向下;逐步求精;三种根本控制结构;结构化程序设计的历史。
第二节 过程设计工具
1.程序流程图
2.盒图〔N_S图〕
3.△○PAD图
4.△判定表
5.△判定树
6.过程设计语言
第三节 面向数据结构的设计方法
1.Jackson图
2.○Jackson方法
第四节 程序复杂程度的定量度量
1.△McCabe方法
2.Halstead方法;
第七章 实现
(一)教学目标:
了解几种常见的程序设计语言的特点,领会程序设计中应注意的问题,注意培养良好的编程风格;深刻理解白盒,黑盒测试技术,深刻理解测试过程中单元测试,集成测试,验收测试的任务及使用的方法;了解调试程序的方法;熟练掌握的技能是:能针对某一问题采用白盒法或黑盒法进行测试用例的设计。
(二)教学内容:
第一节 编码
1.选择程序设计语言
2.△编码风格
第二节 软件测试根底
1.软件测试的目标
2.软件测试准那么
3.测试方法
4.测试步骤
5.测试阶段信息流
第三节 单元测试
1.测试重点
2.代码审查
3.计算机测试
第四节 集成测试
1.△自顶向下集成
2.△自底向上集成
3.不同集成测试策略的比拟
第五节 确认测试
1.确认测试的范围
2.软件配置复查
1.Alpha