教学大纲

?

课程教学大纲

?

课程名称

软件工程

课程类别

专业基础课(必修)

学分

4

学时

64

适用专业

计算机、软件工程及相关专业

大纲执笔人

李代平

第一部分 基本说明

1

课程性质

1、 课程类型、性质、作用

《软件工程》是计算机科学与技术、软件工程、 络工程专业一门专业核心课程,在软件工程学科人才培养体系中占有重要地位。软件开发是建立计算机应用系统的重要环节,而软件工程学是用以指导软件人员进行软件开发、维护和管理的科学。

2、 课程与专业培养目标关联

软件工程是指导计算机软件开发与维护的工程学科,为了学生能掌握现代化的软件开发方法,本课程将结合当代软件工程技术的发展实际,向学生系统地讲述软件工程相关知识(包括:软件工程的概念、原理、技术,经时间考验而证明正确的管理技术、当前的技术方法等等),并选择典型的软件工程开发案例进行剖析,使同学能够在牢固掌握软件工程书本知识的同时,了解软件工程各领域的发展方向,以及开发过程中应遵循的流程、准则、标准和规范。可以将所学灵活地应用于实际的软件开发中。

3、本课程与其它课程的关联(先修、后续)

本课程先修课程有:程序设计语言,数据结构,数据库原理与应用。

本课程后续课程有:软件工程课程设计、软件测试、毕业设计。

2

课程目标与基本要求

1、要求了解的基本知识

通过本课程的学习,要求学生掌握软件工程的基本概念、方法、理论体系,熟练掌握一些常用的实用开发方法和技术。了解UML语言的基础知识,掌握软件生命周期及开发的各种模型,理解面向对象的分析与设计方法

2、要求理解和掌握的基本知识

本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践” 软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。

3、能够运用的基本方法与技能

通过本课程的学习,要求学生能掌握软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。

本课程注重培养学生理论应用于实践的能力,通过理论教学与课程设计,培养学生对整个软件开发过程的能力,让学生能切实体会到软件工程在实践中的指导作用,并按软件工程的要求完成规范的各项软件开发文档。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。

3

教学内容与学时分配

4

重点难点

1、专业课程重点:系统分析、系统设计、系统实现.

2、专业课程难点:需求分析、系统设计、软件测试。

3、综合素质(育人或思政)

(1)软件工程概述:增强道德意识,软件工程开发要把道德放在第一位,尊重规则,严守道德规范,尊重知识产权,尊重创新。

(2)可行性分析:多为别人考虑,凡事三思而后行。

(3)需求分析:全方面考虑问题,内心要平静,眼光放长远。

(4)软件危机:树立学生的危机意识,大学生要居安思危,未雨绸缪,努力学习,提高技能,跟上 会的发展,从而不被 会淘汰。

5

教学模式

主要采用课堂教学与实践教学相结合的线下教学模式。

1、课堂教学

多媒体教学,课堂互动,留作业。

2、实践教学

课内实验,期末实践周。

3、 教学条件

多媒体教室,专业实验室, 络教学平台。

6

课程考核方式与成绩评定办法

1、课程考核方式

过程性考核与期末统一考试相结合,试题包括基本概念、基本理论、分析计算和设计,题型可采用填空、判断、计算、画图、简答、综合题等。

2、成绩评定办法

总评成绩:平时成绩占30%,期末考试占70%。

过程性考核内容主要包括作业和课堂互动,其中作业占70%,课堂互动占30%。

7

教材与参考书

1、教材

2、参考书

(1)《软件工程导论》(第5版),张海藩,清华大学出版 ,2018年

(2)《软件工程概论》,郑人杰、殷人昆. 清华大学出版 ,2018年

(3)《软件工程(第3版)》,钱乐秋、赵文耘、牛军钰,清华大学出版 ,2016年

第二部分理论教学内容与要求

第1章 软件工程绪论

一、教学基本内容

1.1 软件概述

1.2 软件工程

二、教学目的和要求

1.掌握软件的特点、分类与软件危机知识;

2.掌握软件工程基本原理;

3.掌握软件工程的目标、内容、原则与面临问题。

第2章 基本理论

一、教学基本内容

2.1 软件工程过程

