-
第一章软件工程导论
通过学习了解软件危机产生的原因和解决方法,掌握软件工程的基本概念和软件生命周期及软件开发过程模型。
-
●1.1软件危机
主要学习软件危机的定义、典型特征、产生的原因,并给出了消除软件危机的途径。
-
●1.2软件工程
主要学习软件工程定义、软件具有的本质特性、软件工程的基本原理和软件工程方法学。
-
●1.3软件生命周期
主要学习软件生命周期的定义和各阶段过程的内容。
-
●1.4软件过程
主要学习软件过程的基本概念,并学习几软件过程模型,即瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
-
第二章可行性研究
通过学习,了解软件开发中可行性研究的任务及可行性过程,掌握可行性研究中系统流程图、数据流程图和数据字典等工具,并掌握成本/效益分析方法。
-
●2.1可行性研究的任务与过程
学习可行性任务和可行性过程,了解如何去完成软件的可行性研究。
-
●2.2系统流程图
学习系统流程图,即用工具的方法表达系统的物理模型。
-
●2.3数据流图
学习数据流程图,详细介绍如何用工具描述数据在系统中的流动情况,即系统的逻辑模型。
-
●2.4数据字典
学习数据字典的概念,以及如何对数据流程图中包含的所有元素的形式化定义。
-
●2.5成本/效益分析
学习软件项目的成本效益分析。成本效益分析是从经济角度回答软件项目是不是值得进行。
-
第三章需求分析
通过学习了解需求分析的任务及需求分析的获取方法及表达方法,并学习掌握需求分析的工具,如实体联系图、状态转换图以及其它工具等。
-
●3.1需求分析的任务
学习需求分析的任务,主要理解软件需求内容及需求阶段应该完成的任务。
-
●3.2与用户沟通获取需求的方法
学习与用户沟通获取需求的方法,通过这些方法可以获得用户对软件的真实需求。
-
●3.3分析建模与规格说明
主要学习软件分析建模方法,以及软件规格说明方法。
-
●3.4实体联系图
重点讲解软件需求建模中的实体联系图。
-
●3.5数据规范化
主要学习数据规范化理论,数据规范化是指导开发人员进行数据库设计的理论工具。
-
●3.6状态转换图
主要学习状态转换图。状态转换图是用来描述系统状态转换的因果关系工具。
-
●3.7其它图形工具
主要学习需求分析表达中的其它图形工具,这些工具都是从不同角度描述用户需求。
-
●3.8验证软件需求
学习软件需求验证,主要介绍软件需求正确性内涵,并讲解如何验证软件的正确性。
-
第四章形式化说明技术
通过本章的学习,了解为什么要采用形式化说明技术,并系统学习掌握三种形式化说明技术,即有穷状态机、Petri网和Z语言。
-
●4.1概述
学习形式化说明技术的概念,了解为什么学习形式化说明技术。
-
●4.2有穷状态机
学习第一种形式化技术,即有穷状态机。
-
●4.3Petri网
开始第二种形式化说明技术,即Petri网。有穷状态机难以表达定时需求,而Petri网技术却很好地表达时序问题,另外Petri网可以表达资源竞赛关系,在许多领域得到应用。
-
●4.4Z语言
学习第3种形式化技术,即Z语言。相对于前面学习过的有穷状态机和Petri网,Z语言更符合人类思维,更方便给转化成编程语言。
-
第五章总体设计
主要学习软件工程生命周期中的第三个阶段,即总体设计。总体设计也称为概要设计,从总体设计如何去实现一个软件系统。
-
●5.1设计过程
学习设计过程。通过学习我们可以掌握软件工程中总体设计的详细过程,了解每个阶段应该完成的具体任务。
-
●5.2设计原理
学习设计原理。主要学习模块化理论、抽象、信息隐蔽和局部化,以及模块独立化理论等。
-
●5.3启发规则
学习启发规则。通过对软件设计的启发规则的学习,为后续软件设计提供方向。
-
●5.4描绘软件结构的图形工具
本小节主要学习层次图、HIPO图和软件结构图等描绘软件结构的图形工具。这些工具可以直观地表达软件结构。
-
●5.5面向数据流的设计方法
学习面向数据流的软件设计方法,通过学习我们可以掌握如何根据软件数据流程图导出软件结构。
-
第六章详细设计
上一章主要解决总体上如何实现一个系统,本章主要是确定应该怎样具体地实现用户系统,包括结构化程序设计方法、人机界面设计、软件过程设计工具(如流程图、PAD图、判定树、判定表、PDL语言等),学习如何采用面向数据结构的方法将软件设计映射成软件结构图,最后学习程序复杂程度定量度量方法,以提高软件设计质量。
-
●6.1结构程序设计
学习结构程序设计。主要学习什么是结构程序设计,以及结构程序设表示工具。
-
●6.2人机界面设计
学习人机界面设计。本节从软件设计中的4个问题出发,介绍了人机界面设计过程和设计指南。
-
●6.3过程设计的工具
学习软件过程设计工具。主要讲解程序流程图、N-S图、PAD图、判定树、判定表和过程设计语言PDL等,通过学习同学们可以掌握如何用一个工具描述程序过程。
-
●6.4面向数据结构的设计方法
学习面向数据结构的设计方法,主要学习如何用Jackson图将基于数据结构的软件结构转换成软件结构图用PDL语言。
-
●6.5程序复杂程度的定量度量
学习程序复杂程度的定量度量,主要学习程序复杂程序的定量度量方法,这些方法为后续软件开发工程量计算、软件设计中模块划分提供依据。
-
第七章实现
学习软件工程生命周期中的第5个阶段,系统实现阶段。本章主要学习编码阶段主要思想、软件测试与调试的基本概念,以及软件可靠性理论等。
-
●7.1编码
学习第编码,主要讲解如何根据提高软件质量给出编程语言选择标准、编码风格等。
-
●7.2软件测试基础
本节主要介绍软件测试的目标、准则、方法、步骤和软件测试阶段的信息流等。
-
●7.3单元测试
主要介绍单元测试,包括代码审查、计算机测试等。
-
●7.4集成测试
集成测试,包括自上而下集成、自底向上集成,以及回归测试等。
-
●7.5确认测试
主要介绍确认测试概念,包括确认测试的范围、软件配置复查,最后介绍了三种确认测试技术。
-
●7.6白盒测试技术
本节主要介绍了白盒测试的基本概念,并详细介绍了几种逻辑覆盖测试方法,以及基本路径测试、条件测试、循环测试等。
-
●7.7黑盒测试技术
学习黑盒测试技术,就是在不知道程序结构的基础上的测试,主要测试软件的功能,因此也称为功能测试。
-
●7.8调试
学习调试。调试是指在测试发现错误之后排除错误的过程。本节主要学习调试过程和调试途径。
-
●7.9软件可靠性
学习软件可靠性,主要学习软件可靠性概念和平均无故障时间的估算方法等。
-
第八章维护
学习软件工程生命周期的最后一个阶段,即软件维护。本章主要介绍软件维护的概念及软件可维护性概念,提高软件可维护性可以提高软件质量,这对开发高质量软件具有指导意义。
-
●8.1软件维护的定义
软件维护的定义,主要学习软件维护的概念和4种类型的软件维护工作。
-
●8.2软件维护的特点
主要介绍了软件维护的3个特点,即结构化维护与非结构化维护差别巨大、维护的代价高昂和维护的问题很多。
-
●8.3软件维护过程
主要介绍软件维护过程,包括:维护组织、维护报告、维护的事件流、保护维护记录、评价维护活动等。
-
●8.4软件的可维护性
主要介绍软件的可维护性,主要包括:决定软件可维护性的因素、文档、可维护性复审。
-
●8.5预防性维护
主要学习预防性维护的概念及预防性维护的优点。
-
●8.6软件再工程过程
主要学习软件再工程过程,包括:库存目录分析、文档重构、逆向工程、代码重构、数据重构和正向工程。
-
第九章面向对象方法学引论
学习面向对象方法学引论。虽然我们前面学习过了传统结构化方法软件工程方法学,但是现在软件开发主要是面向对象方法,通过本章学习掌握面向对象的软件工程方法,了解面向对象软件开发过程。
-
●9.1面向对象方法学概述
主要学习面向对象方法学的要点和优点。
-
●9.2面向对象的概念
面向对象的概念,包括对象概念,以及类、继承、封装等概念。
-
●9.3面向对象模型
学习面向对象建模,主要学习三种模型的基本概念,以及面向对象系统分析过程。
-
●9.4对象模型
主要学习对象模型的基本概念和类图的基本符号,以及表示关系的符号,如关联、聚集、泛化、依赖和细化等。
-
●9.5动态模型
学习动态模型的基本概念,并学习时序图、状态图、协作图等三种动态模型。
-
●9.6功能模型
学习了功能模型的概念,并学习用例图进行动态建模。
-
●9.7三种模型之间的关系
主要学习对象模型、动态模型和功能模型3种模型之间的关系。
-
第十章软件项目管理
大型软件需要多人协作完成,必然涉及到项目管理。本章主要学习软件进度计划、人员组织、软件配置管理和软件能力成熟度模型等概念。通过学习掌握软件项目管理理论与方法。
-
●10.1估算软件规模
估算软件规模,主要学习代码行技术和功能点技术两种软件规模估算方法。
-
●10.2工作量估算
通过学习掌握静态单变量模型、动态多变量模型和COCOMO2模型三种工作量估算方法。
-
●10.3进度计划
学习进度计划安排,主要学习估算开发时间方法、Gannt图、工程网络改等估计工程进度,用实例给出Gannt图工程网络图的具体用法。并学习了关键路径和机动时间等概念。
-
●10.4人员组织
学习人员组织,主要介绍民主制程序员组、主程序员组、现代程序员组3种人员组织形式。
-
●10.5质量保证
主要学习软件质量的定义、内涵、要点及软件质量的组成等,并学习了软件质量保证措施,包括技术复审、走查、审查、程序正确性证明等,以提高软件开发的质量。
-
●10.6软件配置管理
主要学习软件配置的基本概念,及软件配置项和基线的概念。学习软件配置管理过程,包括:标识、版本控制、变化控制、配置审计和报告。
-
●10.7能力成熟度模型
主要学习能力成熟模型的产生的过程和基本概念,并详细给出了五个等级的具体内含:初始级、可重复级、已定义级、已管理级和优化级。