分析模式:可复用的对象模型:英文版(软件教父Martin Fowler在书中浓缩了十余年的对象建模经验)
基本信息
- 作者: (美)Martin Fowler [作译者介绍]
- 丛书名: 图灵程序设计丛书 软件工程系列
- 出版社:人民邮电出版社
- ISBN:9787115239488
- 上架时间:2010-11-12
- 出版日期:2010 年11月
- 开本:16开
- 页码:357
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 设计模式
编辑推荐
软件教父的智慧结晶
模式领域的扛鼎之作
对象建模必读经典
内容简介回到顶部↑
本书讲述各种分析模式和辅助模式,专注于面向对象分析与设计的结果——模型本身,给出了来自金融贸易、测量、财务以及组织关系等多个领域内的一系列模式。书中每个模式都包含了设计背后的原理、使用的规则以及实现的技巧,给出的例子包含了有用模型的细节,并介绍了用于提高分析、建模和实现的重用技巧。
本书适用于面向对象的计算机分析人员和设计人员、数据建模人员、编程人员以及软件工程师。
本书适用于面向对象的计算机分析人员和设计人员、数据建模人员、编程人员以及软件工程师。
作译者回到顶部↑
本书提供作译者介绍
Martin Fowler出生于英国沃尔索尔。现定居美国梅尔罗斯。世界级软件开发大师。OOAD、UML、模式、敏捷开发方面的领军人物。自上世纪80年代中期一直从事面向对象技术的研究。作为独立顾问从事咨询工作十余年。1999年加盟Thought Works,现为该公司首席科学家。著有《重构:改善既有代码的设计》、《企业应用架构模式》、《UML精粹》等一系列脍炙人口的经典。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
chapter 1 introduction
1.1 conceptual models
1.2 the world of patterns
1.3 the patterns in this book
1.4 conceptual models and business process reengineering
1.5 patterns and frameworks
1.6 using the patterns
references
part 1. analysis patterns
chapter 2 accountability
2.1 party
2.2 organization hierarchies
2.3 organization structure
2.4 accountability
2.5 accountability knowledge level
2.6 party type generalizations
2.7 hierarchic accountability
2.8 operating scopes
2.9 post
references
1.1 conceptual models
1.2 the world of patterns
1.3 the patterns in this book
1.4 conceptual models and business process reengineering
1.5 patterns and frameworks
1.6 using the patterns
references
part 1. analysis patterns
chapter 2 accountability
2.1 party
2.2 organization hierarchies
2.3 organization structure
2.4 accountability
2.5 accountability knowledge level
2.6 party type generalizations
2.7 hierarchic accountability
2.8 operating scopes
2.9 post
references
前言回到顶部↑
曾几何时,市面上还找不到一本关于面向对象分析与设计的书。而现在,这类书如此之多,却又让人眼花缭乱。其中大多数着重于介绍某种表示法,推荐某种简便的建模流程,并辅以一些简单的例子。本书截然不同,其重心不在于流程——建模的方式,而在于流程的结果——模型本身。
我是一名信息系统领域的对象建模顾问,客户通常会请我对他们的技术人员进行建模方面的培训或提供项目指导。我的知识大多来自对建模技巧的领悟和运用,更重要的是,我创建了许多模型,经常看到一些问题重复出现,在这个过程中,我积累了不少经验。我经常发现许多项目所面临的问题都是我以前遇见过的,以我的经验,我可以方便地复用以前所创建的模型,并加以改进使之适应于当前项目。近年来,越来越多的人意识到了这种现象。我们发现,一些典型的方法论书籍虽然有其价值,但都只论述了学习过程的第一步,还得刻画所构建的实际事物。这种认识逐渐汇集成模式运动。来自五湖四海的人们具有不同爱好、持有不同观点,却都有一个共同的目标,即推广有用的软件系统模式。
由于模式社区的多样化,对于“模式”一词,很难给出一个统一的定义。我们都认定,当遇到某种模式的时候,我们能够识别它,而且多数情况下大家基本上可以取得共识,但就是不能给它下一个准确的定义。我是这样定义模式的:模式是在某种实际背景下有用的思路,而且在其他背景下也可能有效。
该定义并不严谨,是因为我不想加入过多的修饰,而让“模式”迷失初衷。一种模式会有多种形式,每种形式都为该模式增加了独有的特色。(1.2 节就讨论了模式世界的现状,以及本书在其中的位置。)
本书讨论的是项目分析过程中的模式——一种反映业务流程概念结构的模式,而不是软件实现的模式。多数章节讨论了不同业务领域中的各种模式。很难将这些模式归类到传统的基础行业中(如制造业、金融业、医疗保健业等),因为它们通常可以适用于多个行业。这些模式的重要之处在于它们有助于我们更好地理解人们认知世界的方式。以这种认识为基础去设计计算机系统,再反过来改进这种认识,是很有价值的事情,这就是我们所谓的业务流程再造(BPR)。概念模式无法孤立存在,而且只对那些知道如何实现它们的软件工程师才有价值。在本书中,我介绍了一些能够将概念模型转化为软件系统的模式,并讨论如何使这些软件适应大型信息系统的架构,当然还讨论了一些模式实现技巧。我写本书是因为这正是我长久以来想读的书。建模者在新的领域中开展工作的时候,能够在本书中找到一些灵感。模式中包含了有用的模型、模型背后的设计思路以及何时应该或不应该应用这些模型。有了这些信息,建模者就能够灵活应用相应的模型处理特定的问题。
本书中的模式同样有助于重新审视模型,看看有什么遗留的问题,或推荐一些替代方案进行改进。评审一个项目时,我通常将其中的问题与以前应用过的模式进行比较。我发现这种模式意识使我能够更加容易地应用过去的成功经验,而且还能揭示出一本简单的书所未能涵盖的建模问题。通过讨论为什么要如此这般对事物进行建模,我们更能够理解如何改进模型,即使不直接使用这些模式。
我是一名信息系统领域的对象建模顾问,客户通常会请我对他们的技术人员进行建模方面的培训或提供项目指导。我的知识大多来自对建模技巧的领悟和运用,更重要的是,我创建了许多模型,经常看到一些问题重复出现,在这个过程中,我积累了不少经验。我经常发现许多项目所面临的问题都是我以前遇见过的,以我的经验,我可以方便地复用以前所创建的模型,并加以改进使之适应于当前项目。近年来,越来越多的人意识到了这种现象。我们发现,一些典型的方法论书籍虽然有其价值,但都只论述了学习过程的第一步,还得刻画所构建的实际事物。这种认识逐渐汇集成模式运动。来自五湖四海的人们具有不同爱好、持有不同观点,却都有一个共同的目标,即推广有用的软件系统模式。
由于模式社区的多样化,对于“模式”一词,很难给出一个统一的定义。我们都认定,当遇到某种模式的时候,我们能够识别它,而且多数情况下大家基本上可以取得共识,但就是不能给它下一个准确的定义。我是这样定义模式的:模式是在某种实际背景下有用的思路,而且在其他背景下也可能有效。
该定义并不严谨,是因为我不想加入过多的修饰,而让“模式”迷失初衷。一种模式会有多种形式,每种形式都为该模式增加了独有的特色。(1.2 节就讨论了模式世界的现状,以及本书在其中的位置。)
本书讨论的是项目分析过程中的模式——一种反映业务流程概念结构的模式,而不是软件实现的模式。多数章节讨论了不同业务领域中的各种模式。很难将这些模式归类到传统的基础行业中(如制造业、金融业、医疗保健业等),因为它们通常可以适用于多个行业。这些模式的重要之处在于它们有助于我们更好地理解人们认知世界的方式。以这种认识为基础去设计计算机系统,再反过来改进这种认识,是很有价值的事情,这就是我们所谓的业务流程再造(BPR)。概念模式无法孤立存在,而且只对那些知道如何实现它们的软件工程师才有价值。在本书中,我介绍了一些能够将概念模型转化为软件系统的模式,并讨论如何使这些软件适应大型信息系统的架构,当然还讨论了一些模式实现技巧。我写本书是因为这正是我长久以来想读的书。建模者在新的领域中开展工作的时候,能够在本书中找到一些灵感。模式中包含了有用的模型、模型背后的设计思路以及何时应该或不应该应用这些模型。有了这些信息,建模者就能够灵活应用相应的模型处理特定的问题。
本书中的模式同样有助于重新审视模型,看看有什么遗留的问题,或推荐一些替代方案进行改进。评审一个项目时,我通常将其中的问题与以前应用过的模式进行比较。我发现这种模式意识使我能够更加容易地应用过去的成功经验,而且还能揭示出一本简单的书所未能涵盖的建模问题。通过讨论为什么要如此这般对事物进行建模,我们更能够理解如何改进模型,即使不直接使用这些模式。
序言回到顶部↑
我们几个所谓的“四人帮”在写《设计模式》时就知道,除了面向对象设计模式以外,还有许多其他软件模式。到写完书后,我们已经看到了分布式编程模式、用户界面模式,甚至是组织软件开发团队的模式。但我们还没见过很清晰的面向对象分析模式。Peter Coad 提出的模式是最接近于面向对象分析模式的,但这些模式和我们的模式非常像。而在我们看来,纯分析模式应该是大不一样的。
在读Martin Fowler 的书稿时,我终于找到了我一直梦寐以求的东西。他讲的模式容纳了大量领域知识,又能在所有商业软件中都适用。和设计模式一样,这些模式很抽象,足以帮助你的软件应对各种猝不及防的需求变化,但又非常具体,容易理解。它们不见得是最明显的解决建模问题的方法,但在我看来真实可信。我以前见过许多这类解决方法,都很有效。
与其说我是一个建模师,不如说我是个设计师。在Martin Fowler 描述的很多领域,我都没有太多经验。虽然我觉得那些模式很好,但我对自己的感觉不是太自信。然而,自从读了这本书之后,我就开始在软件项目中尝试这些模式,并用于教学。它们的确行之有效!等我看过David Hay 写的Data Model Patterns 一书后,我的自信心大大增强了。我意识到,尽管他们有不同的背景和专业用词,但他们看到了许多相同的模式。模式应该描述现实,而不是发明新事物,Martin Fowler 精确地描述了商业软件面向对象模型中的模式。你大可对他描绘的模式满怀信心。
虽然Martin 介绍了许多建模原则,但这本书不是一本专讲原理的书,你不必非要读完全书并做相应练习之后才能有所收获。书中全都是实用的模式,可以随学随用。针对遇到的具体问题,找到适用的章节,你将发现许多大有助益的好主意。你也可以逐章阅读,每一章都有新思想。
为了充分利用本书,需要知道两件事。首先,许多模式都深藏不露,比表面看上去要强大得多。比如,Accountability 模式就可以应用于几乎任何项目中。不要局限于表面上明显适用于你的项目的那几章,而应尽可能多学习几种模式,并且看看是否能派上用场。其次,要保证让合作者也阅读本书。模式的一个最大的优势就是帮助我们更好地交流。有了共同语言,你的团队会议会开得更加顺利圆满。本书将让文档更一致,更易于理解。此外,你的合作者将能成为更优秀的分析师,要知道,和工作出色的人合作会让你如沐春风。
在读Martin Fowler 的书稿时,我终于找到了我一直梦寐以求的东西。他讲的模式容纳了大量领域知识,又能在所有商业软件中都适用。和设计模式一样,这些模式很抽象,足以帮助你的软件应对各种猝不及防的需求变化,但又非常具体,容易理解。它们不见得是最明显的解决建模问题的方法,但在我看来真实可信。我以前见过许多这类解决方法,都很有效。
与其说我是一个建模师,不如说我是个设计师。在Martin Fowler 描述的很多领域,我都没有太多经验。虽然我觉得那些模式很好,但我对自己的感觉不是太自信。然而,自从读了这本书之后,我就开始在软件项目中尝试这些模式,并用于教学。它们的确行之有效!等我看过David Hay 写的Data Model Patterns 一书后,我的自信心大大增强了。我意识到,尽管他们有不同的背景和专业用词,但他们看到了许多相同的模式。模式应该描述现实,而不是发明新事物,Martin Fowler 精确地描述了商业软件面向对象模型中的模式。你大可对他描绘的模式满怀信心。
虽然Martin 介绍了许多建模原则,但这本书不是一本专讲原理的书,你不必非要读完全书并做相应练习之后才能有所收获。书中全都是实用的模式,可以随学随用。针对遇到的具体问题,找到适用的章节,你将发现许多大有助益的好主意。你也可以逐章阅读,每一章都有新思想。
为了充分利用本书,需要知道两件事。首先,许多模式都深藏不露,比表面看上去要强大得多。比如,Accountability 模式就可以应用于几乎任何项目中。不要局限于表面上明显适用于你的项目的那几章,而应尽可能多学习几种模式,并且看看是否能派上用场。其次,要保证让合作者也阅读本书。模式的一个最大的优势就是帮助我们更好地交流。有了共同语言,你的团队会议会开得更加顺利圆满。本书将让文档更一致,更易于理解。此外,你的合作者将能成为更优秀的分析师,要知道,和工作出色的人合作会让你如沐春风。
媒体评论回到顶部↑
“本书对于模式文化的发展具有重大贡献。Martin Fowler从来自不同领域的深奥的专业对象模型中提炼出一组模式,这些模式能帮助你解决具有挑战,睦的跨领域建模难题。”
——Erich Gamma 《设计模式》作者之一
“Martin Fowler给予我们的是答案本身,而不仅仅是寻求答案的过程。就在这朴实无华的语言中,你将发现下一个业务对象模型的精华所在。”
———Ward Cunningham 设计模式和敏捷开发方法先驱
“在这部令人期待已久的著作中,作者为应用领域模式所做的工作完全可以与‘四人帮’在《设计模式》一书中为通用设计模式所做的工作相媲美。对于正在从事面向对象业务建模或业务流程重组的分析与设计人员而言,这绝对是一本必备之书。”
——Donald G.Firesmith SEI软件大师和咨询师
——Erich Gamma 《设计模式》作者之一
“Martin Fowler给予我们的是答案本身,而不仅仅是寻求答案的过程。就在这朴实无华的语言中,你将发现下一个业务对象模型的精华所在。”
———Ward Cunningham 设计模式和敏捷开发方法先驱
“在这部令人期待已久的著作中,作者为应用领域模式所做的工作完全可以与‘四人帮’在《设计模式》一书中为通用设计模式所做的工作相媲美。对于正在从事面向对象业务建模或业务流程重组的分析与设计人员而言,这绝对是一本必备之书。”
——Donald G.Firesmith SEI软件大师和咨询师
【插图】







点击看大图


加载中...

