fbpx
维基百科

软件开发过程

软件开发过程(英語:software development process),或软件过程(英語:software process),是软件开发的开发生命周期software development life cycle),其各个阶段实现了软件的需求定义与分析、设计、实现、测试、交付和维护。软件过程是在开发与构建系统时应遵循的步骤,是软件开发的路线图。[1]

软件过程方法涉及交付(deliverables)和工件(artifacts)的预定义、软件产品在项目团队中的开发与维护。过程方法的应用可以完善软件设计产品管理英语Software product management项目管理[2]敏捷开发是现代软件开发中被广泛使用的范式。过程模型(英語:process models)则意图解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建英语Software construction和部署等活动(activities)有效地组织了起来。

软件过程为软件的开发定义了一个框架,将自动化工具、软件开发方法和质量管理紧密结合在了一起。软件过程构成了软件项目管理控制的基础,建立了一个环境以便于技术方法的采用、工作产品(模型、文档、报告、表格等)的产生、里程碑(milestones)的建立、质量的保证、正常变更的正确管理。[1]

历史 编辑

软件开发方法(英語:software development methodology, SDM)框架在20世纪60年代开始出现。在信息系统的构建中,系统开发生命周期(SDLC)可被视作最早的形式化方法。SDLC的主要想法是,在采用框架时应当“以审慎、结构化和方法化的方式开发信息系统。生命周期中的每个阶段,从概念提出到系统交付,都应当严格、依次地进行”。当时的软件开发目标是,“在大型商业集团中开发大规模的功能性商业系统,系统需要承载大量数据处理和数据运算任务”。[3]

方法、过程和框架覆盖范围甚广,包含从日常开发的步骤到为特定项目量身定制的灵活框架。一些情况下,组织会正式发布描述过程的文档。

软件开发方法历史中的重要事件有:

方法 编辑

敏捷软件开发 编辑

敏捷式开发模型的特性是能够持续性的对软件本体进行不断改造以及客户对软件开发过程中的不断介入。它适用于小规模的开发团队,好让每个成员能够互相在开发进行时方便交流。 敏捷模型的优点在于其灵活性——经过一次次例行的开发迭代期(iterations)后,在每一次迭代期的开始时小组便会考虑向软件引入新的特性和改变,也就不会特别跟随原有的开发要求。

过程模型 编辑

过程模型由五个基本的框架活动组成:沟通、计划、建模、构建英语Software construction和部署。他们之间线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)关系会产生不同的模型。常见的过程模型包括:瀑布模型V模型、原型设计、增量模型、螺旋模型[1]

瀑布模型 编辑

 
用瀑布模型表示的软件开发过程。

瀑布模型是经典的生命周期模型,简单的线性过程模型。一般会依次进行以下环节:

适用于需求良定义的软件开发工作,实际工作很难按照瀑布模型的预想进行。

V模型是瀑布模型的变种,它允许软件过程中环节的回顾调整。在V字曲线上下行时,团队理解需求和设计实现;在V的顶点处,可运行的软件已经被生成;而在曲线上行则会进行诸项测试。

螺旋模型 编辑

螺旋模型最初由Barry Boehm提出,它是软件过程的一个演进模型,为版本递增软件的快速开发提供了可能。其两个主要特性是;

  • 循环地增加系统定义和实现的复杂度而降低风险
  • 用一组锚点里程碑(anchor point milestones)保证利益者获得灵活和满意的系统解决方案[4]
 
螺旋模型(Boehm, 1988)

实践 编辑

软件工程领域,项目生命周期刻画了一个工程从起始到完成,是如何进行计划、控制和监控的模型。在项目生命周期的早期和後期,软件架构需求和系统定义是一个问题:

  1. 系统/软件的市场是什么?
  2. 竞争对手有哪些?
  3. 系统/软件的运行平台是什么?
  4. 这个项目可用的时间有多少?
  5. 项目需要是什么?

经过这些年,从最早也最简单的瀑布模型开始,已经开发出了许多不同的模型。但是,随着软件变得更大和更复杂,这种开发方法已经出现负面影响,尤其是牵扯到有大型团队的时候。迭代的模型得到了发展,它包括原型法、演化原型法、增量开发、螺旋模型V模型混沌模型

这些模型的使用大部分都局限于项目的总体管理,但是现在认为,如果在项目的单独部分都由最合适的模型控制,则这个项目受到了更好的控制。例如,一个项目用增量开发模型,但是在每一个增量过程,文档是按照瀑布模型创建和管理,而代码开发使用V模型管理。

