Topic outline

  • General

    • 软件工程教学大纲 File Modified 19/09/20, 12:01
  • 课程概述

    软件工程是研究和指导软件开发和维护的工程类学科,它以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、规范、技术和方法进行软件工程项目的开发和维护,把经过实践证明正确的管理措施和当前能够得到最好的技术方法结合起来,以较少的代价获取高质量的软件产品。通过50余年的努力,软件工程已逐步发展成为一门成熟的专业学科。

    软件工程作为一门专业主干课,重点要求学生学习与软件开发和维护有关的四个方面的主要内容——过程与模型、方法与技术、工具与环境、标准与规范。进而通过课程实践培养学生运用软件工程基本原理解决实际问题,并从事复杂软件项目开发和维护的实践应用能力与创新能力,努力成为当今信息社会和知识经济时代所需要的高素质专业人才。

    File: 1Forum: 1
  • 第1章 软件工程概述

    21世纪,计算机系统已经深入人类生活的各个领域,计算机软件已经发展成为当今世界最重要的技术领域。

    研究软件本身产生了一门重要的学科就是软件工程(Software Engineering)。

    软件工程的研究领域包括软件的开发方法,软件的生命周期以及软件的工程实践等。

    Files: 3Forums: 3
  • 第2章 软件过程

    软件过程是为了获得高质量软件所需要完成的一些列任务的框架,它规定了完成各项任务的工作步骤。

    本章讲述在软件生命周期全过程中应该完成的基本任务,并介绍常用的过程模型。

    Files: 2Forum: 1
  • 第3章 结构化分析

    为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发取得成功的前提和关键。

    传统的软件工程方法学采用结构化分析(Structure Analysis, SA)技术完成需求分析工作。

    本章介绍结构化分析过程和准则,获取用户需求的方法、需求分析建模与规格说明的原则和常用工具。

    Files: 4Forums: 2
  • 第4章 结构化设计

    对软件需求有了完整、准确、系统的理解之后,接下来的工作就是用软件正确地实现这些需求。为此必须进行软件设计。

    软件设计的目标,是设计出所要开发的软件的模型。

    传统的软件工程方法学采用结构化设计(Structured Design, SD)技术,完成软件设计。通常把软件设计划分为概要设计和详细设计两个阶段。

    软胶囊设计在软件工程过程中处于技术核心地位,而且不依赖于所使用的软件过程模型。它是构造和验证软件所需要完成的三项技术活动(设计、代码生成和测试)中的第一项。

    本章主要讲述结构化设计与结构化分析的关系、软件设计的概念和原理、软件设计的核心原则(模块化、抽象、启发规则等)、表示软件结构的图形工具和多种设计方法(面向数据流的设计、人机界面设计、过程设计、面向数据结构的设计)和对应的常用工具。

    Files: 5Forums: 2
  • 第5章 结构化实现

    通常把编码和测试统称为实现。

    编码就是把软件设计翻译成计算机可以理解的形式——用某种程序语言编写的程序。编码是设计的自然结果,程序的质量主要取决于软件设计的质量。但是,所选用的程序设计语言的特点和编码风格,也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。

    测试是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。在开发大型软件的过程中,由于问题的错综复杂和人员主观认识的有限性,在软件生命周期的各个阶段不可避免地会产生差错。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。此后还必须诊断和改正错误,这就需要调试。

    Files: 5Forum: 1
  • 第6章 面向对象方法学导论

    传统的软件工程方法学给软件产业带来了巨大的进步,部分地缓解了软件危机,在开发中小型规模的软件项目中取得了不少成功。但是,应用于大型软件开发时,却很少取得成功。

    在20世纪60年代出现了面向对象程序设计语言,首次引入了类和对象的概念。人们开始了面向对象方法学的探索,从20世纪80年代起逐渐形成了面向对象的软件工程方法学。在多个大型软件系统的开发中取得了很多进展。

    本章通过例子概要介绍面向对象方法学的基本概念和原则,

    Files: 2Forum: 1
  • 第7章 面向对象分析

    面向对象分析(object-oriented analysis)一种新的系统分析方法,它是采用面向对象的风格进行系统分析和需求定义的重要方法。面向对象分析的关键在于理解问题空间并将其模型化。

    面向对象分析采用人们认识客观事物和理解现实世界过程中常用的基本法则:

    1. 认识对象及其属性;
    2. 认识对象的整体及其组成部分;
    3. 对象的形成及类的区分;
    4. 对问题空间进行理解并抽象成模型.

    面向对象分析有五个阶段:标识对象、标识结构、标识主题、定义属性、定义服务,即分五个层次建立面向对象分析的模型。面向对象分析的优点是使功能分析与数据分析使用统一的概念和方法,克服了结构化分析中两者之间的不一致性和不协调性。

    File: 1Folder: 1Forum: 1
  • 第8章 面向对象设计

    从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。面向对象设计就是用面向对象的观点建立求解域模型的过程。

    在实际的软件开发中分析和设计的界面是模糊的。许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。因此,分析和设计活动是一个多次反复迭代的过程。面向对象方法学在概念和表示方法上的一致性,保证了在各项开发过程中的平滑过度,领域专家和开发人员能够比较容易地跟踪整个系统开发过程,这是面向对象方法比传统方法所具有的主要优势。

    面向对象设计可以分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式以及实现服务的算法。系统设计与对象设计之间的界限比分析与设计之间的界限更加模糊。

    本章首先介绍为获得优秀设计结果应该遵循的原则,再具体讲述面向对象设计的任务和方法过程。

    Files: 2Forum: 1
  • 第9章 团队

    大规模的软件项目需要多个开发人员。为了成功地完成软件开发任务,把多名软件人员组织起来,分工协作共同完成任务。项目组成员必须以一种有意义且有效的方式彼此交互和通信。管理者必须合理地组织项目组,使之具有较高的生产率,能够按预定的进度计划完成所承担的工作。

    现有的软件项目组的组织方式,很大程度上取决于项目的特点、以往的组织经验和负责人的看法和喜好。

    File: 1Forum: 1
  • 第10章 质量控制

    通过软件计划,我们明确了软件开发的目标,规划了具体的开发方案,而组织职能的实施又为计划的实现提供了组织机构和资源配置方面的保证。但是,计划规定的目标再好,人员组织得再合理,如果没有有效的控制作为保证,软件开发目标也是难以实现的。因此,控制是十分重要的管理活动。

    软件质量就是软件与用户需求相一致的程度。具体地说,软件质量是软件符合明确叙述的功能和性能需求、以及所有专业开发的软件都应具有的隐含特征的程度。质量控制的目的是通过有效的措施,保证软件目标的实现。主要有软件风险管理、质量保证和配置管理。

    File: 1Forum: 1
  • 第11章 软件维护

    软件维护是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。软件维护活动类型总起来大概有四种:纠错性维护(校正性维护)、适应性维护、完善性维护或增强、预防性维护或再工程。除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护(如用户的培训等)。

    File: 1Forum: 1