大型软件体系结构:使用UML实践指南
[绝版]基本信息
- 作者: (美)Jeff Garland Richard Anthony
- 译者: 叶俊民 汪望珠
- 丛书名: 软件工程丛书
- 出版社:电子工业出版社
- ISBN:7505394975
- 上架时间:2004-3-11
- 出版日期:2004 年3月
- 开本:16开
- 页码:229
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > UML
编辑推荐
软件体系结构对软件开发项目的成功起着十分关键的作用。遗憾的是,很多项目在运用基于体系结构的开发方法这一方面,很不成功,尤其是大型项目。迷失于大量的UML图示信息之后,项目团队不得不求助于不太有效的其他技术。 本书的目的是使得软件架构师、项目管理者和其他的开发团队成员,在大型软件项目的开发中直接获益本书的两位作者是在很多项目中身经百战的经验丰富的软件架构师,他们在本书中,就涉及如何捕捉和理解关于软件体系结构的关键信息,对相关软件团队提出了具有实践性的建议. 为了协调最近有关软件体系结构方面的IEEE标准。以及可以使用与UML2 0相兼容的UML 1.4版本,本书描述了捕捉软件体系结构的一系列视点,这些视点将基本信息展示给用户、系统相关者和开发团队的其他成员。
内容简介回到顶部↑
本书主要介绍了大型系统的软件体系结构开发,详细描述了本书作者已经成功使用过的大量的开发大型系统所需的技术和体系结构表示。本书主要关注UML对软件体系结构的应用,还讨论了软件架构师的角色,以及体系结构的开发是怎样适应软件开发过程的。
本书旨在成为一本实践指南,主要适合于正在或即将从事软件设计和开发的人员,以及那些希望更好地理解成功的软件体系结构方法的大型软件开发者。软件架构师或具有软件体系结构团队经验的开发人员将从本书中获益更多。
本书旨在成为一本实践指南,主要适合于正在或即将从事软件设计和开发的人员,以及那些希望更好地理解成功的软件体系结构方法的大型软件开发者。软件架构师或具有软件体系结构团队经验的开发人员将从本书中获益更多。
目录回到顶部↑
第1章 导论 1
1.1 什么是软件体系结构 1
1.1.1 软件体系结构不是什么 3
1.1.2 软件体系结构属性 4
1.1.3 与体系结构有关的其他关键术语的定义 5
1.1.4 其他类型的体系结构 6
1.2 为什么要有体系结构 8
1.3 体系结构视点概要 9
1.4 其他软件体系结构方法 12
1.4.1 4+1视图 12
1.4.2 rm-odp视点 13
1.4.3 bass的体系结构的构造 14
1.4.4 hofmeister的软件体系结构视图 14
1.5 推荐读物 15
第2章 软件体系架构师的角色 17
2.1 在开发组织中与其他关键角色的关系 20
2.2 架构师的技能和背景 23
2.3 引入体系结构经验 25
2.4 体系结构团队的构成 25
1.1 什么是软件体系结构 1
1.1.1 软件体系结构不是什么 3
1.1.2 软件体系结构属性 4
1.1.3 与体系结构有关的其他关键术语的定义 5
1.1.4 其他类型的体系结构 6
1.2 为什么要有体系结构 8
1.3 体系结构视点概要 9
1.4 其他软件体系结构方法 12
1.4.1 4+1视图 12
1.4.2 rm-odp视点 13
1.4.3 bass的体系结构的构造 14
1.4.4 hofmeister的软件体系结构视图 14
1.5 推荐读物 15
第2章 软件体系架构师的角色 17
2.1 在开发组织中与其他关键角色的关系 20
2.2 架构师的技能和背景 23
2.3 引入体系结构经验 25
2.4 体系结构团队的构成 25
前言回到顶部↑
本书的目的是为大型软件体系结构的开发提供实际的表示方法和技术,其目标是使软件结构师、开发者和管理者有效地借鉴一些大型软件开发项目方面的经验。本书描述了我们已经成功使用过的技术和体系结构表示。
本书旨在成为一本实践指南。我们的目标是要做到简明扼要。在软件体系结构的定义上,我们只包括指导软件结构师的基本信息,同时提供了进一步阅读的指导,而对这些文献没有进行详细描述。理想情况是,使软件开发团队把体系结构作为一种工具来指导软件开发,而不是采用在软件已经开发出来后,再去捕捉体系结构的这种常见做法。
统一建模语言(UML)的使用将贯穿全书。我们省略了很多UML模型,只是将我们认为最有用的部分介绍出来。结合软件密集型系统最新的IEEE 1471标准,我们描述了有助于软件体系结构开发和文档化的一些体系结构视点。在阅读完本书后,你将理解相关的技术和视点,这些技术和视点能提高你在系统中对软件体系结构的建模能力。
本书的重点是大型系统的软件体系结构,这意味着要处理的是企业系统和大型分布式系统。当然,在此讨论的绝大部分视点和技术也可以用于小型项目和嵌入式系统的开发。典型的大型软件项目应有如下特点。
有大量源代码(通常有上百万行)
有大批开发人员(可能有数百人,且工作位置在地理上常常是分散的)
构件之间的交互高度复杂
广泛使用了外购构件(off-the-shelf)
多种程序设计语言
多种持久机制(如文件、关系数据库、面向对象数据库)
多种硬件平台
构件分布在很多硬件平台上
高度并发性
即使对最有经验的软件设计者和开发者而言,对大型系统本身所具有的复杂性的处理也是一种挑战。大型软件系统包括数百万个元素,这些元素通过交互来完成系统功能。但这些元素的交互非常不明显,尤其是对于为典型的软件项目所创造的工件。这些工件对在项目中的各个阶段加入的新团队成员特别关键。这些阶段包括系统的开发、集成、测试和维护。然而,更具有挑战性的是,当系统的必要功能需要升级时,必须能理解和修改这些元素。为正确地做到这一点,不仅需要理解设计的基本原则,而且要理解这些元素的交互。
遗憾的是,人类对管理复杂性尚不得法。人的短期记忆通常可以同时保持5~9项事务(著名的魔数定理)。团队之间的沟通对于合作是至关重要的,实际上,团队成员间却常常因使用不精确的语言造成了沟通上的困难,为此,需要提供一种共同语言来改善沟通。近年来,软件领域借鉴了其他工程领域的做法,开始开发了一些管理复杂性的方法,这些方法包括UML、面向对象技术、设计模式、预制软件构件和框架的使用等。
基于体系结构的开发常被认为是处理大型项目的复杂性的一项技术,然而,关于如何有效地开发和描述软件体系结构,现在仍然没有取得共识。使用UML进行设计的这一方法尚不通用,人们对使用UML作为工具来开发和描述体系结构也难以达成共识。UML提供了大量的构造工具来描述软件体系结构,这些工具中还有很多扩展特征。UML的这些灵活机制为软件体系结构的表示提供了极大的可能性。另一方面,软件体系结构和UML方面的大部分书籍和文章都没有涉及大型项目开发问题,也不会为怎样开始入手定义软件体系结构提供指南,更没有提供特定的表示来给软件体系结构开发团队传达合适的信息。本书试图去满足以上需求,而这些对软件结构师和软件开发团队来说恰恰是很重要的。
本书能够提供实践指南的部分包括:
对体系结构的建模,包括构件、子系统、依赖性、事务和接口
对环境元素的建模,包括进程、节点和物理数据库
为软件体系结构开发而剖析的有用技术
本书旨在成为一本实践指南。我们的目标是要做到简明扼要。在软件体系结构的定义上,我们只包括指导软件结构师的基本信息,同时提供了进一步阅读的指导,而对这些文献没有进行详细描述。理想情况是,使软件开发团队把体系结构作为一种工具来指导软件开发,而不是采用在软件已经开发出来后,再去捕捉体系结构的这种常见做法。
统一建模语言(UML)的使用将贯穿全书。我们省略了很多UML模型,只是将我们认为最有用的部分介绍出来。结合软件密集型系统最新的IEEE 1471标准,我们描述了有助于软件体系结构开发和文档化的一些体系结构视点。在阅读完本书后,你将理解相关的技术和视点,这些技术和视点能提高你在系统中对软件体系结构的建模能力。
本书的重点是大型系统的软件体系结构,这意味着要处理的是企业系统和大型分布式系统。当然,在此讨论的绝大部分视点和技术也可以用于小型项目和嵌入式系统的开发。典型的大型软件项目应有如下特点。
有大量源代码(通常有上百万行)
有大批开发人员(可能有数百人,且工作位置在地理上常常是分散的)
构件之间的交互高度复杂
广泛使用了外购构件(off-the-shelf)
多种程序设计语言
多种持久机制(如文件、关系数据库、面向对象数据库)
多种硬件平台
构件分布在很多硬件平台上
高度并发性
即使对最有经验的软件设计者和开发者而言,对大型系统本身所具有的复杂性的处理也是一种挑战。大型软件系统包括数百万个元素,这些元素通过交互来完成系统功能。但这些元素的交互非常不明显,尤其是对于为典型的软件项目所创造的工件。这些工件对在项目中的各个阶段加入的新团队成员特别关键。这些阶段包括系统的开发、集成、测试和维护。然而,更具有挑战性的是,当系统的必要功能需要升级时,必须能理解和修改这些元素。为正确地做到这一点,不仅需要理解设计的基本原则,而且要理解这些元素的交互。
遗憾的是,人类对管理复杂性尚不得法。人的短期记忆通常可以同时保持5~9项事务(著名的魔数定理)。团队之间的沟通对于合作是至关重要的,实际上,团队成员间却常常因使用不精确的语言造成了沟通上的困难,为此,需要提供一种共同语言来改善沟通。近年来,软件领域借鉴了其他工程领域的做法,开始开发了一些管理复杂性的方法,这些方法包括UML、面向对象技术、设计模式、预制软件构件和框架的使用等。
基于体系结构的开发常被认为是处理大型项目的复杂性的一项技术,然而,关于如何有效地开发和描述软件体系结构,现在仍然没有取得共识。使用UML进行设计的这一方法尚不通用,人们对使用UML作为工具来开发和描述体系结构也难以达成共识。UML提供了大量的构造工具来描述软件体系结构,这些工具中还有很多扩展特征。UML的这些灵活机制为软件体系结构的表示提供了极大的可能性。另一方面,软件体系结构和UML方面的大部分书籍和文章都没有涉及大型项目开发问题,也不会为怎样开始入手定义软件体系结构提供指南,更没有提供特定的表示来给软件体系结构开发团队传达合适的信息。本书试图去满足以上需求,而这些对软件结构师和软件开发团队来说恰恰是很重要的。
本书能够提供实践指南的部分包括:
对体系结构的建模,包括构件、子系统、依赖性、事务和接口
对环境元素的建模,包括进程、节点和物理数据库
为软件体系结构开发而剖析的有用技术
序言回到顶部↑
软件体系结构(Software Architecture)是近年来软件工程领域中的一个热点研究方向。它的出现为软件复用,特别是设计方案的复用带来了新的前景。在学术界研究软件体系结构的同时,工业界也看到了新的希望。UML的出现及其与体系结构研究结论的结合,为体系结构的应用带来了新的契机。在这样的背景下,对于广大工程技术人员和在校学生而言,学习与研究软件体系结构就显得特别有意义。
基于体系结构的开发被认为是处理大型项目复杂性的一项技术,然而,关于如何有效地开发和描述软件体系结构,现在仍然没有取得共识。《大型软件体系结构:使用UML实践指南》的作者Jeff Garland和Richard Anthony为需要了解大型软件的软件开发架构师、开发者和管理者提供了他们在一些大型软件开发项目中已经取得的经验,并描述了他们已经成功使用过的技术和体系结构表示。
本书不是一本理论教材,而是一本实践指南,其重点是大型系统的软件体系结构开发,这意味着本书要处理的是企业系统和大型分布式系统。当然,本书中讨论过的绝大部分技术和视点也可以用于小型项目和嵌入式系统开发。
本书是这样组织的,在前几章中给出总的概述,在后面章节中讨论特定体系结构视点。第1章讨论了对什么是“软件体系结构”这一概念的许多看法。第2~3章讨论与体系结构相关的角色和过程。第4章给出了银行系统实例的概述,这一例子将被用在以后各章中,以说明各种视点。第5章小结了UML图示符号和以后各章节所要描述的视点。第6~10章讨论并描述了软件体系结构的各种视点。第11章描述了体系结构开发的技术和原则。每章结束时,通过推荐读物列出了主要参考书籍和论文,这些参考资料包括了有关本章主题方面的更多信息。这些推荐书籍、论文和网址给我们提供了各章节中所没有涉及到的全部细节。
全书由叶俊民、汪望珠、罗景、赵良、涂新辉、陈利、胡金柱、蔡玲如、杨治、胡龙江、杨明霞、牟书霞等人翻译,全书由叶俊民统一整理书稿。由于译者水平有限,不足之处在所难免,特别在一些新的技术术语的翻译上,可能与一些书籍和论文中不同,我们尽量使译文翻译得正确,并符合中文的习惯。如有不当之处,希望广大读者能够提出宝贵意见。
叶俊民
华中师范大学计算机科学系
基于体系结构的开发被认为是处理大型项目复杂性的一项技术,然而,关于如何有效地开发和描述软件体系结构,现在仍然没有取得共识。《大型软件体系结构:使用UML实践指南》的作者Jeff Garland和Richard Anthony为需要了解大型软件的软件开发架构师、开发者和管理者提供了他们在一些大型软件开发项目中已经取得的经验,并描述了他们已经成功使用过的技术和体系结构表示。
本书不是一本理论教材,而是一本实践指南,其重点是大型系统的软件体系结构开发,这意味着本书要处理的是企业系统和大型分布式系统。当然,本书中讨论过的绝大部分技术和视点也可以用于小型项目和嵌入式系统开发。
本书是这样组织的,在前几章中给出总的概述,在后面章节中讨论特定体系结构视点。第1章讨论了对什么是“软件体系结构”这一概念的许多看法。第2~3章讨论与体系结构相关的角色和过程。第4章给出了银行系统实例的概述,这一例子将被用在以后各章中,以说明各种视点。第5章小结了UML图示符号和以后各章节所要描述的视点。第6~10章讨论并描述了软件体系结构的各种视点。第11章描述了体系结构开发的技术和原则。每章结束时,通过推荐读物列出了主要参考书籍和论文,这些参考资料包括了有关本章主题方面的更多信息。这些推荐书籍、论文和网址给我们提供了各章节中所没有涉及到的全部细节。
全书由叶俊民、汪望珠、罗景、赵良、涂新辉、陈利、胡金柱、蔡玲如、杨治、胡龙江、杨明霞、牟书霞等人翻译,全书由叶俊民统一整理书稿。由于译者水平有限,不足之处在所难免,特别在一些新的技术术语的翻译上,可能与一些书籍和论文中不同,我们尽量使译文翻译得正确,并符合中文的习惯。如有不当之处,希望广大读者能够提出宝贵意见。
叶俊民
华中师范大学计算机科学系








点击看大图




加载中...

