Model-Based Development
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-77407-1 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
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? |
aus dem Bereich