什么是软件工程?
软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。活动( activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。动作( action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务。任务( task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试)。
什么是过程框架?
过程框架( process framework)定义了若干个框架活动(frameworkactivity),为实现完整的软件工程过程建立了基础。这些活动可广泛应用于所有软件开发项目,无论项目的规模和复杂性如何。此外,过程框架还包含一些适用于整个软件过程的普适性活动(umbrella activity)。一个通用的软件工程过程框架通常包含沟通、策划、建模、构建、部署5个活动。对许多软件项目来说,随着项目的开展,框架活动可以迭代应用。也就是说,在项目的多次迭代过程中,沟通、策划、建模、构建、部署等活动不断重复。每次项目迭代都会产生一个软件增量(software increment),每个软件增量实现了部分的软件特性和功能。随着每一次增量的产生,软件将逐渐完善。
什么是软件过程的普适性活动?
软件工程过程框架活动由很多普适性活动来补充实现。通常,这些普适性活动贯穿软件项目始终,以帮助软件团队管理和控制项目进度、质量、变更和风险。典型的普适性活动包括软件项目控制和跟踪、风险管理、软件质量保证、技术评审、测量、软件配置和管理、可复用管理、工作产品的准备和生产。
过程适应性调整:
软件工程过程并不是教条的法则,也不要求软件团队机械地执行;而应该是灵活可适应的(根据软件所需解决的问题、项目特点开发团队和组织文化等进行适应性调整)。因此,不同项目所采用的项目过程可能有很大不同。这些不同主要体现在以下几个方面:
●活动、动作和任务的总体流程以及相互依赖关系。
●在每一个框架活动中,动作和任务细化的程度。
●工作产品的定义和要求的程度。
●质量保证活动应用的方式。
●项目跟踪和控制活动应用的方式。
●过程描述的详细程度和严谨程度。
●客户和利益相关者对项目的参与程度。
●软件团队所赋予的自主权。
●队伍组织和角色的明确程度。
软件工程实践的框架。通用的框架活动——沟通、策划、建模、构建和部署和普适性活动构成了软件工程工作的体系结构的轮廓。
软件工程整体实践的7个原则:
存在价值、保持简介、保持愿景、关注使用者、面向未来、提前计划复用、认真思考。
第三章:软件过程结构
正如在第2章中讨论的,软件工程的通用过程框架定义了五种框架活动——沟通、策划、建模、构建以及部署。此外,一系列普适性活动——项目跟踪控制、风险管理、质量保证、配置管理、技术评审以及其他活动——贯穿软件过程始终。
过程流:
过程流描述了在执行顺序和执行时间上如何组织框架中的活动、动作和任务。如图所示的四个并行过程流:
过程模式:
过程模式描述了软件工程工作中遇到的过程相关的问题,明确了问题环境并给出了针对该问题的一种或几种可证明的解决方案。通俗地讲,过程模式提供了一个模板[Amb98]———种在软件过程的背景下统一描述问题解决方案的方法。通过模式组合,软件团队可以解决问题并定义最符合项目需求的开发过程。
我们可以在不同抽象层次上定义模式9。在某些情况下,模式可以描述一个与完整过程模型(例如原型开发)相关的问题(及其解决方案);在其他的情况下,模式可以描述一个与框架活动(如策划)或者框架活动中的一动作(如项目估算)相关的问题(及其解决方案)。
Ambler[Amb98]提出了下面的过程模式的描述模板:
模式名称:模式名称应能清楚地表述该模式在软件过程中的含义(例如技术评审)。
驱动力:模式的使用环境及主要问题,这些问题会显现在软件过程中并可能影响解决方案。
类型:定义模式类型。Ambler[Amb98]提出了步骤模式、任务模式、阶段模式三种类型
1.步骤模式(stage pattern)——定义了与过程的框架活动相关的问题。由于框架活动包括很多动作和工作任务,因此步骤模式包括与步骤(框架活动)有关的许多任务模式(见以下描述)。例如,建立沟通可能作为一个步骤模式,该步骤模式可能包括需求收集等任务模式。
2.任务模式( task pattern)——定义了与软件工程动作或是工作任务相关、关系软件工程实践成败的问题(例如,需求收集是一个任务模式)。
3.阶段模式( phase pattern)——定义在过程中发生的框架活动序列,即使这些活动流本质上是迭代的。例如,螺旋模型和原型开发°就可能是两种阶段模式。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删