1、基本概念
1.1 软件生命周期
软件生命周期:软件产品或软件系统从设计、投入使用到被淘汰的全过程。
1.2 软件过程
软件过程是在工作产品构建过程中,所需完成的工作活动、动作和任务的集合。是生产一个最终满足需求并且达到工程目标的软件产品所需的步骤。
- 活动。活动主要实现宽泛的目标,与应用领域、项目大小、结果复杂度或者实施软件工程的重要程度没有直接关系。
- 动作。包含了主要工作产品生产过程中的一系列任务。
- 任务。关注小而明确的目标,能够产生实际产品。
1.3 软件过程模型
软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程模型也常称为软件开发模型、软件生存周期模型和软件工程范型。
1.4 软件过程评估
自从软件工程概念提出以后,出现了许多开发、维护软件的模型、方法、工具和环境,他们对提高软件的开发、维护效率和质量起到了很大的作用。尽管如此,人们开发和维护软件的能力仍然跟不上软件所涉及的问题的复杂程度的增长,大多是软件组织面临的主要问题仍然是无法符合预算和进度要求的高可靠性和高可用性的软件。人们开始意识到问题的实质是缺乏管理软件过程的能力。三种模型进行软件过程评估:
-
能力成熟度模型Capability Maturity Model (CMM).其研究目的是提供一种评价软件承接方能力的方法,同时它可用于帮助软件组织改进其软件过程。迄今为止学术界和工业界公认的有关软件工程和管理实践的最好的软件过程评估模型,为评估软件组织的生产能力提供了标准,为提高软件组织的生产过程指明了方向。
优化级有反馈优化。 -
能力成熟度模型集成CMMI
CMMI是若干过程模型的综合和改进,是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。CMMI提供两种表示方法:阶段性模型和连续性模型。- 阶段性模型:初始的,过程不可预测且缺乏控制、已管理的,过程为项目服务、已定义的,过程为组织服务、定量管理的,过程已度量和控制、优化的,集中于过程改进。关注于过程
- 连续性模型:过程域能力等级(是否完成目标),包含6个过程域能力等级,等级号为 C L 0 ∼ C L 5 CL_0 \sim CL_5 CL0∼CL5:未完成的、已执行的、已管理的、已定义级的、定量管理的、优化的。
-
ISO 9000 质量标准体系。
-
ISO/IEC 15504 SPICE 信息技术软件过程评估。
1.5 软件工具
用来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具,通常被称为CASE工具。
- 软件开发工具
- 需求分析工具:用于辅助软件需求分析活动的软件。功能规范
- 设计工具:用于辅助软件设计活动的软件。设计规范,分为概要设计工具和详细设计工具。
- 概要设计工具:用于辅助设计人员设计目标软件的体系结构、控制结构和数据结构。详细设计工具用于辅助设计人员设计模块的算法和内部实现细节。
- 编码和排错工具
- 测试工具:用于支持进行软件测试的工具
- 软件维护工具
辅助软件维护过程中相关活动的软件,它辅助维护人员对软件代码及其文档进行各种维护活动。- 版本控制工具
- 文档分析工具
- 开发信息库工具:用于维护软件项目的开发信息,包括对象、模块等。
- 逆向工程工具:辅助软件人员将某种形式表示的软件(源代码)转换成更高抽象形式表示的软件。
- 再工程工具:用来支持重构一个功能和性能更为完善的软件系统。
- 软件管理和软件支持工具
用来辅助管理人员和软件支持人员的管理活动和支持活动,以确保软件高质量地完成。- 项目管理工具
- 配置管理工具
- 软件评价工具
1.6 软件开发环境
软件开发环境是支持软件产品开发的软件系统。
组成:软件工具集和环境集成机制,前者用来支持软件开发的相关过程、活动和任务,后者为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。
特征:
- 环境的服务是集成的。
- 环境应支持小组工作方式,并为其提供配置管理。
- 环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、测试、调试和文档等。