软件工程(北方民族大学)
软件工程(北方民族大学)
少于1000 人选课
更新日期:2025/06/28
开课平台智慧树
开课高校北方民族大学
开课教师丁红胜任荣于千城
学科专业工学计算机类
开课时间2025/01/21 - 2025/07/20
课程周期26 周
开课状态开课中
每周学时-
课程简介
随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是研究大规模软件开发方法、工具和管理的一门工程科学,其特点是按工程化的原则和方法来组织和规范软件开发过程,软件工程技术则主要研究与软件开发各个工作流程相关的、先进实用的软件开发方法、技术和工具。 《软件工程》是计算机类专业学生学习的一门必修性质的课程,涉及的各方面知识,软件工程概述、软件过程、敏捷软件开发、软件需求、系统建模、软件体系结构设计、软件设计与实现、软件测试、软件项目管理、软件维护等内容。通过本课程的学习,能够让大家对软件工程领域知识有一个整体性的认识,为从事软件工程项目的开发打下基础。
课程大纲

在线教程

章节简介教学计划
软件工程概述
登录后可预览视频
软件危机
丁红胜
软件工程
丁红胜
软件工程职业道德
丁红胜
软件过程
软件生存周期及瀑布模型
丁红胜
瀑布模型
丁红胜
进化式软件开发模型
丁红胜
Rational统一过程
丁红胜
敏捷软件开发
敏捷软件开发
丁红胜
极限编程XP
丁红胜
SCRUM方法
丁红胜
需求分析
需求工程
丁红胜
非功能需求
丁红胜
软件需求文档
丁红胜
需求描述
丁红胜
系统分析与建模
对需求进行建模
于千城
对过程进行建模
过程模型概述
于千城
数据流图DFD
于千城
UML面向对象建模
鲁棒图、领域模型图
于千城
活动图
于千城
时序图和通信图
于千城
状态图
于千城
对架构、数据进行建模
于千城
软件设计与实现
气象制图系统设计
丁红胜
上下文模型、体系结构设计
丁红胜
对象类识别
丁红胜
系统设计模型
丁红胜
接口描述与实现
丁红胜
软件测试
软件测试概述
任荣
软件测试的分类、方法以及软件测试过程
任荣
开发测试中的单元测试方法
任荣
开发测试中的集成测试和系统测试
任荣
发布测试和用户测试
任荣
软件演化和维护
软件演化
任荣
软件维护
任荣
软件项目管理
初识软件项目管理
任荣
再看软件项目管理
任荣
  • 第一章软件工程概述

    通过学习了解软件危机产生的原因和解决方法,掌握软件工程的基本概念,软件工程三要素、理解软件工程职业道德。

  • 1.1软件危机

    主要学习软件危机的定义、典型特征、产生的原因,并给出了消除软件危机的途径。

  • 1.2软件工程

    主要学习软件工程定义、软件具有的本质特性、软件工程的基本原理和软件工程方法学。

  • 1.3软件工程职业道德

    主要学习作为一名软件工程师,应遵守的职业道德规范和具备的责任感。

  • 第二章软件过程

    通过学习掌握什么是软件生存周期,熟悉常用的软件过程模型,如瀑布模型、原型模型、增量模型、螺旋模型、Rational RUP过程。理解这些软件过程中所涉及的基本活动。

  • 2.1软件生存周期及瀑布模型

    主要学习软件生存期的概念,瀑布模型软件开过程及其优缺点。

  • 2.2瀑布模型

    主要学习快速原型模型、增量模型、螺旋模型这些增量式软件工程过程模型。

  • 2.3进化式软件开发模型

    主要学习RUP如何有效地利用商业的可靠的方法开发和部署软件。

  • 2.4Rational统一过程

    本讲介绍Rational统一过程

  • 第三章敏捷软件开发

    通过学习掌握敏捷软件开发方法,了解敏捷方法中典型的极限编程、scrum方法具体实践过程。

  • 3.1敏捷软件开发

    主要学些敏捷方法思想、基本原则,敏捷方法在实践中的应用问题,与计划驱动的方法进行了比较。

  • 3.2极限编程XP

    主要学习极限编程XP(Extreme Programming)实践原则,采用XP方法的项目具体实施过程。

  • 3.3SCRUM方法

    主要学习敏捷项目管理方法scrum的实践过程。

  • 第四章需求分析

    通过学习了解软件工程过程中需求分析的任务及需求分析的获取方法及表达方法,重点掌握功能需求、非功能需求的分析及表示方法,熟悉软件需求文档的写作。

  • 4.1需求工程

    主要学习需求工程过程中的主要业务,并从用户需求、系统需求、功能需求三个层面对系统的需求进行描述。

  • 4.2非功能需求

    主要学习非功能需求的描述、检验、分类。

  • 4.3软件需求文档

    主要学习如何撰写《软件需求文档》,并依据IEEE的规范要求,给出了软件需求文档的写作模板。

  • 4.4需求描述

    主要学习软件需求文档描述时应遵守的原则、方法等,包括判定表、判定书、规格化描述、PDL等软件描述方式。

  • 第五章系统分析与建模

    通过学习了解软件系统分析与建模方法,重点掌握软件系统业务流程分析与建模,面向数据流分析的软件建模,基于UML技术的面向对象建模,包括鲁棒图、领域模型、活动图、时序图、状态图、系统架构和数据的建模方法等。

  • 5.1对需求进行建模

    主要学习如何采用用例模型对需求进行建模。

  • 5.2对过程进行建模

    主要学习过程建模的概念、表示及过程不同层次,并通过上下文图、数据流图DFD对软件过程进行建模。

  • 5.3UML面向对象建模

    主要学习于UML技术的面向对象建模,包括鲁棒图、领域模型、活动图、时序图、状态图等。

  • 5.4对架构、数据进行建模

    主要学习于系统架构和数据的建模方法。包括组件图、部署图、数据模型的建模。

  • 第六章软件设计与实现

    通过对气象站管理系统的实现过程学习,主要学习如果运用UML进行面向对象软件设计过程,并了解系统实现时的问题。具体包括上下文模型、体系结构设计 、对象类识别、系统设计模型、接口描述与实现等过程。

  • 6.1气象制图系统设计

    通过分层模型和包图的形式给出了野外气象系统进行分析。

  • 6.2上下文模型、体系结构设计

    通过上下文模型、用例模型对野外气象站系统进行了进一步分析,给出了系统的体系结构设计。

  • 6.3对象类识别

    通过学习对象类识别的一般方法,介绍了如何对野外气象站系统的对象类的识别,并用类图的形式进行标识。

  • 6.4系统设计模型

    通过时序图、状态图等形式对野外气象站系统中的交互行为进行建模,给出软件结构中的细节描述。

  • 6.5接口描述与实现

    给出了野外气象站系统的结构描述和实现。

  • 第七章软件测试

    本章主要介绍了什么是软件测试,软件测试的目的是什么?软件测试的各个阶段,从开发过程中的测试到系统客户的验收测试;可以帮助测试人员选择测试用例的方法和技术;测试驱动开发;单元测试、构件测试或称为集成测试、系统测试、发布测试和用户测试的主要任务及相关技术。

  • 7.1软件测试概述

    本节主要介绍什么是软件测试,软件测试的目的和原则,软件测试工具有哪些,静态测试和动态测试的概念和特点。

  • 7.2软件测试的分类、方法以及软件测试过程

    本节主要介绍软件测试的分类、方法以及软件测试过程。软件系统要经过3个阶段的测试。第1个阶段是开发测试,包括单元测试、集成测试、系统测试;第2阶段是发布测试;第3个阶段是用户测试,包括α测试、β测试和验收测试。

  • 7.3开发测试中的单元测试方法

    本节主要介绍开发测试中的单元测试方法,包括黑盒测试的等价类划分法、边界值测试法等,以及白盒测试的逻辑覆盖法、基本路径测试法等。

  • 7.4开发测试中的集成测试和系统测试

    本节主要介绍开发测试中的集成测试和系统测试。集成测试主要的目的是检查各单元模块结合到一起能否协同配合、正常运行。系统测试是对集成测试后的新版本系统进行测试,确保各组件是兼容且能正确交互。

  • 7.5发布测试和用户测试

    本节主要介绍发布测试和用户测试。发布测试是在开发团队以外,针对系统的一个特定发布版本进行测试,由用户在模拟实际环境下的测试,然后发布给用户。用户测试主要是由用户在实际的应用环境中验证系统是否达到了需求规格说明书中的要求。

  • 第八章软件演化和维护

    通过这一章内容的学习,应该能够理解软件系统要不断演化才能适应新的业务和技术,软件的变更和演化是软件工程过程的一部分;了解遗留系统的含义及其重要性,如何对遗留系统进行评估,从而决定应该是抛弃、维护、再工程,还是替换这些系统;理解不同类型的软件维护及其处理优先级。

  • 8.1软件演化

    本节主要介绍软件变更识别和演化的过程、软件演化过程模型、软件紧急修补过程,以及遗留系统的概念与处理方式。

  • 8.2软件维护

    本节主要介绍软件维护,包括软件维护的类型、控制维护成本的策略、软件维护的方法,以及软件重构的概念及作用。

  • 第九章软件项目管理

    本章主要介绍软件项目管理。软件项目管理是指把各种系统、方法和人员结合在一起,针对具体的项目目标,对组织机构的资源进行计划、调度和控制,在规定的时间、预算和质量目标范围内完成软件项目的各项工作。

  • 9.1初识软件项目管理

    本节主要介绍软件项目管理的概念、作用、特点,软件项目的组成要素以及软件项目管理的难点。

  • 9.2再看软件项目管理

    本节主要介绍软件项目管理的过程,包括项目初始、项目计划、项目执行控制、项目结束,以及各个阶段的主要任务。

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

    1.1 软件危机

    1.2 软件工程

    1.3 软件工程职业道德

    视频数3
  • 第二章  作业测试
    第二章 软件过程

    2.1 软件生存周期及瀑布模型

    2.2 瀑布模型

    2.3 进化式软件开发模型

    2.4 Rational统一过程

    视频数4
  • 第三章  作业测试
    第三章 敏捷软件开发

    3.1 敏捷软件开发

    3.2 极限编程XP

    3.3 SCRUM方法

    视频数3
  • 第四章  作业测试
    第四章 需求分析

    4.1 需求工程

    4.2 非功能需求

    4.3 软件需求文档

    4.4 需求描述

    视频数4
  • 第五章  作业测试
    第五章 系统分析与建模

    5.1 对需求进行建模

    5.2 对过程进行建模

    5.3 UML面向对象建模

    5.4 对架构、数据进行建模

    视频数8
  • 第六章  作业测试
    第六章 软件设计与实现

    6.1 气象制图系统设计

    6.2 上下文模型、体系结构设计

    6.3 对象类识别

    6.4 系统设计模型

    6.5 接口描述与实现

    视频数5
  • 第七章  作业测试
    第七章 软件测试

    7.1 软件测试概述

    7.2 软件测试的分类、方法以及软件测试过程

    7.3 开发测试中的单元测试方法

    7.4 开发测试中的集成测试和系统测试

    7.5 发布测试和用户测试

    视频数5
  • 第八章  作业测试
    第八章 软件演化和维护

    8.1 软件演化

    8.2 软件维护

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

    9.1 初识软件项目管理

    9.2 再看软件项目管理

    视频数2
  • 期末考试