软件工程
软件工程
4万+ 人选课
更新日期:2026/11/13
开课平台智慧树
开课高校天津科技大学
开课教师张贤坤、罗新、程岚岚、宋琛、孟烨
学科专业工学计算机类
开课时间2026/07/21 - 2027/01/20
课程周期27 周
开课状态开课中
每周学时-
课程简介
软件改变生活,软件定义一切!
课程大纲

在线教程

章节简介教学计划
软件工程导论
登录后可预览视频
●
软件危机
张贤坤
●
软件工程
张贤坤
●
软件生命周期
张贤坤
●
软件过程
●
软件过程概念及瀑布模型
张贤坤
●
软件过程的其它模型
张贤坤
●
Rational统一过程
张贤坤
●
敏捷过程和微软过程
张贤坤
可行性研究
●
可行性研究的任务与过程
张贤坤
●
系统流程图
张贤坤
●
数据流图
张贤坤
●
数据字典
张贤坤
●
成本/效益分析
张贤坤
需求分析
●
需求分析的任务
张贤坤
●
与用户沟通获取需求的方法
张贤坤
●
分析建模与规格说明
张贤坤
●
实体联系图
张贤坤
●
数据规范化
张贤坤
●
状态转换图
张贤坤
●
其它图形工具
张贤坤
●
验证软件需求
张贤坤
形式化说明技术
●
概述
张贤坤
●
有穷状态机
张贤坤
●
Petri网
张贤坤
●
Z语言
张贤坤
总体设计
●
设计过程
张贤坤
●
设计原理
张贤坤
●
启发规则
张贤坤
●
描绘软件结构的图形工具
张贤坤
●
面向数据流的设计方法
张贤坤
详细设计
●
结构程序设计
张贤坤
●
人机界面设计
●
设计问题及设计过程
张贤坤
●
设计指南
张贤坤
●
过程设计的工具
●
流程图、盒图、PAD图
张贤坤
●
判定表、判定树、PDL语言
张贤坤
●
面向数据结构的设计方法
张贤坤
●
程序复杂程度的定量度量
张贤坤
实现
●
编码
张贤坤
●
软件测试基础
张贤坤
●
单元测试
张贤坤
●
集成测试
张贤坤
●
确认测试
张贤坤
●
白盒测试技术
●
逻辑覆盖
张贤坤
●
控制结构测试
张贤坤
●
黑盒测试技术
张贤坤
●
调试
张贤坤
●
软件可靠性
张贤坤
维护
●
软件维护的定义
张贤坤
●
软件维护的特点
张贤坤
●
软件维护过程
张贤坤
●
软件的可维护性
张贤坤
●
预防性维护
张贤坤
●
软件再工程过程
张贤坤
面向对象方法学引论
●
面向对象方法学概述
张贤坤
●
面向对象的概念
张贤坤
●
面向对象模型
张贤坤
●
对象模型
●
类图的基本符号
张贤坤
●
表示关系的符号
张贤坤
●
动态模型
张贤坤
●
功能模型
张贤坤
●
三种模型之间的关系
张贤坤
软件项目管理
●
估算软件规模
张贤坤
●
工作量估算
张贤坤
●
进度计划
●
估算开发时间
张贤坤
●
Gannt图
张贤坤
●
工程网络
张贤坤
●
估算工程进度
张贤坤
●
关键路径和机动时间
张贤坤
●
人员组织
张贤坤
●
质量保证
●
软件质量
张贤坤
●
软件质量保证措施
张贤坤
●
软件配置管理
●
软件配置基本概念
张贤坤
●
软件配置管理过程
张贤坤
●
能力成熟度模型
张贤坤
  • 第一章软件工程导论

    通过学习了解软件危机产生的原因和解决方法,掌握软件工程的基本概念和软件生命周期及软件开发过程模型。

  • ●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能力成熟度模型

    主要学习能力成熟模型的产生的过程和基本概念,并详细给出了五个等级的具体内含:初始级、可重复级、已定义级、已管理级和优化级。

  • 开始学习
  • 第一章  作业测试
    第一章 软件工程导论

    1.1 软件危机

    1.2 软件工程

    1.3 软件生命周期

    1.4 软件过程

    视频数7
  • 第二章  作业测试
    第二章 可行性研究

    2.1 可行性研究的任务与过程

    2.2 系统流程图

    2.3 数据流图

    2.4 数据字典

    2.5 成本/效益分析

    视频数5
  • 第三章  作业测试
    第三章 需求分析

    3.1 需求分析的任务

    3.2 与用户沟通获取需求的方法

    3.3 分析建模与规格说明

    3.4 实体联系图

    3.5 数据规范化

    3.6 状态转换图

    3.7 其它图形工具

    3.8 验证软件需求

    视频数8
  • 第四章  作业测试
    第四章 形式化说明技术

    4.1 概述

    4.2 有穷状态机

    4.3 Petri网

    4.4 Z语言

    视频数4
  • 第五章  作业测试
    第五章 总体设计

    5.1 设计过程

    5.2 设计原理

    5.3 启发规则

    5.4 描绘软件结构的图形工具

    5.5 面向数据流的设计方法

    视频数5
  • 第六章  作业测试
    第六章 详细设计

    6.1 结构程序设计

    6.2 人机界面设计

    6.3 过程设计的工具

    6.4 面向数据结构的设计方法

    6.5 程序复杂程度的定量度量

    视频数7
  • 第七章  作业测试
    第七章 实现

    7.1 编码

    7.2 软件测试基础

    7.3 单元测试

    7.4 集成测试

    7.5 确认测试

    7.6 白盒测试技术

    7.7 黑盒测试技术

    7.8 调试

    7.9 软件可靠性

    视频数10
  • 第八章  作业测试
    第八章 维护

    8.1 软件维护的定义

    8.2 软件维护的特点

    8.3 软件维护过程

    8.4 软件的可维护性

    8.5 预防性维护

    8.6 软件再工程过程

    视频数6
  • 第九章  作业测试
    第九章 面向对象方法学引论

    9.1 面向对象方法学概述

    9.2 面向对象的概念

    9.3 面向对象模型

    9.4 对象模型

    9.5 动态模型

    9.6 功能模型

    9.7 三种模型之间的关系

    视频数8
  • 第十章  作业测试
    第十章 软件项目管理

    10.1 估算软件规模

    10.2 工作量估算

    10.3 进度计划

    10.4 人员组织

    10.5 质量保证

    10.6 软件配置管理

    10.7 能力成熟度模型

    视频数13
  • 期末考试
App 下载
关注我们