SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® 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.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
Conventional build-then-test practices are making today’s embedded, software-reliant systems unaffordable to build. In response, more than thirty leading industrial organizations have joined SAE (formerly, the Society of Automotive Engineers) to define the SAE Architecture Analysis & Design Language (AADL) AS-5506 Standard, a rigorous and extensible foundation for model-based engineering analysis practices that encompass software system design, integration, and assurance. Using AADL, you can conduct lightweight and rigorous analyses of critical real-time factors such as performance, dependability, security, and data integrity. You can integrate additional established and custom analysis/specification techniques into your engineering environment, developing a fully unified architecture model that makes it easier to build reliable systems that meet customer expectations.
Model-Based Engineering with AADL is the first guide to using this new international standard to optimize your development processes. Coauthored by Peter H. Feiler, the standard’s author and technical lead, this introductory reference and tutorial is ideal for self-directed learning or classroom instruction, and is an excellent reference for practitioners, including architects, developers, integrators, validators, certifiers, first-level technical leaders, and project managers. Packed with real-world examples, it introduces all aspects of the AADL notation as part of an architecture-centric, model-based engineering approach to discovering embedded software systems problems earlier, when they cost less to solve. Throughout, the authors compare AADL to other modeling notations and approaches, while presenting the language via a complete case study: the development and analysis of a realistic example system through repeated refinement and analysis.
Part One introduces both the AADL language and core Model-Based Engineering (MBE) practices, explaining basic software systems modeling and analysis in the context of an example system, and offering practical guidelines for effectively applying AADL.
Part Two describes the characteristics of each AADL element, including their representations, applicability, and constraints.
The Appendix includes comprehensive listings of AADL language elements, properties incorporated in the AADL standard, and a description of the book’s example system.
Preface xv
Introduction 1
PART I: Model-Based Engineering and the AADL 3
Chapter 1: Model-Based Software Systems Engineering 5
1.1 MBE and Software System Engineering 6
1.2 AADL and Other Modeling Languages 12
Chapter 2: Working with the SAE AADL 17
2.1 AADL Models 19
2.2 System Specification and System Instances 26
Chapter 3: Modeling and Analysis with the AADL: The Basics 31
3.1 Developing a Simple Model 31
3.2 Representing Code Artifacts 47
3.3 Modeling Dynamic Reconfigurations 51
3.4 Modeling and Analyzing Abstract Flows 55
3.5 Developing a Conceptual Model 58
3.6 Working with Component Patterns 69
Chapter 4: Applying AADL Capabilities 77
4.1 Specifying System Composition 77
4.2 Component Interactions 84
4.3 Modeling Data and Its Use 97
4.4 Organizing a Design 101
PART II: Elements of the AADL 109
Chapter 5: Defining AADL Components 113
5.1 Component Names 113
5.2 Component Categories 114
5.3 Declaring Component Types 114
5.4 Declaring a Component’s External Interfaces 118
5.5 Declaring Component Implementations 121
5.6 Summary 125
Chapter 6: Software Components 127
6.1 Thread 128
6.2 Thread Group 133
6.3 Process 135
6.4 Data 138
6.5 Subprogram 141
6.6 Subprogram Group 144
Chapter 7: Execution Platform Components 147
7.1 Processor 148
7.2 Virtual Processor 151
7.3 Memory 153
7.4 Bus 156
7.5 Virtual Bus 158
7.6 Device 160
Chapter 8: Composite and Generic Components 163
8.1 System 163
8.2 Abstract 165
Chapter 9: Static and Dynamic Architecture 169
9.1 Subcomponents 169
9.2 Modes 173
Chapter 10: Component Interactions 185
10.1 Ports and Connections 186
10.2 Data Access and Connections 210
10.3 Bus Access and Connections 213
10.4 Feature Groups and Connections 217
10.5 Abstract Features and Connections 225
10.6 Arrays and Connections 227
10.7 Subprogram Calls, Access, and Instances 232
10.8 Parameter Connections 240
Chapter 11: System Flows and Software Deployment 245
11.1 Flows 245
11.2 Binding Software to Hardware 256
Chapter 12: Organizing Models 263
12.1 Naming and Referencing Model Elements 263
12.2 Organizing Models with Packages 266
12.3 Evolving Models by Classifier Refinement 273
12.4 Prototypes as Classifier Parameters 281
Chapter 13: Annotating Models 289
13.1 Documenting Model Elements 289
13.2 Using Properties 291
Chapter 14: Extending the Language 303
14.1 Property Sets 303
14.2 Annex Sublanguages 312
Chapter 15: Creating and Validating Models 317
15.1 Model Creation 317
15.2 Model Creation Tools 319
15.3 System Validation and Generation 321
15.4 System Validation and Generation Tools 322
Appendixes 325
Appendix A: Syntax and Property Summary 327
A.1 AADL Syntax 327
A.2 Component Type and Implementation Elements 342
A.3 Basic Property Types and Type Constructors 347
A.4 AADL Reserved Words 348
A.5 AADL Properties 349
A.6 Runtime Services 418
A.7 Powerboat Autopilot System 425
Appendix B: Additional Resources 429
B.1 Modeling System Architectures 429
B.2 Cases Studies 431
Appendix C: References 435
Index 441