did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321774071

Model-Based Development Applications

by
  • ISBN13:

    9780321774071

  • ISBN10:

    0321774078

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2011-06-14
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $64.99
We're Sorry.
No Options Available at This Time.

Summary

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 Developmentrepresents 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 whythings 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.

Author Biography

H.S. Lahman wrote his first software program on a plug board in 1957. That was such a character-building experience that he spent the next decade as an exploration geophysicist working in the free world’s major swamps, deserts, tundras, and jungles. Lahman then returned to school to learn about economics, operations research, and computing. For the next three decades he developed software in MIS, scientific, and R-T/E environments. Starting in 1982, he became a pioneering advocate of object-oriented development and other software quality and development process innovations.

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

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program