OpenI 启智社区

启智社区,确实给力

当前位置:首页 > 学习 > 实训 >

软件工程

软件工程

  • 来源:国防科技大学
  • 章节:17 单元:89

  • 毛新军

  • 尹良泽

  • 卢遥

  • 陈振邦

  • 余跃

  • 董威

  • 王涛
进入实训课程

课程简介:

软件工程是计算机大类专业的一门重要核心专业课程,旨在讲授软件工程的思想和原则,介绍软件开发、管理和维护的方法、技术和工具,帮助学生掌握需求分析、软件设计、编码构造、软件测试、维护演化、质量保证、团队协作等方面的专业知识,培养学生协同开发高质量软件产品的能力和素养。软件工程是一门实践性非常强的课程,需要遵循课堂教学和实践教学相结合、知识传授与案例研讨相结合的教学方式,强调学以致用,突出能力和素质的培养。
本课程教学以培养学生多方面能力和软件工程素质为目标,设计了贯穿全课程的两项相对独立、逐级递进的实践任务。一是分析和维护开源软件,二是开发软件系统。课程教学阐述如何转变实践教学的思想和观念,借助 Git 版本管理、基于群智方法、利用开源软件,通过持续讲评和改进,让学生开发出有一定规模(15000+ LOC)、高质量和有创意的软件系统,确保软件工程课程实践教学的实际成效及提高人才培养水平。




课程章节:

第一章 软件工程课程概述

本章介绍软件工程课程教学的相关背景,包括计算机软件应用及其发生的变化,业界对软件工程人才的需求及要求,分析软件工程课程的特点,阐述本课程教学的目标、内容及要求。本章在学习软件工程相关基础知识的同时,要求学习现代软件工程开发的主流工具和平台,掌握基于Git的分布式版本管理和协同式软件开发技术、代码标注技术,以及群体化学习平台。

第二章 从程序到软件

本章聚焦于程序和软件二个概念,从程序概念入手,引申出软件概念,分析程序和软件二者之间的区别和联系,阐明软件的特点和质量要求,讨论开源软件及其应用价值,指出当前软件特征出现的一些新变化以及这些变化对软件开发带来的新挑战。

第三章 软件工程概述

本章聚焦于软件工程概念,阐述其产生的背景和原因,介绍其思想、构成、目标和原则,分析软件工程的发展历程及取得的主要成果,讨论软件工程教育问题。

第四章 软件过程模型和开发方法

本章介绍软件开发过程模型的概念,阐述常见的软件开发过程模型如瀑布、迭代、原型、增量、螺旋、UP等,并分析它们各自的特点,介绍敏捷软件开发方法、群体化开发方法等,分析这些开发方法的特点及其相关的技术手段。

第五章 软件需求工程基础

本章聚焦于软件需求工程,介绍软件需求的概念、类别、特点和质量要求,需求工程的任务、过程和原则;在此基础上阐述二个经典的需求工程方法学:结构化需求分析方法学和面向对象需求分析方法学;最后介绍需求工程的CASE工具、软件制品输出及软件需求管理。

第六章 获取软件需求

本章聚焦于获取软件需求的工作,介绍软件需求从何而来,获取软件需求的任务、方式、过程和策略;结合具体的案例详细阐述了获取软件需求的方法,最后介绍了软件需求确认及质量保证。

第七章 分析软件需求

本章聚焦于分析软件需求的工作,介绍该项工作的原因、任务和过程,描述支持软件需求表示的UML模型及表示方法;详细阐述软件需求的重要性,包括分析和确定软件需求的优先级、理解和掌握软件需求的过程、步骤、方法和策略、文档化软件需求、确认和验证软件需求。

第八章 软件设计基础

本节聚焦于软件设计,介绍软件设计的概念、类别和质量要求,软件设计工作的任务、过程和原则,在此基础上介绍二个经典的软件设计方法学:结构化软件设计方法学和面向对象软件设计方法学;最后介绍软件设计的CASE工具、输出、评审及管理。

第九章 软件体系结构设计

本章聚焦于软件体系结构设计,介绍软件体系结构的概念和风格;软件体系结构设计的任务、过程和重要性;软件体系结构模型及表示方法;软件体系结构设计的详细过程和策略;最后介绍软件体系结构设计的文档化及评审。

第十章 软件用户界面设计

本章聚焦于用户界面设计,介绍何为用户界面,用户界面包含哪些设计要素,用户界面设计的任务和表示方法;以图形化用户界面设计为例,结合具体的应用案例,介绍用户界面设计的过程和原则;用户界面设计的输出及评审。

第十一章 软件详细设计

本章聚焦于软件详细设计,介绍详细设计的任务、过程和原则,基于UML的详细设计模型表示方法,面向对象软件设计原则和设计模式,以及用例设计、类设计、数据设计、子系统/软构件设计等具体的详细设计内容,软件详细设计的文档化和评审。

第十二章 软件实现基础

本节聚焦于软件实现,介绍软件实现的概念、过程、原则和质量要求,支持软件实现的程序设计语言,在此基础上介绍如何编写高质量的代码,最后介绍支持软件实现的CASE工具。

第十三章 编写代码

本节聚焦于编写代码,介绍编写代码的任务,基于软件设计编写代码的策略和方法,基于代码片段的软件重用和基于群智知识的编程问题解决,最后介绍软件调试的有关策略和方法。

第十四章 软件测试

本章聚焦于软件测试,介绍软件测试的概念、思想和原理,阐述软件测试的过程和原则,详细介绍软件测试技术,以及软件测试计划的制定和实施。

第十五章 软件部署

本章聚焦于软件部署,介绍软件系统的运行环境,软件部署的方式和方法。

第十六章 软件维护与演化

本章聚焦于软件维护和演化,介绍软件维护和演化的概念,阐述软件维护的特点和演化的法则;讨论软件维护所导致的软件内部逻辑老化问题;介绍软件维护的技术和过程、软件可维护性的概念;最后阐明软件维护的输出。

第十七章 软件项目管理

本章聚焦于软件项目管理,介绍软件项目管理的对象和内容,软件度量、测量和估算的概念、方法及应用,软件项目计划制定和表示的方法,软件项目跟踪的方法和步骤,软件配置管理的过程和计划,软件风险管理的模式和方法,软件质量保证的方法和计划等。