A Method for Component-Based and Service-Oriented Software Systems Engineering Zoran Stojanović A Method for Component-Based and Service-Oriented Software Systems Engineering PROEFSCHRIFT ter verkrijging van de graad van doctor, aan de Technische Universiteit Delft, op gezag van de Rector Magnificus Prof. dr. ir. J.T. Fokkema, voorzitter van het College voor Promoties, in het openbaar te verdedigen op dinsdag 22 februari 2005 om 15:30 uur door Zoran STOJANOVIĆ diploma engineer en magister computer science van de Universiteit van Niš, Servië en Montenegro geboren te Niš, Servië en Montenegro Dit proefschrift is goedgekeurd door de promotor: Prof. dr. H.G. Sol Toegevoegd promotor: Dr. A.N.W. Dahanayake Samenstelling promotiecommissie: Rector Magnificus, voorzitter Prof. dr. H.G. Sol, Technische Universiteit Delft, promotor Dr. A.N.W. Dahanayake, Technische Universiteit Delft, toegevoegd promotor Prof. dr. ir. A. Verbraeck, University of Maryland, USA Prof. dr. R. Welke, Georgia State University, USA Prof. dr. R.W. Wagenaar, Technische Universiteit Delft Prof. dr. ir. P.J.M. van Oosterom, Technische Universiteit Delft To my parents To Nada Published and distributed by: Zoran Stojanović Oostblok 144 Delft University of Technology 2612 PG Delft Faculty of Technology, Policy and Management The Netherlands Jaffalaan 5 Phone: +31 (0) 6 2850 2188 2628 BX Delft, The Netherlands Email: [email protected] Phone: +31 (0)15 278 8380 Fax: +31 (0)15 278 3429 English editor: Miranda Aldham-Breary Printing: Febodruk BV- www.febodruk.nl, Enschede/Utrecht Cover picture: © AV Bros, www.avbros.com Zoran Stojanović A Method for Component-Based and Service-Oriented Software Systems Engineering Doctoral Dissertation, Delft University of Technology, The Netherlands ISBN: 90-9019100-3 Keywords: Component-Based Development, Model-Driven Architecture, Service-Oriented Software Engineering Copyright © 2005 by Zoran Stojanović All rights reserved. No parts of this publication may be reproduced, stored in a retrieval system, or transmitted in any form by any means, electronic, mechanical, photocopying, recording, or otherwise, without the written permission of the author. Contents Preface........................................................................................................................xi 1 Components and Services.......................................................................................1 1.1 Background and Motivation........................................................................................1 1.1.1 Managing Complexity and Changes........................................................................1 1.1.2 Methodology Needs.................................................................................................5 1.2 Research Objective and Questions..............................................................................7 1.3 Research Approach.....................................................................................................12 1.3.1 Research philosophy..............................................................................................12 1.3.2 Research strategy...................................................................................................13 1.3.3 Research instruments.............................................................................................15 1.4 Thesis Outline..............................................................................................................16 2 The State-of-the-Art of Component-Based Software Systems Development...19 2.1 The Roots of CBD........................................................................................................19 2.2 Component Basics.......................................................................................................21 2.2.1 Component Definitions.........................................................................................21 2.2.2 Components and Objects.......................................................................................23 2.2.3 Component Interface.............................................................................................25 2.2.4 Components and Architecture...............................................................................26 2.3 Technology Standards for CBD.................................................................................29 2.3.1 Microsoft Component Model................................................................................29 2.3.2 Enterprise Java Beans Component Model (EJB)...................................................30 2.3.3 CORBA Component Model (CCM)......................................................................31 2.3.4 Summary of Implementation Models....................................................................32 2.4 Component-Based Development Methods and Approaches....................................33 2.4.1 Rational Unified Process.......................................................................................33 2.4.2 Select Perspective..................................................................................................34 2.4.3 Catalysis................................................................................................................35 2.4.4 KobrA....................................................................................................................36 2.4.5 UML Components.................................................................................................37 2.4.6 Business Component Factory................................................................................38 2.4.7 Summary of the Methods......................................................................................39 2.5 Components and Web Services..................................................................................40 2.6 Model-Driven Development and Agile Development...............................................43 2.6.1 Model-Driven Architecture...................................................................................43 2.6.2 Agile Development................................................................................................44 2.6.3 Model-driven vs. Agile Development...................................................................45 2.7 New Developments in Component Modeling............................................................46 2.7.1 EDOC Profile........................................................................................................46 2.7.2 UML 2.0................................................................................................................47 2.8 State-of-the-Art Survey Findings...............................................................................49 2.8.1 Analysis of the CBD Methods...............................................................................50 2.8.1.1 The Way of Thinking......................................................................................51 2.8.1.2 The Way of Modeling.....................................................................................54 2.8.1.3 The Way of Working......................................................................................56 2.8.1.4 The Way of Controlling.................................................................................59 2.9 CBD Method Requirements.......................................................................................60 2.9.1 Basic Method Requirements..................................................................................60 2.9.2 Requirements for Component-Orientation............................................................61 2.9.3 Evaluation of CBD methods..................................................................................62 2.9.4 Evaluation Findings...............................................................................................64 2.9.5 Conclusion.............................................................................................................66 3 Component-Based Development in Practice.......................................................67 3.1 Airport Business..........................................................................................................67 3.1.1 Airport Strategic Exploration................................................................................67 3.1.2 A Support for Airport Strategic Planning..............................................................69 3.2 The Airport Business Suite.........................................................................................70 3.2.1 The System Structure............................................................................................70 3.2.2 Prototype Implementation.....................................................................................71 3.3 Design and Implementation of the ABS....................................................................72 3.3.1 The Basic Component Architecture of the ABS....................................................72 3.3.2 Decomposition of the Main Model Components...................................................73 3.3.3 Implementation of the ABS Components..............................................................75 3.3.4 The Role of the Researcher...................................................................................76 3.4 The Role of CBD in the ABS Project.........................................................................77 3.4.1 System Flexibility and Adaptability......................................................................77 3.4.2 Project Team Organization....................................................................................78 3.4.3 Iterative and Incremental Development.................................................................79 3.5 Lessons Learned Practicing CBD..............................................................................80 3.5.1 The ABS Component-Based Approach.................................................................80 3.5.2 Evaluation of the ABS component-based development approach.........................82 3.5.3 Evaluation Findings and Conclusions...................................................................83 4 Component Concepts and Definitions.................................................................87 4.1 Basic Component Concepts........................................................................................87 4.1.1 Components and Composition...............................................................................88 4.1.2 Component Essentials...........................................................................................89 4.1.3 Different Views on Components...........................................................................92 4.2 Component Specification............................................................................................94 4.2.1 Context Viewpoint Specification...........................................................................94 4.2.2 Behavior Viewpoint Specification.........................................................................95 4.2.3 Information Viewpoint Specification....................................................................97 4.2.4 Realization Viewpoint Specification.....................................................................97 4.2.5 Component Specification vs. Interface..................................................................99 4.3 Components in the Development Lifecycle...............................................................99 4.3.1 Coupling and Cohesion.........................................................................................99 4.3.2 Component Facets...............................................................................................100 4.3.3 Component Granularity and Types......................................................................102 4.3.4 Component Reusability and Replaceability.........................................................104 4.4 Representing Web Services Using Component Concepts......................................105 4.5 Discussion and Conclusion.......................................................................................107 5 Component Modeling Techniques and Notations.............................................111 5.1 Modeling Components Using UML.........................................................................112 5.1.1 Modeling Basic Component Concepts................................................................112 5.1.2 Component Context in UML...............................................................................115 5.1.3 Component Behavior in UML.............................................................................116 5.1.4 Component Information in UML........................................................................119 5.1.5 Component Implementation in UML..................................................................121 5.1.6 Component Stereotypes.......................................................................................122 5.1.7 Component Package............................................................................................123 5.1.8 Modeling Component Collaboration...................................................................124 5.1.9 Alternative Component Modeling.......................................................................126 5.2 Textual Representation of Components..................................................................127 5.2.1 Component Modeling using IDL.........................................................................127 5.2.2 A Component Definition Language to extend IDL.............................................129 5.2.3 Related Work.......................................................................................................131 5.2.4 Concluding Remarks...........................................................................................133 5.3 Machine-Readable Representation of Components...............................................134 5.4 Summary....................................................................................................................140 6 Component-Oriented Architecture Design and Implementation....................143 6.1 Method Requirements...............................................................................................143 6.2 Related Work.............................................................................................................145 6.3 An Overview of the Method.....................................................................................149 6.4 Business Domain Model............................................................................................154 6.5. Business Component Model....................................................................................157 6.5.1 Business Requirements Analysis.........................................................................157 6.5.2 Identifying Business Components.......................................................................159 6.5.2.1 Existing Approaches for Identifying Components.......................................159 6.5.2.2 A Procedure for Identyfing Business Components......................................159 6.5.2.3 Comparison and Discussion........................................................................163 6.5.3 Specifying Business Components.......................................................................165 6.6 Application Component Model................................................................................166 6.7 Component Refactoring............................................................................................170 6.8 Implementation Component Model.........................................................................173 6.9 Model Packages and Tool Support..........................................................................177 6.10 Summary..................................................................................................................178 7 Test and Evaluation of the Method....................................................................183 7.1 Usability of the Method.............................................................................................183 7.1.1 An Introduction to the Sample System................................................................184 7.1.2 Business Component Model................................................................................187 7.1.3 Application Component Model...........................................................................195 7.1.4 Implementation Component Model.....................................................................197 7.2 Users’ Evaluation of the Method.............................................................................197 7.2.1 Case Study...........................................................................................................198 7.2.2 Survey Settings....................................................................................................199 7.2.3 Survey Questionnaires.........................................................................................200 7.2.4 Survey Summary.................................................................................................205 7.3 Added Value of the Method......................................................................................205 7.3.1 Methods comparison...........................................................................................205 7.3.2 Impact of the Method..........................................................................................208 7.4 Summary....................................................................................................................212 8 Epilogue................................................................................................................213 8.1 Research Findings.....................................................................................................213 8.1.1 Research Context.................................................................................................213 8.1.2 Main Contributions..............................................................................................216 8.1.2.1 Research Question One...............................................................................216 8.1.2.2 Research Question Two...............................................................................219 8.1.2.3 Research Question Three.............................................................................220 8.1.3 Reflection on the Research Approach.................................................................222 8.2 Further Research......................................................................................................223 References...............................................................................................................227 Appendix A UML 2.0 Modeling Notation..........................................................239 Appendix B Survey Questionnaire......................................................................241 Appendix C List of Abbreviations......................................................................247 Summary.................................................................................................................249 Samenvatting...........................................................................................................253 Biography................................................................................................................257