软考——软件工程——软件生存周期

目录

1,软件生存周期

2,软件过程

3,瀑布模型

4,增量模型

5,演化模型

6,螺旋模型

7,喷泉模型

8,统一过程

9,敏捷过程

10,软件过程评估

11,软件工具

12,软件维护工具

13,软件管理和软件支持工具

14,软件开发环境


软件包括程序、数据和文档

软件生存周期:问题定义—>可行性研究—>需求分析—>总体设计—>详细设计—>编码和单元测试—>综合测试—>软件维护

1,软件定义时期:问题定义、可行性研究、需求分析;主要任务是确定相应的工作。

2,软件开发时期:系统设计(总体设计、详细设计)、系统实现(编码和单元测试、综合测试);具体设计和实现在前一个时期定义的软件。

3,软件维护:软件维护;任务是使软件持久地满足用户地需要。

软件过程

是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。主要有以下三层含义:

1,个体含义:指软件产品或系统在生存周期中的某一类活动的集合;

2,整体含义:指软件产品在所有上述含义下的软件过程的总体;

3,工程含义:指解决软件过程的工程。

常见的软件生存周期模型:

1,瀑布模型:规定了由前至后、相互衔接的固定次序。

优点是:容易理解,管理成本低,强调开发的阶段性早期计划及需求调查和产品测试;

不足之处:客户必须能够完整、正确和清晰地表达它们地需要。需求和设计中的错误往往到了项目后期才能够被发现。

软考——软件工程——软件生存周期_第1张图片

2,增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征。

它假设可以将需求分段为一系列增量产品,每一增量可以分别的开发。

优点:具有瀑布模型的所有优点,第一个可交付版本所需要的成本和时间很少。

缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定。

 软考——软件工程——软件生存周期_第2张图片

3,演化(原型模型)模型:主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。

优点:任何功能一经开发就能进入测试,以便验证是否符合产品需求,可以帮助引导出高质量的产品需求;

缺点:如果不加控制地让用户接触开发中尚未稳定地功能,可能对开发人员及用户都会产生负面影响。

4,螺旋模型:将瀑布模型和演化模型结合起来,加入了两种模型均忽略地风险分析,弥补了这两种模型的不足。

在每个螺旋周期分为如下4个工作步骤:

1>,制定计划:确定软件的目标,选定实施方案,明确项目开发的限制条件;

2>,风险分析:分析所选的方案,识别风险,消除风险;

3>,实施工程:实施软件开发,验证阶段性产品;

4>,用户评估:评价开发工作,提出修正建议,建立下一个周期的开发计划。

 软考——软件工程——软件生存周期_第3张图片

5,喷泉模型:是一种以用户需求为动力,以对象作为驱动的模型。

优点:可以提高软件项目开发效率,节省开发时间。

缺点:开发过程中需要大量的开发人员,不利于项目的管理;要求严格管理文档,使得审核的难度加大。

 软考——软件工程——软件生存周期_第4张图片

 6,统一过程:特色是“用例和风险驱动,以架构为中心,迭代的增量开发过程”。

迭代的意思是将整个软件开发项目划分为许多小的“袖珍项目”,每个“袖珍项目”都包含正常软件项目的所有元素:计划、分析和设计、构造、继承和测试,以及内部和外部发布。

定义了五个阶段:

1>,起始阶段:专注于项目的初始活动。本阶段的里程碑是生命周期目标。

2>,精化阶段:在理解了最初的领域范围之后进行需求分析和架构演讲。本阶段的里程碑是生命周期架构。

3>,构建阶段:关注系统的构建,产生实现模型。

4>,移交阶段:关注于软件提交方面的工作,产生软件增量。本阶段的里程碑是产品发布版本。

5>,生产阶段:对持续使用的软件进行监控,提供运行环境(基础设施)的支持,提交并评估缺陷报告和变更请求。

统一过程的典型代表是RUP,RUP是UP的商业扩展,完全兼容UP,但比UP更完整、更详细。

7,敏捷过程:敏捷开发的主体是通过“尽可能早地、持续地对有价值地软件的交付”。

1>,极限编程XP:是一种轻量级的、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践、行为4个方面组成,彼此进行依赖、关联,并通过行为贯穿整个生存周期。

四大价值观:沟通、简单性、反馈、勇气

5个原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。

2>,水晶法

3>,并列争求法

4>,自适应软件开发(ASD)

软件过程评估

1,软件能力成熟度模型CMM

是提供一种评价软件承接方能力的方法。分为5个成熟度模型:初始级,可重复级、已定义级,已管理级,优化级

2,能力成熟度模型集成CMMI

是若干过程模型的综合和改进。提供了两种表示方法:阶段式模型和连续性模型

阶段式模型:结构类似于CMM,有5个成熟度模型:初始的、已管理的、已定义的、定量管理的、优化的。

连续式模型:关注每个过程域的能力。

软件工具

用来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具。

软件开发工具:对应于软件开发过程的各种活动。

1,需求分析工具:用于辅助软件需求分析活动的软件称为需求分析工具;

2,设计工具:用于辅助软件设计活动的软件称为设计工具,可分为概要设计工具和详细设计工具;

3,概要设计工具:用于辅助设计人员设计目标软件的体系结构、控制结构、数据结构;

4,编码和排错工具:分为编码工具和排错工具;

5,测试工具:用于支持进行软件测试的工具称为测试工具,分为数据获取工具、静态分析工具、动态分析工具、模拟工具、测试管理工具。

软件维护工具:辅助软件维护过程中相关活动的软件称为软件维护工具,主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

软件管理和软件支持工具:有项目管理工具、配置管理工具、软件评价工具。

软件开发环境:是支持软件产品开发的软件系统。特征如下:

1,环境的服务是集成的;

2,环境应支持小组工作方式,并为其提供配置管理;

3,环境的服务可用于支持各种软件开发活动。

你可能感兴趣的:(软件资格考试,软件工程)