Model-Based Development - H.S. Lahman

Model-Based Development

Applications

(Autor)

Buch | Hardcover
560 Seiten
2011
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-77407-1 (ISBN)
52,35 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
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.

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.

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

Erscheint lt. Verlag 23.6.2011
Verlagsort New Jersey
Sprache englisch
Maße 185 x 238 mm
Gewicht 1010 g
Themenwelt Informatik Software Entwicklung Objektorientierung
Mathematik / Informatik Informatik Theorie / Studium
ISBN-10 0-321-77407-8 / 0321774078
ISBN-13 978-0-321-77407-1 / 9780321774071
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …

von Thomas Schmertosch; Markus Krabbes; Christian Zinke-Wehlmann

Buch | Hardcover (2024)
Hanser (Verlag)
44,99
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

Buch (2023)
Hanser, Carl (Verlag)
39,99
Principles and Practice Using C++

von Bjarne Stroustrup

Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95