《实践者的研究方法》—— 第3章 软件工程 3.1 通用过程模型

    xiaoxiao2024-05-28  98

    本节书摘来自华章出版社《实践者的研究方法》一书中的第3章,第3.1节,作者罗杰 S. 普莱斯曼(Roger S. Pressman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    第3章

    Software Engineering: A Practitioner’s Approach, Eighth Edition

    软件过程结构

    要 点 浏 览

    概念:在开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品。软件开发中所遵循的路线图就称为“软件过程”。

    人员:软件工程师及其管理人员根据需要调整开发过程,并遵循该过程。除此之外,软件的需求方也需要参与过程的定义、建立和测试。

    重要性:软件过程提高了软件工程活动的稳定性、可控性和有组织性,如果不进行控制,软件活动将变得混乱。但是,现代软件工程方法必须是“灵活”的,也就是要求软件工程活动、控制以及工作产品适合于项目团队和将要开发的产品。

    步骤:具体来讲,采用的过程依赖于构造软件的特点。飞机航空系统的软件与网站的建设可能需要采用两种截然不同的软件过程。

    工作产品:从软件工程师的角度来看,工作产品体现为在执行过程所定义的任务和活动的过程中,所产生的程序、文档和数据。

    质量保证措施:有大量的软件过程评估机制,开发机构可以评估其软件过程的“成熟度”。然而,表征软件过程有效性的最好指标还是所构建产品的质量、及时性和寿命。

    Howard Baetjer Jr.[Bae98]曾著书从经济学家的角度分析软件和软件工

    程,该书引人入胜,对软件过程评述如下:

    软件同其他资产一样,是知识的具体体现,而知识最初都是以分散的、不明确的、隐蔽的且不完整的形式广泛存在的,因此,软件开发是一个社会学习的过程。软件过程是一个对话的过程,在对话中,获取需要转化为软件的知识,并在软件中实现这些知识。软件过程提供了用户与设计人员之间、用户与不断演化的工具之间以及设计人员与不断演化的工具(技术)之间的互动。软件开发是一个迭代的过程,在其中演化的工具本身就作为沟通的媒介,任何新一轮对话都可以从参与的人员中获得更有用的知识。

    构建计算机软件确实是一个迭代的社会学习的过程,其输出——即Baetjer所称的“软件资产”——是知识的载体,这些知识在过程执行中进行收集、提炼和组织。

    但从技术的角度如何确切地定义软件过程呢?本书将软件过程定义为一个为创建高质量软件所需要完成的活动、动作和任务的框架。过程与软件工程同义吗?答案是“是,也不是”。软件过程定义了软件工程化中采用的方法,但软件工程还包含该过程中应用的技术——技术方法和自动化工具。

    更重要的是,软件工程是由有创造力、有知识的人完成的,他们根据产品构建的需要和市场需求来选取成熟的软件过程。

    3.1 通用过程模型

    在第2章中,过程定义为在工作产品构建过程中所需完成的工作活动、动作和任务的集合。这些活动、动作、任务中的每一个都隶属于某一框架或者模型,框架或模型定义了它们与过程之间或者相互之间的关系。

    软件过程示意图如图3-1所示。由图可以看出,每个框架活动由一系列软件工程动作构成;每个软件工程动作由任务集来定义,这个任务集明确了将要完成的工作任务、将要产生的工作产品、所需要的质量保证点,以及用于表明过程状态的里程碑。

    正如在第2章中讨论的,软件工程的通用过程框架定义了五种框架活动——沟通、策划、建模、构建以及部署。此外,一系列普适性活动——项目跟踪控制、风险管理、质量保证、配置管理、技术评审以及其他活动——贯穿软件过程始终。

    你也许注意到了,软件过程的一个很重要的方面还没有讨论,即过程流(process flow)。过程流描述了在执行顺序和执行时间上如何组织框架中的活动、动作和任务,如图3-2所示。

    线性过程流(linear process flow)从沟通到部署顺序执行五个框架活动(参见图3-2a)。迭代过程流(iterative process flow)在执行下一个活动前重复执行之前的一个或多个活动(参见图3-2b)。演化过程流(evolutionary process flow)采用循环的方式执行各个活动,每次循环都能产生更为完善的软件版本(参见图3-2c)。并行过程流(parallel process flow)(参见图3-2d)将一个或多个活动与其他活动并行执行(例如,软件一个方面的建模可以同软件另一个方面的构建活动并行执行)。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)