Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Guides Dependency-Oriented Thinking: Volume 1 – Analysis and Design

Dependency-Oriented Thinking: Volume 1 – Analysis and Design


Service-Oriented Architecture (SOA) is a somewhat disappointing technology buzzword from the last decade, associated with expensive and heavyweight technology that does not provide as much of a return on investment as was hyped - or is it? Has the industry just failed to understand and exploit the power of SOA?

Ganesh Prasad, an industry veteran with over a decade's worth of SOA experience at varied organisations, has discovered the secret to unlocking SOA's wasted potential. He aims to reignite SOA practice with a fresh, lightweight yet rigorous method based on the single most important element that underlies all types of system interactions - the notion of dependencies. "Dependency-Oriented Thinking" is the book that reveals these secrets for the first time.

Volume 1 is aimed at business analysts, solution architects, designers and developers. It provides them with a formal method to develop agile, cost-effective and low-risk solutions to meet business requirements - the goals of SOA.

Free download

Table of Contents

  • Part I – Post-Mortem: Why Has SOA Been Such a Disappointment?
    • The View of SOA As Technology. 
    • Technology As Typhoid Mary.
    • “Service” As a Weasel Word.
  • Part II – The Case for “Dependency-Oriented Thinking”.
    • What Is a “Dependency” Anyway?
    • Dependencies Impact Everything!
    • Case Studies of Dependencies in the Enterprise.
      • Business Layer Case Study 1 – The Weakest Link of a Supply Chain.
      • Business Layer Case Study 2 – Take It or Leave It: Monopsony and Choice
      • Business Layer Case Study 3 – Culture Shock.
      • Application Layer Case Study 1 – Stock-Market Crash.
      • Application Layer Case Study 2 – Speaking in Different Voices
      • Application Layer Case Study 3– Buy a Puppy, Get Two Free
      • Information Layer Case Study 1 – Locked Out: Key-Person Risk.
      • Information Layer Case Study 2 – It Goes Without Saying
      • Information Layer Case Study 3 – “ASSUME” Makes an ASS of U and ME..
      • Technology Layer Case Study 1 – The Stress and Strain of an Engineer’s Life
      • Technology Layer Case Study 2 – Paying for Trouble
      • Technology Layer Case Study 3 – What Makes a Good Technology Platform?
      • Case-Study Summary
    • Current Practice Relating to Dependencies.
      • Blindness or Wilful Blindness
      • Fooled by Subtlety – Why Surrogate Principles Don’t Work.
  • Part III – Evolving a Dependency-Oriented-Design Method.
    • The BAIT Model As a Framework for Dependency-Oriented Design.
      • How to View BAIT’s Application Layer
      • How to Navigate the Layers of the BAIT Model
      • BAIT As a Model of Dependency Types
      • BAIT As a Model of “Operations”.
    • TOGAF – A Ready-Made, Comprehensive Model of the Enterprise.
      • Mining for Dependency Gems Within the TOGAF Model
      • Fundamental Enterprise Dependencies
      • Business-Layer Dependencies
      • Business-Layer Design Artefacts
      • Application-Layer Dependencies
      • Application-Layer Design Artefacts
      • Information-Layer (Data-Layer) Dependencies
      • Information-Layer Design Artefacts
      • Technology-Layer Dependencies
      • Technology-Layer Design Artefacts
    • Key Design Artefacts at a Glance.
    • Dependency-Oriented-Design Principles at a Glance.
  • Part IV – Dependency-Oriented Design in Practice.
    • Approach to Design..
    • The Business Layer.
      • Key Design Artefacts
      • An Overview of Business-Layer Dependency Principles
      • Applying Dependency Principles
    • The Application Layer.
      • Key Design Artefacts
      • An Overview of Application-Layer Dependency Principles
      • Applying Dependency Principles
    • The Information Layer.
      • Key Design Artefacts
      • An Overview of Information-Layer Dependency Principles
      • Applying Dependency Principles
    • Putting the Application and Information-Layer Principles to Work..
    • The Technology Layer.
      • Key Design Artefacts
      • An Overview of Technology-Layer Dependency Principles
      • Applying Dependency Principles
    • Odds and Ends of Design..
      • “Don’t Boil the Ocean to Make a Cup of Tea”.
      • The Ecosystem of Service Providers and Service Consumers
      • Processes as Operations
      • Patterns and Qualities of Service
  • Part V – Worked-Out Examples of Dependency-Oriented Thinking.
    • A Post-Mortem Using Dependency Principles.
      • The Impact of Dependencies Introduced by Implementation Design.
      • A Dependency-Aware Design.
    • Designing a Simple Orchestrated Process.
      • Analysis
    • Designing an Orchestrated Process with Workflow..
      • Analysis
    • Designing a Choreographed Process.
    • Designing Stable Interfaces in the Face of Change.
      • The Mainframe Era of the ’70s (Native Integration)
      • Standardisation of Protocols
      • The Minicomputer Era of the ’80s (the Emergence of Variants)
      • A Detour Through the Data Layer
      • Generic Interfaces
      • Routing from Abstract Interface to Concrete Implementation.
      • Type Hierarchy Added to the Data Model
      • Business Challenges of the ’90s (Process Innovation)
      • Supporting a New Variant Behind an Existing Interface
      • A New Message Data Model (But No Change to the Interface)
      • Implementation (Deployment onto Technology Components)
      • The Versioning That Wasn’t
  • Summary and Conclusions.
    • Contributions of This Document.
  • About the Author
  • Acknowledgements.
  • Appendix A – Dependency Principles at a Glance.
    • Business-Layer Principles.
    • Application-Layer Principles.
    • Information-Layer Principles.
    • Technology-Layer Principles.
  • Appendix B – References.