课程介绍
软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品,或以此为研究对象的学科。
学生通过本课程的学习,掌握软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的发展动向;掌握传统方法──结构化分析与设计和现代开发方法──面向对象设计;了解软件项目开发和维护的一般过程,培养学生软件开发工程化的观点,系统化的观点;为更深入地学习和今后从事软件工程实践打下良好的基础。
课程大纲
第一章 软件工程概述
本章的考试内容:本章主要介绍软件的特征、软件危机、软件工程中的五种软件开发模式,使学生理解软件工程的概念及产生软件危机的原因;软件生命周期中各阶段的基本任务。
本章的主要知识点:了解软件的特点,软件生产发展的三个阶段,各阶段的特点,软件危机的产生及其表现形式;初步了解软件的生存周期模型;理解软件工程的定义及特点,软件生存期各阶段的特点和内容;深刻理解软件危机产生的原因;掌握软件生命周期中各阶段的基本任务。
重点:软件危机的产生、表现、原因;软件工程的定义;软件生存周期概念。
第二章 可行性研究
本章的考试内容:主要介绍软件的可行性分析、软件计划及成本估算,使学生明确可行性分析的基础和主要任务,掌握可行性研究的方法和步骤。
本章的主要知识点:深刻理解可行性研究的必要性,掌握可行性研究的任务及可行性研究的具体步骤;了解系统流程图的作用及符号表示,重点掌握数据流图的画法及数据字典的编写。
重点:可行性研究的任务及步骤,数据流图的画法及数据字典的编写。
难点:数据流图的画法。
第三章 需要分析
本章的考试内容:主要介绍需求分析的任务和步骤、结构化分析方法及原型化分析方法,使学生掌握结构化分析方法的指导原则、数据流图、数据词典和加工说明等描述手段。了解需求分析文档建立和复审的方式。
本章的主要知识点:深刻理解需要分析阶段的概念及任务,熟练掌握数据流图的细化及ER图以及规范化方法(如范式),IPO图的画法;掌握常用图形工具的使用方法。
重点及难点:需要分析过程,各种图形工具的应用。
第四章 总体设计
本章的考试内容:主要介绍软件结构设计中结构化设计方法和面向数据结构的设计方法,使学生明确结构设计的目标和任务,理解结构化设计的概念和原理,掌握结构化设计的步骤以及相关方法。
本章的主要知识点:了解总体设计的过程;深刻理解软件总体设计的基本任务,软件设计的基本原理。理解模块化,抽象,信息隐蔽,模块独立性等概念,明确度量模块独立性的校准---耦合性及内聚性。熟练掌握结构化设计方法(要求能划分数据流的类型,将其能换成软件结构图,并能根据优化准则将其优化。)
重点与难点:
(1) 将交换流程高务流类型的数据流图,转换成软件结构
(2) 将一个复杂型数据流图转换成软件结构图并优化
第五章 详细设计
本章的考试内容:主要介绍详细设计方法采用的结构化程序设计的思想和原理;常用的算法过程的描述工具;算法的复杂性评价问题。使学生明确详细设计阶段的主要任务,掌握算法复杂性的度量方法。
本章的主要知识点:能熟练的使用详细设计描述工具来设计模块中的算法及程序的逻辑结构。理解Jackson方法的概念及程序复杂度的度量方法,学会使用Jackson方法设计输入输出数据结构和程序结构。
重点及难点:
流程图、PAD图、过程设计语言的简单应用;用Jackson方法设计小型体目。
第六章 编码
本章的考试内容:主要介绍程序设计语言的概念以及编码应当遵循的原则;编码设计的目标与任务、编码使用的程序设计语言的特性以及程序设计风格的重要性。
本章的主要知识点:了解几种常见的程序设计语言的特点,领会程序设计中应注意的问题,注意培养良好的编程风格。
重点及难点:领会写程序的风格
第七章 测试
本章的考试内容:主要介绍软件测试的概念与主要任务,软件的排错技术和软件可靠性的评测方法。软件测试的目标、原则以及测试方案的建立和测试过程。测试实例的构造方法。
本章的主要知识点:总的要求是掌握测试阶段的内容,测试方法及测试步骤。
(1)深刻理解白盒,黑盒测试技术。深刻理解测试过程中单元测试,集成测试,验收测试的任务及使用的方法。
(2)掌握调试程序的方法。
(3)熟练掌握的技能是:能针对某一问题采用白盒法或黑盒法进行测试用例的设计。
重点与难点:
白盒与黑盒测试方法;单元测试,集成测试的方法;自顶向下及自底向上结合模块的步骤;渐增式及非渐增式测试的区别;归纳法与演绎法调试策略;测试用例的设计。
第八章 维护
本章的考试内容:主要介绍软件维护的类型、软件的可维护性以及软件的维护方法;软件维护的目标与任务,软件维护的特殊性以及软件维护的管理流程。
本章的主要知识点:掌握软件维护的内容、特点、方法、技术、文档
(1)了解软件维护的各种困难,软件维护的特点,软件维护的文档。
(2)理解软件维护的内容,维护任务的实施。
(3)深刻理解如何提高软件的维护性。
重点与难点
(1) 领会改正性维护、适应性维护、完善性维护、预防性维护。
(2) 可维性的定义、可维性的度量及提高可维护性的方法。
第九章 面向对象的方法学
本章的考试内容:主要介绍面向对象的概念,包括对象和类、对象的属性和操作,以及对象之间的关系;面向对象程序设计的特性,如封装、继承和多态性;面向对象的建模,包括对象模型、动态模型和功能模型的概念。
本章的主要知识点:
深刻理解对象、类、类的层次结构、方法和消息的实质以及对象之间的关系;面向对象程序设计的特性;面向对象建模的概念
重点与难点: 对象之间的关系;面向对象建模的概念
第十章 面向对象分析
本章的考试内容:主要介绍面向对象分析的基本过程;建立对象模型、动态模型和功能模型的方法确定对象、确定属性、定义操作、对象间通信。
本章的主要知识点:
理解对象分析的基本过程;深刻理解对象模型、动态模型、功能模型的元素、结构和构造方法;掌握画对象图、画状态图、画数据流程图;确定对象类、确定关联、确定属性,识别继承。
重点和难点:
建立对象模型、动态模型、功能模型。画对象图、画状态图、画数据流程图
第十一章 面向对象设计
本章的考试内容:主要介绍面向对象设计的准则;面向对象设计所用启发性规则、软件重用、系统分解等方法;设计问题域、人机交互、管理等子系统;设计优化。
本章的主要知识点:掌握面向对象设计的准则;掌握面向对象设计所用启发性规则、软件重用、系统分解等方法;了解设计问题域、人机交互、管理等子系统;设计优化。
重点与难点:面向对象设计所用启发性规则、软件重用、系统分解。
第十二章 面向对象实现
本章的考试内容:主要介绍面向对象程序设计语言;程序设计风格;面向对象测试。
本章主要知识点:了解面向对象程序设计风格;了解面向对象测试。
第十三章 软件项目管理
本章的考试内容:主要介绍软件开发成本结算、软件项目进度安排、软件项目计划内容及软件质量的定义、质量保证。
本章的主要知识点:了解软件开发成本结算、软件项目进度安排、软件项目计划内容及软件质量的定义、质量保证的基本概念。
重点与难点:软件开发成本结算、软件项目进度安排、软件项目计划内容。
学习目标
通过该课程的学习,掌握软件工程的基本概念、基本原理、实用的开发方法和技术;了解软件工程各领域的发展动向;掌握传统方法──结构化分析与设计和现代开发方法──面向对象设计;了解软件项目开发和维护的一般过程,培养学生软件开发工程化的观点,系统化的观点。
课程目标1:掌握传统软件开发方法。
掌握传统软件开发方法--结构化方法,对软件需求进行分析与设计,建立相应模型。
课程目标2:掌握现代软件开发方法。
掌握传统软件开发方法--面向对象方法,对软件需求进行分析与设计,建立相应面向对象分析(OOA)和面向对象设计(OOD)模型。
考核标准
课件浏览10%,客观练习70%,主观练习20%,课内讨论0%,练习允许2次全部重做。。
课程内容不断迭代,成绩以当时的课程内容为准,一旦合格,可以申请证书。申请证书后,以结课处理,成绩不再改动
