2011年1月3日
 
用户名:
密码:
 
新闻快递 | 原创文档 | 咨询培训 | 专家顾问 | 个人专栏 | CSDP | 产业报告 | 上海SPIN | 读编往来
English
首页 | 企业信息化 | 技术新热点 | 成才乐园New! | 软件工程 | 信息安全 | IT教育 | 软件出口 | 网站论坛
软件工程
软件过程管理和改进
轻载过程和敏捷方法
方法学
软件体系结构
项目管理
极限/敏捷项目管理
团队协作
人件
需求工程
软件质量
OO分析和设计技术
编译技术 
软件设计
面向服务架构
面向特征的开发
基于构件的开发
软件模式
开放源开发平台Eclipse
推荐软件工程实践
可用性工程
软件工程标准
常用文档模板和对照表
CASE工具
软件工厂
经验工厂
软件工程中心
技术传播
技术转移
软件产品评估
软件分析和验证
模型驱动开发
时序逻辑和软件工程
Web工程
数据库设计
OO数据库
数据库编程
软件工程信息资源
软件构造
软件维护
 
 
组织模式
 
  • 参考书目
  • 架构反模式
  • 架构模式
  • 组织模式列表
  • 组织反模式列表
  •  

    参考书目

    [Dikel01] D. Dikel, D. Kane, J. Wilson, Software Architecture: Organizational Principles and Patterns. Prentice Hall PTR, 2001. 

    [张02]《软件架构:组织原则与模式》,张恂译,机械工业出版社,2002.8

    [BrownW98] W. Brown, K. Malveau, H. McCormick, T. Mowbray, Antipatterns: Refactoring Software, Architectures and Projects in Crisis. New York: John Wiley & Sons, 1998.

    [Rising00] L. Rising, The Pattern Almanac 2000. Reading, MA: Addison-Wesley, 2000.

    [Beedle99] M. Beedle, M. Devos, Y. Sharon, K. Schwaber, J. Sutherland, "Scrum: A Pattern Language for Hyperproductive Software Development," Pattern Languages of Program Design 4. N. Harrison, B. Foote, H. Rohnert, eds., Reading, MA: Addison-Wesley, 1999.

    [Cockburn96] A. Cockburn, "Prioritizing Forces in Software Design," Pattern Languages of Program Design 2. J. Vlissides, J. Coplien, eds., Reading, MA: Addison-Wesley, 1996.

    [Cockburn98] A. Cockburn, Surviving Object-Oriented Projects: A Manager's Guide, Addison-Wesley, 1998.

    [Coplien95] J. Coplien, "A Development Process Generative Pattern Language," Pattern Languages of Program Design. J. Coplien, and D. Schmidt, eds., Reading, MA: Addison-Wesley, 1995.

    [Cunningham96] W. Cunningham, "EPISODES: A Pattern Language of Competitive Development," Pattern Languages of Program Design 2. J. Vlissides, J. Coplien, eds., Reading, MA: Addison-Wesley, 1996

    [Delano98] D. Delano, L. Rising, "Patterns for System Testing" Pattern Languages of Program Design 3. R. Martin, D. Riehle, F. Buschmann, eds., Reading, MA: Addison-Wesley, 1998.

    [Foote99] B. Foote, J. Yoder, "Big Ball of Mud," Pattern Languages of Program Design 4. N. Harrison, B. Foote, H. Rohnert, eds., Reading, MA: Addison-Wesley, 1999.

    [Harrison96] N. Harrison, "Organizational Patterns for Teams," Pattern Languages of Program Design 2. J. Vlissides, J. Coplien, and N. Kerth, eds., Reading, MA: Addison-Wesley, 1996.

    [Olson98] D. Olson, "Patterns on the Fly," The Patterns Handbook. L. Rising, ed., New York: Cambridge University Press, 1998.

    [Rising99] L. Rising, "Customer Interaction Patterns," Pattern Languages of Program Design 4. N. Harrison, B. Foote, H. Rohnert, eds., Reading, MA: Addison-Wesley, 1999.

    [Taylor99] P. Taylor, "Capable, Productive and Satisfied," Pattern Languages of Program Design 4. N. Harrison, B. Foote, H. Rohnert, eds., Reading, MA: Addison-Wesley, 1999.

    [Weir98] C. Weir, "Patterns for Designing Teams," Pattern Languages of Program Design 3. R. Martin, D. Riehle, F. Buschmann, eds., Reading, MA: Addison-Wesley, 1998.

    [Whitenack95] B. Whitenack, "RAPPeL: A Requirements-Analysis Process Pattern Language for Object-Oriented Development," Pattern Languages of Program Design. J. Coplien, and D. Schmidt, eds., Reading, MA: Addison-Wesley, 1995.

     

    架构反模式

    Antigravity Module(反重力装置)是指如此统一受益人的构想:用最小的妥协、最大的优化规划出一个构件以满足所有冲突的利益。这种方法的问题是,设计出来的构件往往在投影仪上比现实中表现得更好。

    榕树(Banyan)描述了过度最小化的结果——匆忙开发单点解决方案,而不投入时间或资源来简化不断扩张的代码分支。该反模式被描绘成一棵有大量分枝被许多向下生长的树根支撑的榕树形象。榕树代表了一种借用简化名义实行的极端。根部肥大,它的姊妹模式,代表了另一个极端。我们统称两者为钟摆反模式。

    滴血的刀刃(Bleeding Edge)说明了当架构师没有考虑其用户的客户,而让其用户支持一种未成熟的技术时发生的情况。

    Broken Loads(破裂的加载)

        在此情况下发生:一个组织试图实现定期的建立,但这些建立经常编译失败或无法通过自动测试。这说明了协作的失效。

    Cloning(克隆)

        描述了当程序员在学会使用或重视架构之前被强迫迅速完成任务时发生的情况。他们不与构件负责人协商变更,就复制并修改架构的部分代码,结果导致维护量大大超出他们的预料。

    Following Orders(惟命是从)

        发生在这种情况下:开发人员过分专注于应用,以致没能针对其他架构用户也遇到的同样问题设计出通用的解决方案,甚至不顾用户的请求。

    Killer Feature(杀手特性)

        是指当组织变得过于专注地向市场推出某项功能特性而导致内部节奏遭到破坏时发生的情形。即便最终交付了该特性,组织也有可能因全身心地专注于向市场提供该特性而被市场所蒙蔽。这是管理层没有定期地再评估、调整架构所导致的后果。

    Lip Synching(口头一致)

        说明了当一个架构团队回避采取必要的行动与其最直接的用户达成明确的契约时会发生什么情况。当用户们失去兴趣时,虽然对话仍在继续,但是讨论已经失去了实质内容,而且通常会浪费所有人的时间。

    Loan Shark(高利贷)

        描述了如何避免“架构师也是实现者”(Architect Also Implements)。架构师通常为了非常重要的客户而加入一个危急的项目负责增加一些新特性。就像高利贷借时容易还时难,今天架构师能够挽救一个项目,却播下了将来问题的种子。他将没有时间改进架构。

    Missing Piece(遗漏的部分)

        描述了发现一个明显的功能特性被遗漏时的尴尬经历。每个人都已经陷入发布的强大新特性之中,以致忽视了一些用户必不可少的功能。

    Personal Time(个人时间)

        介绍了出现以下情况时的后果,即一位工程师申请修改某个构件以便让其他团队使用,却获得一个令人困惑的答复:“你可以做,但是要用你个人的时间。”

    Phone Doesn't Ring(电话铃未响)

        说明了出现这样一种情况时的后果,即架构师知道了用户的需求却遗漏了为了向他们提供有价值的东西他所应该做的事情。

    Root Bound(根部肥大)

        描绘了一幅形象的画面,说明了一个架构或平台团队向内核中放入太多的东西后所出现的情况。例如,因企图支持许多不同的产品或者在开发客户特定的解决方案过程中,加入了太多的锦上添花的特性。原本的目标是简化建立和维护解决方案的任务,结果却使架构太复杂以致无法将其加入到产品中。根部肥大令人联想起过度成长、枝杈稀少而根部笨重的树干。该反模式代表了一种借用简化的名义采取的极端行为。榕树,根部肥大的姊妹反模式,则代表另一个极端。我们统称两者为钟摆反模式。

    Short Cut(短路)

        发生在组织试图在其过程中抄近路以维持稳定的发布节拍的时候。该反模式对用户所期望的架构质量和内容进行了妥协。

    Trend Surfer(潮流追随者)

        描述了这样一种情况:没有建立良好的构想,导致架构方向在竞争和客户压力的影响下经常改变。这种构想永远不会达到稳定以便被有效地共享。

    Tunnel Vision(隧道构想)

        描绘了当足够的证据显示基础假设和估计已经完全偏离目标时,对架构开发和实现计划不作任何修改将发生哪些情况。

    Venus Fly Trap(捕蝇草)

        说明了当潜在收益很大时,被诱惑增加“容易实现”的特性是多么容易。

     

     

    架构模式

    Architecture Review(架构复审)

        总结了怎样对开发中的架构组织和执行一次有重点的专家评估,以揭示有重大影响的问题和机遇,例如假设的冲突、可重用的现有方案等。

    Drop Pass(弃球前进)

        探讨了组织如何通过把不太重要的特性移到后面的发布周期以保持一个节拍。通过保持节奏,该模式可以使用户获得对架构发布进度更多的信心。

    Front-End Alignment(前端符合)

        要求推动架构投资的高级经理积极地维护构想,并防止构想受到短期压力的影响。

    Generative Vision(建设性构想)

        反映了这样一种认识,即架构师并非总是架构构想的来源。架构师应帮助建立一种能被用户充实、完善的构想。

    Know Thy Stakeholders(了解你的受益人)

        说明了如何利用价值链来识别关键受益人,积极听取他们的意见并获得承诺与支持。

    Migration Path(迁移途径)

        描述了通过建立一座增强能力的桥梁来吸纳新用户团体的方法。

    No Surprises(杜绝意外)

        基于合作伙伴应该避免让对方感到意外这一前提,有助于建立一种促进协作健康发展的环境。

    Outsource(外包)

        展示了如何适应这种情况,即客户要求的新标准或技术并不属于当前或计划中的核心能力。它提供了指导以说明何时及怎样选择一个已有的第三方构件,或者与那些开发为你所用的解决方案以满足其最佳利益的供应者合作。

    Pilot(领航员)

        建立在一种已经过验证的技术过渡(migration)方法之上,以引入并澄清一个新架构。该模式介绍了怎样选择初始产品或应用。

    Promote The Network(促进人际网)

        介绍了这样一种做法,即提拔雇员并不仅仅根据个人的技术技能和经验,还要考察其有效地、合乎道德地利用非正式人际网的能力。

    Reciprocity(互惠互利)

        介绍了一些非常重要的做法,用来建立足够稳固的关系以保障软件架构的共享和成功使用。

    Rlease Committee(发布委员会)

        描述了一种协调参与发布新架构的相关各方的方法。该模式向经理们介绍了一种在架构发布的最后阶段再评估、同步和调整架构的方法。

    Rotation(轮转工作)

        要求参与架构工作的人员轮流在架构的不同部分上工作。这样能使他们对架构有更多直接的了解,并有机会发展非正式的人际网络。

    Slow Down to Speed Up(由慢而快)

        描述了当开发人员为了跟上进度而拒绝使用架构结果却更慢时应该怎么做。解决方法是:放宽进度,加强过程。

    Synchronize Releases(同步发布)

        是一种把节奏理念扩展到组织边界以外的技术。该模式提供了一种同步架构团队及其用户的活动的方法。

    Whirlpool Watch(漩涡观察)

        是一种通过观察搅动程度来挑选需要调整的架构构件的方法。

     

     

    组织模式列表
    模式/反模式名 中文译名 出处 VRAPS原则
    Ad-Hoc Corrections [Weir98] 构想、协作
    Aesthetic Pattern [Coplien95] 简化
    Application Design is Bounded by Test Design [Coplien95] 预见、协作
    Apprentice [Coplien95] 构想
    Architect Also Implements [Coplien95] 构想、简化
    Architect Controls Product [Coplien95] 构想、预见、协作
    Architecture Review 架构复审 [Dikel01][02] 预见
    Arranging the Furniture [Taylor99] 构想
    Backlog [Beedle99] 节奏、预见
    Be Aware of Boundaries [Rising99] 协作
    Be Responsive [Rising99] 协作
    Bootstrapping [Taylor99] 构想
    Buffalo Mountain [Coplien95] 协作、简化
    Build Trust [Rising99] 协作
    Casual Duty [Olson98] 节奏
    Clear the Fog [Cockburn98] 预见
    Code Ownership [Coplien95] 构想
    Code Ownership [Coplien95] 协作
    Comparable Work [Cunningham96] 预见
    Compensate Success [Coplien95] 协作
    Completion Headroom [Cunningham96] 节奏、预见
    Conway's Law [Coplien95] 构想、简化
    Coupling Decreases Latency [Coplien95] 节奏、预见
    Creator-Reviewer [Weir98] 预见
    Cult of Personality [Olson98] 构想
    Customer Meetings: Go Early, Stay Late [Rising99] 协作
    Customer Rapport [Whitenack95] 协作
    Day Care [Cockburn98] 构想
    Decision Document [Weir98] 构想、协作
    Decouple Stages [Coplien95] 节奏
    Deliverables to Go [Taylor99] 节奏、协作
    Design by Team [Harrison96] 构想、预见
    Designers are Our Friends [Delano98] 预见、协作
    Developer Controls Process [Coplien95] 协作
    Developing in Pairs [Coplien95] 预见、协作
    Development Episode [Cunningham96] 构想
    Divide and Conquer [Coplien95] 节奏、协作、简化
    Domain Expertise in Roles [Coplien95] 构想、预见
    Don't Interrupt an Interrupt [Coplien95] 节奏
    Drop Pass 弃球前进 [Dikel01][02] 节奏
    Eagage QA [Coplien95] 预见、协作
    Early and Regular Delivery [Cockburn98] 节奏、预见
    Effective Handover [Taylor99] 构想、节奏
    Engage Customers [Coplien95] 构想、协作
    Envisioning [Whitenack95] 构想、预见、协作
    Form Follows Functions [Coplien95] 构想、简化
    Front-End Alignment 前端符合 [Dikel01][02] 构想
    Function Owners/Component Owners [Cockburn98] 构想、简化
    Gatekeeper [Coplien95] 协作
    Generative Vision 建设性构想 [Dikel01][02] 构想
    Generic UI, Specific UI [Cockburn96] 简化
    Generics and Specifics [Cockburn96] 简化
    Get Involved Early [Delano98] 节奏、预见、协作
    Gold Rush [Cockburn98] 节奏、预见
    Group Validation [Coplien95] 预见
    Guru Does All [Olson98] 构想
    Holistic Diversity [Cockburn98] 协作
    Hub, Spoke, and Rim [Coplien95] 节奏、协作
    Implied Requirements [Cunningham96] 构想、预见
    Informal Labor Plan [Cunningham96] 协作、简化
    Interrupts Unjam Blocking [Coplien95] 节奏
    It's a Relationship, Not a Sale [Rising99] 预见、协作
    Keep It Working [Foote99] 节奏
    Know the Customer [Rising99] 协作
    Know Thy Stakeholders 了解你的受益人 [Dikel01][02] 协作
    Let's Play Team [Olson98] 协作
    Listen, Listen, Listen [Rising99] 协作
    Lock'em up Together [Harrison96] 构想
    Long Pole in the Tent [Olson98] 节奏
    Managing and Meeting Customer Expectations [Whitenack95] 构想、预见、协作
    Market Walk-Through [Cunningham96] 预见
    Master-Journeyman [Weir98] 构想、协作
    Mercenary Analyst [Coplien95] 构想
    Microcosm [Cockburn98] 节奏、预见
    Migration Path 迁移途径 [Dikel01][02] 简化
    Mind Your Manners [Rising99] 协作
    Move Responsibilities [Coplien95] 协作、简化
    Multiple Competing Designs [Weir98] 构想、简化
    Named Stable Hases [Coplien95] 节奏
    No Surprises 杜绝意外 [Dikel01][02] 协作
    Organization Follows Location [Coplien95] 构想、协作
    Organization Follows Market [Coplien95] 构想、预见、协作
    Outsource 外包 [Dikel01][02] 预见
    Owner Per Deliverable [Cockburn98] 构想、简化
    Patron [Coplien95] 构想
    Phasing It In [Coplien95] 构想、节奏
    Pilot 领航员 [Dikel01][02] 预见
    Problem-Orieted Team [Taylor99] 构想、简化
    Product Initiative [Cunningham96] 构想、预见、协作
    Production Potential [Taylor99] 节奏
    Programming Episode [Cunningham96] 节奏
    Promote the Network 促进人际网 [Dikel01][02] 协作
    Prototype [Cockburn98] 预见
    Prototype [Coplien95] 预见
    Prototypes [Whitenack95] 预见
    Pulse [Taylor99] 节奏
    Reciprocity 互惠互利 [Dikel01][02] 协作
    Recommitment Meeting [Cunningham96] 构想、预见
    Reconstruction [Foote99] 简化
    Reference Data [Cunningham96] 构想
    Release Committee 发布委员会 [Dikel01][02] 节奏
    Requirement Walk-Through [Cunningham96] 构想、预见
    Review the Architecture [Coplien95] 预见
    Rotation 轮转工作 [Dikel01][02] 构想
    Sacrifice One Person [Cockburn98] 节奏
    Scenarios Define Problem [Coplien95] 构想、协作
    Schedule Chicken [Olson98] 节奏
    Scrum Meetings [Beedle99] 节奏、预见
    Shaping Circulation Realms [Coplien95] 协作
    Show Personal Integrity [Rising99] 预见、协作
    Size the Organization [Coplien95] 简化
    Skill Mix [Cockburn96] 简化
    Slow Down to Speed Up 由慢而快 [Dikel01][02] 简化
    Solo Virtuoso [Coplien95] 简化
    Someone Always Makes Progress [Cockburn98] 节奏
    Sponsor Objectives [Whitenack95] 构想、协作、简化
    Sprint [Beedle99] 节奏
    Subclass per Team [Cockburn96] 简化
    Sweeping It Under the Rug [Foote99] 简化
    Synchronize Releases 同步发布 [Dikel01][02] 节奏
    Take No Small Slips [Coplien95] 节奏
    Take Time [Delano98] 节奏
    Take Your Licks [Rising99] 预见、协作
    Team Per Task [Cockburn98] 节奏
    Team Space [Taylor99] 构想、协作
    Technical Memo [Cunningham96] 构想
    Time to Test [Delano98] 节奏、预见、协作
    Train Hard, Fight Easy [Olson98] 构想
    Train the Trainer [Olson98] 构想
    Trial Project [Olson98] 预见
    Unity of Purpose [Harrison96] 构想
    Validation by Teams [Harrison96] 预见
    Whirlpool Watch 漩涡观察 [Dikel01][02] 简化
    Work Flows Inward [Coplien95] 构想、预见、协作
    Work Group [Cunningham96] 节奏
    Work Queue [Cunningham96] 节奏、预见
    Work Queue Report [Cunningham96] 节奏
    Work Split [Cunningham96] 节奏、预见、简化
     

    组织模式列表
    反模式名 中文译名 出处 VRAPS原则
    AmbiguousViewpoint [BrownW98] 构想
    Analysis Paralysis [BrownW98] 构想、预见
    Antigravity Module 反重力装置 [Dikel01][02] 构想
    Architecture by Implication [BrownW98] 节奏、预见、简化
    Autogenerated Stovepipe [BrownW98] 简化
    Banyan 榕树 [Dikel01][02] 简化
    Bleeding Edge 滴血的刀刃 [Dikel01][02] 预见
    Blowhard Jamboree [BrownW98] 构想
    Boat Anchor [BrownW98] 简化
    Broken Loads 破裂的加载 [Dikel01][02] 节奏
    Cloning 克隆 [Dikel01][02] 简化
    Contiunous Obsolescene [BrownW98] 构想、预见
    Corncob [BrownW98] 协作
    Cover Your Assets [BrownW98] 构想、简化
    Cut and Paste Programming [BrownW98] 简化
    Dead End [BrownW98] 预见、简化
    Death by Planning [BrownW98] 预见
    Design by Committee [BrownW98] 构想、预见
    E-mall is Dangerous [BrownW98] 协作
    Fear of Success [BrownW98] 节奏、预见
    Fire Drill [BrownW98] 构想、节奏
    Following Orders 惟命是从 [Dikel01][02] 构想
    Functional Decomposition [BrownW98] 简化
    Golden Hammer [BrownW98] 构想、预见
    Input Kludge [BrownW98] 简化
    Intellectual Violence [BrownW98] 协作
    Irrational Management [BrownW98] 节奏、预见
    Jumble [BrownW98] 构想
    Killer Feature 杀手特性 [Dikel01][02] 节奏
    Lava Flow [BrownW98] 简化
    Lip Synching 口头一致 [Dikel01][02] 协作
    Loan Shark 高利贷 [Dikel01][02] 简化
    Missing Piece 遗漏的部分 [Dikel01][02] 预见
    Mushroom Management [BrownW98] 构想、协作
    Personal Time 个人时间 [Dikel01][02] 协作
    Phone Doesn't Ring 电话铃未响 [Dikel01][02] 协作
    Poltergeists [BrownW98] 简化
    Project Mismanagement [BrownW98] 节奏
    Reinvent the Wheel [BrownW98] 构想、简化
    Root Bound  根部肥大 [Dikel01][02] 简化
    Short Cut 短路 [Dikel01][02] 节奏
    Smoke and Mirrors [BrownW98] 构想、节奏、协作
    Spaghetti Code [BrownW98] 简化
    Stovepipe Enterprise [BrownW98] 构想、协作
    Stovepipe System [BrownW98] 预见、简化
    Swiss Army Knife [BrownW98] 简化
    The Blob [BrownW98] 简化
    The Feud [BrownW98] 协作
    The Grand Old Duke of York [BrownW98] 节奏
    Throw It Over the Wall [BrownW98] 节奏
    Trend Surfer 潮流追随者 [Dikel01][02] 构想
    Tunnel Vision 隧道构想 [Dikel01][02] 预见
    Vendor Lock-In [BrownW98] 预见
    Venus Fly Trap 捕蝇草 [Dikel01][02] 简化
    Viewgraph Engineering [BrownW98] 构想
    Walking Through a Minefield [BrownW98] 节奏
    Warm Bodies [BrownW98] 节奏、简化
    Wolf Ticket [BrownW98] 预见
     
     

     友情链接: ACM || CiteSeer || CMU SEI || Construx || Cutter || IEEE-CS || itmWEB
    上海市信息委 || 上海市经委 || 上海市软件行业协会 || 上海构件库
    TechTarget || 珞珈远望 || 浦华瑞信 || 北京SPIN || CCW聚焦华东 || 软件出口网 更多 
    最近更新日 2005.06.28
    建议使用IE5.0以上版本(800*600以上) 小字体 浏览
    © 2000-2005 软件出口和信息技术传播中心 制作维护: ASTI Shanghai 沪ICP备05025271号
    保留所有权益