软件工程之软件过程结构

第二章:软件工程

什么是软件工程?

软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。活动( 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)——定义在过程中发生的框架活动序列,即使这些活动流本质上是迭代的。例如,螺旋模型和原型开发°就可能是两种阶段模式。

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构软件工程中非常重要的一部分,它是指在计算机中组织和存储数据的方式。在软件工程中,数据结构设计是指在程序设计中如何组织和存储数据,以便于程序的实现和维护。数据结构设计的目的是为了提高程序的效率和可维护性。在软件工程中,数据结构设计通常是在需求分析和程序设计的早期阶段进行的。数据结构设计的过程包括定义数据类型、选择数据结构、设计数据结构的操作等。数据结构设计的好坏直接影响到程序的效率和可维护性。 结构化程序设计是一种常用的程序设计方法,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构结构化程序设计的主要特点是程序的模块化和结构化,它可以使程序更易于理解、修改和维护。结构化程序设计的过程包括总体设计和详细设计两个阶段。总体设计是将系统划分为多个模块,并确定每个模块的功能和模块之间的接口;详细设计是为每个模块进行详细的算法设计、数据结构设计、数据库设计等。 McCabe方法是一种基于程序控制流的复杂性度量方法,它可以用来度量程序的复杂度。McCabe方法的核心是环形复杂度度量,它通过计算程序图中判定结点的数量来度量程序的复杂度。McCabe方法可以帮助程序员评估程序的复杂度,从而更好地进行程序设计和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值