Skip to:Content
|
Bottom
Cover image for Building reliable component-based software systems
Title:
Building reliable component-based software systems
Publication Information:
Norwood, MA : Artech House, 2002
ISBN:
9781580533270

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010020187 QA76.76.C66 B85 2002 Open Access Book Book
Searching...

On Order

Summary

Summary

CBSE (component-based software engineering) is the emerging discipline of the development of software components and systems incorporating such components. This resource provides a practical guide to building reliable component-based software systems. It aims to give software-development professionals the guidance they need to effectively manage complex software through the integration of pre-existing components. Moreover, the book discusses the benefits and risks to be considered when developing components and systems using components.


Table of Contents

Prefacep. xxi
Organization of This Bookp. xxii
Who Should Read This Book?p. xxiii
How to Use This Bookp. xxiv
Web Sitep. xxiv
Acknowledgmentsp. xxiv
Introductionp. xxvii
Component-Based Software Engineeringp. xxix
Challenges of CBSEp. xxx
Components in Reliable Systemsp. xxxiii
Referencesp. xxxvi
Part 1 The Definition and Specification of Componentsp. 1
1 Basic Concepts in CBSEp. 3
Introductionp. 3
Componentsp. 4
Different Component Definitionsp. 5
Objects and Componentsp. 8
Interfacesp. 9
Contractsp. 10
Patternsp. 12
Frameworksp. 14
Relations Between Conceptsp. 16
Frameworks and Componentsp. 17
Frameworks and Contractsp. 18
Frameworks and Patternsp. 18
Conclusionp. 19
Summaryp. 20
Referencesp. 21
2 Specification of Software Componentsp. 23
Introductionp. 23
Current Component Specification Techniquesp. 24
Specifying the Semantics of Componentsp. 27
Specifying Extrafunctional Properties of Componentsp. 34
Summaryp. 37
Referencesp. 37
Part 2 Software Architecture and Componentsp. 39
3 Architecting Component-Based Systemsp. 41
Introductionp. 41
Role of Software Architecturep. 42
Assessment and Evaluationp. 42
Configuration Managementp. 43
Dynamic Software Architecturesp. 44
Designing Software Architecturesp. 44
Architecture Design Processp. 45
Architectural Stylesp. 46
Architecture-Driven Component Developmentp. 49
Custom Componentsp. 50
Preexisting Componentsp. 50
Component-Driven Architecture Developmentp. 51
Summaryp. 53
Referencesp. 54
4 Component Models and Technologyp. 57
Introductionp. 57
A Short Historical Perspectivep. 58
Component Interface and Connectionsp. 59
Performing Services Transparentlyp. 60
Notation and Planp. 61
Acme ADLp. 62
Components and Portsp. 63
Connectors and Rolesp. 63
Systems and Attachmentsp. 64
Representations and Bindingsp. 64
Properties, Constraints, Types, and Stylesp. 65
Discussionp. 65
JavaBeans Component Modelp. 66
Key Featuresp. 66
Interface of a Componentp. 67
Implementation of a Componentp. 68
Components Assemblyp. 69
Packaging and Deploymentp. 70
COM, DCOM, MTS, and COM+p. 71
Interfaces and Assemblyp. 71
Implementationp. 71
Frameworkp. 72
Life Cyclep. 72
CCMp. 73
Interface and Assemblyp. 73
Assembliesp. 75
Implementation of a Componentp. 75
Framework: The Container Approachp. 76
Life Cyclep. 77
.NET Component Modelp. 77
Interfaces and Assemblyp. 77
Implementationp. 78
Frameworkp. 78
Life Cyclep. 79
The OSGI Component Modelp. 79
Two Levels of Componentsp. 79
Interface of a Bundle Componentp. 80
Assembly of Bundle Componentsp. 80
Implementation of a Bundle Componentp. 83
Summaryp. 83
Interfacep. 83
Assemblyp. 84
Implementationp. 84
Frameworkp. 84
Conclusionp. 85
Referencesp. 86
Part 3 Developing Software Componentsp. 87
5 CBD Processp. 89
Introductionp. 89
Software Process Modelsp. 90
The Sequential Modelp. 91
Evolutionary Developmentp. 92
Unified Processp. 95
CBDp. 97
Reuse Approachp. 97
Separation of Development Processesp. 98
Component-Based Software Life Cyclep. 100
Development with Componentsp. 101
Component Developmentp. 108
Summaryp. 111
Referencesp. 111
6 Semantic Integrity in CBDp. 115
Introductionp. 115
General Issues of Semantic Concernp. 116
Specification Levelsp. 117
Weak and Strong Contractsp. 117
Required and Provided Interfacesp. 118
Levels of Formalism for Semantic Specificationsp. 118
An Examplep. 119
No Semanticsp. 119
Intuitive Semanticsp. 120
Structured Semanticsp. 121
Executable Semanticsp. 122
Formal Semanticsp. 124
Phases in a Component's Lifep. 126
Creation Phasep. 126
Use Phasep. 127
Maintenance Phasep. 128
A Taxonomy for Component Semanticsp. 128
Summaryp. 130
Referencesp. 131
7 Role-Based Component Engineeringp. 135
Introductionp. 135
Encouraging the Use of Rolesp. 138
Role Technologyp. 142
Using Roles at the Design Levelp. 142
Using Roles at the Implementation Levelp. 143
Frameworks and Rolesp. 145
Black-Box and White-Box Frameworksp. 146
A Model for Frameworksp. 148
Dealing with Couplingp. 150
Summaryp. 152
Referencesp. 152
Part 4 Using Software Componentsp. 155
8 Dispelling the Myth of Component Evaluationp. 157
Introductionp. 157
Multiple-Criteria Evaluationp. 160
Genus: Preference Structure-Based Evaluationp. 160
Species: Multiple-Attribute Utility Evaluationp. 166
Exploding the Myth of Component Evaluationp. 167
Components, Assemblies, Properties, and Determinantsp. 168
Dispensing with Inconsequential Component Evaluationp. 169
Distinguishing Abstract from Concrete Interfacesp. 170
Partial Satisfaction of Evaluation Attributesp. 171
Fundamental Exemplar Incompletenessp. 172
Assembly Evaluation and Searchp. 173
Multiple-Attribute Evaluation and Beyondp. 175
Summaryp. 176
Referencesp. 176
9 Component Composition and Integrationp. 179
Introductionp. 179
Component Integrationp. 181
From Integration to Compositionp. 182
Predictable Assembly from Certifiable Componentsp. 185
Prediction-Enabled Component Technologyp. 186
Summaryp. 189
Referencesp. 190
10 Predicting System Trustworthinessp. 193
Introductionp. 193
What Else Can Be Done?p. 195
Two Additional Useful Techniques for Predicting Component Interoperabilityp. 200
Summaryp. 202
Referencesp. 203
Part 5 Software Product Linesp. 205
11 Components in Product Line Architecturesp. 207
Introductionp. 207
From Products to Componentsp. 208
Developing a Single Productp. 209
Component Marketsp. 209
Established Reusep. 211
Product Families and Product Linesp. 212
Product Populationsp. 213
The Lessonsp. 214
Component Approachesp. 215
Librariesp. 215
Object-Oriented Frameworksp. 216
Component Frameworksp. 217
Legop. 218
Koalap. 219
Frameworks as Componentsp. 219
Summaryp. 220
Conclusionp. 220
Referencesp. 220
12 The Koala Component Modelp. 223
Introductionp. 223
Requirements for Koalap. 223
Binding and Bind Timep. 224
Koala Componentsp. 226
Provides and Requires Interfacesp. 227
Binding, Gluing, and Switchesp. 228
Diversity Interfacesp. 229
Product-Line Architecturep. 229
Creating Productsp. 233
Managing Versions and Variantsp. 233
Subtypingp. 234
Conclusionp. 235
Referencesp. 236
Part 6 Real-Time Software Componentsp. 237
13 Components in Real-Time Systemsp. 239
Introductionp. 239
Characteristics and Challenges of Real-Time Systemsp. 241
Real-Time Component Modelsp. 243
Infrastructure Componentsp. 244
Application-Specific Component Modelsp. 246
Examples of Component Modelsp. 246
Designing Component-Based Real-Time Systemsp. 249
Top-Level Designp. 250
Detailed Designp. 251
Architecture Analysisp. 251
Schedulingp. 251
WCET Verificationp. 252
Implementation of New Componentsp. 253
System Build and Testp. 254
Component Libraryp. 254
Composition of Componentsp. 255
Example: Real-Time Components in Rubus OSp. 257
Rubusp. 257
Extensions for CBSEp. 258
Reuse of Real-Time Componentsp. 259
On-Line Upgrades of Componentsp. 260
Summaryp. 261
Referencesp. 262
14 Testing Reusable Software Components in Safety-Critical Real-Time Systemsp. 265
Introductionp. 265
Reuse and Exhaustive Testingp. 267
Reuse and Statistical Evidencep. 270
Component Reuse, Statistical Evidence, and Failure Behaviorp. 270
Sequential Systemsp. 272
Real-Time Systemsp. 274
Concurrent Real-Time Systemsp. 276
Summaryp. 278
Referencesp. 278
15 Providing Real-Time Services for COTS Componentsp. 281
Introductionp. 281
Windows NT as an RTOSp. 283
Real-Time Features of Windows NTp. 285
Observations and Recommendationsp. 289
Windows NT in a Real-Time Settingp. 290
Design of the Real-Time Applicationp. 291
Experimental Resultsp. 293
Summary of Resultsp. 296
Conclusionp. 296
Referencesp. 298
Part 7 Case Studies--CBD in Industrial Applicationsp. 299
16 Component-Based Embedded Systemsp. 303
Introductionp. 303
Problem Domainp. 304
Implications for Component Technologyp. 305
Contractually Specified Interfacesp. 306
Unit of Composition and Independent Deploymentp. 307
Explicit Context Dependenciesp. 308
Component Granularityp. 308
Reusep. 309
Architecture and Frameworksp. 310
Location Transparencyp. 310
Portability and Platform Independencep. 310
Component Wiringp. 311
Embedded Systems with Synchronous Componentsp. 311
Synchronous Approachp. 311
Synchronous Software Componentsp. 312
Case Study Descriptionp. 313
Architecturep. 314
Dynamic Behaviorp. 316
Intercomponent Communicationp. 317
Prerequisites of Effective Developmentp. 319
Summaryp. 322
Referencesp. 322
17 Architectural Support for Reuse: A Case Study in Industrial Automationp. 325
Introductionp. 325
Industrial Automation Systemsp. 326
The Motivation for a Platformp. 329
The Aspect Integrator Platformp. 331
The AspectObject Paradigm and Object Organizationp. 332
The Architecture of the Aspect Integrator Platformp. 333
Developing a Domain-Specific Applicationp. 346
Reuse in AIP-Based Applicationsp. 348
Some Words of Cautionp. 350
Summaryp. 351
Referencesp. 352
18 A Framework for Integrating Business Applicationsp. 355
Introductionp. 355
Motivationp. 356
Information Organizer: Support for Building Integrated Systemsp. 358
Information Organizer Basic Partsp. 358
BOMp. 359
BOFp. 362
Modeling and Integrationp. 363
Structure of Aspects and Objectsp. 364
Patterns Constructed Using the BOFp. 365
BPSp. 368
Practical Experiencep. 370
Summaryp. 371
Referencesp. 372
19 Industrial Experience with Dassault Systeme Component Modelp. 375
Introductionp. 375
The OM Component Modelp. 376
Defining an OM Componentp. 377
Using OM Components to Build Applicationsp. 377
Implementing OM Componentsp. 378
Discussionp. 380
Different Kinds of Architecturep. 381
Lessons Learnedp. 382
Framework Evolutionp. 382
Architecture and Components from an Industrial Perspectivep. 383
Summaryp. 384
Referencesp. 385
Contributorsp. 387
About the Authorsp. 388
Indexp. 399
Go to:Top of Page