2.2 软件生命周期

2.3 软件生命周期模型

2.4 软件开发方法

2.5软件工程应用实例

二、教学目的和要求

1. 知晓软件工程过程;

2.掌握软件工程及软件生存周期的知识;

3.掌握几种典型的软件开发模型的定义及其特点的知识。

第3章 可行性研究

一、教学基本内容

3.1 可行性研究任务与步骤

3.2 系统分析

3.3 分析原理

3.4 系统模型与模拟

3.5 成本-效益分析

3.6 可行性研究的文档

3.7 项目开发计划

3.8 可行性分析实例

二、教学目的和要求

1.掌握可行性研究任务与步骤

2.知晓系统分析员条件

3.掌握系统分析原理及建模方法和成本分析

4.掌握可行性 告规范。

第4章 需求分析

一、教学基本内容

4.1 需求分析

4.2 结构化分析

4.3 系统流程图

4.4 数据流图

4.5 数据字典

4.6 结构化分析应用实例

二、教学目的和要求

1.了解软件需求分析阶段的特点、原则、任务及方法;

2.掌握软件需求分析的主要过程及需求评审的知识;

3.具备数据流图、数据字典的使用方法;

4.了解软件需求规格说明书的基本格式。

第5章 总体设计

一、教学基本内容

5.1 软件设计的重要性

5.2 设计过程

5.3 软件总体设计

5.4 设计基本原理

5.5 体系结构设计

5.6 结构化设计

5.7 结构化设计应用实例

二、教学目的和要求

1.了解总体设计的过程、方法和原理;

2.掌握总体设计的常用技术和图形工具;

3.具备结构化方法软件设计的能力。

第6章 软件详细设计

一、教学基本内容

6.1 详细设计的任务与方法

6.2 设计表示法

6.3 结构化程序设计

6.4 结构化详细设计应用实例

二、教学目的和要求

1.了解结构化详细设计的任务与方法;

2.掌握详细设计的表示法

3.知晓结构化定理和程序设计理论。

第7章 面向对象分析

一、教学基本内容

7.1 面向对象的相关概念

7.2 UML的基本图标

7.3 对象分析

7.4 一般-特殊结构

7.5 整体-部分结构

7.6 实例连接

7.7 消息连接

7.8 面向对象分析应用实例

二、教学目的和要求

1.掌握面向对象的概念及其思想;

2.掌握面向对象软件的任务及其过程;

3.掌握面向对象三种模型及模型间的关系;

4.了解面向对象的分析的基本过程;

5.具备创建对象模型、动态模型和功能模型的能力。

第8章 面向对象设计

一、教学基本内容

8.1 系统总体方案

8.2 软件体系结构

8.3 设计环境

8.4 完善对象的细节

8.5 设计算法

8.6 关联设计

8.7 设计优化

8.8 面向对象设计应用实例

二、教学目的和要求

1.掌握面向对象方法设计的主要任务及实现过程;

2.掌握面向对象设计的准则和方法

3.具备系统分解和各类子系统的设计的能力。

第9章 用户界面设计

一、教学基本内容

9.1 人的因素

9.2 界面设计风格

9.3 人机界面的设计准则

9.4 人机界面设计过程

二、教学目的和要求

1.掌握 (1)软件启动封面设计;(2)软件框架设计;(3)软件按钮设计;(4)软件面板设计;(5)菜单设计;(6)标签设计;(7)图标设计;(8)滚动条及状态栏设计;(9)安装过程设计;(10)包装及商品化;

2.掌握界面设计规范、一致性(字体、对齐、表单录入、鼠标手势、保持功能及内容描述一致)、准确性、布局(菜单、按钮、功能、排版、表格数据列表、滚动条、页面导航)、系统操作(流畅地完成一些常用的业务操作)、系统响应(系统响应时间应该适中)。

第10章 数据库及其接口设计

一、教学基本内容

10.1 数据管理系统及其选择

10.2 技术整合

10.3 数据接口

10.4 对象存储方案和数据接口的设计策略

二、教学目的和要求

1. 理解接口的设计需要考虑用户的使用习惯、方便程度、安全程度。

2.掌握接口六原则:单一职责原则、里氏替换、依赖倒置、接口隔离、迪米特法则(最少知识)、开闭法则。

