Nowadays, distributed and mobile systems are acquiring greater importance and becoming more widel... more Nowadays, distributed and mobile systems are acquiring greater importance and becoming more widely used to support ubiquitous computing. However, developing systems of this kind is a difficult task. Instead of concentrating on how problems should be solved developers must worry about implementation details. Ambient Calculus is a formalism that provides primitives to describe mobile systems in an abstract way. Aspect-oriented software development and software architectures promise to achieve reusability, maintenance and adaptability, which are all essential for the development of distributed systems. In this paper, we present how a platform-independent model called Ambient-PRISMA combines both Ambient Calculus and Aspect-Oriented Software Architecture for the specification of distributed and mobile systems. A platform-specific model in .Net for supporting Ambient-PRISMA code generation is also presented.
Nowadays, distributed and mobile systems are acquiring importance and becoming widely extended fo... more Nowadays, distributed and mobile systems are acquiring importance and becoming widely extended for supporting ubiquitous computing. In order to develop such systems in a technology-independent way, it is important to have a formalism that describes distribution and mobility at a high abstraction level. Ambient Calculus is a formalism that allows the representation of boundaries where computation occurs. Also, distributed and mobile systems are usually difficult to develop as they need to take into account functional and non-functional requirements and reusability and adaptability mechanisms. In order to achieve these needs it is necessary to separate the distribution and mobility concerns from the rest of the concerns. PRISMA is an approach that integrates the advantages of Component-Based Software Development and Aspect-Oriented Software Development for specifying software architectures. In this paper, we describe how our work combines Ambient Calculus with PRISMA to develop distributed and mobile systems gaining their advantages.
Distribution has become a fundamental requirement for information systems and not an auxiliary. W... more Distribution has become a fundamental requirement for information systems and not an auxiliary. We believe it is important to consider distribution from early stages of the life cycle of software development and deal with distribution at a high abstraction level. This paper, presents a conceptual model for specifying software architectures of distributed information systems. The conceptual model is defined by combining the aspect-oriented software development (AOSD) and the component-based software development (CBSD). The distribution conceptual model is explained by presenting its AOSD perspective and the CBSD perspective. The AOSD perspective of the conceptual model describes the mobile and replication behaviour of an architectural element by introducing a distribution aspect and a replication aspect. The architectural perspective (CBSD perspective) of the distribution model allows specification of the distributed communication of the architectural elements of a software architecture.
Software architecture is a technique which aids the development of complex and dynamic systems. A... more Software architecture is a technique which aids the development of complex and dynamic systems. Architecture Description Languages (ADLs) describe software architectures using a textual syntax or a graphical notation. However, not many ADLs have provided primitives for describing software architectures of distributed and mobile software systems. This paper presents a comparison among existing ADLs that have addressed distributed and mobile software systems. The features chosen for the comparison have been taken from the work of Roman et al. which propose a framework for viewing mobility. The features taken into account in this work are how ADLs support the notion of location, mobility, coordination, middleware, a graphical notation, and tools. The work presented in this paper proposes to be a starting point for discovering whether ADLs have properly supported mobility or not.
Currently most software systems have a distributed nature. The development of distributed and mob... more Currently most software systems have a distributed nature. The development of distributed and mobile software is a complex task. As a result, it is important to take into account distribution and mobility from the early stages of the development process instead of delaying their ...
Currently, most software systems have a dynamic nature and evolve at run-time. The dynamic reconf... more Currently, most software systems have a dynamic nature and evolve at run-time. The dynamic reconfiguration of software architectures has to be supported in order to enable their architectural element instances and their links to be created and destroyed at run-time. Complex components also need reconfiguration capabilities to evolve their internal compositions. This paper introduces an approach to support the dynamic reconfiguration of software architectures taking advantage of aspect-oriented techniques. It enables complex components to autonomously reconfigure themselves: they are capable of both having knowledge of their current configuration and reconfiguring themselves at run-time. This approach has been developed for the PRISMA aspect-oriented architectural model. A new kind of aspect has been created in PRISMA in order to provide dynamic reconfiguration services to each complex component; it is called the Configuration Aspect.
This paper presents a solution to the evolution problem of software architectures. This solution ... more This paper presents a solution to the evolution problem of software architectures. This solution is provided by PRISMA. PRISMA is an architecture modeling approach that integrates the advantages of Component-Based Software Development (CBSD) and Aspect-Oriented Software Development (AOSD). This integration is reflected in its model and in its Architecture Description Language (ADL). In this paper, PRISMA is presented as a framework to evolve aspect-oriented and component-based architectures by requirements-driven evolution. The evolution is supported by means of a meta-level and the reflexive properties of PRISMA ADL which have been implemented as a middleware. In addition, it is demonstrated how the evolution services of the PRISMA meta-level permit the run-time evolution of software architectures using an industrial case study, the TeachMover Robot.
This work presents an approach called Ambient-PRISMA for modelling and developing distributed and... more This work presents an approach called Ambient-PRISMA for modelling and developing distributed and mobile applications. Ambient-PRISMA enriches an aspect-oriented software architectural approach called PRISMA with the ambient concept from Ambient Calculus. Ambients are introduced in PRISMA as specialized kinds of connectors that offer mobility services to architectural elements (components and connectors) and are able to coordinate a boundary, which models
Service Oriented Architecture (SOA) is an architectural style that is widely used in distributed ... more Service Oriented Architecture (SOA) is an architectural style that is widely used in distributed and dynamic systems. The Service oriented architecture Modeling Language (SoaML) is an OMG standard for modelling SOA independent of a technology. This paper presents a tool for modelling SOA using SoaML and generating OSGi Declarative Services Models from SoaML models. SoaML metamodel has been implemented as an Ecore model using the Eclipse Modeling Framework (EMF). An Eclipse plug-in that allows architects to graphically design SoaML models has been developed using the Graphical Modeling Framework (GMF). We have also implemented a model transformation using ATLAS Transformation Language (ATL) in order to partially generate Declarative Services models. The generated model is used as a Declarative Services Component Description XML specification which is needed to execute code on the OSGi service oriented platform. In this way, we provide SoaML with Model Driven Architecture support.
Variability Management (VM) in Software Product Line (SPL) is a key activity that usually affects... more Variability Management (VM) in Software Product Line (SPL) is a key activity that usually affects the degree to which a SPL is successful. SPL community has spent huge amount of resources on developing various approaches to dealing with variability related challenges over the last decade. To provide an overview of different aspects of the proposed VM approaches, we carried out a systematic literature review of the papers reporting VM in SPL. This paper presents and discusses the findings from this systematic literature review. The results reveal the chronological backgrounds of various approaches over the history of VM research, and summarize the key issues that drove the evolution of different approaches. This study has also identified several gaps that need to be filled by future efforts in this line of research.
This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages... more This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages of spatial hypertext. ShyWiki hypertext documents are composed of notes and maps that can be arranged by users. Users can change the spatial attributes of the elements in a hypertext document such as their position, order, color, size, etc. Furthermore, users can move, delete or aggregate notes as well as maps. ShyWiki allows users to perform a collaborative spatial hypertext design due to the fact that the community of users decide the final structure of a wiki page.
This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages... more This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages of spatial hypertext. ShyWiki hypertext documents are composed of notes and maps that can be arranged by users. Users can change the spatial attributes of the elements in a hypertext document such as their position, order, color, size, etc. Furthermore, users can move, delete or aggregate notes as well as maps. ShyWiki allows users to perform a collaborative spatial hypertext design due to the fact that the community of users decide the final structure of a wiki page.
Collaboration is a key factor in successful knowledge management. Recently, wikis have become a p... more Collaboration is a key factor in successful knowledge management. Recently, wikis have become a popular solution for distributed and collaborative knowledge management. However, most wikis do not appropriately support the facilities needed for group idea creation and can only represent unstructured knowledge (text, images, and hyperlinks) which cannot be reused or systematized. This paper proposes the use of a Spatial Hypertext Wiki (ShyWiki) as a knowledge management wiki which allows users to interact in a distributed and collaborative way in order to generate ideas, and organize and structure knowledge. This type of wiki can help in the externalization of tacit knowledge, and is able to represent explicit knowledge at different levels of formality. Furthermore, the visual and spatial characteristics of this wiki can be used for representing implicit relations among concepts as well as for organizing and visualizing knowledge.
The absence of a disciplined approach for capturing and managing architectural knowledge causes t... more The absence of a disciplined approach for capturing and managing architectural knowledge causes the loss of substantial knowledge generated during the software architecture process. This paper describes the use of a Spatial Hypertext Wiki (ShyWiki) as a tool for Architectural Knowledge Management (AKM) support. Specifically, we demonstrate that ShyWiki can be used for implementing lightweight knowledge sharing workspaces, which includes AKM tools, decision support facilities, and activity awareness features. We also describe how distributed stakeholders involved in the software architecting process can share knowledge and manage their tasks by various features provided by ShyWiki.
Mobile applications need to dynamically adapt to requirements of new environments (or locations) ... more Mobile applications need to dynamically adapt to requirements of new environments (or locations) as users and their devices continuously move. Service oriented architecture (SOA) is a recent approach for designing and developing open and distributed systems. However, SOA has to be extended in order to fully accommodate the requirements of mobile services. This paper presents an approach called AmbientSoaML, which introduces ambients in service oriented architecture modeling language (SoaML) proposed by the OMG in order to allow its models to include mobility primitives. Ambients are considered to be the service providers and the service consumers for providing/consuming mobility services. They also represent the boundaries that services have to cross when moving from one location to another. This paper demonstrates the use of SoaML for modeling SOA of a mobile application in order to motivate the problem our research purports to address.
Nowadays, distributed and mobile systems are acquiring greater importance and becoming more widel... more Nowadays, distributed and mobile systems are acquiring greater importance and becoming more widely used to support ubiquitous computing. However, developing systems of this kind is a difficult task. Instead of concentrating on how problems should be solved developers must worry about implementation details. Ambient Calculus is a formalism that provides primitives to describe mobile systems in an abstract way. Aspect-oriented software development and software architectures promise to achieve reusability, maintenance and adaptability, which are all essential for the development of distributed systems. In this paper, we present how a platform-independent model called Ambient-PRISMA combines both Ambient Calculus and Aspect-Oriented Software Architecture for the specification of distributed and mobile systems. A platform-specific model in .Net for supporting Ambient-PRISMA code generation is also presented.
Nowadays, distributed and mobile systems are acquiring importance and becoming widely extended fo... more Nowadays, distributed and mobile systems are acquiring importance and becoming widely extended for supporting ubiquitous computing. In order to develop such systems in a technology-independent way, it is important to have a formalism that describes distribution and mobility at a high abstraction level. Ambient Calculus is a formalism that allows the representation of boundaries where computation occurs. Also, distributed and mobile systems are usually difficult to develop as they need to take into account functional and non-functional requirements and reusability and adaptability mechanisms. In order to achieve these needs it is necessary to separate the distribution and mobility concerns from the rest of the concerns. PRISMA is an approach that integrates the advantages of Component-Based Software Development and Aspect-Oriented Software Development for specifying software architectures. In this paper, we describe how our work combines Ambient Calculus with PRISMA to develop distributed and mobile systems gaining their advantages.
Distribution has become a fundamental requirement for information systems and not an auxiliary. W... more Distribution has become a fundamental requirement for information systems and not an auxiliary. We believe it is important to consider distribution from early stages of the life cycle of software development and deal with distribution at a high abstraction level. This paper, presents a conceptual model for specifying software architectures of distributed information systems. The conceptual model is defined by combining the aspect-oriented software development (AOSD) and the component-based software development (CBSD). The distribution conceptual model is explained by presenting its AOSD perspective and the CBSD perspective. The AOSD perspective of the conceptual model describes the mobile and replication behaviour of an architectural element by introducing a distribution aspect and a replication aspect. The architectural perspective (CBSD perspective) of the distribution model allows specification of the distributed communication of the architectural elements of a software architecture.
Software architecture is a technique which aids the development of complex and dynamic systems. A... more Software architecture is a technique which aids the development of complex and dynamic systems. Architecture Description Languages (ADLs) describe software architectures using a textual syntax or a graphical notation. However, not many ADLs have provided primitives for describing software architectures of distributed and mobile software systems. This paper presents a comparison among existing ADLs that have addressed distributed and mobile software systems. The features chosen for the comparison have been taken from the work of Roman et al. which propose a framework for viewing mobility. The features taken into account in this work are how ADLs support the notion of location, mobility, coordination, middleware, a graphical notation, and tools. The work presented in this paper proposes to be a starting point for discovering whether ADLs have properly supported mobility or not.
Currently most software systems have a distributed nature. The development of distributed and mob... more Currently most software systems have a distributed nature. The development of distributed and mobile software is a complex task. As a result, it is important to take into account distribution and mobility from the early stages of the development process instead of delaying their ...
Currently, most software systems have a dynamic nature and evolve at run-time. The dynamic reconf... more Currently, most software systems have a dynamic nature and evolve at run-time. The dynamic reconfiguration of software architectures has to be supported in order to enable their architectural element instances and their links to be created and destroyed at run-time. Complex components also need reconfiguration capabilities to evolve their internal compositions. This paper introduces an approach to support the dynamic reconfiguration of software architectures taking advantage of aspect-oriented techniques. It enables complex components to autonomously reconfigure themselves: they are capable of both having knowledge of their current configuration and reconfiguring themselves at run-time. This approach has been developed for the PRISMA aspect-oriented architectural model. A new kind of aspect has been created in PRISMA in order to provide dynamic reconfiguration services to each complex component; it is called the Configuration Aspect.
This paper presents a solution to the evolution problem of software architectures. This solution ... more This paper presents a solution to the evolution problem of software architectures. This solution is provided by PRISMA. PRISMA is an architecture modeling approach that integrates the advantages of Component-Based Software Development (CBSD) and Aspect-Oriented Software Development (AOSD). This integration is reflected in its model and in its Architecture Description Language (ADL). In this paper, PRISMA is presented as a framework to evolve aspect-oriented and component-based architectures by requirements-driven evolution. The evolution is supported by means of a meta-level and the reflexive properties of PRISMA ADL which have been implemented as a middleware. In addition, it is demonstrated how the evolution services of the PRISMA meta-level permit the run-time evolution of software architectures using an industrial case study, the TeachMover Robot.
This work presents an approach called Ambient-PRISMA for modelling and developing distributed and... more This work presents an approach called Ambient-PRISMA for modelling and developing distributed and mobile applications. Ambient-PRISMA enriches an aspect-oriented software architectural approach called PRISMA with the ambient concept from Ambient Calculus. Ambients are introduced in PRISMA as specialized kinds of connectors that offer mobility services to architectural elements (components and connectors) and are able to coordinate a boundary, which models
Service Oriented Architecture (SOA) is an architectural style that is widely used in distributed ... more Service Oriented Architecture (SOA) is an architectural style that is widely used in distributed and dynamic systems. The Service oriented architecture Modeling Language (SoaML) is an OMG standard for modelling SOA independent of a technology. This paper presents a tool for modelling SOA using SoaML and generating OSGi Declarative Services Models from SoaML models. SoaML metamodel has been implemented as an Ecore model using the Eclipse Modeling Framework (EMF). An Eclipse plug-in that allows architects to graphically design SoaML models has been developed using the Graphical Modeling Framework (GMF). We have also implemented a model transformation using ATLAS Transformation Language (ATL) in order to partially generate Declarative Services models. The generated model is used as a Declarative Services Component Description XML specification which is needed to execute code on the OSGi service oriented platform. In this way, we provide SoaML with Model Driven Architecture support.
Variability Management (VM) in Software Product Line (SPL) is a key activity that usually affects... more Variability Management (VM) in Software Product Line (SPL) is a key activity that usually affects the degree to which a SPL is successful. SPL community has spent huge amount of resources on developing various approaches to dealing with variability related challenges over the last decade. To provide an overview of different aspects of the proposed VM approaches, we carried out a systematic literature review of the papers reporting VM in SPL. This paper presents and discusses the findings from this systematic literature review. The results reveal the chronological backgrounds of various approaches over the history of VM research, and summarize the key issues that drove the evolution of different approaches. This study has also identified several gaps that need to be filled by future efforts in this line of research.
This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages... more This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages of spatial hypertext. ShyWiki hypertext documents are composed of notes and maps that can be arranged by users. Users can change the spatial attributes of the elements in a hypertext document such as their position, order, color, size, etc. Furthermore, users can move, delete or aggregate notes as well as maps. ShyWiki allows users to perform a collaborative spatial hypertext design due to the fact that the community of users decide the final structure of a wiki page.
This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages... more This paper presents ShyWiki, a Spatial Hypertext Wiki. ShyWiki has the flexibility and advantages of spatial hypertext. ShyWiki hypertext documents are composed of notes and maps that can be arranged by users. Users can change the spatial attributes of the elements in a hypertext document such as their position, order, color, size, etc. Furthermore, users can move, delete or aggregate notes as well as maps. ShyWiki allows users to perform a collaborative spatial hypertext design due to the fact that the community of users decide the final structure of a wiki page.
Collaboration is a key factor in successful knowledge management. Recently, wikis have become a p... more Collaboration is a key factor in successful knowledge management. Recently, wikis have become a popular solution for distributed and collaborative knowledge management. However, most wikis do not appropriately support the facilities needed for group idea creation and can only represent unstructured knowledge (text, images, and hyperlinks) which cannot be reused or systematized. This paper proposes the use of a Spatial Hypertext Wiki (ShyWiki) as a knowledge management wiki which allows users to interact in a distributed and collaborative way in order to generate ideas, and organize and structure knowledge. This type of wiki can help in the externalization of tacit knowledge, and is able to represent explicit knowledge at different levels of formality. Furthermore, the visual and spatial characteristics of this wiki can be used for representing implicit relations among concepts as well as for organizing and visualizing knowledge.
The absence of a disciplined approach for capturing and managing architectural knowledge causes t... more The absence of a disciplined approach for capturing and managing architectural knowledge causes the loss of substantial knowledge generated during the software architecture process. This paper describes the use of a Spatial Hypertext Wiki (ShyWiki) as a tool for Architectural Knowledge Management (AKM) support. Specifically, we demonstrate that ShyWiki can be used for implementing lightweight knowledge sharing workspaces, which includes AKM tools, decision support facilities, and activity awareness features. We also describe how distributed stakeholders involved in the software architecting process can share knowledge and manage their tasks by various features provided by ShyWiki.
Mobile applications need to dynamically adapt to requirements of new environments (or locations) ... more Mobile applications need to dynamically adapt to requirements of new environments (or locations) as users and their devices continuously move. Service oriented architecture (SOA) is a recent approach for designing and developing open and distributed systems. However, SOA has to be extended in order to fully accommodate the requirements of mobile services. This paper presents an approach called AmbientSoaML, which introduces ambients in service oriented architecture modeling language (SoaML) proposed by the OMG in order to allow its models to include mobility primitives. Ambients are considered to be the service providers and the service consumers for providing/consuming mobility services. They also represent the boundaries that services have to cross when moving from one location to another. This paper demonstrates the use of SoaML for modeling SOA of a mobile application in order to motivate the problem our research purports to address.
Uploads
Papers by Nour Ali