每个项目的生命周期的正规性和复杂性受到很多因素的制约,包括预算约束,经验,项目规模和复杂度,开发队伍。

一些经验丰富和很受尊敬的项目领导和程序员认为生命周期的严格应用是一种理论,并不能在实践中起到好作用。Linux内核的創建者林納斯·托瓦茲(Linus Torvalds),在Linux内核的邮件列表中这样描述:

ISO 12207是为描述为一个项目选择,执行和监控生命周期的方法而开发的國際标准。

参见 编辑

参考文献 编辑

  1. ^ 1.0 1.1 1.2 Pressman, Roger S.; Maxim, Bruce R. Software Engineering: A Practitioner's Approach Eighth Edition. McGraw-Hill Education. 2015. ISBN 978-0-07-802212-8. 
  2. ^ Centers for Medicare & Medicaid Services (CMS) Office of Information Service (2008). Selecting a development approach (页面存档备份,存于互联网档案馆. Webarticle. United States Department of Health and Human Services (HHS). Re-validated: March 27, 2008. Retrieved 27 Oct 2008.
  3. ^ Geoffrey Elliott (2004) Global Business Information Technology: an integrated systems approach. Pearson Education. p.87.
  4. ^ B. Boehm. A spiral model of software development and enhancement. ACM SIGSOFT Software Engineering Notes. 1986, 11 (4): 14-24 [2018-07-06]. doi:10.1145/12944.12948. (原始内容于2019-10-10). 


软件开发过程, 英語, software, development, process, 或软件过程, 英語, software, process, 是软件开发的开发生命周期, software, development, life, cycle, 其各个阶段实现了软件的需求定义与分析, 设计, 实现, 测试, 交付和维护, 软件过程是在开发与构建系统时应遵循的步骤, 是软件开发的路线图, 软件过程方法涉及交付, deliverables, 和工件, artifacts, 的预定义, 软件产品在项目团队中的开发与维护. 软件开发过程 英語 software development process 或软件过程 英語 software process 是软件开发的开发生命周期 software development life cycle 其各个阶段实现了软件的需求定义与分析 设计 实现 测试 交付和维护 软件过程是在开发与构建系统时应遵循的步骤 是软件开发的路线图 1 软件过程方法涉及交付 deliverables 和工件 artifacts 的预定义 软件产品在项目团队中的开发与维护 过程方法的应用可以完善软件设计 产品管理 英语 Software product management 和项目管理 2 敏捷开发是现代软件开发中被广泛使用的范式 过程模型 英語 process models 则意图解决软件过程中的混乱 将软件开发过程中的沟通 计划 建模 构建 英语 Software construction 和部署等活动 activities 有效地组织了起来 软件过程为软件的开发定义了一个框架 将自动化工具 软件开发方法和质量管理紧密结合在了一起 软件过程构成了软件项目管理控制的基础 建立了一个环境以便于技术方法的采用 工作产品 模型 文档 报告 表格等 的产生 里程碑 milestones 的建立 质量的保证 正常变更的正确管理 1 目录 1 历史 2 方法 2 1 敏捷软件开发 2 2 过程模型 2 3 瀑布模型 2 4 螺旋模型 3 实践 4 参见 5 参考文献历史 编辑软件开发方法 英語 software development methodology SDM 框架在20世纪60年代开始出现 在信息系统的构建中 系统开发生命周期 SDLC 可被视作最早的形式化方法 SDLC的主要想法是 在采用框架时应当 以审慎 结构化和方法化的方式开发信息系统 生命周期中的每个阶段 从概念提出到系统交付 都应当严格 依次地进行 当时的软件开发目标是 在大型商业集团中开发大规模的功能性商业系统 系统需要承载大量数据处理和数据运算任务 3 方法 过程和框架覆盖范围甚广 包含从日常开发的步骤到为特定项目量身定制的灵活框架 一些情况下 组织会正式发布描述过程的文档 软件开发方法历史中的重要事件有 1969年 结构化编程 1980年 结构化系统分析与设计方法 Structured Systems Analysis and Design Method SSADM 面向对象程序设计 起步于1960年代 1990年代中期成为一种主流方法 1991年 快速应用程序开发 1995年 Scrum 1998年 团队软件过程 英语 Team software process 1998年 由IBM维护的统一软件开发过程 1999年 极限编程 2005年 敏捷统一过程 英语 Agile Unified Process Agile Unified Process AUP 2010年代 基于大规模的敏捷框架 英语 Scaled Agile Framework Scaled Agile Framework SAFe 2010年代 大规模Scrum Large Scale Scrum LeSS 方法 编辑敏捷软件开发 编辑 主条目 敏捷软件开发 敏捷式开发模型的特性是能够持续性的对软件本体进行不断改造以及客户对软件开发过程中的不断介入 它适用于小规模的开发团队 好让每个成员能够互相在开发进行时方便交流 敏捷模型的优点在于其灵活性 经过一次次例行的开发迭代期 iterations 后 在每一次迭代期的开始时小组便会考虑向软件引入新的特性和改变 也就不会特别跟随原有的开发要求 过程模型 编辑 过程模型由五个基本的框架活动组成 沟通 计划 建模 构建 英语 Software construction 和部署 他们之间线性 linear 迭代 iterative 演进 evolutionary 和平行 parallel 关系会产生不同的模型 常见的过程模型包括 瀑布模型 V模型 原型设计 增量模型 螺旋模型等 1 瀑布模型 编辑 主条目 瀑布模型 nbsp 用瀑布模型表示的软件开发过程 瀑布模型是经典的生命周期模型 简单的线性过程模型 一般会依次进行以下环节 需求分析 设计 实现 测试 集成 部署 或安装 维护适用于需求良定义的软件开发工作 实际工作很难按照瀑布模型的预想进行 V模型是瀑布模型的变种 它允许软件过程中环节的回顾调整 在V字曲线上下行时 团队理解需求和设计实现 在V的顶点处 可运行的软件已经被生成 而在曲线上行则会进行诸项测试 螺旋模型 编辑 主条目 螺旋模型 螺旋模型最初由Barry Boehm 提出 它是软件过程的一个演进模型 为版本递增软件的快速开发提供了可能 其两个主要特性是 循环地增加系统定义和实现的复杂度而降低风险 用一组锚点里程碑 anchor point milestones 保证利益者获得灵活和满意的系统解决方案 4 nbsp 螺旋模型 Boehm 1988 实践 编辑在软件工程领域 项目生命周期刻画了一个工程从起始到完成 是如何进行计划 控制和监控的模型 在项目生命周期的早期和後期 软件架构 需求和系统定义是一个问题 系统 软件的市场是什么 竞争对手有哪些 系统 软件的运行平台是什么 这个项目可用的时间有多少 项目需要是什么 经过这些年 从最早也最简单的瀑布模型开始 已经开发出了许多不同的模型 但是 随着软件变得更大和更复杂 这种开发方法已经出现负面影响 尤其是牵扯到有大型团队的时候 迭代的模型得到了发展 它包括原型法 演化原型法 增量开发 螺旋模型 V模型和混沌模型 这些模型的使用大部分都局限于项目的总体管理 但是现在认为 如果在项目的单独部分都由最合适的模型控制 则这个项目受到了更好的控制 例如 一个项目用增量开发模型 但是在每一个增量过程 文档是按照瀑布模型创建和管理 而代码开发使用V模型管理 每个项目的生命周期的正规性和复杂性受到很多因素的制约 包括预算约束 经验 项目规模和复杂度 开发队伍 一些经验丰富和很受尊敬的项目领导和程序员认为生命周期的严格应用是一种理论 并不能在实践中起到好作用 Linux内核的創建者林納斯 托瓦茲 Linus Torvalds 在Linux内核的邮件列表中这样描述 没有一个已经在通用市场上 相对特殊领域而言 取得成功的的较大的软件项目曾经经历了那些好的生命周期模型 就像在计算机科学课程裡告诉你的一样 ISO 12207是为描述为一个项目选择 执行和监控生命周期的方法而开发的國際标准 参见 编辑开发阶段 软件工程主题列表 软件工程参考文献 编辑 1 0 1 1 1 2 Pressman Roger S Maxim Bruce R Software Engineering A Practitioner s Approach Eighth Edition McGraw Hill Education 2015 ISBN 978 0 07 802212 8 引文格式1维护 冗余文本 link Centers for Medicare amp Medicaid Services CMS Office of Information Service 2008 Selecting a development approach 页面存档备份 存于互联网档案馆 Webarticle United States Department of Health and Human Services HHS Re validated March 27 2008 Retrieved 27 Oct 2008 Geoffrey Elliott 2004 Global Business Information Technology an integrated systems approach Pearson Education p 87 B Boehm A spiral model of software development and enhancement ACM SIGSOFT Software Engineering Notes 1986 11 4 14 24 2018 07 06 doi 10 1145 12944 12948 原始内容存档于2019 10 10 取自 https zh wikipedia org w index php title 软件开发过程 amp oldid 79029199, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。