《软件工程方法与实践》—— 2.2 什么是软件过程

简介: 软件的诞生及其生命周期是一个过程,我们总体上称这个过程为软件过程。软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动,每一项活动又可以分为一系列的工程任务。任何一个软件开发组织,都可以规定自己的软件活动,所有这些活动共同构成了软件过程。

本节书摘来自华章出版社《软件工程方法与实践》一 书中的第2章,第2.2节,作者窦万峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 什么是软件过程

2.2.1 软件过程的定义

软件的诞生及其生命周期是一个过程,我们总体上称这个过程为软件过程。软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动,每一项活动又可以分为一系列的工程任务。任何一个软件开发组织,都可以规定自己的软件活动,所有这些活动共同构成了软件过程。
必须有科学、有效的软件过程才能获得高质量的软件产品。因此,科学、有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。通常,一个任务集合包括一组软件工程任务、里程碑和应该交付的产品。事实上,软件过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响软件产品的质量。
软件过程是一个为了构造高质量软件所需完成的一系列活动的过程框架,即形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。软件过程是指软件整个生存周期,从需求获取、需求分析、设计、实现、测试到发布和维护的一个过程模型。一个软件过程定义了软件开发中采用的方法,还包含该过程中应用的技术—技术方法和自动化工具。过程定义一个框架,为有效交付软件工程技术,这个框架必须创建。软件过程构成了软件项目管理控制的基础,并且创建了一个环境以便于技术方法的采用、工作产品(模型、文档、报告、表格等)的产生、里程碑的创建、质量的保证、正常变更的正确管理。

2.2.2 软件过程框架

过程的制度化需要过程框架的支持。框架是实现整个软件开发活动的基础,那些与过程有关的角色、职责的定义以及实现都离不开框架的支持。框架是一个十分重要的概念。通常,框架中的角色可以为过程活动的执行提供帮助与指导,并且为过程活动的实施与监控提供工具与渠道。
任何一个过程都应该包含两个方面的内容:一是组织及管理框架,这包括实现软件过程改进活动时所涉及的角色与职责;二是方法及工具框架,这包括实现过程活动自动化以及实现不同角色及其职责时所需的设备与工具。
对于软件过程,我们将软件过程框架定义为企业运行的基本框架,并且能对软件过程改进活动提供支持与帮助。
为了实现一个有效的软件过程环境,软件过程框架应当设置相应的角色与职责。这些角色和相应的职责还应涵盖软件过程中所有的关键领域。对于软件过程改进环境而言,一个有效的框架应包含两部分:一是组织、管理的角色和职责,二是技术环境。
软件过程框架定义了若干小的框架活动,为完整的软件开发过程建立了基础。软件过程框架还包括了一些适用于各个软件过程的普适性活动,主要包括:

  • 沟通:软件相关共利益者之间大量的交流和协作。
  • 计划:为软件开发工作制订计划。
  • 建模:创建软件开发所涉及的各种模型和设计方案。
  • 构建:编码和测试活动。
  • 部署:将软件部署到运行环境中,并交付给用户。
    《系统和软件工程 软件生存周期过程》(ISO/IEO 12207:2008)标准将一个系统的生存周期过程分为两大类:系统语境的过程和针对软件开发的过程。系统语境的过程类包括4个过程组,分别是协议过程组、项目过程组、技术过程组和组织上项目使能过程组。针对软件开发的过程类包括3个过程组,即软件实现过程组、软件支持过程组和软件复用过程组。这些过程组又分别包含一组过程和相关的一系列活动。表2-1给出了这些过程和活动以及任务数。


表2-1 软件过程内容
a0c5eba503fd1594f90b264c701585ed4bc74a6f
d8b75df6d399c43770337d3326b35106258b62fb
6e1af08db1ae6112fd4e6aa557c06b4d4cf78588
相关文章
|
自然语言处理 JavaScript
vue element plus Config Provider 全局配置
vue element plus Config Provider 全局配置
798 0
|
网络安全 数据安全/隐私保护
荔枝派Zero(全志V3S)开启 SSH 实现远程连接和文件传输
本文将在 Buildroot 根文件系统开启 ssh 功能。
773 0
|
定位技术
阿里架构总监一次讲透中台架构,13页PPT精华详解,建议收藏!
本文整理了阿里几位技术专家,如架构总监 谢纯良,中间件技术专家 玄难等几位大牛,关于中台架构的几次分享内容,将业务中台形态、中台全局架构、业务中台化、中台架构图、中台建设方法论、中台组织架构、企业中台建设实施步骤等总共13页PPT精华的浓缩,供大家学习借鉴。
39915 112
|
8月前
|
人工智能 自然语言处理 搜索推荐
2025智能营销产品深度评测,国内主流智能营销厂商推荐
在数字化运营深化的时代,用户资产成为企业核心竞争力。用户智能运营产品已从单一营销工具演变为支撑用户生命周期管理、降本增效、业务增长的关键基础设施。面对AI自动化、全渠道数据整合、私域公域协同等趋势,企业需构建涵盖场景适配性、数据能力、智能化、生态集成等维度的选型体系。本文对比瓴羊Quick Audience、神策数据、致趣百川、Convertlab、HubSpot、Adobe Experience Cloud六大主流产品,揭示其在数据整合、运营自动化、个性化能力等方面差异,为企业提供科学选型参考,助力实现精细化运营转型。
|
6月前
|
机器学习/深度学习 人工智能 API
构建AI智能体:九十三、基于OpenAI Whisper-large-v3模型的本地化部署实现语音识别提取摘要
本文介绍基于OpenAI Whisper-large-v3模型与FastAPI构建高精度语音转文字服务的实践。涵盖模型加载优化、多格式音频处理、RESTful API设计及生产级部署方案,分享从零打造高性能、可扩展ASR系统的完整经验。
588 14
|
SQL Java 数据库连接
深入解析@MapperScan注解:简化MyBatis接口与映射器的关联
在Java持久化领域,MyBatis是一个广泛使用的ORM(对象关系映射)框架,用于将数据库中的数据映射到Java对象中。MyBatis的核心概念是SQL映射器(Mapper),它定义了数据库操作的方法。为了简化Mapper接口与映射器的关联,MyBatis提供了`@MapperScan`注解。本文将深入探讨`@MapperScan`注解的作用、用法,以及在MyBatis应用中的应用场景。
3568 0
Mac Brew install慢的问题
Mac Brew install慢的问题
641 1
|
XML JSON API
常用iOS的第三方框架
图像:1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Goog
8209 0
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
499 6
|
安全 网络协议 Linux
【Windows】已解决:修改本地host文件异常的正确解决方法
【Windows】已解决:修改本地host文件异常的正确解决方法
3587 0