Chapter 1 概述
软件分为通用软件和应用软件,具有复杂、不可见和不断变化的特点;从出现到现在共经历了四个重要的发展阶段,但现在的软件发展依然存在着许多问题。
软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,将经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来,其目的在于提高软件的质量与生产率,最终实现软件的工业化生产。它是工程概念在软件领域里的一个特定应用涉及软件产品的所有环节。软件工程由过程、方法和工具三个要素组成。软件工程方法有传统的开发方法和面向对象的开发方法;但前者存在着多种缺陷,后者按照人类的自然思维模式,采用统一的概念和模型表示,由于各种优势成为现在的主流方法。计算机辅助软件工程CASE分为工具、工作台和环境三个层次,用来辅助软件的开发维护和管理,已经成为促进软件过程工程化和自动化的重要技术。
软件工程知识体系SWEBOK项目是关于软件工程实践的指南,它将软件工程知识分解为十个知识域以及其组成部分。十个知识域包括软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。(软件需求包括需求工程过程、需求获取、分析、规格说明、验证、管理;软件设计包括基本概念、关键问题、软件构成与体系结构、质量分析预评价、软件设计符号、策略与方法;软件构造可以降低复杂性、预知多样性、结构化验证、使用外部标准;软件测试包括基本概念、测试级别、技术、相关度量和过程管理;软件维护包括基本概念、维护过程、关键问题和技术维护;软件配置管理包括配置过程管理、配置识别、配置控制、配置状态报告、配置审计、软件发布管理与交付;软件工程管理包括组织管理、过程管理和软件工程度量;软件工程过程包括基本概念、过程基础设施、度量、定义、定性分析、过程实施与变更;软件工程工具与方法包括软件工程工具和软件开发方法;软件质量包括概念、SQA与V&V的目的和计划、活动和度量)