Lesson Archives

  1. ABSTRACT Context awareness is an integral aspect of ubiquitous and pervasive computing. A context aware system provides relevant services to the user according to the environment. The challenges in developing context aware systems are due to the complexity in collecting, representing, aggregating and inferring context information from heterogeneous sources and at the same time maintaining privacy and security. Although multiple solutions exist with different architectures, design principles and context modeling mechanisms, there are no standard, reusable solutions due to lack of software engineering efforts and adoption of a structured methodology. Design patterns encapsulate expert knowledge to solve recurring software problems. The design pattern approach will enable the context aware solution to be flexible, reusable and based only on software structures. In this paper, we have proposed a service oriented context aware architecture based on design patterns. The usage of design patterns and the corresponding pattern language will enable a faster and efficient development of a context aware system.

  2. ABSTRACT With the advent of new technologies and the trend in integration of related business, the software development has become very complex. However, complex systems are realized due to distributed computing technologies like web services. With Machine to Machine (M2M) interaction, human intervention is greatly reduced in distributed applications. Nevertheless, there is need for continuous changes in complex software systems. Manual incorporation of changes is both time consuming and tedious task. The self-adaptive features of software can cater to the needs of ad hoc demands pertaining to changes. Therefore, it is desirable to have a self-adaptive software architecture for distributed systems to adapt to changes automatically without traditional reengineering process involved in software update. The existing solutions do have limitations in self-adaptation and need human intervention. Rainbow is one of the examples for self-adaptive dynamic software architecture. However, it does not have knowledge mining and quality of software analysis for further improvements. It is essential to have such enhancements in the wake of self-adaptive systems of enterprises producing huge amount of data related to operations, service quality and other information required for analyzing the architecture. We proposed a self-adaptive dynamic software architecture named Enhanced Self-Adaptive Dynamic Software Architecture (ESADSA) which is influenced by Rainbow. It incorporates modules such as QoS analyzer and Knowledge Miner with two data mining algorithms for enhancing capabilities of the architecture. ESADSA decouples self-adaptation from target system by preserving cohesion of target system with loosely coupled interaction. A real time case study is considered for proof of the concept. The experimental results revealed significant improvements in dynamic self-adaptation of the proposed architecture.

  3. ABSTRACT Various reports have suggested that agile practices empirically improve the quality of software, as a result, reduce the amount of rework in software pro-jects. On the other hand, agile practices incur time or personnel overhead, making it subject to managerial cost concerns. This study investigates the cost effectiveness of three popular agile practices: Test-Driven Development, pair programming and pair testing, using a developed system dynamics tool called the Predictive Continuous Delivery Model (PCDM). The Return-on-Investment (ROI) for TDD, pair programming and pair testing were 0.34, -0.60 and -0.64 respectively. Hence, from an economic perspective, only TDD is worth adopting in continuous delivery projects.

  4. ABSTRACT Early assessment of quality is a primary concern for all disciplines of software engineering. In case of Software Product Line (SPL) engineering also, it is acknowledged that quality assessment should be given special attention during its early phase (domain engineering). The reason being, that defects unobserved early in the domain artefacts will later affect other products of the product line and will lead to increased costs for correcting the defects in the later stages. During domain engineering phase, feature models play an important role in designing these domain artefacts. They diagrammatically represent the product line commonality and variability during the early stages of development. Therefore, their quality assessment too holds importance. While quality aspects of SPL architecture have being widely researched, the quality assessment of feature models has been neglected till now. Unfortunately, the contemporary metrics applicable for quality assessment of object oriented, single system engineering don’t suffice for assessing quality of SPL. Thus, evolution of novel approaches for quality assessment during domain engineering phase is much needed. In the previous research a set of structural metrics were designed to evaluate SPL feature model usability. In the previous work, they were validated theoretically against standard frameworks. In the current research, the theoretically validated structural metrics were validated empirically for assessing usability (from the designer’s perspective) in reference to feature models. The results obtained from the controlled experiment show that the structural metrics are significantly correlated with usability of feature models. A formula on the basis of linear regression is also designed to estimate the level of usability. Based on the empirical results it is concluded that the designed structural metrics are a strong means of quality assessment for examining SPL feature model usability. Quality assessment of SPL feature models can be done using the structural metrics and eventually quality can be examined during the early stages of SPL development.

  5. ABSTRACT If any of the essentials for software testing (test strategy, testing plan, test cases, and test environment) is missing or inadequate, testing effort is most likely to fall short of what could have otherwise been achieved. Every product release in today’s time shall meet a desired level of quality, and release pro-cesses undergo continual fine-tuning. One such aspect of this tuning comes from the concept of patching. Patching helps in no roll back policy for the broken or distorted releases and thus lays a helping hand in monitoring the quality of software. These software update ideology has undoubtedly helped in effectively improving usability and performance for software system. With this concept come two groups; tester and user who detect the defect (if any) in the software while it is in the operational stage. Inculcating this varied as-pect, we propose an approach based on differing performance of tester and users during pre and post release of the software. The model has been vali-dated on software failure data sets.

  6. ABSTRACT Unified Modelling Language (UML) is the most popular modelling language use for software design in software development industries in which class diagram is being the most frequently used diagram. Despite the popularity, UML is being affected by inconsistency problems of its diagrams at the same or different abstraction levels. To address inconsistency in UML, this research has specified twenty-four abstraction rules of class’s relation semantic among any three related classes of a refined class diagram to semantically equivalent relations of two of the classes using a logical approach. This research has also formalized three vertical semantic consistency rules of a class diagram refinement identified by previous researchers using a logical approach and the set of formalized abstraction rules. The results were successfully evaluated using hotel management system and passenger list system case studies and were found to be reliable and efficient.

  7. ABSTRACT Traditional way of optimizing regression testing cost is to reduce subsets of test cases from a test suite without compromising the test requirement. In order to reduce the test suite, researchers have presented various test-suite reduction techniques using coverage metrics and greedy search algorithms. Besides greedy algorithms, optimization-based algorithms have played a major role in test suite reduction. Accordingly, we developed a new optimization algorithm called, TBAT algorithm to handle the diversity problem in generating new solutions while finding the optimal test cases. Here, a fitness function is developed to select the test cases optimally through the TBAT algorithm using two constraints, satisfying the entire test requirement and minimizing the cost measure. The proposed TBAT algorithm is experimented with five programs from SIR using four different evaluation metrics. The empirical study on the performance of the TBAT algorithm is analyzed with various parameters and the comparison is done with the greedy–based algorithm and the Systolic Genetic Search (SGS) algorithm. The experimental outcome showed that the proposed TBAT algorithm outperformed the existing algorithm in reaching the minimal cost requirements.

  8. ABSTRACT Agile methodology has become more popular in small size software organizations and many case studies and best practices taking the advantage of agile principles have been presented. Research for developing effective methods which make it possible to achieve continuous process capability improvement complying with CMMI in small size software organizations is being continued. In this paper we propose an organization structure where a Process Manager and Process Management Supporters play important roles in organizational-level processes. Case studies are presented to demonstrate the effectiveness of the proposed method.

  9. ABSTRACT Pervasive computing is considered one of the most complex computing domains. Our research work attempts to solve some of the business challenges associated with pervasive computing. In this paper, we present a novel business reference architecture which addresses the basic business requirements to build a pervasive computing system by exploring eleven basic quality features and defining their requirements model. It has a detailed trade-off analysis for the selected quality features which guides the user while making decisions on real projects. We found that building a basic business requirements model is a very useful step towards building a business reference architecture, which will lead to a more practical technical reference architecture.

  10. ABSTRACT To predict the quality of software, software metric is one of the very important elements. The relationship of Depth of Inheritance Tree metric with cyclomatic complexity is a significant matter. Here in this paper the relationship of DIT (Depth of Inheritance Tree) and MVG (McCabe's Cyclomatic Complexity) have been explained using three real projects developed in JAVA language. The authors have also empirically computed DIT and MVG metrics of these projects and found the correlations between these two. It is found that on increasing DIT, MVG also increases in polynomial form which is showing the directly proportional relationship. This paper is providing an optimal value of DIT up to that software will be quality software.