Vol 12 No.1
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.
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.
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.