第11章 软件实现

一、教学基本内容

11.1 程序设计语言的特性及选择

11.2 程序设计风格

11.3 程序设计效率

11.4 冗余编程

11.5 软件容错技术

二、教学目的和要求

1.掌握程序设计语言的特性及选择;

2.了解编程准则与编程风格的知识;

3.掌握程序设计的基本过程分知识;

4.了解提高软件可靠性的技术。

第12章 软件测试

一、教学基本内容

12.1 软件测试概述

12.2 测试方法

12.3 测试用例的设计

12.4 测试过程

12.5 调试

二、教学目的和要求

1.掌握软件测试的概念、目标及原则的知识;

2.掌握白盒/黑盒测试的主要工作原理知识;

3.具备几种主要的黑盒/白盒测试的能力;

4.具备软件排错的能力。

第13章 软件项目管理与计划

一、教学基本内容

15.1 软件项目管理概述

15.2 项目管理过程

15.3 软件开发成本估算

15.4 风险分析

15.5 进度安排

15.6 软件项目的组织

二、教学目的和要求

1.了解如何估算软件规模和工作量的知识;

2.具备进度计划的制定和人员组织的方式,以及如何进行质量保证的能力;

3.具备风险分析的技术。

第三部分 课程实验

1

实验的指导思想

以“提高学生科学素养”为目标,积极探索正确、严谨的实验教学方法,并通过开展多层次的新课程理论学习,适时地更新教育观念,树立新课程理念。

2

实验目的

(1)使学生进一步理解和掌握“软件工程”课程中所学每个软件开发阶段的基本任务、基本步骤、基本技能,并引导学生在项目开发过程中正确地使用。

(2)使学生在开发中、小型软件项目的实践过程中,将所学的计算机编程语言、算法设计、数据结构和数据库原理等知识有机结合起来,建立系统化理论、实践体系。

(3)使学生能较为熟练地运用工具进行软件的开发、测试和管理,培养学生之间团队合作、服务客户、造福 会和诚实可信的软件工程人员职业道德精神。

(4)体验软件开发文档的编写;

(5)引导学生借助 络等手段,学会查找各种资料、素材,扩充学生解决实际问题的途径,培养独立思考、自主创新的能力;

3

实验的基本任务

(1)巩固对软件工程、数据库设计、数据结构、算法设计基本知识的理解,培养学生综合地、灵活地运用所学技能。

(2)通过实际项目设计与开发,要求学生能熟练使用软件工具,规范书写软件工程标准文档,并提交软件程序、开发文档各一套。

(3)学生以项目小组的形式参与实验,培养学生之间团结互助,协同配合的能力。

(4)培养学生自学参考书籍,查阅手册、图表和文献资料的能力。

4

实验的基本要求

(1)项目小组按照若干人组成,也可以一个人独立作业。要求每个项目组/人完成不同的项目。

(2)项目小组内成员的实际工作量充足,且具有清晰的思路、一定思维能力和规范的语言习惯。

(3)项目组内成员已经掌握数据结构知识,有一定的算法思想。

(4)项目组内成员已经掌握数据库基本原理,并能熟练运用数据库管理工具。

5

实验选题

指导实验老师最好拟定一个适当的题目,在本课程的实验部分的设计的9项实验中,各项实验做这个题目的一个阶段内容。

选题原则:

(1)科学性原则:含义:一有依据,二符合客观规律,三符合逻辑性。

(2)创新性原则:科研选题必须具有创新性,要选择前人没有解决 或没有完全解决的问题,创新性原则便可以称为教育科研选题的灵魂。

(3)价值性原则:价值性原则,是指在选题时必须考虑这一课题是否具有内部价值和外部价值,是否值得研究。

(4)可行性原则:可行性原则,是具备则具有可行性,值得研究。

(5)扩展性原则:扩展性原则,其研究成果能应用于较广泛的教育教学领域。

(6)需要性原则:就是指选题必须满足 会发展需要和科学技术自身发展趋势需要。

(7)效能性原则:效能性是指科研的投入与预期研究成果的综合效能是否相当。

6

实验项目设置及学时分配

