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

在线教程

章节简介教学计划
软件工程导论
登录后可预览视频
软件危机
张贤坤
软件工程
张贤坤
软件生命周期
张贤坤
软件过程
软件过程概念及瀑布模型
张贤坤
软件过程的其它模型
张贤坤
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
  • 期末考试