软件开发 统一过程的发展历程及发展趋势
发表时间:2023-09-20 07:00:34
文章来源:炫佑科技
浏览次数:164
菏泽炫佑科技
软件开发 统一过程的发展历程及发展趋势
没有哪一本书能够完全涵盖全面、完整的生命周期过程。 这样的书必须包括设计指南、产品模板、质量说明、项目管理、配置管理、指标等等,太多了,这里就不一一列举了。 但随着在线访问的出现,以前无法枚举的东西现在都可以使用,并且可以更新为新的开发指令。 因此,我们推荐统**程,这是一种可从 Web 下载的软件产品,可用于指导软件开发小组进行更有效的软件开发实践(有关详细信息,请参阅)。 统**程涵盖了整个软件生命周期,扩展了本书中描述的统**程的范围,并提供了本书中未包含或简要提及的其他工作流程,例如业务建模、项目管理和配置管理。
统一进程的历史
统一工艺是稳定的,因为它是经过30年发展和实际应用的*终产品。 就像一个产品一样,它的开发流程(图1)从“对象工厂流程”(1987年发布)开始,经过“对象工厂流程”(1997年发布),*后以“统**程”(1997年发布)结束。 1998)。 其发展受到多种因素的影响。 我们这里不会一一列出这些因素(我们其实并不了解所有这些因素),而是把这个问题留给软件考古学家去研究。 我们将描述统一过程中的方法、方法和其他因素。
图1 统**程的发展历史(灰色矩形框中表示产品版本号)
方法
统一进程有着深厚的根基。 用 Peter F. 的话说,这个过程是“基于知识的创新”。 他建议我们:“新知识的出现和转化为可用技术之间存在着相当大的距离。 因此,在这项新技术以产品、流程或服务的形式出现在市场上之前,还会有相当长的一段时间。” [1]
交付时间较长的原因之一是,基于知识的创新是将许多不同类型的知识汇集在一起,这需要时间。 另一个原因是,人们需要时间来吸收这些新想法并将其传播给其他人,以使新想法真正有效。
为了说明统一进程的发展,让我们首先回到1967年,具体总结一下(爱立信)[14]、[15]、[16]所取得的成果。 将整个系统建模为互连模块的集合(在 UML 中称为“子系统”并作为“组件”实现)。 它们将较低级别的模块组装成较高级别的子系统,使整个系统更易于管理。 这些模块是通过浏览先前描述的业务实例(现在称为“用例”)来发现的。 对于每个用例,确定其实现所需的相关模块。 了解了各个模块的功能后,他们编制了各个模块的规范,设计了一批带有接口的静态模块图,并将其组合成子系统。 这些模块图直接对应于 UML 类图或包图的简化版本——称为“简化”,因为它仅表示用于通信的关联。
设计活动的**个工作产品是软件的架构描述 ( )。 它基于对*关键需求的理解,简要描述了每个模块以及它们如何组合成子系统。 一组模块图描述了模块及其互连。 就此而言,信号(即消息)用于模块之间的通信。 所有消息都在消息库中一一描述。 软件架构描述和消息库是指导开发工作的关键文档,也可以用来向客户介绍整个系统。 当时(1968年),客户还不习惯软件开发人员以类似于工程蓝图的方式向客户展示软件产品。
对于每个用例,工程师准备序列图和协作图(现在,这方面已在 UML 中得到进一步发展)。 这些图描述了模块如何通过动态通信来实现此用例。 工程师以状态图(仅包括状态和转换)和状态转换图(UML 活动图的简化版本)的形式准备规范。 这种使用具有明确定义的接口的模块来设计系统的方法是成功的关键。 例如,现在通过用提供相同接口的另一个模块替换其中一个模块,可以为新客户创建系统的新配置。
现在,模块不仅仅是子例程或源代码结构; 它们被编译成可执行模块,一一安装到目标机器上,并确定与其他可执行模块一起运行。 另外,对于正在运行(例如电话呼叫)的系统,必须能够在系统运行时安装新模块或更换旧模块。 这样的系统无法停下来进行更改,就像您无法更换时速 60 英里的汽车的轮胎一样。
本质上,这种方法就是我们今天所说的基于组件的开发(-Based,CBD)。 Ivar是这种开发方法的鼻祖。 经过“前对象时代”多年的努力,他引导该方法演变为软件开发过程。
规范和描述语言 (SDL)
这一时期的一个重大发展是:1976年,CCITT(国际电话电报咨询委员会,电信领域的国际标准化组织)发布了用于描述电信系统中功能行为的规范和描述语言(以及,SDL) 。 该标准深受将系统描述为一系列相互关联的模块的方法的影响,这些模块仅通过消息(在标准中称为“信号”)相互通信。 每个模块都有一系列“进程”,它们是用SDL术语表示的活动类。 过程拥有实例,就像面向对象术语中的类一样。 流程实例通过消息进行交互。 SDL推荐的图可以看作是UML中类图、活动图、协作图和序列图的特化。
因此,SDL是一个专门的对象建模标准。 SDL 定期更新,仍然被超过 10,000 名开发人员使用,并且仍然受到许多软件工具供应商的支持。 SDL 是 20 多年前开发的,远远领先于时代。 然而,SDL 是在对象建模尚未成熟的时候开发的,看来它将被 1997 年成为标准的 UML 所取代。
对象工厂
1987年Ivar离开公司并在斯德哥尔摩成立了“AB”。 在接下来的八年里,他和他的助手开发了一种名为“ ”(“对象工厂”的缩写)的流程产品,并将该产品推广到电信以外的许多行业以及瑞典以外的许多国家。 。
虽然用例的概念是由 Ivar 在他的著作中提出的,但直到现在才被赋予名称(在 1987 年的一次研讨会上提出),并且随着图表技术的发展软件开发,这种思想已经扩展到许多不同的应用字段。 正是用例让开发过程更加清晰; 它是指导开发人员并将项目利益相关者带到开发前台的架构。
各种连续的工作流程被表示为一系列模型:需求用例、分析、设计、实现和测试。 模型是系统的表示。 该系列中的模型之间的关系对于开发人员来说非常重要,可以看作是一个功能特性从模型序列的一端到另一端的演化路径。 事实上,可追溯性已成为用例驱动的开发流程的先决条件。 开发者可以通过模型依次追踪某个用例对应的源代码,或者在出现问题时进行逆向追踪。
对象工厂流程在发展过程中产生了一系列版本,从1988年的1.0版本到1995年的**个在线版本(3.8版本)(参见[2]中的介绍)。
需要指出的是软件开发 统一过程的发展历程及发展趋势,对象工厂产品本身也被视为一个系统。 这种将流程描述为系统产品的方法提供了一种从早期(对象工厂)版本开发新(对象工厂)版本的好方法。 这种设计对象工厂的方法可以轻松定制,以满足不同开发组织的需求。 事实上,对象工厂软件开发过程的一个独特之处在于它本质上是工程化的。
对象工厂的开发实践也为如何巧妙设计业务运营流程提供了经验。 同样的原则适用并在 1995 年的一本书中进行了讨论 [3]。
方法
该软件公司于1995年秋季引入AB,在现有软件开发流程的基础上统一了基本规则,从而实现了新的突破。 公司进行了大量的软件开发实践,其中很多都是对对象工厂现有内容的补充。
例如,James E. Jr.和T.在1986年的回忆中[4]提到:“1981年,我们开始开发一种可以提高大规模软件开发效率的交互式环境。” 他们进一步提到,在这个项目中,面向对象设计、抽象、信息隐藏、可重用性和原型设计等技术都非常重要。
自 1981 年以来,大量书籍、文章和内部文档详细描述了开发过程。 然而,对流程建立贡献*大的两个因素或许是对架构和迭代开发的重视。 例如,1990年,我写了一篇关于架构驱动的迭代开发过程的前瞻性文章; (负责公司内的架构实践)也发表过一些关于迭代和架构的文章。
让我们引用其中之一。 一篇关于架构的文章一般表达四种视图:逻辑视图、过程视图、物理视图和开发视图,再加上一个用例或场景来说明前四种视图。 查看[6]。 根据几个大型项目的实践经验,拥有一套观点比试图将所有内容都塞进一个观点更有价值。 多个视图允许项目利益相关者和开发人员从适当的角度发现他们想要的东西。
有些人认为迭代开发是混乱且漫无目的的。 引入四阶段迭代方法(初始化、细化、构建和切换)可以带来更好的结构和更好的迭代过程控制。 阶段方法强制迭代按一定顺序进行。 各个阶段的详细规划以及各个阶段内迭代的具体顺序是 Royce 和 Rich 团队共同努力的结果,也是 Grady Booch 长期参与的结果。
Booch是公司创立和发展的见证人。 1996年,他在一本书中阐述了关于架构和迭代的两个“**原则”:
“架构驱动的开发方法通常是开发*复杂的软件项目的*佳方式。”
?“一个成功的面向对象项目必须采用迭代和增量的过程。”[7]
对象工厂过程:1995~1997
在合并之前,对象工厂 3.8 版已经演示了如何将软件开发过程作为产品进行开发和建模。 它设计了软件开发过程的原始架构,并建立了一组模型来记录过程的结果。 在用例建模、分析和设计等方面取得了良好的进展,但在与用例不同的需求管理、实现和测试等其他方面却没有取得太大进展。 另外,对于项目管理、配置管理、实施、开发环境的准备(工具和流程的选择)等方面的参与也很少。
现在,我们添加了我们的经验和实践,形成了对象工厂流程的 4.1 版本。 特别是,新版本结合了阶段和受控迭代方法。 架构以架构描述的形式清晰地呈现出来,成为软件开发组织的“圣经”。 此外,建立了架构的精确定义,将其视为系统组织的重要组成部分,并描述为模型的架构视图,从而将迭代开发方法从相对笼统的概念演变为以架构为先的风险驱动发展方式。
目前,UML 继续发展并被用作对象工厂流程 (ROP) 的建模语言。 本书的三位作者都是UML的创始人。 李先生领导的工艺开发小组通过加强项目管理(例如基于Royce的研究成果[8])弥补了ROP的一些缺陷。
统一建模语言
随着 20 世纪 90 年代初大量面向对象方法的出现,在相当长的一段时间内,需要一种统一且一致的视觉语言来表达这些方法。
例如,在此期间,Grady Booch 提出了 Booch 方法[9],而 James 是通用电气对象建模技术(OMT)研发中心[10]的首席开发人员,他于 1994 年 10 月加入了该公司,两人开始了将他们的方法与公司的客户统一起来。 1995 年 10 月他们发布了 UM(统一方法)0.8 版本。 大约在同一时间,伊瓦尔也加入了公司。
三人共同发布了 UML(统一建模语言)0.9 版本。 该版本的发布引起了其他方法论研究人员和众多公司的关注,包括IBM、HP等,他们为标准的演变做出了应有的贡献。 1997 年 11 月,经过标准化过程后,UML 版本 1.1 被对象管理组织 (OMG) 宣布为标准。 详细信息请参阅《UML 用户手册》[11]和《UML 参考手册》[12]。
对象工厂流程的所有模型都使用 UML。
统一过程(RUP)
在此期间,该公司收购或合并了许多其他软件工具公司。 每家公司都带来了一些该过程中的专业知识,以进一步开发对象工厂流程:
?公司带来了需求管理方面的经验。
?SQA 开发了与其测试工具相匹配的测试流程,进一步增加了该领域的经验。
?Pure-Atria 增加了配置管理方面的经验。
? 该公司在性能测试和负载测试方面增加了经验。
?该公司带来了数据工程方面的专业知识。
该流程还通过基于 [3] 的新业务建模工作流程进行了扩展,用于从服务于该业务的软件的业务流程中提取需求。 该过程还涉及由用例驱动的用户界面设计(基于 AB 所做的工作)。
到 1998 年中期,对象工厂流程已经完全成熟,能够支持整个软件开发生命周期。 其结果是它统一了来自广泛来源的贡献,包括上述三位作者提出的方法和想法,以及 UML 派生和开发的许多其他来源。 1998年6月,该公司发布了产品的新版本——统**程(RUP)5.0版[13]。 该公司的大部分专有流程现在首次以书籍的形式向公众开放。
更名反映了统一来自多个角度:开发方法的统一,统一建模语言的使用,以及大量的方法论研究人员,不仅仅是公司内部的,还有数百名一直在应用的研究人员。这个过程持续了很多年。 客户端研究人员的研究结果的统一)。
致谢
本书的编写、出版和发行是许多人辛勤工作的结晶,在此谨向他们表示诚挚的谢意。
为本书的编写做出贡献的人
系统实例均配有模型并加以说明,是本书的主要实例。
材料选自对象工厂文献并按建议的章节顺序组织。 他还帮助准备示例。 一路上,他还就如何更好地呈现统一进程提出了自己的一些看法。
韦尔·迈尔斯从一开始就参与了本书的写作,他重写了主要作者提供的原始手稿,以使其更易于理解。
在审稿人中,我们要特别感谢 Kurt、Cris 和 Earl, Jr.。此外,我们要特别感谢 Royce、Dean、Griss、Maria 和 Bruce Katz。 审稿人还包括 Pete、Glenn Jones、Johan Galle、N. Venu Gopal、David Rine、Mary、Marie Lenzi、Janet 和一些未透露姓名的审稿人,我谨向他们表示感谢。
公司的Terry对本书第1章至第5章的英文进行了修改和完善。 凯伦编辑了整本书。 在此,我谨向两位表示感谢。
我们还要特别感谢他审阅了全书的草稿并提供了详细的改进建议,其中许多建议被我们采纳。 他对本书的质量做出了巨大贡献。
多年来帮助过我们的人
我们还要感谢那些多年来帮助我们“正确实施流程”并以不同方式支持我们工作的人们。 特别感谢以下人员:Ali Ali、Kjell S.、Sten-Erik、Dave、Kurt、Per Bjork、Hans、Mark Broms、Ann、Chan、Geoff Clemm、Hakan Dahl、Mike、Hakan 、 、 、 、Maria 、M 。 伊恩·加文、卡洛·戈蒂、山姆、比约恩、桑尼·古普塔、、比约恩、拉尔斯、大卫、佩尔、、、、、凯利、、斯坦、帕尔、哈坎、、、、、丹、布鲁斯·卡茨、库尔特、凯文·凯利、、佩尔鲁迪、佩尔·克罗尔、罗恩、巴德、迪恩、罗尔夫、哈坎、拉斯、克里斯、里昂斯、贾斯、布鲁斯、克里斯、梅克、苏、乔玛、鲁恩、简-埃里克、罗杰·奥伯格、本尼、埃里克, , 卡琳 , 法比奥 , 珍妮 , 加里 , 托尼亚 , 特里 , , 罗伊斯 , 戈兰 , 杰夫 , 约翰·史密斯 , 谢尔·索姆 , 伊恩 , , , 戈兰 , 佩尔 , 佩尔-奥洛夫 , 迈克 , 卡琳 , 弗拉纳 , , 拉斯 , 布莱恩怀特,拉斯,简。
此外,多年来许多人为本书的主要作者提供了个人支持,对此我谨表示诚挚的谢意。 他们是:Dines、Tore、Dave、Larry、Goran、Bo、Tom Love、Nils、Lars-Olof Noren、Dave 和 Lars-Erik。
*后,我要向以下人士表示特别的感谢
Mike,软件公司总裁,感谢他始终相信对象工厂流程是一种可以帮助世界各地的软件开发人员开发软件的产品,并持续支持使用有效的软件流程作为软件工具的“驱动程序”发展。 。
*后,我们要感谢统**程(RUP)总监和流程组的所有成员,将对象工厂的精华与公司丰富的经验和UML结合起来,并*大程度地保留下来。 自己有价值的东西。 此外,如果没有个人的承诺和毅力,流程小组就不可能完成构建世界上*好的软件流程的任务,我们也不会成功地写出这本书。
工艺突破
通过本书以及相关书籍、在线版本和工具,我们可以得出结论:软件开发流程已经成熟。 统**程从众多来源中汲取灵感。 现在已被广泛采用。 它提供了一种通用媒介,经理、开发人员和项目利益相关者可以通过该媒介了解统一的软件开发过程。
然而,我们还有很多工作要做。 开发人员必须学习统一的工作方法,项目利益相关者和管理者必须支持他们。 对于许多软件组织来说,这一突破只是一种可以实现的潜在可能性。
伊瓦尔
帕洛阿尔托,
1998年
参考
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等