11 research outputs found

    A pivotal-based approach for enterprise business process and IS integration

    Get PDF
    A company must be able to describe and react against any endogenous or exogenous event. Such flexibility can be achieved through business process management (BPM). Nevertheless a BPM approach highlights complex relations between business and IT domains. A non-alignment is exposed between heterogeneous models: this is the 18business-IT gap 19 as described in the literature. Through concepts from business engineering and information systems driven by models and IT, we define a generic approach ensuring multi-view consistency. Its role is to maintain and provide all information related to the structure and semantic of models. Allowing the full return of a transformed model in the sense of reverse engineering, our platform enables synchronisation between analysis model and implementation model

    Comprehensive Aspectual UML Approach to Support AspectJ

    Get PDF
    Unified Modeling Language is the most popular and widely used Object-Oriented modelling language in the IT industry. This study focuses on investigating the ability to expand UML to some extent to model crosscutting concerns (Aspects) to support AspectJ. Through a comprehensive literature review, we identify and extensively examine all the available Aspect-Oriented UML modelling approaches and find that the existing Aspect-Oriented Design Modelling approaches using UML cannot be considered to provide a framework for a comprehensive Aspectual UML modelling approach and also that there is a lack of adequate Aspect-Oriented tool support. This study also proposes a set of Aspectual UML semantic rules and attempts to generate AspectJ pseudocode from UML diagrams. The proposed Aspectual UML modelling approach is formally evaluated using a focus group to test six hypotheses regarding performance; a “good design” criteria-based evaluation to assess the quality of the design; and an AspectJ-based evaluation as a reference measurement-based evaluation. The results of the focus group evaluation confirm all the hypotheses put forward regarding the proposed approach. The proposed approach provides a comprehensive set of Aspectual UML structural and behavioral diagrams, which are designed and implemented based on a comprehensive and detailed set of AspectJ programming constructs

    Modeling and Testing of Aspect-Oriented Systems

    Get PDF
    Aspect-Oriented programming modularizes crosscutting concerns into Aspects, which are automatically weaved to the specified points of a program. Although Aspect-Oriented programming improves program maintainability and the encapsulation of crosscutting concerns, it also breaks some traditional programming rules due to the weaving mechanism. Therefore, a new software testing approach has to be developed to rigorously test Aspect-Oriented programs. In this thesis, we introduce the concept of Aspect modeling and Aspect testing and then proceed to our investigation of a model-based incremental approach for testing Aspect-Oriented programs. First, a state machine model in UML is created for each Aspect and each base class, which is the class to be weaved with the aspect. Then each individual aspect or base class is tested using the test cases generated from state machine models. A combined state machine model is established by weaving the aspect model into the base class model. Finally, we perform a test on the woven program using test cases generated from the combined state machine model. Because the number of scenarios for weaving aspects and base classes could be very large, it may require a huge number of test cases to effectively test the program. To speed up the process, we propose a prioritizing strategy for selecting test cases in order to find errors sooner since different test cases have different capacity for tracking errors. We demonstrate that the test cases generated from the state machine model have to satisfy the adequacy of the transition coverage, the round-trip coverage, and the state coverage in the state machine model. Furthermore, the prioritizing strategy is developed based on the number of changes brought by weaving of an aspect and its base classes. The test case including more changes will have a higher priority. The effectiveness of the investigated strategy is evaluated through the case study and the mutation testing. The result of case study shows that the model-based incremental approach integrated with prioritizing test case selection provides an effective tool for testing large-scale Aspect-Oriented systems.  M.S

    Aspect-oriented model-driven code generation approach for improving code reusability and maintainability

    Get PDF
    Software development teams always need methods that can help in producing high-quality software with reduced development effort and delivery time. Model-Driven Engineering (MDE) as well as Aspect-Oriented Software Development (AOSD) techniques help in reducing the delivery time, and also positively contribute to quality of the produced software. Through the use of AOSD techniques in combination with MDE, an integration of excellent abstraction mechanisms of MDE and capabilities of AOSD with regards to modularity and composition of concerns can be perceived, which is expected to enhance the positive effects of both techniques. To this end, different integration approaches have appeared in literature, but aspect-oriented code generation has advantages over the other approaches. Consequently, a number of aspect-oriented code generation approaches have been offered, but all such approaches lack several features mandatory to materialize a workable integration of aspect technologies in the context of MDE. To address these issues, this research was conducted to present an approach for aspect-oriented model-driven code generation, which focuses on elaborating the conceptual relationship between design models and the implementation code, and exploits the same to obtain aspect-oriented code that is more reusable and maintainable. The key outcomes of this research are the elaboration of the conceptual mappings between elements of visual design and constructs of the code, mapping of the visual models to implementation-specific text-based models, and a technique for generation of aspect-oriented code. The applicability of the proposed approach is shown by the use of case studies, whereas the quality of the approach is measured using reusability and maintainability metrics. A comparison of the proposed approach with existing approaches substantiates its efficacy in terms of reusability and maintainability of code, showing an outperformance of other approaches by the proposed approach against 78% of the employed quality metrics

    A model driven approach to analysis and synthesis of sequence diagrams

    Get PDF
    Software design is a vital phase in a software development life cycle as it creates a blueprint for the implementation of the software. It is crucial that software designs are error-free since any unresolved design-errors could lead to costly implementation errors. To minimize these errors, the software community adopted the concept of modelling from various other engineering disciplines. Modelling provides a platform to create and share abstract or conceptual representations of the software system – leading to various modelling languages, among them Unified Modelling Language (UML) and Petri Nets. While Petri Nets strong mathematical capability allows various formal analyses to be performed on the models, UMLs user-friendly nature presented a more appealing platform for system designers. Using Multi Paradigm Modelling, this thesis presents an approach where system designers may have the best of both worlds; SD2PN, a model transformation that maps UML Sequence Diagrams into Petri Nets allows system designers to perform modelling in UML while still using Petri Nets to perform the analysis. Multi Paradigm Modelling also provided a platform for a well-established theory in Petri Nets – synthesis to be adopted into Sequence Diagram as a method of putting-together different Sequence Diagrams based on a set of techniques and algorithms

    Model-Driven Aspect-Oriented Software Security Hardening

    Get PDF
    Security is of paramount importance in software engineering. Nevertheless, security solutions are generally fitted into existing software as an afterthought phase of the development process. However, given the complexity and the pervasiveness of today's software systems, adding security as an afterthought leads to huge cost in retrofitting security into the software and further can introduce additional vulnerabilities. Furthermore, security is a crosscutting concern that pervades the entire software. Consequently, the manual addition of security solutions may result in the scattering and the tangling of security features throughout the entire software design. Additionally, adding security manually is tedious and generally may lead to other security flaws. In this context, the need for a systematic approach to integrate security practices into the early phases of the software development process becomes crucial. In this thesis, we elaborate an aspect-oriented modeling framework for software security hardening at the UML design level. More precisely, the main contributions of our research are the following: (i) We define a UML profile for the specification of security hardening mechanisms as aspects. (ii) We design and implement a weaving framework for the systematic injection of security aspects into UML design models. (iii) We explore the theoretical foundations for aspect matching and weaving. (iv) We conduct real-life case studies to demonstrate the viability and the scalability of the proposed framework

    Join Point Designation Diagrams: Eine grafische Darstellungsweise fĂĽr den Entwurf von Join Point Selektionen in der aspektorientierten Softwareentwicklung

    Get PDF
    Sharing knowledge about program specifications is a crucial task in collaborative software development. Developers need to be able to properly assess the objectives of the program specification in order to adequately deploy or evolve a piece of program. The specification of join point selections (also known as "pointcuts") in Aspect-Oriented Software Development (AOSD) is a piece of a program which frequently tends to grow quite complex, in particular if the join point selections involve selection constraints on the dynamic execution history of the program. In that case, readers of the pointcut specification frequently find themselves confronted with considerable comprehension problems because they need to inspect and realize an intricate and fragmented program specification in order to reconstruct the true objectives of the join point selection. This thesis presents Join Point Designation Diagrams (JPDDs) as a possible solution to the problem. JPDDs are a visual notation that provides an extensive set of join point selection means which are consolidated from a variety of contemporary aspect-oriented programming languages. JPDDs are capable of highlighting different join point selection constraints depending on the conceptual view on program execution which underlies the join point selection. With the help of these means, JPDDs are capable of representing complex join point selections on the dynamic execution of a program in a succinct and concise manner. JPDDs may be used by software developers of different aspect-oriented programming languages to represent their join point selections for the sake of an improved comprehensibility of the join point selections and – thus – for the sake of an easier communication between software developers. This thesis gives empirical evidence that JPDDs indeed facilitate the comprehensibility of join point selections. To do so, it conducts a controlled experiment which compares JPDDs to equivalent pointcut implementations in an aspect-oriented programming language. The experiment shows that JPDDs have a clear benefit over their codified counterparts in most of the case, while only in few cases no such benefit could be measured.Die Kommunikation und der Wissensaustausch zwischen Softwareentwicklern über Programmspezifikationen ist eine essentielle Notwendigkeit in großen Softwareprojekten. Softwareentwickler müssen den Sinn und Zweck eines (Teil)Programms richtig erfassen, bevor sie in der Lage sind, das (Teil)Programm richtig einzubinden bzw. weiterzuentwickeln. Join Point Selektionen in der aspektorientierten Softwareentwicklung (auch "Pointcuts" genannt) sind ein Beispiel für Programmspezifikationen, die schnell komplex werden – insbesondere dann, wenn sie Selektionsbedingungen enthalten, die sich auf die Laufzeitvergangenheit eines Programms beziehen. Die Spezifikationen solcher Join Point Selektionen sind oft schwer zu verstehen, da Softwareentwickler eine Vielzahl kleiner Spezifikationsfragmente und ihre Abhängigkeiten analysieren müssen, bevor sie den Sinn und Zweck einer Join Point Selektion erfassen können. Diese Dissertation präsentiert Join Point Designation Diagrams (JPDDs) als eine Lösung für das Problem. JPDDs sind eine grafische Notation, die eine Vielzahl von Selektionstechniken aus aktuellen aspektorientierten Programmiersprachen vereinigt. JPDDs ermöglichen es, unter Berücksichtigung gängiger konzeptioneller Sichten auf die Programmausführung relevante Selektionsbedingungen besonders hervorzuheben. Dabei stellen JPDDs Bedingungen, die sich auf die Laufzeitvergangenheit eines Programms beziehen, unzersplittert dar. JPDDs können von Softwareentwicklern unterschiedlicher Programmiersprachen benutzt werden, um ihre Join Point Selektionen zu spezifizieren und so das Verständnis der Join Point Selektionen – und damit die Kommunikation und den Wissensaustausch zwischen Softwareentwicklern – zu vereinfachen. Diese Dissertation weist mit Hilfe eines kontrollierten empirischen Experiments nach, dass JPDDs tatsächlich in der Lage sind, das Verständnis von Join Point Selektionen zu vereinfachen. Dazu werden JPDDs mit äquivalenten Pointcut-Spezifikationen in einer aspektorientierten Programmiersprache verglichen. Das Experiment zeigt, dass JPDDs in der Mehrzahl der Fälle vorteilhaft sind. Nur in wenigen Ausnahmen konnte kein Vorteil im Vergleich zu der aspektorientierten Programmiersprache beobachtet werden
    corecore