前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第 2 章 软件过程

第 2 章 软件过程

作者头像
love丁酥酥
发布2020-06-23 10:34:52
2950
发布2020-06-23 10:34:52
举报

简介

本章主要目标是介绍软件过程(软件生产的一组相互连贯的活动)的思想。读完本章将会:

  • 理解软件过程和软件过程模型概念
  • 了解 3 个通用的软件过程模型以及他们的适用情形
  • 了解需求工程、开发、测试和演化这几个基本的软件过程活动
  • 理解为什么软件过程要有效地组织以应对软件需求和设计上的变化
  • 理解软件过程改进的思想以及影响软件过程质量的因素

虽然有许多不同的软件过程,但都必须包含在第 1 章所介绍的 4 个最基本的软件工程活动中:

  1. 软件规格说明
  2. 软件开发
  3. 软件确认
  4. 软件演化

2.1 软件过程模型

软件过程模型是软件过程的简化表示。本节介绍几个非常通用的过程模型(也叫过程范型)

2.1.1 瀑布模型

该模型包含了基本的过程活动并将它们表示为独立的过程阶段,如图,各阶段之间顺序流动,原则上,后续阶段不得在前一阶段结束前开始。属于计划式驱动。

瀑布模型

有严格的安全性和可靠性,但是不够灵活。适用于嵌入式系统,关键性系统或者大型软件系统。

2.1.2 增量式开发

该方法是的规格说明,开发和确认活动交替进行。系统开发体现为一系列的版本(增量)迭代。该方法可以是计划的,也可以是敏捷的,取决于增量是提前决定还是动态变化。

增量式开发

大部分业务系统和软件产品都是采用的该模型。增量式开发更加敏捷灵活,但是随着需求增加,代码结构退化,需要定期重构。

2.1.3 集成与配置

面向复用的方法依赖于一个可复用的软件构件库以及一个用于构建组装的集成框架。

集成与配置

该方法能有效降低成本和风险,但也有可能不完全满足需求,并且有些演化迭代不受控制。

2.2 过程活动

真实的软件过程中,技术活动、协作活动以及管理活动交织在一起,其总体目标是完成一个软件系统的规格说明、涉及、实现和测试。

2.2.1 软件规格说明

软件规格说明或需求工程过程的目的是理解和定义系统需要提供哪些服务,以及识别对于系统开发和运行的约束。

需求工程过程

2.1.2 软件设计和实现

软件设计是对将要实现的软件的结构、系统所使用的数据模型和结构、系统构建间的接口描述,有时候还会包括所用的算法。设计不是一蹴而就,而是阶段性的添加细节,设计的修改不可避免。

设计过程的通用模型

2.2.3 软件确认

测试应该是分阶段的。

测试阶段

image.png

2.2.4 软件演化

软件工程是一个持续演化的过程。

软件系统演化

2.3 应对变化

变化是无可避免的。

image.png

image.png

2.3.1 原型

原型是软件系统早期版本,用来演示概念、尝试候选方案、更好地理解问题以及可能的解决方案。

原型开发

2.3.2 增量式交付

增量式交付

2.4 过程改进

过程改进意味着理解当前的过程,并对其进行改变以提高产品质量,并且/或者降低成本和开发时间。有如下两种很不一样的方法:

  1. 过程成熟度方法
  2. 敏捷方法

小结

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 2.1 软件过程模型
    • 2.1.1 瀑布模型
      • 2.1.2 增量式开发
        • 2.1.3 集成与配置
        • 2.2 过程活动
          • 2.2.1 软件规格说明
            • 2.1.2 软件设计和实现
              • 2.2.3 软件确认
                • 2.2.4 软件演化
                • 2.3 应对变化
                  • 2.3.1 原型
                    • 2.3.2 增量式交付
                    • 2.4 过程改进
                    • 小结
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档