自定义软件工程公司揭开伟大架构师的秘密49854193497.docx
《自定义软件工程公司揭开伟大架构师的秘密49854193497.docx》由会员分享,可在线阅读,更多相关《自定义软件工程公司揭开伟大架构师的秘密49854193497.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 通通行证:登登录注册程序员员|第二书店店|博文视点点 首页 新闻社区BBlog技技术中心 .NetJJAVA移移动游戏管理 人才培训 被屏蔽广广告 被屏蔽广广告 被屏蔽广广告 CSDN 20066 年编辑辑招聘火热热进行中 虚位以待待 期待你你的加盟! 首页 新闻 最新Bloog 最佳实践 外刊外网 产品&评测测 自定义软件件工程公司司揭开伟大大架构师的的秘密2006.06.116被屏蔽广广告 被屏蔽广广告伟大架构师师的秘密By Doon Awwalt and Rickk McUUmberrRDA Corpporattion摘摘要:所有有伟大的架架构师都掌掌握了在抽抽象的不同同层次上概概念化
2、解决决方案的技技能。通过过将解决方方案组织到到离散的层层次,架构构师可以专专注于解决决方案的单单个方面而而忽略所有有剩余的复复杂性。展展示将抽象象层次应用用到 ITT 解决方方案的技术术,并将其其与其他工工程学科相相比较。 本文内容容 将抽象层次次应用到 IT 解解决方案 抽象层次次:所有工工程师的强强大武器 应用抽象象层次时的的核心原则则 将抽象象层次应用用到 ITT 系统 简单框架架:四个抽抽象层次 通过迭代代发展层次次 重访抽抽象层次核核心原则 扩展层次次以支持企企业解决方方案 优点点 小结 自我评估估 将抽象层次次应用到 IT 解解决方案企企业架构师师正受到其其所面临的的大量复杂杂性的
3、挑战战。开发一一个能够自自动处理企企业任务的的独立的部部门应用程程序是一回回事。而设设计并组成成一个支持持上万 IIT 使用用者的满是是应用程序序、服务器器和数据库库(全都支支持多种企企业活动)的的 IT 实验室全全球网络,则则完全是另另外一回事事。要组合合这些复杂杂性,ITT 网络必必须随时可可用、响应应迅速并保保护企业宝宝贵的信息息资产。除除所有这些些之外,IIT 网络络还必须足足够灵活以以支持企业业永远变化化的需要,并并且采用出出现的新技技术。一些些架构师在在这种复杂杂性方面明明显非常出出色,而且且在不断进进步。在我我们的职业业生涯中,能能与一些真真正伟大的的分析师和和架构师并并肩工作是
4、是非常幸运运的。反思思这些经验验,我们已已经分析出出是什么造造就了杰出出的架构师师。 无一一例外,所所有伟大的的架构师都都掌握了在在截然不同同的抽象层层次上概念念化解决方方案的技能能。通过将将解决方案案组织到离离散的层次次,架构师师可以将精精力集中在在解决方案案的单个方方面而忽略略所有剩余余的复杂性性。他们一一旦稳定了了解决方案案的某个部部分,接下下来就能继继续处理其其他方面,从从而不断地地将层次发发展并完善善到最终可可以被实现现的粘合模模型中。大大多数软件件开发人员员懂得应该该将解决方方案分解到到抽象层次次。但是在在实际的项项目中,这这是非常难难于付诸实实践的。当当遇到第一一个困难时时,在急
5、于于开始编码码时是很容容易放弃这这些层次的的。伟大的的架构师会会经受这些些挑战并在在整个项目目的生命周周期中严格格保持这些些层次。他他们意识到到,如果不不这样做,最最终将淹没没在复杂性性中。本文文展示了将将抽象层次次应用到 IT 解解决方案的的技术。首首先,我们们会通过一一个简单的的示例演示示此方法,然然后提出一一个基于正正式抽象层层次的系统统产品的结结构。 抽抽象层次:所有工程程师的强大大武器其他他的工程学学科,比如如土木工程程师,几个个世纪以来来一直利用用抽象层次次复制复杂杂性。让我我们学习一一下其他更更成熟的工工程学科是是如何应用用抽象层次次的,就从从电子工程程师开始吧吧,他们设设计每次
6、更更新换代都都变得更加加复杂的计计算机系统统。 硬件件工程师系系统设计师师使用抽象象层次为计计算机系统统建模。每每个层次都都是定义完完善的,并并提供了该该系统的一一个不同角角度。许多多系统是在在三个主要要层次上设设计的:系系统、子系系统和组件件,如图 1 所示示。分层使使工程师能能够将庞大大数量的复复杂性集成成到一个单单一的工作作计算机系系统中。在在其原子部部分的层次次上确切了了解一台计计算机是不不可能的。在在单独一块块 Inttel IItaniium_ 芯片上有有大约 225,0000,0000 个晶晶体管。 对 ITT 相关学学科来说,这这种把复杂杂性分解到到抽象层的的方法当然然不是惟一
7、一的。类似似的方法被被用于从航航空工程到到微生物学学的无数其其他学科。应用抽象层次时的核心原则所有工程师在应用抽象层次时都遵循这套核心原则。当把抽象层次应用到软件时,这些原则也同样适用。这些层次的数量和范围是定义完善的,以便工程师能够在复杂的系统上协作,所有团队成员必须共享对层次的同一理解。只要设计师做出设计决定,他们必须将那些决定归档到相应的细节层次。 三个抽象层次定义如下:图 i. 定义的三三个抽象层层次图 ii.抽象层次次的一个简简单框架每每个层次内内的多个视视图一个单单个层次内内的复杂性性可以变得得非常多,以以至于使人人无法一次次全部掌握握。在这种种情况下,工工程师通过过多个视图图将设
8、计展展现于单个个层次内。每每个视图展展现设计的的一个单独独方面,但但保持在相相同的抽象象层次上。举举例来说,母母板工程师师为板的每每个层创建建一个视图图,从而为为每层的连连接路径的的设计建模模。 图 1. 计算机系系统的抽象象层次必须须保持层次次间的一致致性为了让让系统按预预期方式运运行,每个个后续的层层必须是其其父层的适适当改进。如如果计算机机系统设计计师从 IIDE 总总线切换到到 SCSSI 总线线,那么所所有设备的的接口规范范也必须切切换到 SSCSI。如如果层次没没有同步,那那么系统就就不会按预预期方式在在顶层执行行。将抽象象层次应用用到 ITT 系统既既然我们已已经分析了了其他学科
9、科是如何应应用抽象层层次的,现现在就让我我们将此技技术应用于于 IT 解决方案案1。下列列部分展示示了应用抽抽象层次为为典型 IIT 应用用程序的需需求、设计计和实现建建模的技术术。这些技技术是通过过一个针对对假想零售售商的简单单的、指导导性的在线线定单系统统示例来展展示的。在在我们的示示例中,我我们不仅包包括了体系系结构,而而且扩展了了范围以包包括系统需需求和业务务环境 如同由由零售业所所定义的。简单框架:四个抽象层次我们的简单示例定义 IT 解决方案的如下四个抽象层次: 域 业务处处理 逻辑 物理 在每个层次次内,我们们既展示了了该特定层层次行为的的动态视图图,又展示示了其静态态视图。动动
10、态视图为为对象之间间的消息建建模,而静静态视图为为对象之间间的结构和和关系建模模。 域抽抽象层次应应用了上面面的范围规规则,零售售商就会作作为域层次次中的黑盒盒子中心的的演员。客客户作为外外部的演员员。域层次次是从客户户的角度来来建模的。只只为购买交交互建模。用用于完成购购买的通讯讯形式不包包括在这个个层次,但但是会在业业务处理层层次引入。图 2. 关于从零零售商处购购买物品的的域层次动动态视图图 3. 关于从零零售商处购购买物品的的域层次静静态视图动动态视图域域层次内的的动态视图图为客户和和零售商之之间的交互互建模。下下图汇总了了域环境,并并包含了简简单的业务务交互使用用案例描述述。图 4.
11、 关于从零零售商处购购买物品的的业务处理理层次动态态视图静态态视图域层层次的静态态视图为类类结构和在在使用案例例中出现的的它们的对对象的关系系建模。换换句话说,它它说明了在在这个抽象象层次上,为为了完成购购买交易客客户需要了了解什么对对象。 图图 5 展展示了域层层次静态视视图的类关关系图。图 5. 关于从零零售商处购购买物品的的业务处理理层次静态态视图客户户是 Peersonn 的实例例。客户和和零售商之之间的关系系被具体化化为 Acccounnt。所有有的 Puurchaase 都都与客户的的 Acccountt 相关。PPurchhase 与每个被被购买的 Itemm 相关。每每个 It
12、tem 都都与特定的的 Prooductt 相关,这这里 Prroducct 遵循循元类模式式。Prooductt 的实例例实际上本本身就是类类。将其他他 Prooductt 添加到到 Cattalogg 完全是是一个数据据驱动过程程,而且不不会对类模模型产生影影响,因此此将 Prroducct 建模模为一个元元类会使我我们的模型型更加灵活活。围绕这这些类,每每个 Paaymennt 都与与其 Puurchaase 相相关。如您您可能看到到的,这个个层次的模模型对大多多数零售商商(无论类类型为在线线或传统,大大型或小型型)来说是是有代表性性的。这说说明了为什什么 IIndusstry 域模型型
13、确实应该该将公司定定义为黑盒盒子中心的的演员。同同一个行业业中的公司司倾向于支支持带有其其外部演员员的同一套套业务交互互。此外,域域模型排除除了公司的的特定业务务处理,这这是因为在在同一行业业中的公司司之间它们们会有相当当大的变化化。 域层层次严格集集中在从外外部演员的的角度看到到的业务交交互。对此此我们必须须注意,不不要将用于于完成交互互的实现机机制包括进进来。这些些细节属于于下一个抽抽象层次。因因此,在本本例中,我我们只为浏浏览、选择择、购买和和支付建模模。我们不不为如何完完成这些交交互(通过过电话、美美国邮政、电电子邮件、WWeb 应应用程序、亲亲自前往、支支票、信用用卡或现金金)建模。
14、业务处理抽象层次 下一个抽象层次为公司的业务处理建模,以实现在域层次捕获的交互。系统层次内部缩放公司的黑盒子,并标识为完成业务交易而协作的所有员工和系统。在这个层次,要开发的系统作为黑盒子中心的演员。 应用了系统层次的范围规则,在线定单系统就作为黑盒子中心的演员。客户和员工作为外部演员。系统层次是从客户和员工的角度来建模的。客户在线执行购买。支付是通过信用卡完成的。通过将物品运送到客户的收货地址履行定单。出货通知是由电子邮件发送的。 动态视图动态视图重演了域层次购买交易,这次公开了零售商的内部业务处理。图 4 汇总了业务处理环境,并包含了关于系统及其演员之间的交互的简单使用案例描述。静态视图这
15、个层次的静态视图对类模型做了改进,以捕获在业务处理层次使用案例中出现的对象。换句话说,为了在线创建一个定单并履行该定单,客户和雇员需要理解哪些对象?图 5 展示了业务处理层次静态视图的类关系图。我们修改域类模型以捕获在这个抽象层次上的角度。Person、Account 和 Company 抽象保持不变,Catalog 和 Product 也一样。但是,用 Order 替换了来自域模型的抽象 Purchase 事件。Order 包括 LineItem,它与 Catalog 中的 Product 相关联。因为这个层次为公司的内部业务处理建模,所以我们需要获得现有的库存(最小库存单元 (SKU) 的
16、一个属性,它表示在一个特定位置的物品的库存)。我们也为客户的 UserAccount 建模,它提供对在线系统的访问。Payment 是通过使用 CreditCardAccount 来完成的。Location 代表美国的一个地理位置,它作为账单邮寄地址,同时也作为 Order 的收货地址。Shipment 包含 Shipment 中包括的 Item。 我们在系统抽象层次创造方法来简化业务处理,因此该层次通常需要很多创造力。为此,通常使用业务处理层次上的若干不同形式来实现单个域层次交易。举例来说,一次购买可以通过在线、电话、邮件、传真一个定单表格或者亲自到零售店来完成。对于每一种形式,都需要在业务
17、处理层次为其建模。请注意,尽管对零售商来说 Credit Authorizer 是一个外部演员,但是它还是在这个层次引入,这是因为只需要它实现在该层次首次出现的业务处理。 最后,请注意该系统是技术独立的。我们的在线购买系统可以用任何 Web 技术实现。在系统黑盒子内选择技术是一个体系结构决策。 逻辑抽象层次逻辑层在系统黑盒子内缩放,从而公开高级别的系统设计。架构师选择技术并定义高级系统结构。在我们的简单示例中,系统是由承载表示层、业务层和数据访问层的 Microsoft IIS/Microsoft ASP.NET 服务器和承载持久性数据的 Microsoft SQL Server 数据库服务器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自定义 软件工程 公司 揭开 伟大 架构 秘密 49854193497
限制150内