(计算机软件与理论专业论文)软件项目开发中并行工程方法的过程建模的研究与应用.pdf_第1页
(计算机软件与理论专业论文)软件项目开发中并行工程方法的过程建模的研究与应用.pdf_第2页
(计算机软件与理论专业论文)软件项目开发中并行工程方法的过程建模的研究与应用.pdf_第3页
(计算机软件与理论专业论文)软件项目开发中并行工程方法的过程建模的研究与应用.pdf_第4页
(计算机软件与理论专业论文)软件项目开发中并行工程方法的过程建模的研究与应用.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 摘要 随着信息技术的飞速发展,软件产品规模越来越庞大,软件业竞争目趋激烈,现 阶段软件项目开发中普遍存在开发效率低、工期拖延、无法满足客户需求的问题。另 一方面,并行工程作为制造业研究应用的热点领域之一,是一种集成地、并行地设计 产品及相关过程的系统化方法,能提高产品开发效率和质量。如何在软件项目开发中 应用并行工程的方法来提高软件开发效率是一个有价值的研究方向。 本文研究了制造业中并行工程的特点,软件项目开发中的并行工程( 简称为“软 件并行工程”,下同) 的基本理论、实施的可行性,实施要素,并讨论了不同的实施 层次;本文重点研究了支持软件并行工程的过程建模方法,提出了一个基于p e t r i 网 的软件过程模型并行开发模型c d m ( c o n c u r r e n td e v e l o pm o d e l ) ,为软件并行工 程中软件过程的控制、分析、评估和优化奠定了基础。最后在实际项目中实践了软件 并行工程,取得了良好的效果。 关键诃软件并行工程并行工程软件过程p e t r i 网 英文摘要 硕士论文 a b s t r a c t t h es i z eo ft h es o f t w a r ep r o d u c t i o nb e c o m el a r g e ra n dl a r g e ra l o n ew i t ht h ef a s t p r o g r e s so ft h ei n f o r m a t i o nt e c h n o l o g y ,a n dt h ec o m p e t i t i o nb e c o m em u c hf i e r c e rb e t w e e n t h ei tc o m p a n y h o w e v e r ,m o s tc o m p a n yc a nn o tc o m p l e t et h ep r o j e c to nt i m ea n dt h e d e v e l o pe f f i c i e n c yi sv e r yl o w r e c e n t l y ,c o n c u r r e n te n g i n e e r i n g ( c e ) i sah o ts t u d yf i e l di nm a n u f a c t u r ea u t o m a t i o n i n d u s t r y ;i ti s as y s t e m a t i c t e c h n o l o g yt h a td e s i g np m d u c t l o ni n ac o m p o s i t i v ea n d c o n c u r r e n t w a y i t c a l l g r e a t l yi m p m v et h ee f f i c i e n c y a n dq u a l i t yo f p r o d u c t i o n e x p l o i t a t i o n b o r r o w i n g t h e t h o u g h t s o fc o n c u r r e n te n g i n e e r i n gi nm a n u f a c t a m a u t o m a t i o ni n d u s t r y ,j u s tl i k es o f t w a r ec o m m u n i t yb o r r o w i n gp m t o t y p i n gi d e af r o mt h a t i n d u s t r yy e a r sa g o ,t h er e s e a r c ho nc o n c u r r e n te n g i n e e r i n g i ns o f t w a r ed e v e l o p m e n tw h i c h i sc a l l e ds o f t w a r ec o n c u r r e n te n g i n e e r i n g ( s c e ) i so r i g i n a t e d t h ec ea p p r o a c ht o s o f t w a r ed e v e l o p m e n ti sa r g u e da n dt h ep m c e d u r e ,k e ye l e m e n t sa n da p p l i c a t i o nl e v e l sf o r c a r r y i n go n ts c e a r ep m s e n t e di nt h i sp a p e r t w ok i n d so fd i f f e r e n tl e v e lc o n c u r r e n c yi n s o f t w a r el i f ec y c l ea r ed i s c u s s e d ap e t r in e t s b a s e ds o f t w a r ep r o g r e s sm o d e lt h a t s u p p o r t i n gs o f t w a r ec o n c u r r e n te n g i n e e r i n gi sp r o p o s e d t h e r e f o r e ,t h eb a s e st oc o n t r o l , a n a l y z e ,e v a u a t ea n do p t i m i z et h es o f t w a r ep r o c e s s e si ns o f t w a r ec o n c u r r e n te n g i n e e r i n g a r ee s t a b l i s h e d k e yw o r d s s o f t w a r ec o n c u r r e n te n g i n e e r i n gc o n c u r r e n te n g i n e e r i n g s o f t w a r e p r o c e s s p e t r in e t i l y 7 6 3 0 6 2 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 己在论文中作了明确的说明。 研究生签名 年月日 学位论文使用授权声明 南京理t 大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部i 1 或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名年月日 南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 1 绪论 在近代技术发展的历史上,工程学科的进步一直是产业发展的巨大动力,传统的 工程学科走过的道路已经为人们所熟知。水利工程、机械工程、电力工程等对农业、 商业、交通业的影响是极为明显的。随着软件业的发展,软件工程学科走上了历史舞 台,它对软件产业的形成和发展起着决定性的作用”1 ,软件工程学科从出现到现在一 直在不断的发展和完善,在此过程中软件工程学科引进了许多其他工程学科中的知 识。 1 1 论文背景及意义 随着信息技术的飞速发展,软件产品的规模也越来越庞大,当前软件行业的竞争 臼益激烈,对软件的可靠性、交付期、易用性的要求不断提高,而由于软件的规模和 复杂性的提高,加大了开发的难度,各软件企业都在积极寻求新的软件项目开发方式 和先进的软件项目管理模式,以便增强企业自身在市场中的竞争力。 软件工程是为了解决上世纪6 0 年代出现的软件危机而被提出的,它将制造业中的 工程方法( 分析、设计、构造、验证、管理方法) 全面借鉴到软件开发和维护中来 4 1 。 现今在计算机软件工程领域,一方面社会对软件的需求不断快速增长,另一方面由于 软件项目开发和管理不善,软件生产率相当低下,软件项目失败率、返工率高,软件 开发远远不能满足用户的需求。因此提高软件项目开发和管理水平,提高软件生产率 是软件工程界所面对的困难而紧迫的任务。 另一方面,在制造业,并行工程是制造业研究的热点领域之,是一种集成地、 并行地设计产品及相关过程的系统化方法【1 。它借鉴了计算机并行处理的基本思想, 将传统的串行产品开发流程改变成集成的、并行的产品开发过程,在产品开发过程中 尽量挖掘产品开发活动的并行性,使工程尽可能并行进行( 实际上是串并行同时存 在) 2 】。这种方法要求产品开发人员从设计一开始就考虑产品的整个生命中从概念形 成到产品报废处理的所有因素,包括质量、成本、进度计划和用户要求等。并行工程 可以加快工程进度、降低产品开发成本、缩短产品上市周期,因此可取得明显的效益。 并行工程在制造业被广为接受,但在软件开发过程中采用并行工程还是一个新兴 领域。软件产品的开发和硬件产品的开发有许多相似之处,特别是大型软件的开发是 一个蕴涵丰富的可并行实施的子活动的过程,因此我们可以将并行工程的思想引入到 软件开发过程中来,即在软件开发活动中的实施并行工程,将传统软件开发中的需求 分析、设计、编码和测试4 个界限鲜明的阶段中的开发活动有效地并行组织、实施, 对于提高软件开发效率、降低开发成本有极大的现实意义。软件开发中的并行工程( 简 第一章绪论 硕士论文 称为软件并行工程,下同) 途径不拘泥于传统软件开发中各阶段之间的严格顺序性和 约束性,提倡在有足够信息的前提下( 不必等到本阶段的工作全部完成) 即展开开发 过程中的下一阶段活动,从而在团队式开发的前提下,使需求分析、设计、编码、测 试活动在宏观上以并行方式进行,因而可缩短整个软件项目的开发周期。另外,由于 用户的全生命周期鑫与以及各阶段开发人员的密切合作和随时沟通,软件并行工程有 助于消除开发过程中的大量的返工,从而提高软件开发效率。特别是在“网络即计算 机”的今天,尤其能显现其巨大优势。 软件过程对软件生产的意义是毋庸置疑的【13 1 。软件过程指软件生存周期所涉及的 一系列相关过程。过程是活动的集合,活动是任务的集合;任务是把输入转换为输出 的操作1 9 】。活动的执行可以是有序的,重复的,并行的,嵌套的,有条件引发的。另 一方面:p e t r i 网( p n ) 最早是由c a r la p e t r i 博士于1 9 6 2 年在他的博士论文中提出的。 是一种用于系统描述和分析的数学工具,尤其便于描述并发现现象和模拟并行过程, 近年来,p e t r i 网已经应用到许多领域,其中之一就是在软件过程领域的应用【l “。利 用p e t r i 网对实际软件开发过程中的各个活动进行抽象,从而对过程进行描述和模拟。 鉴于p e t r i 网的性质,我们考虑基于p e t r i n 来建立支持软件并行工程的过程模型。从 而为软件并行工程中软件过程的控制、分析、评估和优化奠定了基础。 1 2 国内外的研究现状 并行工程( c o n c u r r e n te n g i n e e r i n g ) 是国际管理界和制造业研究的热点领域之 一,自从1 9 8 6 年并行工程的系统化思想被明确提出以来,并行工程在国际上引起了各 国的高度重视。经过十多年的发展,并行工程在理论上已经获得较大的丰富与完善, 在实践上也在一大批国际著名企业获得了成功的应用,并取得了显著的经济效益。并 行工程的思想正在被越来越多的企业及产品开发人员接受和采纳,并行工程及其相关 的技术也因而成为本世纪初的热门课题【3 l 。 并行工程在制造业中己得到了广泛的应用并取得了良好的效果,在国外已成功地 应用于航空、航天、电子、汽车等领域;在我国1 9 9 5 年被国家科委作为c i m s ( 计算机 集成制造系统) 的进一步发展方同,被设立为关键技术攻关项目。我国学者也进行了 一些有益的探讨。在一些企业运用并行管理的个案中,降低产品的开发周期( 约缩短 3 0 ) ,对降低产品成本,提高产品质量有很好的效果。大量事实表明,实施并行工 程能使应用项目取得明显的效益。 尽管并行工程在制造业中得到很好的应用与发展,但是目前软件业对并行工程应 用极少极不成熟,在软件开发过程中采用并行工程还是一个新兴领域。国内外对于软 件开发中的并行工程( 软件并行工程) 的研究比较少。理论方面,国内外学者对于并 行工程在软件项目开发中的应用的研究较少,提出的理论有待进一步发展和完善;缺 2 南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 少对支持软件并行工程的过程模型的研究。应用方面,尽管在软件产品项目开发中会 自然的或无意的应用了并行工程的思想和方法,但应用的层次很浅,应用并行工程的 阶段也有限,并且缺少理论的支持与指导,实施时还存在许多问题,取得的效果有限。 尽管如此,越来越多的软件企业在软件实践中慢慢感受到对并行工程的需要,软件并 行工程己经越来越为软件企业所重视。 目前,对p e t r i 网及其应用的研究方兴未艾 16 】。在p e t r i 网应用方面有前景的领域 包括:项目管理系统( p r o j e c tm a n a g e m e n ts y s t e m s ) 、分布式软件系统的分析和建模 ( m o d e l i n ga n da n a l y s i so fd i s t r i b u t e ds o f t w a r es y s t e m s ) 、分布式数据库系统( d i s t r i b u t e d d a t a b a s es y s t e m s ) 、并发和并行编程( c o n c u r r e n ta n dp a r a l l dp r o g r a m s ) 、离散事件系统 ( d i s c r e t ee v e n ts y s t e m s ) 、数据流计算系统( d a t a f l o wc o m p u t i n gs y s t e m s ) 。 随着对p e t r i 网的不断研究,在原来基本的p e t r i 网模型上已经有了许多拓展,产 生了许多高级的p e t r i 网:谓词变迁网、有色网和关系网等【2 。这类网系统中,标记 是可以有属性或用颜色加以区别的,用以增强p e t r i 网系统的模拟和描述能力,使得 复杂系统的模型易读、易理解。同时p e t r i 在并发和并行编程中所起的作用也越来越 深入。 i 3 本文的主要工作 软件并行工程是一门新兴的学科,它是借鉴制造业中并行工程的思想,把并行工 程的思想引入到计算机软件开发中来,在软件开发中实施并行工程。通过了解制造业 中并行工程的思想,本文把并行工程的思想引入到软件开发中来,即实施软件并行工 程,研究了软件并行工程的概念、方法与实施要素等。文中还介绍了一种软件并行工 程的开发步骤,在了解已有的软件过程模型的及p e t r i 网基本概念的基础上,依照软 件并行工程开发步骤的思想,本文提出一种支持软件并行工程的软件过程模型并 行开发模型( c o n c u r r e n td e v e l o p m e n tm o d e lc d m ) 。c d m 基于p e t r i 网,支持软件 并行开发,并能把并行性从局部扩展到全局,从而能提高软件的开发速度,缩短软件 开发周期,减少软件开发成本。最后阐述了支持软件并行工程的过程模型c d m 在教研 室的一个软件项目中的简单应用。 1 4 本文的组织结构 本文从制造业中并行工程讲起,介绍了软件业现在面临的问题与困难,从而引出 软件并住工程,介绍了软件并行工程的基本概念,可行性,实施要素等,接着本文重 点研究了支持软件并行工程的软件过程模型的建立。本文的组织结构如下 第一章绪论简单介绍了本文涉及的研究工作的目的、范围、前人的工作,所用到 3 第一幸绪论 硕士论文 的技术等; 第二章就详细介绍了软件并行工程的概念、理论和实施要素、实施层次等; 第三章介绍了常用的过程模型和p e t r i 网的基本概念,在此基础上提出了一个支 持软件并行工程的简单的软件过程模型并行开发模型( c d m ) ,c d m 是_ 基于p e t r i 网的; 第四章介绍了教研室的一个项目如何应用软件并行工程的; 第五章对软件并行工程及支持软件并行工程的建模进行了小结和展望: 最后是致谢和参考文献列衰。 4 南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 2 i 引言 2 软件开发中的并行工程方法 从工业革命到上个世纪8 0 年代,最普遍采用的产品开发方式是一个顺序的开发过 程,不同阶段的部门之间缺乏经常交流,特别是在设计中不能及早考虑到制造过程及 质量保证等问题,这种方法不仅造成设计改动量大,产品开发周期长,而且使产品的 成本提高,极不利于产品的市场竞争力和企业的发展。 为了解决串行产品开发过程中存在的问题与不足,人们在总结c i m s 等相关技术经 验的基础上,认为应该进一步强调产品开发早期阶段的工作对产品开发效率的影响, 因而提出了并行工程的概念i 2 9 j 。并行工程是针对顺序工程的固有缺点而被人们提出来 的。并行工程与传统串行产品设计方式的根本区别在于:并行工程把产品开发的各个 活动看成是一个整体的集成的过程,并从全局优化的角度出发,对集成过程进行管理 与控制。并行工程是对产品及其相关过程( 包括制造过程和支持过程) 进行并行、一 体化设计的一种系统化的工作模式。这种工作模式力图使开发者从开始就考虑到产 品的生命周期中的所有因素,包括质量、成本、进度和用户需求【l j 。不同于传统的产 品开发过程,并行工程是“集成地、并行地设计产品及其相关过程的”系统工程方法。 并行工程提倡的并行开发过程,没有界限鲜明的阶段观念,它强调在产品设计阶段就 开始后续过程的设计,以缩短开发时间。 在软件业中,由于软件的规模和复杂性的不断提高,软件项目开发的难度加大了。 迄今为止,尽管软件工程研究已经开展了近3 0 年,但软件开发中仍然存在开发周期长、 成本高、难以满足用户需求等问题。 按照传统的软件串行开发的方法,只有当需求分析、系统分析、模块划分全部完 成以后才能进行软件编码,这就好像只有当产品的外形和尺寸设计全部完了以后才能 进行产品的工艺设计,工艺设计全部完成后才能进行生产准备和制造。而并行工程现 在使得设计、工艺和制造能同时交叉进行,推动了先进制造技术、c i m s 等制造业新领 域的开拓和发展;软件产品的开发过程和制造业中的产品开发过程有效和许多相似之 处,因此我们考虑将并行工程的思想引入到软件开发中来,认为可以借鉴制造业中的 并行工程,将其引入至u 计算机软件项目开发中来,在软件项目开发中实施并行工程, 即实施软件并行工程,使软件工程的各个开发活动尽量并行进行【l “,从而达到加快软 件开发速度、提高软件生产率、缩短软件开发周期的目的。 5 第二章软件开发中的并行工程方法硕士论文 2 2 软件并行工程 相对于制造业中开发的硬件产品而言,软件开发的产品是一些文档和程序。软件 产品的开发和硬件产品的开发有许多相似之处。首先,它们都有一个相似的开发流程, 在开发前都要进行需求分析,形成详细的规格说明,然后按照规格说明进行设计,设 计好后实现样品,对样品进行测试合格后,进行批量生产和销售。其次这一过程都不 是一个人或者一个小组所能完成的,它往往需要多个小组组成一个团队来进行。这个 团队不仅包含不同技术开发小组,而且也包含项目管理、质量检测、用户代表等小组。 第三,各小组在开发活动中普遍采用计算机辅助开发工具,有时候甚至是异地协同开 发,往往还要借助计算机支持的协同工作c s c w 等。由此可见,并行工程方法的思想完 全可以引入到软件开发中,在软件开发中实施并行工程( 即软件并行工程) 。 但软件产品是逻辑产品,与硬件产品又有很大不同,制造业中产品开发的并行工 程方法又不能完全用来开发软件产品。因此,很有必要研究并行工程在软件开发中的 具体应用。 2 2 1 软件并行工程的概念 传统的串行工程方法是基于亚当斯密的劳动分工理论。西方把这种方式称为“抛 过墙法”【i 埘( t h r o wo v e rt h ew a l l ) 这种方法相对早期的手工作坊式开发是一个巨 大的进步,但随着社会的进一步发展,它的问题与不足也渐渐暴露出来了,具体表现 在以下几个方面。 ( 1 ) 项目参与者之间存在通信鸿沟。这往往会使开发效率和软件可靠性降低, 并且所开发的软件常不能真正满足用户的需求。 ( 2 ) 开发的反复次数过多,造成开发周期变长,成本增加,生产率低。发现缺 陷后,修改周期长,最后造成软件质量差。 ( 3 ) 传统的串行工程方法是以职能和分工任务为中心的,不一定存在完整的、 统一的软件产品概念。对各部门工作的评价,主要是看是否出色地完成交给他的任务, 而不是看整个产品的整体优化。例如,就设计而言,主要是看设计方案是否有创造性, 软件产品是否有优良的性能,但是不能保证这个方案是可开发的,也不能保证能在要 求的时间内开发出来。对软件测试人员,主要看测试方案是否达到要求,能否尽可能 多的找出缺陷,但是如果在开发后期发现缺陷就已经晚了,“质量不是靠测试来提高 的”,这时尽管可能将缺陷修复,但软件质量并没改善。 针对以上存在的问题,参照在工业界己被接受的并行工程的理念,我们将并行工 程引入到软件项目开发中来:在软件开发中实施的并行工程即为软件并行工程( 利用 并行工程的思想进行软件开发) ,其本质是软件的并行开发,主要目的是为了缩短软件 南京理工大学硕士学位论文软件项目开发中并行工程方法韵过程建模的研究与应用 开发周期,提高软件开发效率。 软件开发的并行工程( s t 件并行工程) 的含义概括为:软件并行工程是并行地、 集成地开发软件及其相关的各子过程( 包括分析、设计、实现、编码、测试、维护等 子过程) 的系统方法。采用这种方法,软件开发人员从一开始就考虑软件整个生命周 期中从需求分析过程到软件维护过程的所有因素,包括交货期( t i m e ) 、质量 ( q u a l i t y ) 、成本( c o s t ) 和服务( s e r v i c e ) 。 针对软件这种特定产品,软件并行工程相应的本质特征为: ( 1 ) 强调设计的可实现性、可集成性、可测试性、可开发性、可使用性、可维 护性。 在设计时,要充分考虑已有的软硬件技术条件,使系统设计方案是可实现的;要 使设计的各模块与整个系统进行良好的集成;设计的系统及其模块要能进行严格的测 试;要充分考虑自己的软硬件配置和人员的能力,使设计可以实现;要使设计出的系 统能够满足用户的需求;要使设计的系统便于以后的升级和维护。在开发过程中强调 面向艇个过程和产品。设计人员在设计时不仅要考虑设计,还要在其他员工的协助下 考虑这种设计的可实现性、可测试性、可开发性、可维护性等等。如测试人员在开发 时就要参与,以便考虑设计的可测试性。所以整个开发的每个子过程都要着眼于整个 过程和产品。从串行到并行,是观念上的很大转变。 ( 2 ) 在整个开发过程中强调软件的设计、实现、测试等开发子过程的并行以及 子过程内部活动的并行执行。 ( 3 ) 在开发过程中强调系统集成与整体优化。 软件并行工程强调系统集成与整体优化,它并不完全追求单个部门、局部过程和 单个模块的最优,而是追求全局优化,追求软件产品整体的竞争能力。设计某个模块 时要考虑与其他模块之间的集成,要有整个系统的概念,要考虑设计的模块能方便安 全地为其他模块提供数据、服务。对软件产品而言,这种竞争能力就是软件产品的t q c s 综合指标一交货期、质量、成本和服务。在不同情况下,侧重点可以不同。如在某 个阶段,交货期可能是关键因素,而另一阶段可能是质量、价格或是他们中的几个综 合指标。对每一个产品而言,企业都对他有一个竞争目标的合理定位,因此软件并行 工程应围绕这个目标来进行整个软件开发活动。只要达到整体优化和全局目标,并不 追求每个环节的局部工作最优。因此对整个工作的评价是根据整体优化结果来评价 的。 2 。2 2 软件并行工程的可行性 实际上在软件开发实践中,采用开发阶段交错并行方式进行开发的现象也存在, 因为越早做出部件的精确设计,系统总体设计能越早收敛于正确设计。但是,开发效 7 第二章软件开发中的并行工程方法硕士论文 果有好有坏。另一方面,工程化的软件开发要求有严格的项目管理,通常都认为,按 瀑布模型的线性阶段化管理有利于控制整个软件的开发过程,便于管理。所以,尽管 近年来,不断出现非顺序化( 或并行化) 开发的呼声,如面向对象开发方法的原创人 之一b o o t hg 早就在a d a 软件开发中 8 】提倡“设计一点、编码一点”, h e n d e r s o n - s e l l e r sw 等于1 9 9 0 年提出的面向对象软件开发的喷泉模型也都支持软件 的并行化开发方式【1 ”,但一来因为与观念、管理方面的冲突,二则他们都没有提出具 有较强可操作性的方法,所以,软件的并行化开发方式都未得到过大力推崇。但基于 下述理由,我们认为进行并行化开发,即在软件开发中实施并行工程可行,且在有合 适方法的支持下,是值得推崇的。 ( 1 ) 软件开发实质是一个“非完全求解”问题 一方面,几乎不存在绝对正确和完整的需求( 即使满足用户目前需求的软件已经 开发出来,用户的需求还是可能不时地永远变动下去) ,所以,软件开发总是一个需 求未定的前提下的“非完全求解”过程。我们可以在开发的早期尽量逼近理想需求, 当然也可以在开发过程中尽量逼近理想需求。 ( 2 ) 软件自身的性质 用户需求既有高抽象级的( 粗) ,也有低抽象层的( 细) 内容;需求中既有易变 部分,也有容易确定的稳定部分。实际上,只要整体需求( 粗) 定下来,很多需求的 细节( 细) 都可以推迟到以后再说;只要稳定不变部分的需求确定下来,就可在确定 易变需求部分的同时对确定的需求部分进行下一步的开发工作,这样实现了一定程度 上的并行。同样,在设计、实现和测试各阶段也都存在着这种情况,即:部分可先进 行执行,另一部分则可推迟一段时间,以后再说。另一方面,软件本身的性质还决定 了软件部件的可独立分解,也为并行化开发提供了条件。 ( 3 ) 通过组织结构、人员观念的改变,特别是改变管理、评审人员的工作方式, 同样可以保证整个软件开发过程的受控、有序进行。通过组织多功能小组,可以在软 件开发初始阶段充分考虑到整个软件开发的各个阶段以及开发各个阶段的细节,为展 开后继工作充分铺平道路。 另外,网络技术的高速发展,使开发队伍不受地域限制进行多种层次的并行化开 发成为可能。实际上,从广义的角度来看,以螺线模型为代表的原型式开发恰巧是软 件并行工程的特例,即一种保守的并行开发过程。显然,每个原型的开发过程中,也 都可以实施并行开发。 2 2 3 软件并行工程的策略 在软件开发的过程中,许多开发者往往忽略前期的充分准备工作,没有深入探讨 软件功能实现的细节,就仓促地开始具体的编码工作。并行工程的方法要求开发者从 8 南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 一开始就考虑到产品生命周期的全部因素,要求在上游设计的同时考虑下游工程的 设计,将锗误发现在最容易修改的上游设计中。 应用这一原理,软件并行工程中我们必须加强软件开发的上游工程,在前期阶段 就必须全面深入地探讨软件的各项细节问题,包括软件的功能模块的划分,功能模块 间的数据流图,数据的关系模型,编制实现功能模块的程序流程图。经过这样周密细 致的软件开发的上游工程,再进行编码调试等,可避免出现大错误、大返工,并使软 件的开发规范化、科学化。 按软件工程的分类,软件开发的生命周期依次包括软件的可行性分析、软件的需 求分析、软件的概要设计、详细设计、软件的编码调试以及软件的运行维护。从需求 分析到概要设计我们称为软件开发的上游工程,从详细设计开始为软件开发的下游 工程。在上游工程中将下游工程的问题提前考虑好,上游工程中每一后续过程都对下 游工程产生影响,是在深度和广度上的理解和深入( 图2 2 3 1 ) 。确切地说,上游工程 使编码、调试、运行、维护等的下游工程中的问题及早暴露、解决,将错误修改在最 容易修改的上游工程中。 上游工程 影响 软件可行性分析 上 软件需求分析 i 及早解决 软件的概要设计 下游工程 图2 2 3 1 软件开发的并行工作模式 同时在软件开发过程中,要尽量挖掘软件开发各个阶段之间和阶段内部的并行 性,使软件开发行为能并行进行,从而能从总体上缩短软件的开发周期。 9 第二章软件开发中的并行工程方法硕士论文 2 3 软件并行工程实施要素 实施软件并行工程要注重组织机构的改革和人的观念的改变,从软件并行工程的 内涵来看,实施软件并行工程最重要的途径就是加强整个项目内各个小组的之间的信 息沟通与交流【16 1 。对于设计人员来说,只有充分了解了程序员小组的技能等才能在软 件设计过程中尽早考虑与软件开发相关的各种因素。各个设计人员只有充分了解其他 过程及其相互关系,才能真正做到使整个过程达到系统集成与蹩体优化。 为保证软件并行工程的顺利实施,应遵循如下要素: ( 1 ) 改变观念及其物质基础 在现有的软件企业中,各部门员工普遍存在一些不利于软件并行工程实施的传统 观念: 其一是他们习惯于在自己的设计方案全部完成和成熟后才愿意交给下一部门,不 愿在设计过程中就把自己的方案交给下一个部门,并与之进行交流。他们担心不够成 熟的观点和方案会找到其他人的指责和挑剔。 其二是项目管理人员、软件设计人员和程序员之阅存在心理上的对抗,不愿合作, 他们往往相互指责,程序员会指责设计人员的设计难以实现,不够人性化,管理人员 进度安排不当等等。 2 2 节中软件并行工程首先是一种新的观念( c u l t u r e p h i l o s o p h y ) ,其次是一种软件 开发方法学j 。参与软件开发的所有相关人员的观念改变是第一位的。如果有了统一 的并行开发管理模型、并行开发过程模型和共同协作的思想,即使是单机群也可以开 展软件并行开发( 这要求管理人员和高级开发工程师充分发挥协调作用,规定实时交 换各接口可接受的信息) 。为确保并行工程思想被从业人员接受并顺利实施,最好能 提供可协作操作的交互式分布平台和支持工具,使每一人员在任何瞬间都可以看到他 们所需要的任何信息。 ( 2 ) 贯穿全生命周期的软件质量保证 软件并行工程式的开发生命周期中,很多需求分析、设计、编码和测试工作都是 重叠进行的。即使在临近项目结束不久,也有可能仍存在需求分析和设计活动的。所 以软件质量保证活动必须贯穿整个并行开发过程。 概括而言,项目中的风险主要来源于两方面: 用户需求不清,或出现对需求的理解错误; 开发引入了技术错误。 除了常规的评审、验证( v e r i f i c a t i o n ) 和用户确认( v a l i d a t i o n ) 等手段外,常规 软件开发通常还通过选用成熟的保守技术,放弃新技术等作法来减少项目风险。软件 并行工程在采用常规软件质量保证技术的同时,强调用户全生命周期参与,以消除由 1 0 南京理工大学硕士学位论文 软件项目开发中并行工程方法的过程建模的研究与应用 于需求而引入的风险;同时,它鼓励尝试多种不同的技术方案,以选择最优的或杂合 的技术方案;也鼓励重用成熟的定制部件,以利于减少错误的引入。 ( 3 ) 软件并行工程的组织形式 并行工程实施的关键因素之一就是多功能小组,这也是与传统产品开发最大不同 之处一j 。并行工程实施的开发小组是由跨部门人员组成的多功能小组( c m s s - f i m c t i o n , m u l t i d i s c i p l i n a r yd e v e l o p m e r i tt e a m ) 。软件并行工程也采用这种理念,组织适合软件 开发的多功能小组。这种组织形式是保证软件并行工程实现的重要管理手段。 要实现并行工程,使各部门人员在起高效和谐的协同开发,必须打破原有的各 自对自己部门负责的组织形式,加强各个部门之间的信息沟通和交流。因此建立一个 有利于信息交流的组织形式跨部门的组织形式,是实施并行工程的首要条件。软 件并行工程的开发小组是由跨部门人员组成的多功能小组。这个小组要包括用户代表 和需求分析、设计、实现、测试、销售、服务等各部门人员,有时还包括供应商或协 作公司的代表。总之,只要是与产品整个生命周期中有关的,而且对该产品的本次设 计有影响的人员都需要参加。 一般认为,为了使小组成员之间有效地相互作用,小组人数应在8 一1 2 人之间。因 此完整的多功能小组往往是由许多分小组组成。有一种方法是按照模块分解来建立一 个分层次的多级的结构。通常由低一级小组的成员组成较高一级小组,并将其他小组 的结果集成起来。 一般一个小组可由组长、系统设计人员( 可兼几个组) 、详细设计人员、测试人 员、编码人员、质量工程师( 可兼几个组) 、系统集成人员( 可兼几个组) 、系统测 试人员( 可兼几个组) 、软件配置管理人员和用户代表( 可兼几个组) 组成,其中系 统集成和测试人员是为了保证模块与整个系统能良好的集成。而质量工程师是独立和 不可缺少的,他要保证开发的每一步规范、严格、一致。测试人员不能由设计人员兼 职,特别是系统测试人员必须是独立的,单元测试可由编码人员进行,但必须经过质 量工程师的审查,并有规范完整的文档、代码和注释,客户代表可以随时通过系统设 计人员来验证软件与实际需求的一致性。 第二章软件开发中的并行工程方法硕士论文 图2 3 1 软件并行工程的组织形式 在软件的并行开发过程中,开发队伍的组织合作和人员、资源的协调是最为重要 的因素之一。开发队伍可以采用如图2 3 1 所示意的组织形式。其中,t ,t , t 。( n 2 ,n 的取值取决于项目大小及开发过程的并行程度) 为多功能小组:t 为领导 小组,其成员为项目领导、各团队小组的负责人以及用户代表;图中的虚线员圆则表 示对项目的公共理解和视图。 管理、评审和软件工程活动三者之间的交互原则为:软件工程活动一旦完成某一 开发活动,即触发相应的评审过程,根据评审结果,管理人员即可决策是继续下一活 动,还是对前一活动进行返工。所有活动最终要落实到一个公用的进展表。此外,应 该强调的是,各种人员之间必须有畅通的通讯渠道并保持灵活的响应方式,以保证上、 下游子活动之间的快速、顺利的衔接。与常规软件开发过程不同,管理和评审人员应 随时处于工作或待令状态,他们应以类似于硬件“中断响应”的方式对决策请求做出 响应。 2 4 软件并行工程的实施层次 通过改变软件项目进度的安排,使软件在软件设计、程序编写和软件测试这三个 阶段和阶段内部实现相关任务并行执行,从而缩短软件开发时间,这样实施的是浅层 次的软件并行工程。 通过转变观念,从组织、管理方面着手,按上述的并行开发策 略将需求分析、概要设计、详细设计、编码与测试等过程动态划分为独立的子活动, 这样实施的是高一个层次的软件并行工程式开发。 欲使s c e 发挥更大的潜能,必须转入下一个更深入发展的层次:计算机支持的合 南京理工大学硕士学位论文 软件项目开发中并行工程方法的过程建模的研究与应用 作方式,即开发s c e 支撑技术,提供s c e 支持工具,构造计算机支持的软件并行工程 ( c s s c e ) 环境。在以子活动为单位展开的开发过程中,开发队伍成员之间的交互、协 调将尤为增加,提供以网络为基础的工具支持,对软件并行工程的深入开展将极其重 要。概括地说,c s s c e 环境= 异质网环境上的c a s e 环境+ 软件并行工程支持部件。 鉴于s c e 中开发过程管理、优化,和基于网络的团队式协作的主导性,c s s c e 环境将是 c s c w ( 计算机支持的交互式工作) 技术和过程为中心的c a s e 环境二者相结合的产物。 2 5 本章小结 本章研究了软件开发的并行工程途径方法,即软件并行工程,其核心有两点:一 是以多功能团队为单位展开的并行化开发及其相关方法,这是基础也是本章的重点; 二是作为支撑的网络c s s c e 环境,这将是今后的主要研究方向,只有有计算机及软件 工具的强力支持,才能充分发挥并行工程的潜力。无疑,c s s c e 环境的构造是一个涉 及到软件工程、网络通讯、c s c w 等多学科的复杂的系统工程。其构造也可以以并行工 程的观念来实施并行工程的并行工程。但真正要完全实现计算机支持的软件并行 开发,尚有很长的一段路得走。 第三章支持软件开发中并行工程的过程建模硕士论文 3 1 引言 3 支持软件开发中并行工程的过程建模 并行地开发软件目前已逐渐引起了计算机软件工程界的关注。并行是一类广泛存 在于软件生存周期中的现象。如多个程序员同时进行编码就是一种并行现象。但这样 的并行是局部的,粒度较细。软件并行工程的目标是充分挖掘软件生存周期中的并行 性,支持粒度粗细不同的各类并行,使并行存在于软件生存周期的全局。软件并行工 程强调多角色协调工作和一体化并行地进行软件生产,强调开发、管理、维护等各种 过程与活动之间的信息集成和功能集成。为了有效地实施软件并行工程,必须充分重 视软件过程的作用,必须建立相应的软件过程模型。 软件过程对软件生产的意义是毋庸置疑的。软件过程指软件生存周期所涉及的一 系列相关过程。过程是活动的集合,活动是任务的集合;任务是把输入转换为输出的 操作。活动的执行可以是有序的,重复的,并行的,嵌套的,有条件引发的。 p e t r i 网是一种用于系统描述和分析的数学工具,尤其便于描述并发现象和模拟 并行过程。近年来已经应用到了许多领域,其中之一就是在软件过程领域的应用,利 用p e t r i 网对实际软件开发过程中的各个活动进行抽象,从面对软件过程进行模拟和 描述,进一步支持软件过程的标准化。 上一章中我们讨论了软件并行工程的基本概念和策略,并初步探讨了软件并行工 程的可行性。本章我们将就上一章所讨论的软件并行工程的思想来建立一个简单的基 于p e t r i 网的可实行软件并行工程的软件过程模型。 3 2 软件开发过程模型的研究 软件是一个逻辑产品,逻辑产品的形成与开发离不开逻辑模型。模型既是分析问 题的工具,又是交流的手段,也是系统开发的依据。对工程项目,特别是知识密集型 劳动,模型既提供了一个解决问题的方法,也提供了个控制问题复杂度、有效进行 质量管理的标准。模型应当完整、严密、科学,要用简单的语言、图形等描述复杂的 知识、静态事物、动态变化过程及相关细节,要无二义性,并有一定的通用性。模型 形成的过程也就是软件建模的过程。 传统软件开发,大部分是瀑布模型式( w a t e r f a l lm o d e l ) 开发,是一个顺序化的 开发过程 1 2 1 。开发人员通常遵循需求分析、概要设计、详细设计、编码与单元测试、 集成与系统测试等步骤。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布 流水,逐节下落( 图3 2 1 ) 。其中,每一个步骤即为一个阶段,只有当上一阶段的工 1 4 南京理工大学硕士学位论文软件项目开发中并行工程方法的过程建模的研究与应用 作全部完成以后,才进入下一阶段的开发。每项开发活动均应具有以下特征: ( 1 ) 接收并理解上一项活动的结果,并将其作为该项活动的输入; ( 2 ) 利用这一输入实施该项活动应完成的内容; ( 3 ) 给出该项活动的工作成果,作为输出传给下一项活动 ( 4 ) 对该项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项 活动,在图3 2 1 中用向下的箭头表示;否则返回前项,甚至更前项的活动 进行返工,在图3 2 1 中由向上的箭头表示。 图3 2 1 软件生存周期的瀑布模型 当然,r o y c e 瀑布模型也认识到,从项目启动到软件交付,软件的整个开发过程 并不完全是一个线性阶段序列,不同开发阶段之间存在迭代( 即回溯修改) 。但是在 早期对软件开发过程的研究中,人们从瀑布模型可以清晰地看到,早期的开发错误远 比以后阶段的失误影响深远,从而导致了早期软件工程基于瀑布模型的阶段评审,而 且阶段不可逾越( 静态设防,企图将错误消灭在评审中) 的开发规范。但随着软件规 模不断增大,这种开发模型成功率极低( 7 0 - - 8 0 失败) 。 取而代之的是原型式开发。由于在项目开发的初始阶段人们对软件的需求认识常 常不够清晰,因而使得开发项目难于做到一次成功,出现返工再开发在所难免。有人 说,往往要“开发两次”后开发出的软件才能较好地令用户满意。第一次只是试验开 第三章支持软件开发中并行工程的过程建模硕士论文 发,其目标只是在于探索可行性,弄清软件需求;第二次则在此基础上获得较为满意 的软件产品。通常把第一次得到的实验性产品称为“原型”。原型式开发得到了广泛 支持,直至今日成为软件开发的主导方法。原型主要是一种思想,没有统一的规范, 其中最有名的是b o e h m 于1 9 8 8 年提出的螺线模型。b o e h m 认为软件开发是如同阿基米德 螺线逐步演迸( 扩大) 的阶段作业的反复。规划、风险分析、原型( 或产品) 开发、 用户评价4 个阶段周而复始,即每评价一次原型就要重作一次规划和风险分析,使原 型能收敛于既定目标,且项目管理能够得以实施,经费、进度可综合调整。如果风险 分析结果令人失望则天折此项目,否则作最后工程性开发直至交付。在螺线模型整个 开发过程的一系列软件开发螺线中,螺线的每一圈均可对应于r o y c e 模型或其它瀑布 模型的变种( 每一圈螺线过程都将产生一个新的软件原型) 。尽管螺线的整个开发过 程已完全不是一个瀑布式的线性过程,但每个原型的开发却仍是大致遵循这种线性模 式。 通过对软件工程现有的软件过程模型的研究,我们觉得:在软件开发中进行并行 工程的实践,应从方法学着手,提高软件开发生命周期中软件开发过程的并行度,即 尽量将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论