You are previewing Model-Based Development: Applications.
O'Reilly logo
Model-Based Development: Applications

Book Description

A Proven Development Methodology That Delivers On the Promise of Model-Based Approaches

Software continues to grow increasingly complex, while software consumers’ expectations for performance, reliability, functionality, and speed-to-market are also growing exponentially. H. S. Lahman shows how to address all these challenges by integrating object-oriented techniques with a powerful new methodology, Model-Based Software Engineering (MBSE).

Model-Based Development represents Lahman’s half-century of experience as a pioneering software innovator. Building on Shlaer-Mellor’s work, MBSE fully delivers on the promise of models, and is firmly grounded in the realities of contemporary development, design, and architecture.

Lahman introduces the methodology’s core principles, showing how it separates each of a project’s concerns, enabling practitioners to optimize each domain for its unique needs and characteristics. Next, he demonstrates how to perform more effective object-oriented analysis, emphasizing abstraction, disciplined partitioning, modeling invariants, finite state machines, and efficient communications among program units.

Coverage includes

  • How we got here: a historical perspective and pragmatic review of object principles

  • Problem space versus computing space: reflecting crucial distinctions between customer and computer environments in your designs

  • Application partitioning: why it matters and how do it well

  • Building static models that distinguish knowledge from behavior

  • Modeling classes, class responsibilities, associations, and both referential and knowledge integrity

  • Creating dynamic models that describe behavior via finite state machines

  • Successfully using abstract action languages (AALs) and action data flow diagrams (ADFDs)

  • Throughout, Lahman illuminates theoretical issues in practical terms, explaining why things are done as they are, without demanding rigorous math. His focus is on creating implementation-independent models that specify functional requirements completely, precisely, and unambiguously. Whether you’re a developer, team leader, architect, or designer, Lahman’s techniques will help you build software that’s more robust, easier to maintain, and supports larger-scale reuse.