BUILDING RELIABLE COMPONENT-BASED SOFTWARE SYSTEMS
PART 1: THE DEFINITION AND SPECIFICATION OF COMPONENTS BASIC CONCEPTS IN CBSE INTRODUCTION COMPONENTS DIFFERENT COMPONENT DEFINITIONS OBJECTS AND COMPONENTS INTERFACES CONTRACTS PATTERNS FRAMEWORKS RELATIONS BETWEEN CONCEPTS FRAMEWORKS AND COMPONENTS FRAMEWORKS AND CONTRACTS FRAMEWORKS AND PATTERNS CONCLUSION SUMMARY REFERENCES SPECIFICATION OF SOFTWARE COMPONENTS CURRENT COMPONENT SPECIFICATION TECHNIQUES SPECIFYING THE SEMANTICS OF COMPONENTS SPECIFYING EXTRAFUNCTIONAL PROPERTIES OF COMPONENTS CONTENTS PART 2: SOFTWARE ARCHITECTURE AND COMPONENTS ARCHITECTING COMPONENT-BASED SYSTEMS ROLE OF SOFTWARE ARCHITECTURE ASSESSMENT AND EVALUATION CONFIGURATION MANAGEMENT DYNAMIC SOFTWARE ARCHITECTURES DESIGNING SOFTWARE ARCHITECTURES ARCHITECTURE DESIGN PROCESS ARCHITECTURAL STYLES ARCHITECTURE-DRIVEN COMPONENT DEVELOPMENT CUSTOM COMPONENTS PREEXISTING COMPONENTS COMPONENT-DRIVEN ARCHITECTURE DEVELOPMENT COMPONENT MODELS AND TECHNOLOGY A SHORT HISTORICAL PERSPECTIVE COMPONENT INTERFACE AND CONNECTIONS PERFORMING SERVICES TRANSPARENTLY NOTATION AND PLAN ACME ADL COMPONENTS AND PORTS CONNECTORS AND ROLES SYSTEMS AND ATTACHMENTS REPRESENTATIONS AND BINDINGS PROPERTIES, CONSTRAINTS, TYPES, AND STYLES DISCUSSION JAVABEANS COMPONENT MODEL KEY FEATURES INTERFACE OF A COMPONENT IMPLEMENTATION OF A COMPONENT COMPONENTS ASSEMBLY PACKAGING AND DEPLOYMENT COM, DCOM, MTS, AND COM+ INTERFACES AND ASSEMBLY IMPLEMENTATION FRAMEWORK LIFE CYCLE CCM INTERFACE AND ASSEMBLY ASSEMBLIES FRAMEWORK: THE CONTAINER APPROACH NET COMPONENT MODEL THE OSGI COMPONENT MODEL TWO LEVELS OF COMPONENTS INTERFACE OF A BUNDLE COMPONENT ASSEMBLY OF BUNDLE COMPONENTS IMPLEMENTATION OF A BUNDLE COMPONENT INTERFACE ASSEMBLY TEAMFLY IMPLEMENTATION PART 3: DEVELOPING SOFTWARE COMPONENTS CBD PROCESS SOFTWARE PROCESS MODELS THE SEQUENTIAL MODEL EVOLUTIONARY DEVELOPMENT UNIFIED PROCESS CBD REUSE APPROACH SEPARATION OF DEVELOPMENT PROCESSES COMPONENT-BASED SOFTWARE LIFE CYCLE DEVELOPMENT WITH COMPONENTS COMPONENT DEVELOPMENT SEMANTIC INTEGRITY IN CBD GENERAL ISSUES OF SEMANTIC CONCERN SPECIFICATION LEVELS WEAK AND STRONG CONTRACTS REQUIRED AND PROVIDED INTERFACES LEVELS OF FORMALISM FOR SEMANTIC SPECIFICATIONS AN EXAMPLE NO SEMANTICS XI INTUITIVE SEMANTICS STRUCTURED SEMANTICS EXECUTABLE SEMANTICS FORMAL SEMANTICS PHASES IN A COMPONENT’S LIFE CREATION PHASE USE PHASE MAINTENANCE PHASE A TAXONOMY FOR COMPONENT SEMANTICS ROLE-BASED COMPONENT ENGINEERING ENCOURAGING THE USE OF ROLES ROLE TECHNOLOGY USING ROLES AT THE DESIGN LEVEL USING ROLES AT THE IMPLEMENTATION LEVEL FRAMEWORKS AND ROLES BLACK-BOX AND WHITE-BOX FRAMEWORKS A MODEL FOR FRAMEWORKS DEALING WITH COUPLING PART 4: USING SOFTWARE COMPONENTS DISPELLING THE MYTH OF COMPONENT EVALUATION MULTIPLE-CRITERIA EVALUATION GENUS: PREFERENCE STRUCTURE-BASED EVALUATION SPECIES: MULTIPLE-ATTRIBUTE UTILITY EVALUATION EXPLODING THE MYTH OF COMPONENT EVALUATION COMPONENTS, ASSEMBLIES, PROPERTIES, AND DETERMINANTS DISPENSING WITH INCONSEQUENTIAL COMPONENT EVALUATION DISTINGUISHING ABSTRACT FROM CONCRETE INTERFACES PARTIAL SATISFACTION OF EVALUATION ATTRIBUTES FUNDAMENTAL EXEMPLAR INCOMPLETENESS ASSEMBLY EVALUATION AND SEARCH MULTIPLE-ATTRIBUTE EVALUATION AND BEYOND COMPONENT COMPOSITION AND INTEGRATION COMPONENT INTEGRATION FROM INTEGRATION TO COMPOSITION PREDICTABLE ASSEMBLY FROM CERTIFIABLE COMPONENTS PREDICTION-ENABLED COMPONENT TECHNOLOGY PREDICTING SYSTEM TRUSTWORTHINESS WHAT ELSE CAN BE DONE? TWO ADDITIONAL USEFUL TECHNIQUES FOR PREDICTING COMPONENT INTEROPERABILITY PART 5: SOFTWARE PRODUCT LINES COMPONENTS IN PRODUCT LINE ARCHITECTURES FROM PRODUCTS TO COMPONENTS DEVELOPING A SINGLE PRODUCT COMPONENT MARKETS ESTABLISHED REUSE PRODUCT FAMILIES AND PRODUCT LINES PRODUCT POPULATIONS THE LESSONS COMPONENT APPROACHES LIBRARIES OBJECT-ORIENTED FRAMEWORKS COMPONENT FRAMEWORKS LEGO KOALA FRAMEWORKS AS COMPONENTS THE KOALA COMPONENT MODEL REQUIREMENTS FOR KOALA BINDING AND BIND TIME KOALA COMPONENTS PROVIDES AND REQUIRES INTERFACES BINDING, GLUING, AND SWITCHES DIVERSITY INTERFACES PRODUCT-LINE ARCHITECTURE CREATING PRODUCTS MANAGING VERSIONS AND VARIANTS SUBTYPING PART 6: REAL-TIME SOFTWARE COMPONENTS COMPONENTS IN REAL-TIME SYSTEMS CHARACTERISTICS AND CHALLENGES OF REAL-TIME SYSTEMS REAL-TIME COMPONENT MODELS INFRASTRUCTURE COMPONENTS APPLICATION-SPECIFIC COMPONENT MODELS EXAMPLES OF COMPONENT MODELS DESIGNING COMPONENT-BASED REAL-TIME SYSTEMS TOP-LEVEL DESIGN DETAILED DESIGN ARCHITECTURE ANALYSIS SCHEDULING WCET VERIFICATION IMPLEMENTATION OF NEW COMPONENTS SYSTEM BUILD AND TEST COMPONENT LIBRARY COMPOSITION OF COMPONENTS EXAMPLE: REAL-TIME COMPONENTS IN RUBUS OS RUBUS EXTENSIONS FOR CBSE REUSE OF REAL-TIME COMPONENTS ON-LINE UPGRADES OF COMPONENTS TESTING REUSABLE SOFTWARE COMPONENTS IN SAFETY-CRITICAL REAL-TIME SYSTEMS REUSE AND EXHAUSTIVE TESTING REUSE AND STATISTICAL EVIDENCE COMPONENT REUSE, STATISTICAL EVIDENCE, AND FAILURE BEHAVIOR SEQUENTIAL SYSTEMS REAL-TIME SYSTEMS CONCURRENT REAL-TIME SYSTEMS PROVIDING REAL-TIME SERVICES FOR COTS COMPONENTS WINDOWS NT AS AN RTOS REAL-TIME FEATURES OF WINDOWS NT OBSERVATIONS AND RECOMMENDATIONS WINDOWS NT IN A REAL-TIME SETTING DESIGN OF THE REAL-TIME APPLICATION EXPERIMENTAL RESULTS SUMMARY OF RESULTS PART 7: CASE STUDIES—CBD IN INDUSTRIAL APPLICATIONS COMPONENT-BASED EMBEDDED SYSTEMS PROBLEM DOMAIN IMPLICATIONS FOR COMPONENT TECHNOLOGY CONTRACTUALLY SPECIFIED INTERFACES UNIT OF COMPOSITION AND INDEPENDENT DEPLOYMENT EXPLICIT CONTEXT DEPENDENCIES COMPONENT GRANULARITY REUSE ARCHITECTURE AND FRAMEWORKS LOCATION TRANSPARENCY PORTABILITY AND PLATFORM INDEPENDENCE COMPONENT WIRING EMBEDDED SYSTEMS WITH SYNCHRONOUS COMPONENTS SYNCHRONOUS APPROACH SYNCHRONOUS SOFTWARE COMPONENTS CASE STUDY DESCRIPTION ARCHITECTURE DYNAMIC BEHAVIOR INTERCOMPONENT COMMUNICATION PREREQUISITES OF EFFECTIVE DEVELOPMENT CONTENTS XVII ARCHITECTURAL SUPPORT FOR REUSE: A CASE STUDY IN INDUSTRIAL AUTOMATION INDUSTRIAL AUTOMATION SYSTEMS THE MOTIVATION FOR A PLATFORM THE ASPECT INTEGRATOR PLATFORM THE ASPECTOBJECT PARADIGM AND OBJECT ORGANIZATION THE ARCHITECTURE OF THE ASPECT INTEGRATOR PLATFORM DEVELOPING A DOMAIN-SPECIFIC APPLICATION REUSE IN AIP-BASED APPLICATIONS SOME WORDS OF CAUTION A FRAMEWORK FOR INTEGRATING BUSINESS APPLICATIONS MOTIVATION INFORMATION ORGANIZER: SUPPORT FOR BUILDING INTEGRATED SYSTEMS INFORMATION ORGANIZER BASIC PARTS BOM BOF MODELING AND INTEGRATION STRUCTURE OF ASPECTS AND OBJECTS PATTERNS CONSTRUCTED USING THE BOF BPS PRACTICAL EXPERIENCE INDUSTRIAL EXPERIENCE WITH DASSAULT SYSTÈME COMPONENT MODEL THE OM COMPONENT MODEL DEFINING AN OM COMPONENT USING OM COMPONENTS TO BUILD APPLICATIONS IMPLEMENTING OM COMPONENTS DIFFERENT KINDS OF ARCHITECTURE LESSONS LEARNED FRAMEWORK EVOLUTION ARCHITECTURE AND COMPONENTS FROM AN INDUSTRIAL PERSPECTIVE PART 1: THE DEFINITION AND SPECIFICATION OF COMPONENTS WE HAVE A GENERAL IDEA OF WHAT A COMPONENT IS, BUT IN THE SOFTWARE CONTEXT, BECAUSE WHAT WE KNOW AS COMPONENTS HAVE SO MANY VARIED FORMS, FUNCTIONS, AND CHARACTERISTICS (AS SOURCE CODE MODULES, PARTS OF AN ARCHITECTURE, PARTS OF A DESIGN, AND BINARY DEPLOYABLE EXECUTABLES), THERE ARE A CORRESPONDINGLY LARGE NUMBER OF DEFINITIONS OF A COMPONENT THIS PART OUTLINES DIFFERENT DEFINITIONS OF SOFTWARE COMPONENTS AND OTHER CONCEPTS RELATED TO COMPONENT-BASED SOFT- WARE DEVELOPMENT A COMPONENT HAS MANY DIFFERENT PARTS THAT MUST BE SPECI- FIED FOR MANY DIFFERENT PURPOSES AND THERE IS A CONSEQUENT NEED FOR DIFFERENT SPECIFICATION TECHNIQUES IT IS NOT ONLY THE COMPONENT THAT MUST BE SPECIFIED, THE ENVIRONMENT IN WHICH THE COMPONENT IS INTENDED TO FUNCTION MUST ALSO BE SPECIFIED TO PREVENT ITS MISUSE OR UNINTENDED USE FUNCTIONAL, OPERATIONAL, QUALITY, AND DESIGN SPECIFICATIONS ARE EXAMPLES OF DIFFERENT TYPES OF COMPO- NENT SPECIFICATIONS THE DESCRIPTION OF A COMPONENT IS NOT EASY IF IT IS NOT CLEAR WHAT A COMPONENT IS THUS, A WELL-FORMULATED AND CLEARLY UNDERSTOOD DEFINITION OF THE COMPONENT CONCEPT IS NEEDED THE AUTHORS OF THE FIRST CHAPTER PRESENT THE BASIC DEFINITIONS OF TERMS RELATED TO COMPONENT SPECIFICATION AND OPERATION: INTERFACE, CONTRACT, FRAME- WORK, AND PATTERN AND THE RELATIONS BETWEEN THEM A COMPONENT IS A REUSABLE UNIT OF DEPLOYMENT AND COMPOSITION THAT IS ACCESSED THROUGH AN INTERFACE AN INTERFACE SPECIFIES THE ACCESS POINTS TO A COMPONENT THE COMPONENT