《软件工程方法与实践》—— 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 全局配置
851 0
|
Linux iOS开发 MacOS
brew - mac 下的 brew 切换为国内源
brew - mac 下的 brew 切换为国内源
7213 0
|
物联网 数据处理 智能硬件
基于STM32的智能家居控制系统设计与实现
基于STM32的智能家居控制系统设计与实现
1822 0
|
11月前
|
人工智能 自然语言处理 搜索推荐
2025智能营销产品深度评测,国内主流智能营销厂商推荐
在数字化运营深化的时代,用户资产成为企业核心竞争力。用户智能运营产品已从单一营销工具演变为支撑用户生命周期管理、降本增效、业务增长的关键基础设施。面对AI自动化、全渠道数据整合、私域公域协同等趋势,企业需构建涵盖场景适配性、数据能力、智能化、生态集成等维度的选型体系。本文对比瓴羊Quick Audience、神策数据、致趣百川、Convertlab、HubSpot、Adobe Experience Cloud六大主流产品,揭示其在数据整合、运营自动化、个性化能力等方面差异,为企业提供科学选型参考,助力实现精细化运营转型。
|
9月前
|
机器学习/深度学习 人工智能 API
构建AI智能体:九十三、基于OpenAI Whisper-large-v3模型的本地化部署实现语音识别提取摘要
本文介绍基于OpenAI Whisper-large-v3模型与FastAPI构建高精度语音转文字服务的实践。涵盖模型加载优化、多格式音频处理、RESTful API设计及生产级部署方案,分享从零打造高性能、可扩展ASR系统的完整经验。
719 14
|
JSON 算法 API
京东:利用商品管理API自动调整商品上下架状态,优化搜索排名
京东通过商品管理API实现商品状态自动调整,优化搜索排名。本文详解API功能、实现方法、排名优化原理,并提供Python代码示例,助力商家提升运营效率与曝光度。
|
SQL Java 数据库连接
深入解析@MapperScan注解:简化MyBatis接口与映射器的关联
在Java持久化领域,MyBatis是一个广泛使用的ORM(对象关系映射)框架,用于将数据库中的数据映射到Java对象中。MyBatis的核心概念是SQL映射器(Mapper),它定义了数据库操作的方法。为了简化Mapper接口与映射器的关联,MyBatis提供了`@MapperScan`注解。本文将深入探讨`@MapperScan`注解的作用、用法,以及在MyBatis应用中的应用场景。
3668 0
|
人工智能 IDE Go
JetBrains GoLand 2025.1 发布 - 为 Go 开发者打造的完整 IDE
JetBrains GoLand 2025.1 (macOS, Linux, Windows) - 为 Go 开发者打造的完整 IDE
1079 0
JetBrains GoLand 2025.1 发布 - 为 Go 开发者打造的完整 IDE
|
存储 Windows
内存卡坏了还能修吗?4种常见修复方法
内存卡出现“无法保存”或“存储异常”等问题时,不一定是硬件损坏,可能是系统错误或文件系统异常导致。本文介绍几种亲测有效的修复方法:1) 更换读卡设备排除接触问题;2) 格式化修复文件系统(需先备份数据);3) 使用DiskGenius检测坏道;4) 借助厂商工具深度修复。同时提供日常保养建议,如避免高温环境、养成数据备份习惯,延长内存卡使用寿命。通过这些方法,多数问题可轻松解决,无需更换硬件。