注:开设要求为必做或选做;实验类型为演示、验证、综合型、设计型等;若开出多个实验供学生自主选择时,可要求学生最少选择的实验个数和学时。要达到实验目的,有可能课内安排的实验学时不够,因此学生要课外配套相应的时间才能完成。

7

实验教材与参考书

?

配套参考教材

?

软件工程(第5版)

内容简介

目录

向上滑动阅览

第一部分基础理论

第1章绪论

1.1软件概述

1.1.1什么是计算机软件

1.1.2软件的特点

1.1.3软件的分类

1.1.4软件的发展

1.1.5软件危机

1.2软件工程概述

1.2.1软件工程与方法学

1.2.2软件工程的基本原理

1.2.3软件工程的目标

1.2.4软件工程的内容

1.2.5软件工程原则

1.2.6软件工程面临的问题

小结

综合练习1

第2章基本理论

2.1软件工程过程

2.2软件生命周期

2.2.1软件分析时期

2.2.2软件设计时期

2.2.3编码与测试时期

2.2.4运行与维护时期

2.3软件生命周期模型

2.3.1软件生命周期模型的概念

2.3.2瀑布模型

2.3.3原型模型

2.3.4增量模型

2.3.5螺旋模型

2.3.6喷泉模型

2.3.7基于知识的模型

2.3.8变换模型

2.4软件开发方法

2.4.1结构化方法

2.4.2Jackson方法

2.4.3维也纳开发方法

2.4.4面向对象的开发方法

2.5软件工具与开发

2.5.1软件工具箱

2.5.2软件开发环境

2.5.3计算机辅助软件工程

2.6软件工程应用实例

小结

综合练习2

第3章可行性研究

3.1可行性研究任务与步骤

3.1.1研究任务

3.1.2研究步骤

3.2系统分析

3.2.1系统分析员

3.2.2面临的问题域

3.2.3通信技术

3.3分析原理

3.3.1信息域

3.3.2建立模型

3.3.3分解

3.4系统模型与模拟

3.4.1系统模型

3.4.2系统建模和模拟

3.5成本效益分析

3.6可行性研究的文档

3.7项目开发计划

3.7.1方案选择

3.7.2制订项目开发计划

3.8应用案例——成绩管理系统可行性研究

3.8.1引言

3.8.2对现行系统的分析

3.8.3建议的新系统

3.8.4可行性研究

3.8.5可行性分析

3.8.6系统工程性能分析

3.8.7风险分析

3.8.8可选择的其他系统方案

3.8.9结论

小结

综合练习3

第二部分结构化方法

第4章软件需求分析

4.1需求分析

4.1.1需求分析的特点

4.1.2需求分析的原则

4.1.3需求分析的任务

4.1.4需求分析的方法

4.2结构化分析

4.2.1自顶向下逐层分解

4.2.2结构化分析步骤

4.3系统流程图

4.4数据流图

4.4.1基本图形符

4.4.2画数据流图

4.5数据字典

4.5.1内容及格式

4.5.2数据字典的实现

4.6应用案例——成绩管理系统结构化需求分析

4.6.1引言

4.6.2业务需求

4.6.3需求分析

4.6.4总结

小结

综合练习4

第5章总体设计

5.1软件设计的重要性

5.2设计过程

5.3软件总体设计

5.4设计基本原理

5.4.1抽象

5.4.2细化

5.4.3模块化

5.4.4软件体系结构

5.4.5程序结构

5.4.6数据结构

5.4.7软件过程

5.5体系结构设计

5.5.1软件结构图

5.5.2模块的大小

5.5.3扇出和扇入与深度和宽度

5.5.4模块的耦合

5.5.5模块的内聚

5.5.6结构设计的一般准则

5.5.7模块的作用域与控制域

5.6结构化设计

5.6.1数据流的类型

5.6.2过程步骤

5.6.3变换分析设计

5.6.4事务分析设计

5.6.5混合流设计

5.6.6结构化设计方法应用示例

5.6.7设计的后期处理

5.7应用案例——成绩管理系统总体设计

5.7.1总体设计

5.7.2接口设计

5.7.3运行设计

5.7.4系统论结构设计

5.7.5故障检测与处理机制

小结

综合练习5

第6章软件详细设计

