ReviewEssays.com - Term Papers, Book Reports, Research Papers and College Essays
Search

Software Architecture Evolution Framework

Essay by   •  November 27, 2010  •  Research Paper  •  879 Words (4 Pages)  •  2,193 Views

Essay Preview: Software Architecture Evolution Framework

Report this essay
Page 1 of 4

SAEF “Software Architecture Evolution Framework” вЂ"

The Vision

1.1 Motivation

In many cases, informal architectural diagrams are available to the personnel who

maintain software systems. However, there is little tool support linking such architectural

descriptions to system requirements and the source code. This can create a number of

problems. For example, inconsistencies can arise between the requirements, the

architectural artefacts and the source code, making the code-base the only trustworthy

representation of the system. Consequently maintainers are forced to adopt a code centric

approach whereby they work with a large, complex and formal representation of the

system.

1.2 Three Facets of Software Architecture Evolution

Typically, software maintenance is performed in a code centric fashion, whereby mental

models of the software architecture are developed by maintenance engineers through

analysis of the code base. In many cases, informal architectural diagrams are available to

facilitate this comprehension but there is no formal support for the capturing of these

mental models. When the system evolves a maintenance engineer’s mental model also

evolves but rarely is the new architecture documented.

The question is how can this information be captured, maintained and presented in such a

way that increases the understanding of a software system and reduces maintenance

effort?

In trying to answer this question our initial research has identified three major areas of

interest concerning the evolution of software systems:



Reference

ArchJava

- Architecture, while the concept of architecture continues to be a source of

considerable debate in the software community, its importance in industry is

widely accepted. Software architecture is an abstraction of the organisation of the

structural elements of a software system. The relationships between structural

elements are governed by collaborations that are mediated through interfaces. The

architecture disciplines the composition of the static and the behavioural elements

into progressively larger subsystems. The advent of Architecture Description

Languages (ADLs) within the academic community provides a structured

framework for the specification of software systems.

- Process,

- Semantics, currently component composition is achieved manually by maintainers

semantically interpreting syntactic types at the interface level. To semi automate

this process would require the system itself to have knowledge of the relationships

between the syntactic types of component interfaces and their associated

semantics. The term Domain Knowledge Engineering has been used to describe

the process of semantic capture and mining. It is often the case that in the absence

of a structured approach to domain knowledge engineering:

o The definitions of many significant domain concepts remain buried in text

based use case descriptions.

o Data dictionaries, when used, are populated with subjective descriptions of

domain terms. Quite often, the same term will have different descriptions

deposited in the dictionary during requirements and analysis.

o The same term may be described many times across different projects.

o At the program level, links from elements of the code to domain concepts

are non-existent. Such links would facilitate the process of

comprehension.

These semantics also play a critical role in the evolution of a software system.

While technologies such as ebXML attempt to address the semantics problem at a

superficial level, little attention has been given to:

o Specification of ontologies including concepts and their relationships/

mappings.





Reference

SEI website with all the software

architecture definitions

o Capture of semantics during requirements engineering, and linking it to a

core ontology.

o Semantic mining paradigms, in which terms are translated and matched.

1.3 Architecture Centric Software Evolution

The Software Architecture Evolution Group at the University of Limerick envisages an

architecture centric, software evolution process in line with the �architecture-centric’

tenet of CBSE. In this vision components are added, removed and replaced in a software

architecture either statically or dynamically, in line with, and explicitly linked to, altered

business

...

...

Download as:   txt (7 Kb)   pdf (97.4 Kb)   docx (12.3 Kb)  
Continue for 3 more pages »
Only available on ReviewEssays.com