Context-oriented Software Development

Basel Magableh, Stephen Barrett
2012 Journal of Emerging Technologies in Web Intelligence  
Acknowledgements First and foremost, I thank my supervisor Stephen Barrett for his guidance, and support over the years. I very much appreciate his motivation, feedback, and endless patience during my Ph.D. studies. I would like to thank Dr. Stefan Weber for his continuous support and guidance. A very special thank you to Professor Khalid Al-Begain, for his decent advices and guidance. I express my gratitude to the women who supports me through the past four years, who gave me love and great
more » ... e love and great company to produce this volume of work. To Hebah my lovely wife, the one who su↵ers the most from being very far away from home. This thesis would not have been possible unless your hard support my dear Hebah. This work is totally yours. I will dedicate this work to you my dear son Sanad. Because of you my lovely lad this work was started and finished. I lift my family and home land to improve my career to assure you will have a better future. To the man who always motivates me and provides me with decent advices to keep fighting and to add very small footprint in this world. To my father Ismail, who was always advising me to be creative and do my best. To the women who always keep filling my heart with forgiveness and faith to be a better human in this world. To my mother, to that hard worker that spent her life minding my needs worrying about my wishes. To all past and present members in the Distributed Systems Group, thank you for making it such a great and lively research environment to be in. A big thank you goes especially to my room mates of Lloyd 008 for lively discussions (not only) about work, and for being great colleagues. iii 0 ACKNOWLEDGEMENTS A very special thank you to all my friends for encouraging me, each in their own way. Abstract Software in distributed and mobile computing environments needs to cope with variability, diversity of computing platforms and operates in di↵erent execution environments. Mobile computing environments are heterogeneous and dynamic. Everything from the devices used and resources available to network bandwidth and user context can change at runtime. This presents the software developers with the challenge of tailoring behavioural variations of the software to specific user needs and adapt to context changes. The design and the development of context-dependent and self-adaptable applications in mobile computing environments cannot rely on classical software-development methodologies, which assume that the software execution environment is known a priori at design time, and the application environment can be anticipated. Supporting the development and execution of self-adaptive software systems raises numerous challenges, from development processes, design space and development tools, to the adaptation mechanism that ensures adaptability and dependability of the self-adaptive software that is targeted. This thesis explores how far we can support the engineering of self-adaptive applications using generic development paradigm provided by non-specialized language frameworks, and not being limited to a specific platform or mechanism. This gives the software developers the flexibility to construct a self-adaptive application using an object-oriented programming language and deploy it on several platforms. The thesis is that the software developers must considered the context information and context-dependent behaviour in the analysis, design and implementation of self-adaptive software. In particular, software needs to consider the composition of its components in conv 0 ACKNOWLEDGEMENTS junction with the contextual changes. In order to overcome the problem and the challenges of engineering self-adaptive software, this thesis contributes to the knowledge by presenting Context-Oriented Software Development (COSD), a generic development paradigm for the construction of self-adaptive software from context-oriented components, which enables dynamic composition of the context-dependent behaviours and provides the software with capabilities of self-adaptability and dependability in mobile computing environments. Our model is based on a decomposition strategy of self-adaptive software based on context, which provides a flexible mechanism for modularising the software into several composable units of behaviour and decouples the context-dependent from context-free parts. The context-oriented component model encapsulates the implementation of the context-dependent parts in distinct architecture units, which enables the software to adjust its functionality and/or behaviour dynamically. This di↵ers from the majority of existing works, which seek to embed awareness of context in the functional implementation of applications. The Context-Oriented Software is developed using a Context-Oriented Component-based Application Model Driven Architecture (COCA-MDA). Afterwards, the context-oriented software is manipulated at runtime by COCA-middleware, which performs a runtime behavioural composition of the contextdependent functionality based on the operational context. The evaluation of context-oriented software in comparison to existing work shows that context-oriented software development is better suited for implementing context-dependent and self-adaptive applications. In addition, the evaluation of COCA-middleware in terms of the modifiability and performance quality attributes, shows better performance in performing the adaptation with less impact on the allocated resources. This thesis shows that COCA-MDA has reduced the development e↵ort in modelling the Platform Independent Model (PIM) and Platform Specific Model (PSM), as it reduces the amount of configurations and maintenance needed to transform the PIM into PSM. In addition, COCA-MDA produced a component-based architecture described by an Architecture Description language (ADL), which reduces the e↵ort needed to implement the architecture in di↵erent platforms. vi 0
doi:10.4304/jetwi.4.2.172-180 fatcat:vaduxydy2rfkdcekjp2oyifgoi