Loading [MathJax]/extensions/MathMenu.js
Architectural Design Methodologies for Complex Evolving Systems | IEEE Conference Publication | IEEE Xplore

Architectural Design Methodologies for Complex Evolving Systems


Abstract:

Software evolution is a costly yet unavoidable consequence of a successful application. To accommodate the requirements of today's fast changing business world, it is req...Show More

Abstract:

Software evolution is a costly yet unavoidable consequence of a successful application. To accommodate the requirements of today's fast changing business world, it is required to adapt the new business rules without disturbing the existing working system. For the business rules evolutions where old and new business rules and business data entities have to exist concurrently in the system, we proposed the Framework, CFFES (Control Flow Framework for Evolving Systems) which focuses on smooth and seamless evolution. CFFES also validates the different business rules as well as business data entities according to their temporal specifications. The Framework capabilities are to be compared with the existing methodologies which are aimed at prioritizing the quality factor - evolvability of a system. The principle of encapsulation in Object Oriented (OO) design overcame the flaws present in structured methodology due to separate data and process components and their interdependencies. However OO design has been proved inadequate in addressing design issues due to crosscutting concerns which are across the objects or components or packages. These crosscutting concerns are main obstacles in the evolution of OO systems. Aspect Oriented software development was proposed as a solution to this problem. In this paper we discuss the impact of evolution on the architectural design of a system designed using Aspect Oriented Design Methodology and a system designed using the Framework (CFFES) proposed by us.
Date of Conference: 11-14 July 2007
Date Added to IEEE Xplore: 23 July 2007
Print ISBN:0-7695-2895-3
Conference Location: Auckland, New Zealand

1. Introduction

Engineering of software involves resolving many concerns. As engineering process consists of number of phases and the concerns at each phase can be distinct as well as overlapping. These concerns depend on many things such as –

Goals to be achieved by the particular phase.

Domain for which the software is to be engineered.

Functional and non-functional (the quality attributes) requirements of the system under development.

At the highest level of abstraction we can say that each and every phase of software engineering has the main concern of producing software

as per user's functional and non-functional requirements and

which is usable by different users of software for a long time.

References

References is not available for this document.