Home > Store

Model-Based Development: Applications

Register your product to gain access to bonus material or receive a coupon.

Model-Based Development: Applications

eBook (Watermarked)

  • Your Price: $41.59
  • List Price: $51.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.


  • Copyright 2011
  • Dimensions: 7" x 9-1/8"
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-275719-2
  • ISBN-13: 978-0-13-275719-5

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 speed-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 new methodology.

Model-Based Development represents Lahman’s half century of experience as a pioneering software innovator. Building on Shlaer-Mellor’s work, Lahman’s unique approach fully 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

  • 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 describe basic application structure
  • 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 resolve 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, supports larger-scale reuse, and whose specification is rigorous enough to enable full-scale automatic code generation.

Sample Content

Table of Contents

Preface           xiii

Acknowledgments          xix

About the Author         xxi

Introduction           xxiii

Part I: The Roots of Object-Oriented Development          1

Chapter 1: Historical Perspective          3

History     3

Structured Development     5

Technical Innovation    17

Chapter 2: Object Technology         29

Basic Philosophy  30

Breadth-First Processing (aka Peer-to-Peer Collaboration)   44

Chapter 3: Generalization, Inheritance, Genericity, and Polymorphism        53

Generalization    54

Inheritance     56

Polymorphism    57

Genericity    61

Chapter 4: MBD Road Map        63

Problem Space versus Computing Space    63

Maintainability    69

Chapter 5: Modeling Invariants         77

So Just What Is Modeling Invariants?     78

The Rewards    81

Examples   84

Chapter 6: Application Partitioning         105

Why Do We Care?    105

Basic Concepts of Application Partitioning    107

Identifying Subsystems     119

Bridges   122

Describing Subsystems    127

An Example: Pet Care Center   130

Processes   145

Part II: The Static Model          151

Chapter 7: Road Map to Part II         153

What Is the Static Model?     154

Knowledge versus Behavior    156

Practical Note   158

Chapter 8: Classes         161

Abstract Representation    161

Class Notation    167

Identifying Classes and Their Responsibilities    169

Examples   172

Using Sequence and Collaboration Diagrams    186

Chapter 9: Class Responsibilities         191

Attributes: What the Objects of a Class Should Know   191

Operations and Methods: What an Object Must Do    197

Process    207

Examples   209

Chapter 10: Associations         233

Definitions and Basics    234

Notation    239

The Nature of Logical Connections   242

Conditionality     250

Multiplicity     255

Constraints    261

Association Classes     264

Identifying Associations     269

Examples    273

Chapter 11: Referential and Knowledge Integrity             279

Knowledge Integrity     280

Referential Integrity     289

Chapter 12: Generalization Redux          299

Subclassing     300

Multi-directional Subclassing, Multiple Inheritance, and Composition     317

Alternatives to Generalization    328

Chapter 13: Identifying Knowledge           333

What Is the Nature of OO Knowledge?     334

Abstracting Aggregates    335

Picking the Right Abstraction    341

Does the Abstraction Need to Coalesce Entity Knowledge?    351

Part III: The Dynamic Model         355

Chapter 14: Road Map to Part III         357

Part III Road Map    357

Action Languages    373

Mealy versus Moore versus Harel     374

The Learning Curve    376

Chapter 15: The Finite State Machine           377

Basic Finite State Automata    378

Looking for State Machines    390

Some Examples    407

Chapter 16: States, Transitions, Events, and Actions          415

States    415

Transitions     421

Events     423

Actions     427

The Execution Model     430

Naming Conventions     433

Chapter 17: Developing State Models          437

Designing State Machines     437

Examples   . 450

Chapter 18: Abstract Action Languages          475

AALs and ADFDs     476

AAL Syntax    478

Examples    480

Glossary           489

Index        501


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership