本文共 2039 字,大约阅读时间需要 6 分钟。
本节书摘来自华章出版社《实践者的研究方法》一书中的第2章,第2.2节,作者罗杰 S. 普莱斯曼(Roger S. Pressman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.2 软件过程
软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。活动(activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。动作(action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务。任务(task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试)。
在软件工程领域,过程不是对如何构建计算机软件的严格的规定,而是一种具有可适应性的调整方法,以便于工作人员(软件团队)可以挑选适合的工作动作和任务集合。其目标通常是及时、高质量地交付软件,以满足软件项目资助方和最终用户的需求。
2.2.1 过程框架
过程框架(process framework)定义了若干个框架活动(framework activity),为实现完整的软件工程过程建立了基础。这些活动可广泛应用于所有软件开发项目,无论项目的规模和复杂性如何。此外,过程框架还包含一些适用于整个软件过程的普适性活动(umbrella activity)。一个通用的软件工程过程框架通常包含以下5个活动。
沟通。在技术工作开始之前,和客户(及其他利益相关者)的沟通与协作是极其重要的,其目的是理解利益相关者的项目目标,并收集需求以定义软件特性和功能。
策划。如果有地图,任何复杂的旅程都可以变得简单。软件项目好比是一个复杂的旅程,策划活动就是创建一个“地图”,以指导团队的项目旅程,这个地图称为软件项目计划,它定义和描述了软件工程工作,包括需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。
建模。无论你是庭园设计师、桥梁建造者、航空工程师、木匠还是建筑师,你每天的工作都离不开模型。你会画一张草图来辅助理解整个项目大的构想——体系结构、不同的构件如何结合,以及其他一些特性。如果需要,可以把草图不断细化,以便更好地理解问题并找到解决方案。软件工程师也是如此,需要利用模型来更好地理解软件需求,并完成符合这些需求的软件设计。
构建。必须要对所做的设计进行构建,包括编码(手写的或者自动生成的)和测试,后者用于发现编码中的错误。
部署。软件(全部或者部分增量)交付给用户,用户对其进行评测并给出反馈意见。
上述五个通用框架活动既适用于简单小程序的开发,也可用于WebApp的建造以及基于计算机的大型复杂系统工程。不同的应用案例中,软件过程的细节可能差别很大,但是框架活动都是一致的。
对许多软件项目来说,随着项目的开展,框架活动可以迭代应用。也就是说,在项目的多次迭代过程中,沟通、策划、建模、构建、部署等活动不断重复。每次项目迭代都会产生一个软件增量(software increment),每个软件增量实现了部分的软件特性和功能。随着每一次增量的产生,软件将逐渐完善。
2.2.2 普适性活动
软件工程过程框架活动由很多普适性活动来补充实现。通常,这些普适性活动贯穿软件项目始终,以帮助软件团队管理和控制项目进度、质量、变更和风险。典型的普适性活动包括如下活动。
软件项目跟踪和控制——项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。
风险管理——对可能影响项目成果或者产品质量的风险进行评估。
软件质量保证——确定和执行保证软件质量的活动。
技术评审——评估软件工程产品,尽量在错误传播到下一个活动之前发现并清除错误。
测量——定义和收集过程、项目以及产品的度量,以帮助团队在发布软件时满足利益相关者的要求。同时,测量还可与其他框架活动和普适性活动配合使用。
软件配置管理——在整个软件过程中管理变更所带来的影响。
可复用管理——定义工作产品复用的标准(包括软件构件),并且建立构件复用机制。
工作产品的准备和生产——包括生成产品(如建模、文档、日志、表格和列表等)所必需的活动。
上述每一种普适性活动都将在本书后续部分详细讨论。
2.2.3 过程的适应性调整
在本节前面部分曾提到,软件工程过程并不是教条的法则,也不要求软件团队机械地执行;而应该是灵活可适应的(根据软件所需解决的问题、项目特点、开发团队和组织文化等进行适应性调整)。因此,不同项目所采用的项目过程可能有很大不同。这些不同主要体现在以下几个方面:
活动、动作和任务的总体流程以及相互依赖关系。
在每一个框架活动中,动作和任务细化的程度。
工作产品的定义和要求的程度。
质量保证活动应用的方式。
项目跟踪和控制活动应用的方式。
过程描述的详细程度和严谨程度。
客户和利益相关者对项目的参与程度。
软件团队所赋予的自主权。
队伍组织和角色的明确程度。
本书第1部分将详细介绍软件过程。
转载地址:http://rkxyx.baihongyu.com/