Vol 4 No.2
ABSTRACT There is a big gap in the level of maturity of implementation technologies and design strategies for aspect-oriented systems. Implementation-wise aspectoriented software development (AOSD) has made remarkable progress and a number of efficient technologies have been developed but there is no de-facto design solution for AOSD available yet. Existing design strategies either provide strategies for designing aspects neglecting non-aspectual constructs or they provide complicated and hard-to-adopt strategies which are not easy to work with for traditional UML designers. This paper proposes a new design language for aspects which works with Unified Modelling Language in a single design environment. Some new design notations have been introduced for representing aspects and their key elements, and new models have been proposed to design structural and behavioural characteristics of aspects.
ABSTRACT One of the most repeatable and time consuming tasks in the software development process is trying to analyze and understand the technical implementation and design of an existing program source code. Design patterns encapsulate solutions to common object oriented design problems which make them an aid to understand different design decisions taken by software designers in existing software. This paper presents a new, fully automated patterns mining approach. The new approach is based on redescribing design patterns from a reverse engineering point of view. We claim that a design pattern description has a great impact on the accuracy of a design patterns mining tool. Our approach is capable of detecting a variety of design patterns’ implementations based on the proposed pattern description template. This paper also describes our tool, DPM, that implements the new pattern description template based on a model transformation approach. DPM is using graph matching and Constrain Satisfaction Problem (CSP) search algorithms to detect patterns’ instances. DPM has been tested against benchmark applications, including JUnit and Java AWT. Comparison to other existing pattern detection tools proven that DPM is capable of detecting more pattern instances with better accuracy.
ABSTRACT Evaluating coverage criteria is a core subject in software testing. Coverage can be evaluated based on several concerns such as: code, requirements, syntax, paths, decisions, graph, etc. The focus of this research is in evaluating the Graphical User Interface (GUI) testing coverage. In this research, several GUI model based methods are proposed and evaluated for the goal of automatically testing user interfaces and evaluate the testing coverage. The user interfaces’ components of tested applications are collected while applications are running and this information is used to build a GUI structural model. This model is used as an input for the process of generating test cases automatically and on considering different aspects of GUI coverage such as GUI paths, edges, nodes, or components. Microsoft NModel and SpecExplorer are used as tools for the GUI model verification. This is usually accomplished indirectly through generating test cases from the model and evaluating the model through the effectiveness and coverage of the generated test cases.
ABSTRACT Unified Modeling Language (UML) is a standard modeling language for constructing and documenting software artifacts. It provides a set of diagrams to model different views of the object oriented software development. However, the UML meta-data does not enforce the consistency of the models being built using UML nor provides a standard way to discover errors and faults in these models. Currently, research efforts are directed to verify the quality, correctness and completeness of UML models. Therefore, the quality of the UML models is heavily dependent on the consistency of model components and its diagrams. In this paper, we propose a new approach to solve the problem of discovering the inconsistency in UML sequence diagrams, and verify the interaction between the system objects in these diagrams. The proposed approach is based on the object state machine and state chart diagrams and is referred to as the Model Consistency Checker using Object State Machines (MCC-OSM). Experimental results on small to midsize software design projects have showed that MCC-OSM is a promising approach in discovering inconsistency, and incompleteness and verifying the interactions of the UML dynamic view.
ABSTRACT Several thousand software design vulnerabilities have been reported through established databases. But they need to be structured and classified to be optimally usable in the pursuit of minimal and effective mitigation mechanism. In order we developed a criterion set for a communicative description of the same to serve the purpose as a taxonomic description of security vulnerabilities, arising in the design phase of Software development lifecycle. This description is a part of an effort to identify appropriate strategies for mitigating security flaws at the design level. In addition, an analysis is also carried out on the basis of frequency and severity of vulnerabilities identified under each class and the same has been intrinsically presented.
ABSTRACT Usable interfaces are a result of focus on understanding users and their goals, tasks, characteristics, individual differences and environment. These differences between individuals result partly from differences between culture and subcultures. The goal of this paper is to set the scene for research into the influence of culture on the design of information systems for usability. This paper proposes a framework that includes extracting local usability guidelines for Arab culture and subcultures based on the issues gleaned from user acceptance test (UAT) reports. The proposed framework adapts a number of UCD methods and phases to suit projects’ circumstances. This adaptation is supported by a proposed UCD team structure. After applying the proposed framework on Web application projects that serve different sectors. The application of the proposed framework led to a decrease of UAT bugs by 95.25%, a decrease of development costs by 30-60%, a decrease in development time by 20-30%, and an increase of customer confidence and satisfaction. Systems’ usability also increased as evidenced by the results obtained from usability tests using an evaluation checklist, and user interface analyses.