6.1详细设计的任务与方法

6.1.1详细设计的基本任务

6.1.2详细设计方法

6.2设计表示法

6.2.1结构化语言

6.2.2判定表

6.2.3判定树

6.3结构化程序设计

6.3.1程序流程图

6.3.2三种基本控制结构

6.3.3常用符

6.3.4常见错误

6.4应用案例——成绩管理系统结构化详细设计

6.4.1引言

6.4.2模块结构设计

6.4.3数据结构设计

6.4.4算法设计

小结

综合练习6

第三部分面向对象方法与实现

第7章面向对象分析

7.1面向对象的相关概念

7.1.1对象

7.1.2类

7.1.3属性

7.1.4服务(操作或方法)

7.1.5封装

7.1.6继承

7.1.7消息

7.1.8结构与连接

7.2UML的基本图标

7.3对象分析

7.3.1用户需求与研究问题域

7.3.2发现对象方法

7.3.3定义属性

7.3.4定义服务

7.4一般特殊结构

7.5整体部分结构

7.6实例连接

7.6.1简单的实例连接

7.6.2复杂的实例连接及其表示

7.7消息连接

7.8应用案例——成绩管理系统面向对象分析

7.8.1引言

7.8.2系统说明

7.8.3需求分析

小结

综合练习7

第8章面向对象设计

8.1系统总体方案

8.2软件体系结构

8.3环境设计

8.3.1为适应编程环境的调整

8.3.2对象设计的步骤

8.4完善对象的细节

8.5算法设计

8.5.1选择算法

8.5.2选择数据结构

8.6关联设计

8.6.1单向关联

8.6.2双向关联

8.7设计优化

8.8应用案例——成绩管理系统面向对象设计

8.8.1系统结构设计

8.8.2对象设计

小结

综合练习8

第9章用户界面设计

9.1界面设计风格

9.1.1菜单的选择

9.1.2对话框

9.1.3窗口

9.2人机界面的设计准则

9.3人机界面设计过程

9.3.1用户界面模型

9.3.2界面支持系统

9.3.3界面元素

9.3.4设计的形式

小结

综合练习9

第10章数据库及其接口设计

10.1数据管理系统及其选择

10.2技术整合

10.3数据接口

10.3.1针对文件系统的设计

10.3.2针对RDBMS的设计

小结

综合练习10

第11章软件实现

11.1程序设计语言的特性及选择

11.1.1程序设计语言的特性

11.1.2程序设计语言的选择

11.2程序设计风格

11.3程序设计效率

11.3.1代码效率

11.3.2内存效率

11.3.3I/O效率

11.4冗余编程

11.5软件容错技术

11.5.1容错软件

11.5.2容错的一般方法

11.5.3容错软件的设计过程

11.5.4软件的容错系统结构

小结

综合练习11

第四部分测试与工程管理

第12章软件测试

12.1软件测试概述

12.1.1软件测试的目的

12.1.2软件测试的原则

12.2测试方法

12.2.1静态测试

12.2.2动态测试

12.3测试用例的设计

12.3.1白盒技术

12.3.2黑盒技术

12.4测试过程

12.4.1软件测试过程中的信息

12.4.2软件测试的步骤与各开发阶段的关系

12.4.3单元测试

12.4.4集成测试

12.4.5确认测试

12.5调试

小结

综合练习12

第13章软件项目管理与计划

13.1软件项目管理概述

13.1.1软件管理的对象

13.1.2软件开发中的资源

13.1.3分解技术

13.2项目管理过程

13.3软件开发成本估算

13.3.1软件开发成本估算方法

13.3.2软件开发成本估算的经验模型

13.4风险分析

13.4.2风险估算

13.4.3风险评价

13.4.4风险驾驭和监控

13.5进度安排

13.5.1软件开发小组人数与软件生产率

13.5.2任务的确定与并行性

13.5.3制订开发进度计划

13.5.4进度安排的图形方法

13.5.5项目的追踪和控制

13.6软件项目的组织

13.6.1软件项目管理的特点

13.6.2软件项目组织的建立

13.6.3人员配备

小结

综合练习13

参考答案

参考文献

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月25日
下一篇 2022年9月25日

相关推荐