CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Change Impact Analysis for Generic Libraries

Marcin Zalewski (Institutionen för data- och informationsteknik, Datavetenskap (Chalmers)) ; Sibylle Schupp (Institutionen för data- och informationsteknik, Datavetenskap (Chalmers))
ICSM 2006: 22nd IEEE International Conference on Software Maintenance; Philadelphia, PA; United States; 24 September 2006 through 27 September 2006 p. 35-44. (2006)
[Konferensbidrag, refereegranskat]

Since the Standard Template Library (STL), generic libraries in C++ rely on concepts to precisely specify the requirements of generic algorithms (function templates) on their parameters (template arguments). Modifying the definition of a concept even slightly, can have a potentially large impact on the (interfaces of the) entire library. In particular the non-local effects of a change, however, make its impact difficult to determine by hand. In this paper we propose a \conceptual change impact analysis (CCIA), which determines the impact of changes of the conceptual specification of a generic library. The analysis is organized in a pipe-and-filter manner, where the first stage finds any kind of impact, the second stage various specific kinds of impact. Both stages describe reachability algorithms, which operate on a conceptual dependence graph. In a case study, we apply CCIA to a new proposal for STL iterator concepts, which is under review by the C++ standardization committee. The analysis shows a number of unexpected incompatibilities and, for certain STL algorithms, a loss of genericity.


Article number 4021318



Denna post skapades 2006-10-09. Senast ändrad 2016-06-20.
CPL Pubid: 22622

 

Läs direkt!


Länk till annan sajt (kan kräva inloggning)


Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Datavetenskap (Chalmers)

Ämnesområden

Datalogi

Chalmers infrastruktur

Relaterade publikationer

Denna publikation ingår i:


Generic Programming with Concepts