Model Based Development

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

Software continues to become more and more complex, while software consumers’ expectations for performance, reliability, functionality, and time-to-market are also growing exponentially. H. S. Lahman shows how to address all these challenges by integrating proven object-oriented techniques with a powerful methodology.

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

The book 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, it 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 topics rarely seen in OO books, such as full chapters on application partitioning and encoding invariants.

 Coverage includes

  • How we got here: a historical perspective and pragmatic review of why object principles were developed
  • 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
  • Combining problem space invariants with parametric polymorphism to reduce software size and complexity
  • 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)

Throughout, Lahman illuminates theoretical issues in practical terms, explaining why things are done as they are. 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 is more robust, is easier to maintain, and supports large-scale reuse.

This book has all 5-star reviews on Amazon.com.