| Introduction and Context | p. 1 |
| The Embedded Software Problem | p. 1 |
| Empowering Application Specialists | p. 6 |
| The Component Software Challenge | p. 9 |
| Objectives and Contributions | p. 13 |
| Attitude and Orbit Control Systems (AOCS) | p. 17 |
| AOCS Systems | p. 17 |
| AOCS Functions | p. 19 |
| AOCS Operational Modes | p. 23 |
| AOCS Units | p. 25 |
| The AOCS Software | p. 26 |
| The AOCS and Other Control Systems | p. 27 |
| Software Frameworks | p. 29 |
| Frameworks, Components, and Inheritance | p. 33 |
| A More Complete View of Software Frameworks | p. 34 |
| Frameworks and Autocoding Tools | p. 40 |
| The Methodological Problem | p. 41 |
| Design Patterns and Abstract Interfaces Vs. Concrete Objects | p. 42 |
| Support for Design Patterns and Hot-Spots | p. 43 |
| Iterative System Specification | p. 44 |
| Design and Architecture | p. 44 |
| A Methodology for Frameworks | p. 46 |
| Framelets and Implementation Cases | p. 49 |
| The Framelet Concept | p. 49 |
| Implications for the Design Process | p. 52 |
| Framelets, Design, and Architecture | p. 52 |
| Framelets and Aspect-Oriented Programming | p. 54 |
| Framelet Features | p. 56 |
| Framelet Constructs | p. 57 |
| Framelet Heuristics | p. 57 |
| Framelets in the AOCS Framework | p. 59 |
| Related Approaches | p. 60 |
| The Implementation Case Concept | p. 62 |
| The Three Roles of Implementation Cases | p. 63 |
| Implementation Case Scenarios and Extensions | p. 64 |
| Description of Implementation Cases | p. 65 |
| Framework Specification | p. 69 |
| How Important Is Specification? | p. 69 |
| An Alternative Specification Approach | p. 71 |
| An Example from the AOCS Case Study | p. 75 |
| Framework Design | p. 79 |
| Overall Approach | p. 79 |
| Alternative Approaches | p. 82 |
| The Framework Concept Definition Phase | p. 83 |
| Definition of General Design Principles | p. 84 |
| Identification of Domain Abstractions | p. 85 |
| Construction of the Framework Domain Model | p. 85 |
| Identification of Framework Hot-Spots | p. 86 |
| Identification of Framework Design Patterns | p. 86 |
| Framelet Identification | p. 87 |
| Identification of Implementation Cases | p. 87 |
| Identification of Alternative Solutions | p. 87 |
| Framelet Concept Definition | p. 87 |
| Identification of Exported Interfaces and Implementations | p. 88 |
| Identification of Framelet Hot-Spots | p. 88 |
| Definition of Applicable Design Patterns | p. 89 |
| Definition of Framelet Contribution to the Framework | p. 89 |
| Definition of Framelet Contribution to Reusability | p. 89 |
| Framelet Architectural Definition | p. 90 |
| Definition of Framelet Constructs | p. 90 |
| Definition of Framelet Hot-Spots | p. 91 |
| Definition of Framelet Functionalities | p. 91 |
| Framework Design Description | p. 92 |
| Framework Concept Definition | p. 92 |
| Framelet Concept Definition | p. 92 |
| Framelet Architectural Definition | p. 94 |
| Overview of Design Description Techniques | p. 94 |
| Framelet Interactions | p. 95 |
| Examples from AOCS Case Study | p. 96 |
| The User's Perspective | p. 99 |
| A Reuse-Driven Development Process | p. 99 |
| The Functionality Concept | p. 101 |
| Functionality Types | p. 102 |
| Mapping Functionalities to Architectural Constructs | p. 104 |
| Completeness of Description | p. 105 |
| Mapping Requirements to Functionalities | p. 106 |
| Functionalities in the AOCS Framework | p. 108 |
| Alternative Approaches | p. 108 |
| General Structure of the AOCS Framework | p. 111 |
| The RTOS Example | p. 111 |
| The Lesson for the AOCS | p. 113 |
| Telemetry Management in the AOCS Framework | p. 115 |
| Controller Management in the AOCS Framework | p. 117 |
| The Manager Meta-pattern | p. 120 |
| Overall Structure | p. 121 |
| Architectural Infrastructure | p. 123 |
| Hierarchies of Design Patterns | p. 123 |
| The Framework Design Process | p. 125 |
| From Design to Architecture | p. 126 |
| Related Work | p. 128 |
| General Design Principles | p. 131 |
| Boundary Conditions | p. 131 |
| An Object-Oriented Framework | p. 131 |
| A Component-Based Framework | p. 132 |
| Delegation of Responsibility | p. 133 |
| Multiple Implementation Inheritance | p. 133 |
| External Interfaces | p. 133 |
| Basic Classes | p. 133 |
| Time Management | p. 134 |
| Language Selection | p. 135 |
| Execution Time Predictability | p. 135 |
| Scheduling | p. 136 |
| A Framelet-Based Framework | p. 138 |
| The System Management Framelet | p. 141 |
| The System Management Design Pattern | p. 141 |
| The System Reset Function | p. 142 |
| The System Configuration Check Function | p. 143 |
| Storage of Configuration Data | p. 144 |
| Reusability | p. 144 |
| The Object Monitoring Framelet | p. 147 |
| Properties and Property Objects | p. 147 |
| Change Objects | p. 148 |
| The Monitoring Design Patterns | p. 150 |
| The Direct Monitoring Design Pattern | p. 150 |
| The Monitoring through Change Notification Design Pattern | p. 151 |
| Implementation Case Example-1 | p. 153 |
| Implementation Case Example-2 | p. 154 |
| Alternative Solutions | p. 155 |
| Reusability | p. 156 |
| The Operational Mode Management Framelet | p. 159 |
| The Mode Management Design Pattern | p. 160 |
| Mode Change Actions | p. 163 |
| Coordination of Operational Mode Changes | p. 163 |
| AOCS Mission Mode Manager | p. 164 |
| Reusability | p. 165 |
| The Intercomponent Communication Framelet | p. 167 |
| The Shared Event Design Pattern | p. 167 |
| The Shared Data Design Pattern | p. 169 |
| AOCS Data | p. 170 |
| Data Pools | p. 173 |
| Implementation Case Example-1 | p. 174 |
| Implementation Case Example-2 | p. 175 |
| Implementation Case Example-3 | p. 177 |
| Alternative Implementations | p. 178 |
| Reusability | p. 180 |
| The Sequential Data Processing Framelet | p. 183 |
| Control Channels | p. 184 |
| The Control Channel Design Pattern | p. 186 |
| Implementation Case Example | p. 189 |
| Alternative Solutions | p. 190 |
| Reusability | p. 192 |
| The AOCS Unit Framelet | p. 193 |
| Abstract Unit Model | p. 194 |
| The AocsUnit Class | p. 197 |
| The AOCS Unit Housekeeping and Functional Interfaces | p. 198 |
| Unit Triggers | p. 200 |
| Hardware Unit Components | p. 202 |
| Fictitious AOCS Units | p. 203 |
| The Fictitious Unit Design Pattern | p. 204 |
| Implementation Case Example | p. 205 |
| Reusability | p. 207 |
| The Reconfiguration Management Framelet | p. 209 |
| Some Definitions | p. 209 |
| The Reconfiguration Management Design Pattern | p. 210 |
| Intersection and Nesting of Reconfiguration Groups | p. 213 |
| Direct Access to Redundant Components | p. 214 |
| Preservation of Configuration Data | p. 215 |
| Reusability | p. 215 |
| The Manoeuvre Management Framelet | p. 217 |
| Manoeuvre Components | p. 217 |
| The Manoeuvre Design Pattern | p. 218 |
| Manoeuvre Initiation | p. 220 |
| Alternative Solution | p. 220 |
| Reusability | p. 221 |
| The Failure Detection Management Framelet | p. 223 |
| Overall Approach | p. 223 |
| Failure Detection Checks | p. 224 |
| Consistency Checks | p. 224 |
| Property Monitoring | p. 225 |
| The Failure Detection Design Pattern | p. 227 |
| Alternative Approaches | p. 228 |
| Failure Isolation | p. 228 |
| Reusability | p. 230 |
| The Failure Recovery Management Framelet | p. 233 |
| Failure Recovery Actions | p. 233 |
| Failure Recovery Strategy | p. 234 |
| Failure Recovery Design Pattern | p. 235 |
| Implementation Case Example-1 | p. 237 |
| Implementation Case Example-2 | p. 239 |
| Alternative Implementation | p. 241 |
| Reusability | p. 241 |
| The Telecommand Management Framelet | p. 243 |
| The Telecommand Management Design Pattern | p. 243 |
| The Telecommand Transaction Design Pattern | p. 246 |
| Telecommand Loading | p. 247 |
| Implementation Considerations | p. 249 |
| Implementation Case Example | p. 250 |
| Reusability | p. 251 |
| The Telemetry Management Framelet | p. 253 |
| The Telemetry Management Design Pattern | p. 253 |
| Implementation Case Example | p. 256 |
| Functionality List Example | p. 257 |
| Alternative Implementation | p. 260 |
| Reusability | p. 261 |
| The Controller Management Framelet | p. 263 |
| The Controller Design Pattern | p. 263 |
| The Controller Abstraction | p. 264 |
| Implementation Case Example | p. 266 |
| Reusability | p. 268 |
| The Framework Instantiation Process | p. 271 |
| Step-by-Step Instantiation | p. 271 |
| Framework Overheads | p. 276 |
| Appendix | p. 279 |
| References | p. 285 |
| Index | p. 291 |
| Table of Contents provided by Publisher. All Rights Reserved. |