Read more
Over the past 20 years, software architectures have significantly contributed to the development of complex and distributed systems. Nowadays, it is recognized that one of the critical problems in the design and development of any complex software system is its architecture, i.e. the organization of its architectural elements. Software Architecture presents the software architecture paradigms based on objects, components, services and models, as well as the various architectural techniques and methods, the analysis of architectural qualities, models of representation of architectural templates and styles, their formalization, validation and testing and finally the engineering approach in which these consistent and autonomous elements can be tackled.
List of contents
Preface ix
Chapter 1. Object-Oriented, Component-Based, Agent-Oriented and Service-Oriented Paradigms in Software Architectures 1
Abdelkrim AMIRAT, Anthony HOCK-KOON and Mourad Chabane OUSSALAH
1.1. Introduction 2
1.2. History 3
1.2.1. Object-oriented paradigm 3
1.2.2. Component-based paradigm 4
1.2.3. Agent-oriented paradigm 4
1.2.4. Service-oriented paradigm 5
1.3. Software architecture 8
1.3.1. Object-oriented software architecture 8
1.3.2. Component-based software architecture 10
1.3.3. Agent-oriented software architecture 11
1.3.4. Service-oriented architecture 13
1.4. The two dimensions of the conceptual framework for comparison: quantitative and qualitative 15
1.4.1. Conceptual differences 16
1.4.2. Quantitative dimension 25
1.4.3. Qualitative dimension 32
1.5. Approaches for integrating development paradigms 43
1.6. Summary and discussion 45
1.7. Conclusion 48
1.8. Bibliography 48
Chapter 2. Reference Architectures 55
Elisa Yumi NAKAGAWA, Flavio OQUENDO and Jose Carlos MALDONADO
2.1. Introduction 55
2.2. Definition of reference architecture. 56
2.2.1. Reference architecture versus reference model 57
2.2.2. Reference architecture versus product line architecture 57
2.3. A model for reference architectures 59
2.4. Reference architecture engineering 63
2.4.1. Information source investigation 64
2.4.2. Architectural requirements establishment 66
2.4.3. Reference architecture design 67
2.4.4. Reference architecture evaluation 69
2.5. Uses of reference architectures 70
2.6. Examples of reference architectures 74
2.7. Future perspectives of reference architectures 75
2.8. Final remarks 78
2.9. Bibliography 78
Chapter 3. Multihierarchy/Multiview Software Architectures 83
Ahmad KHEIR, Hala NAJA and Mourad Chabane OUSSALAH
3.1. Introduction 83
3.2. Existing viewpoint approaches 84
3.2.1. Introduction 84
3.2.2. Views in requirements specifications 85
3.2.3. Views in systems modeling 85
3.2.4. Views within programming 86
3.3. Views in software architecture 87
3.3.1. Contributions of the views in software architecture. 87
3.3.2. "4+1" view model 88
3.3.3. ISO/IEC/IEEE 42010 89
3.3.4. The views and beyond approach 91
3.3.5. Summary 93
3.3.6. Limitation of current approaches to software architecture 96
3.4. Definitions and basic concepts of multihierarchy/multiview software architectures 96
3.4.1. Definitions 96
3.4.2. Concepts and basics 98
3.5. MoVAL: architecture based on models, views and levels of abstraction 107
3.5.1. Introduction 107
3.5.2. MoVAL 108
3.5.3. MoVAL metamodel 112
3.5.4. Case study 114
3.6. Conclusion 117
3.7. Bibliography 118
Chapter 4. Software Architecture and Tools: Distributed and Coordinated Dynamic Reconfiguration Management 121
Mohamed ZOUARI, Maria-Teresa SEGARRA and Khalil DRIRA
4.1. Introduction 122
4.2. Context 123
4.3. Dynamic reconfiguration management mechanisms of distributed applications. 125
4.3.1. Centralized dynamic reconfiguration management 126
4.3.2. Limitations of the centralized solution for distributed systems 129
4.3.3. The stakes of distributed reconfiguration management 130
4.3.4. Existing coordination mec
About the author
Mourad Chabane OUSSALAH is Professor at the University of Nantes and researcher in the field of modeling of software architectures.
Summary
Over the past 20 years, software architectures have significantly contributed to the development of complex and distributed systems. Nowadays, it is recognized that one of the critical problems in the design and development of any complex software system is its architecture, i.e. the organization of its architectural elements.