You are previewing Designing Software–Intensive Systems: Methods and Principles.
O'Reilly logo
Designing Software–Intensive Systems: Methods and Principles

Book Description

Designing Software-Intensive Systems: Methods and Principles addresses the complex issues associated with software engineering environment capabilities for designing real-time embedded software systems. This groundbreaking work provides relevant theoretical foundations, principles, methodologies, frameworks, and the latest research findings in the field of software-intensive systems.

Table of Contents

  1. Copyright
  2. Preface
    1. SECTION I
    2. SECTION II
    3. SECTION III
    4. SECTION IV
    5. SECTION V
  3. Acknowledgment
  4. I. Process Support Specification and Modeling Techniques
    1. I. Differentiated Process Support for Large Software Projects
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
        1. Software Process and Software Process Modeling
        2. Related Work
      4. PROCESS SUPPORT IN DIFFERENT LEVELS IN A SOFTWARE DEVELOPMENT ORGANISATION
        1. Individual Process
        2. Group Process
          1. Cooperative Software Agents
          2. Role-Based Process Environments
        3. Team Process
        4. Project Process
        5. Organisational Issues
      5. CREATION OF A MULTILEVEL PROCESS MODEL
        1. Top-Down Approach
        2. Bottom-Up Approach
        3. What Approach to Choose?
      6. CONCLUSION
      7. FUTURE RESEARCH DIRECTIONS
      8. REFERENCES
      9. ADDITIONAL READING
    2. II. Modeling Techniques for Software–Intensive Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. EXAMPLE
        1. Convoy
        2. Logistics
      4. BACKGROUND
        1. Role of Modeling in the Different Development Phases
        2. Typical Modeling Tasks
      5. MODELING APPROACHES
        1. Business Process Modeling
          1. Discussion
        2. Software Engineering
          1. Component Diagrams
          2. Class Diagrams
          3. Statechart Diagrams
          4. Activity Diagrams
            1. Interaction Diagrams
          5. Discussion
        3. Control Engineering
            1. Adaptive Control
            2. Reconfiguration
          1. Block Diagrams
            1. Example
            2. Reconfiguration
          2. Discussion
        4. Discussion and Summary
      6. INTEGRATED MODELING APPROACHES
        1. SysML
          1. Requirements
          2. Blocks
          3. Constraints
          4. Activities
          5. Allocation
          6. Further Diagrams
        2. MECHATRONIC UML
            1. Real-Time Coordination Patterns
            2. Components
            3. Hybrid Embedding
          1. Modeling Failure Propagation and Hazards
        3. Discussion and Summary
      7. FUTURE TRENDS
      8. CONCLUSION
      9. ACKNOWLEDGMENT
      10. REFERENCES
      11. Additional Reading
      12. ENDNOTES
    3. III. Service Orientation and Software–Intensive Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. SOFTWARE CONFEDERATIONS
      4. SOURCES OF SERVICE ORIENTATION
      5. INTERFACES OF APPLICATION SERVICES
      6. FRONT-END GATES (LOOSELY COUPLED PROXIES OR ADAPTERS)
        1. User-Oriented Interfaces, Front-End Gates, and Standards
      7. COMPOSITE SERVICES
      8. PROCESS MANAGERS
      9. BUSINESS PROCESSES AND DATA STORES
      10. ISSUES
      11. SERVICE ORIENTATION IS BOTH SIMPLE AND COMPLEX
      12. CONCLUSION
      13. FUTURE RESEARCH DIRECTIONS
      14. ACKNOWLEDGMENT
      15. REFERENCES
      16. ADDITIONAL READING
      17. ENDNOTES
  5. II. Requirements, Changes, and Tracability
    1. IV. From Scenarios to Requirements in Mobile Client–Server Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
        1. Physical Mobility
        2. Mobile Devices
        3. Wireless Communication
        4. Operations of Mobile Clients
        5. Related Work
      4. MOWAHS REQUIREMENT ANALYSIS FRAMEWORK
        1. Requirement Analysis Process
          1. Step 1: Elicit Scenarios
          2. Step 2: Scenario Analysis
          3. Step 3: Requirement Analysis
      5. CONCLUSION
      6. FUTURE RESEARCH DIRECTIONS
      7. REFERENCES
      8. ADDITIONAL READING
      9. ENDNOTES
    2. V. Evolution in Model–Driven Software Product–Line Architectures
      1. ABSTRACT
      2. INTRODUCTION
        1. Motivating the Need for Model-Driven Software Product-Line Architectures
        2. Challenges with Evolution of Model-Driven Software Product-Line Architectures
        3. Solution → Systematic PLA Evolution with Automated Domain Model Transformation
      3. RELATED WORK
        1. Graphical Modeling Approaches
          1. Summary
        2. Text-Based Modeling Approaches
          1. Summary
        3. Hybrid Approaches
          1. Summary
      4. MDE-BASED PRODUCT LINE ARCHITECTURE FOR DRE SYSTEMS
        1. Commercial-Off-The-Shelf (COTS) middleware and OS platforms
        2. Component Frameworks
        3. Domain-Specific Modeling Languages (DSMLs) and Patterns
      5. OVERVIEW OF THE BOEING BOLD STROKE PLA AND EQAL MDE TOOL
        1. Overview of Boeing Bold Stroke Product Line Architecture
        2. Overview of the EQAL MDE Tool
      6. SUPPORT MDE-BASED PLA EVOLUTION WHEN FACING DOMAIN EVOLUTION
        1. Challenges Stemming from Capturing New Requirements into Existing MDE-based PLAs for DRE Systems
          1. Context
          2. Problem: New Requirements Impact Metamodels and Component Frameworks
          3. Solution: Evolve a PLA Systematically Through Framework and Metamodel Enhancement
            1. Component Framework Evolution
            2. DSML Evolution
        2. Challenges Stemming from Migrating Existing Domain Models with MDE-Based PLA Evolution
          1. Context
          2. Problem: Existing Domain Model Evolution Techniques Require Excessive Human Intervention
          3. Solution: Tool-Supported Domain Model Migration
            1. Integration of Syntactic-Based and Semantic-Based Domain Model Evolution
          4. Applying the Solution to the EQAL Case Study
      7. CONCLUSION
      8. FUTURE RESEARCH DIRECTIONS
        1. Emerging Interest in Domain-Specific Modeling
        2. Future Research Directions of MDE Tools for DRE Systems
        3. Future Research Directions of Component Middleware for DRE Systems
      9. ACKNOWLEDGMENT
      10. REFERENCES
      11. ADDITIONAL READING
    3. VI. Traceability in Model–Driven Software Development
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
        1. Traceability in Software Development
        2. Integration of Traceability into Development Tools
        3. The Traceability Problems
      4. TRACEABILITY AS A TOOL IN SOFTWARE SYSTEM DEVELOPMENT AND MANAGEMENT
        1. Requirements to a Traceability Solution
        2. Roles and Artifacts
        3. Traceability Management Services
        4. Traceability User Services
      5. A TRACEABILITY SOLUTION
        1. Traceability Metamodel
        2. Traceability System
        3. Traceability Use
      6. TRACEABILITY IN PRACTICE
        1. Process for Using the Traceability Solution
        2. Implementing Traceability in Modeling Tools
          1. Integration of Traceability Services in Tools
          2. Traceability in Model to Model Transformation
          3. Traceability in Model to Text Transformation
          4. Sharing Traceability Information Between Tools
        3. Traceability Example: busCatcher System
          1. BusCatcher Requirements
          2. BusCatcher TraceModel
          3. BusCatcher Trace Creation
          4. BusCatcher Trace Analysis
            1. Requirements Coverage Analysis
            2. Requirements Orphan Analysis
            3. Change Impact Analysis
      7. FUTURE RESEARCH DIRECTIONS
      8. CONCLUSION
      9. REFERENCES
      10. ADDITIONAL READING
  6. III. Software Architectures and Architectural Alternatives
    1. VII. Choosing Basic Architectural Alternatives
      1. ABSTRACT
      2. INTRODUCTION
        1. Essential Difficulties in Engineering Software-Intensive Systems
        2. A Hierarchy of System Complexity
        3. The Need for a System Architecture
      3. BACKGROUND: SYSTEM ENGINEERING
        1. System Development: Process and Product
        2. Properties of Software-Intensive Systems
          1. Product Quality Properties
        3. Dependability Properties
          1. Quality in Use Properties
          2. Systems Engineering-Oriented Properties
          3. Project-Oriented Properties
        4. Fundamental Properties of Software-Intensive (Embedded) Systems
      4. BASIC ARCHITECTURAL ALTERNATIVES
        1. The Notion of Basic Architectural Alternatives
        2. Dimensions of Basic Architectural Alternatives
        3. Observations on basic Architectural Alternatives
        4. Fundamental Elasticity Property of Basic Architectural Alternatives
        5. Fundamental Reversibility Property of Basic Architectural Alternatives
        6. Fundamental Uniformity Property of Basic Architectural Alternatives
        7. Fundamental Method Applicability Property of Basic Architectural Alternatives
      5. SPECIFIC EXAMPLES OF BASIC ARCHITECTURAL ALTERNATIVES
        1. Enactment Time (On-Demand-Proactive)
          1. Computation of Functions vs. Table Look-Up
          2. Search vs. Systematic Archiving
          3. Binding of Variables: Latest-Earliest
          4. Interpretation/Compilation
          5. Garbage Collection vs. Storage Management
          6. Testing vs. Formal Verification
          7. Error Detection vs. Error Prevention
          8. Optimistic vs. Pessimistic Updating
        2. Location (Local-Remote)
          1. Remote Function Call vs. Program Fetch
          2. Embedding vs. Linking, Copying vs. Pointing
          3. Linear vs. Parallel Execution
          4. Vertical Migration (Near To/Remote From Hardware Level)
        3. Granularity (Coarse-Fine)
          1. Lock Size (Small-Large)
          2. Accessing Multiple Remote Data (Many-Few)
          3. Choice of Page Size (Large-Small)
          4. Module Size (Big-Small)
          5. Sequential vs. Pseudo-Parallel Execution
          6. CISC vs. RISC
          7. Data Sensitivity
        4. Control (Central-Distributed)
          1. Centralized vs. Networking
          2. Polling vs. Interrupt
          3. Check-and-Do vs. Try-and-Abort
          4. Master/Slave vs. Democratic
          5. Direct vs. Indirect Addressing
          6. Automation and Task Distribution (Human-Automatic)
          7. Control of Car Driving (Human-Computer)
          8. Short-Term–Long-Term Safety-Critical Decisions
          9. Overriding Safety-Critical Machine Decisions by Humans
          10. Work-Sharing in Office Work (Manual-Automatic)
          11. Software Agents
        5. Multiple Classification
      6. BASIC ARCHITECTURAL ALTERNATIVES AND THE DESIGN OF REAL SYSTEMS
        1. Strategic Selection Considerations for Basic Architectural Alternatives
        2. Cross-Influences of Basic Architectural Alternatives
        3. Aggregated Contributions to System Properties
      7. EXAMPLES OF AGGREGATED INFLUENCES IN SYSTEMS ENGINEERING
        1. Information Systems: Software Modularization
        2. Car Safety: Over-Relying on Safety Measures
        3. Car Automation: Road Safety vs. Human Satisfaction
          1. Railway Service Availability: Overriding Safety or Security Measures
        4. Software Systems: Trashing
        5. Information Systems: Password Security vs. Ease of Use
        6. Information Systems Access: Enhanced Security vs. Ease of Use
        7. Aerospace Industry: Modularity and Other System Properties
        8. Radar: Data Sensitivity
        9. Networking: Connectivity vs. Security
        10. Computer Architecture: IbM System/360
      8. CONCLUSION
      9. FUTURE TRENDS
      10. FUTURE RESEARCH DIRECTIONS
      11. REFERENCES
      12. ADDITIONAL READING
        1. Systems Engineering, System Properties, System Design
        2. Architecture and Architectural Concepts
        3. Programming, Programming Languages and Translation
        4. Quality Issues
        5. Dependable, Critical, Embedded Systems
        6. Human-Computer Interaction
        7. Systems Theory
        8. Listing of Additional Reading References
    2. VIII. Architecting Virtual Reality Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
        1. Software Architectures of Existing VR-Systems
      4. ARCHITECTING VIRTUAL REALITY APPLICATIONS
        1. Architecture Development Approaches
        2. Modeling Virtual Reality Systems
      5. BUILDING A VIRTUAL REALITY CHURCH SYSTEM
        1. Process for Architecting Virtual Reality Systems
        2. Analysis of the Virtual Reality Domain
        3. System Requirements
        4. Architecting Process
        5. Architecture Evaluation
        6. Architecture Views and Documentation
      6. DISCUSSION
      7. CONCLUSION
      8. FUTURE RESEARCH DIRECTIONS
      9. REFERENCES
      10. ADDITIONAL READING
    3. IX. A Survey of Software Architecture Approaches
      1. ABSTRACT
      2. INTRODUCTION
      3. ESTABLISHED SOFTWARE ARCHITECTURE APPROACHES
        1. Software Architecture Concepts
          1. Software Architecture Views
          2. Decomposition Strategies
          3. Architecture Patterns
          4. Architecture Description Languages
        2. Software Architecture Approaches
          1. Structured
          2. Object-Oriented
      4. EMERGING SOFTWARE ARCHITECTURE APPROACHES
        1. Agent-Oriented Software Architecture
          1. Overview of Agent-Oriented Approach
          2. Survey of Agent-Oriented Architecture Approaches
            1. Agent Technologies
            2. Agent-based Software Architecture Methodologies
          3. Discussion on Agent-Oriented Architecture Approaches
        2. Aspect-Oriented Software Architecture
          1. Overview of Aspect-Oriented Approaches
          2. Survey of Aspect-Oriented Architecture Approaches
          3. Discussion on Aspect-Oriented Architecture Approaches
        3. Component-Oriented Software Architecture
          1. Overview of Component-Oriented Approaches
          2. Survey of Component-Oriented Approaches
            1. Component Technologies
            2. Component-based Software Architecture Methodologies
          3. Discussion on Component-Oriented Architecture Approaches
      5. CONCLUSION
      6. FUTURE WORK DIRECTIONS
      7. REFERENCES
      8. ADDITIONAL READING
  7. IV. Analysis, Evaluation, and Optimization
    1. X. Dynamic Analysis and Profiling of Multithreaded Systems
      1. ABSTRACT
      2. INTRODUCTION
        1. Understanding Multithreaded System Behavior
        2. Approaches to Extracting Multithreaded Behavioral Characteristics
      3. BACKGROUND
        1. Nondeterministic Behavior in Multithreaded Systems
        2. Behavioral Characteristics Relevant to Multithreaded Programs
        3. Challenges Of Multithreaded System Profiling
      4. COMPILER-BASED INSTRUMENTATION TECHNIQUES
        1. Source-Code Instrumentation
        2. Static binary-Code Instrumentation
        3. Dynamic Binary-Code Instrumentation
        4. Summary of Compiler-Based Instrumentation Techniques
      5. OPERATING SYSTEM AND MIDDLEWARE PROFILING TECHNIQUES
        1. Profiling System Call Interception
        2. Microsoft Windows Performance Counters
        3. Distributed System Profiling
          1. Monitoring of Component-Based Systems (MCBS)
          2. OVATION
        4. Summary of Operating System and Middleware Profiling Techniques
      6. VIRTUAL MACHINE PROFILING TECHNIQUES
        1. Sampling-Based VM Profiling
        2. Bytecode Counting
        3. Profiling via VM Hooks
          1. JVMTI Profiler
        4. Application Code Instrumentation
        5. Aspect-Oriented Techniques Used for Instrumentation
        6. Summary of Virtual Machine Profiling Techniques
      7. HARDWARE-BASED PROFILING TECHNIQUES
        1. On-Chip Performance Counters
        2. On-chip Debugging Interfaces and In-circuit Emulators (ICE)
        3. Summary of Hardware-based Profiling Techniques
      8. FUTURE TRENDS
        1. Increased Focus on Synergies Between Static and Dynamic Analysis Techniques and Tools
        2. Greater Emphasis on Probabilistic Assurance of Dynamic System Behavior
        3. Implicit Support for Measurement of infrastructure Software and Processors
        4. Total-System Measurement that Relates and Combines Microscopic Measurements Together to Give a Unified View of System Behavior
      9. CONCLUDING REMARKS
      10. REFERENCES
      11. ADDITIONAL READING
    2. XI. Evaluating Quality of Service for Enterprise Distributed Systems
      1. ABSTRACT
      2. INTRODUCTION
        1. Integration Challenges of SOA-Based Enterprise DRE Systems
        2. Solution Approach: System Execution Modeling Tools
      3. BACKGROUND
        1. Distributed System Emulation Testbeds
        2. System Execution Modeling (SEM) Tools
        3. Evaluation Techniques for Component Architectures
      4. MOTIVATING EXAMPLE AND CASE STUDY
      5. APPLYING NEXT-GENERATION SEM TOOLS TO SOA-BASED DRE SYSTEMS
        1. Emulating Application Behavior Using Modeling Languages
          1. Context
          2. Problem: Capturing System Behavior Using Modeling Languages
          3. Solution: Integrate Behavior Models Into Existing MDE Tools
          4. Applying the Solution to CUTS and SLICE
        2. Capturing Application behavior for Emulation
          1. Context
          2. Problem: Determining How to Emulate Application Behavior
          3. Solution: Choose Methods of Emulation that Offers Flexibility, but Meet Application Needs
          4. Applying the Solution to CUTS and SLICE
        3. Analysis of Performance Metrics for Informative Feedback of Emulation Results
          1. Context
          2. Problem: Providing Meaningful Analysis of Performance Metrics
          3. Solution: Leverage Existing Visualization Packages
          4. Applying the Solution to CUTS and SLICE
      6. EXPERIMENTAL RESULTS
        1. Specifying the behavior of the SLICE Components
        2. Emulating Application behavior to Evaluate End-to-End QoS
        3. Analyzing the Performance Results of the SLICE Scenario
        4. Summary of the Experimental Results
      7. FUTURE TRENDS
        1. Increased Use of MDE Technologies for Code Generation
        2. Increased Use of Continuous Integration Servers to Improve Software Quality
        3. J2EE and Microsoft .NET business Applications
      8. FUTURE RESEARCH DIRECTIONS
      9. CONCLUDING REMARKS
      10. REFERENCES
      11. ADDITIONAL READING
      12. ENDNOTE
    3. XII. Reducing the Complexity of Modeling Large Software Systems
      1. ABSTRACT
      2. INTRODUCTION
      3. BACKGROUND
        1. Current Modeling Languages and Tool Infrastructure
        2. Domain-Independent Modeling Languages
        3. Domain-Specific Modeling Languages
        4. Tools for Building DSMLs
        5. Constraint Checking with OCL
        6. Emerging Modeling Challenges
          1. Deriving Solutions that Meet a Global Constraint
          2. Adhering to Nonfunctional Requirements
      4. MODELING GUIDANCE
        1. Measuring Domain Complexity
        2. Key Challenges of Complex Domains
        3. Solution: Integrating Constraint Solvers and MDD Tools
        4. Modeling Assistance
          1. Local Guidance
          2. Batch Processes
        5. Transforming Nonfunctional Requirements into Constraint Satisfaction Problems
          1. Associating Modeling Actions with the Constraint Solver
        6. Constraint Solver and MDD Tool Integration Frameworks
        7. A Prolog-Based Approach to Constraint Solver Integration
          1. Transforming Models into Prolog Knowledge Bases
          2. Mapping Nonfunctional Requirements to Prolog Rules
      5. CONCLUSION
      6. FUTURE RESEARCH DIRECTIONS
        1. Capturing Design Rules
        2. Utilizing Design Information to Provide Automated Design Assistance
        3. Constraint Solver Guided Software Reuse
      7. REFERENCES
      8. ADDITIONAL READING
  8. V. Best Practices and Integrations
    1. XIII. A Domain–Specific Language for Describing Grid Applications
      1. ABSTRACT
      2. INTRODUCTION
      3. AN OVERVIEW OF GRID COMPUTING
        1. Grid Computing Background
      4. GRID USER CATEGORY CLASSIFICATION
        1. Middleware Developer
        2. Application Deployer
        3. Application Developer
        4. Resource Owner
        5. End-User
      5. GRID APPLICATION DEPLOYMENT SCENARIO
      6. APPLICATION SPECIFICATION LANGUAGE
        1. Motivation and Background
        2. Description of the Language
        3. Structure of the Language
          1. Application Name and Description
          2. Installation Requirements
          3. Job Invocation Requirements
          4. Hints
        4. Example ASL Documents
          1. Application Descriptions
          2. ASL Document Snippets
          3. Application of ASL Documents
      7. MODELING WIZARDS TO GENERATE ASL
        1. Domain-Specific Modeling: Reducing the Effects of Platform Dependency
        2. ASL Wizard Metamodel
        3. Generating a Wizard
      8. FUTURE TRENDS
      9. CONCLUSION
      10. ACKNOWLEDGMENT
      11. REFERENCES
      12. ADDITIONAL READING
    2. XIV. A Framework for Understanding the Open Source Revolution1
      1. ABSTRACT
      2. INTRODUCTION
      3. WHAT IS THE OPEN SOURCE REVOLUTION?
        1. Social Movement
        2. Collaborative Development
        3. Economics Driven
      4. OPEN SOURCE CHARACTERISTICS
      5. BREADTH OF OPEN SOURCE
      6. FRAMEWORK FOR A REVOLUTION
        1. Theory of Disruptive Innovations
        2. Cutting Edge to Commodity
        3. Limit on Software as Intellectual Property
        4. Software as a Service
        5. Darwin at Work
        6. Superior Process of Open Source
      7. A NEW BUSINESS MODEL
        1. Software "Derivatives"
        2. Software as a Service Industry
        3. Software as a Community Core Expertise
      8. OPEN SOURCE FRAMEWORK: BENEFITS PROVIDED AND SIGNIFICANCE FOR DESIGNING SOFTWARE INTENSIVE SYSTEMS
        1. Open Source to Reduce Costs
        2. Open Source to Increase Control
      9. LOOKING AT ALTERNATIVES
        1. Alternatives for the Users
        2. Alternatives for the Software Developers
      10. FUTURE RESEARCH DIRECTIONS
        1. Impact of System Architecture on the Success of Open Source Projects
        2. Impact of Organizational Model on the Success of Open Source Projects
        3. Contributor Participation as Leading Indicator of Success
      11. CONCLUSION
      12. REFERENCES
      13. ADDITIONAL READING
      14. ENDNOTES
    3. XV. Quality Metrics for Evaluating Data Provenance
      1. ABSTRACT
      2. INTRODUCTION
      3. LITERATURE REVIEW
        1. Domains Necessitating Provenance
        2. Computational Sciences Domain
        3. Business Domain
        4. Academic Research Domain
        5. Mass Communication
        6. Provenance System Frameworks
      4. DATA PROVENANCE: ISSUES AND PROBLEMS
        1. Limited Scope of Existing Data Provenance Techniques/Systems
      5. QUALITY METRICS TO QUANTIFY DATA PROVENANCE
        1. Nonmodal Parameters for Provenance Quality determination
        2. Quality Metrics for Quality Parameters
      6. CONCLUSION AND FUTURE RESEARCH DIRECTIONS
      7. REFERENCES
      8. ADDITIONAL READING
    4. XVI. System Integration Using Model–Driven Engineering
      1. ABSTRACT
      2. INTRODUCTION
        1. Functional Integration of Component Middleware
        2. Solution Approach: Functional Integration of Systems using (Meta)Model Composition
      3. RELATED WORK
      4. FUNCTIONAL INTEGRATION CASE STUDY
        1. Shipboard Enterprise Distributed System Architecture
        2. Functional Integration Challenges
          1. Challenge 1: Choosing an Appropriate Level of Integration
          2. Challenge 2: Reconciling Differences in Interface Specifications
          3. Challenge 3: Managing Differences in Implementation Technologies
          4. Challenge 4: Managing Deployment of Subsystems
          5. Challenge 5. Dealing with Interoperability Issues
      5. DSML COMPOSITION USING GME
      6. INTEGRATING SYSTEMS WITH SIML
        1. The Design and Functionality of SIML
          1. Applying GME's (Meta)Model Composition Features to SIML
          2. Applying SIML to Compose CCM and Web Services
        2. Resolving Functional Integration Challenges using SIML
          1. Resolving Challenge 1: Choosing an Appropriate Level of Integration
          2. Resolving Challenge 2: Reconciling Differences in Interface Specifications
          3. Resolving Challenge 3: Managing Differences in Implementation Technologies
          4. Resolving Challenge 4: Managing Deployment of Subsystems
          5. Resolving Challenge 5: Dealing with Interoperability Issues
      7. CONCLUDING REMARKS
      8. FUTURE RESEARCH DIRECTIONS
          1. Increased Focus on Deployment and Configuration of Systems
          2. Integration of Systems Using Heterogeneous Component Technologies
          3. MDE-Based Integration
      9. REFERENCES
      10. ADDITIONAL READING
      11. ENDNOTES
  9. Compilation of References
  10. About the Contributors