DocumentCode :
2625821
Title :
inCode.Rules: An agile approach for defining and checking architectural constraints
Author :
Marinescu, Radu ; Ganea, George
Author_Institution :
LOOSE Res. Group, Politeh. Univ. of Timisoara, Timişoara, Romania
fYear :
2010
fDate :
26-28 Aug. 2010
Firstpage :
305
Lastpage :
312
Abstract :
The size and complexity of software systems is constantly and abruptly increasing, as well as the size of the teams who develop them. Although software systems usually start with a clean design and an unitary architecture, preserving the design quality in the final product, especially its modularity and reusability, depends on the programmers´ ability to understand, implement and maintain the initial architecture of the system; in other words, it depends on the ability to preserve a common vision about the high-level design i.e., to preserve the architectural integrity. This is an essential problem, and it has led to a number of approaches that help maintaining architectural integrity by allowing for the specification and checking of architectural rules (constraints) in code. Unfortunately, these approaches are rarely used in practice because of their excessive complexity, lack of flexibility and absence of integration with the actual development environment. In this paper we propose a new, agile approach to defining and checking architectural constraints. The proposed solution consists, on one hand, of the inCode.Rules language that offers a highly intuitive, yet flexible, means for defining architectural rules. On the other hand, inCode.Rules is far more than a language specification: in the paper we show how architectural rules can be automatically checked using the inCode.Rules interpreter; and how they can be easily edited using the full-fledged editor that we created. Both the interpreter and the editor are tightly integrated in the Eclipse IDE. Furthermore, inCode.Rules has grown beyond being just a prototype as it has been already successfully applied on large-scale systems of over 1 MLOC. Thus, inCode.Rules provides a more agile approach to architecture verification, as it brings the evolution of code and architecture closer than ever before.
Keywords :
formal specification; formal verification; software architecture; software metrics; specification languages; Eclipse IDE; architectural constraints; architectural integrity; architectural rules; architecture verification; design quality; development environment; high-level design; inCode.Rules interpreter; inCode.Rules language; language specification; large-scale systems; software systems; unitary architecture; Complexity theory; Computer architecture; Containers; Java; Quality assessment; Software systems; Eclipse; architectural integrity; quality assessment; software engineering;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Intelligent Computer Communication and Processing (ICCP), 2010 IEEE International Conference on
Conference_Location :
Cluj-Napoca
Print_ISBN :
978-1-4244-8228-3
Electronic_ISBN :
978-1-4244-8230-6
Type :
conf
DOI :
10.1109/ICCP.2010.5606420
Filename :
5606420
Link To Document :
بازگشت