Software architecture challenges in evolvable systems

  • Authors:
  • Darko Huljenic

  • Affiliations:
  • Ericsson Nikola Tesla, Zagreb, Croatia

  • Venue:
  • Proceedings of the 2012 ACM SIGSOFT symposium on Industry Day
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Today it is a well known fact that majority of our communication and computing applications are encapsulated in software. The majority of systems evolve with basic requirements toward system stability. When we add to the system some new properties, or functionalities, we are mainly changing the software. Transition from the functional requirements to the system development and deployment passes through the software architecture mapping process. The question is what happens if we avoid systematic approach for architecture mapping, how to fulfill non-functional requirements, and still stay in system stable environment. Many of proposed methods and tools start from the environment for system development from the scratch or at most from similar development environment, reusable components, what in evolvable systems are rare cases. Sometimes it is hard to take into consideration proprietary systems and components that are the basic building elements during development of evolvable systems. The functional success and quality parameters of the new system depend on the process of software architecture evolution. In an industrial practice system architects relay on the prototype execution that can be costly and often is time consuming. The system interaction modeling on the higher abstraction level can improve architectural decisions and propose better components selection process. In such a case the main problem is proper artifacts collection in the environment of black box or gray box modeling, which is based on the meta level of system description. This meta level of system description requires essential architectural concepts that are suitable to replace the reverse engineering activities which in some cases requests a lot of effort with very low performance, and can be very costly. Second problem is how to define atomic executable component in black box modeling to have the fine grained component selection. These architecture correlation facts are the main challenges in evolvable system development. Some analysis shows that commercial companies don't, or rarely, use models and tools for systematic architecture analysis and deployment well accepted in research community. Practical examples will stress the fact that reality is somewhere in between. The systematic implementation of architecture evolution tool chain with existing development and business processes can improve the overall system quality and reduce the development time.