« Chance News (och sajt) | Main | Namngivning av barn »

juli 23, 2003

Komplexitet i mjukvaruarkitektur

I forskningsrapporten Hierarchical Small Worlds in Software Architecture används tekniker från teorin om komplexa nätverk för att undersöka komponentstrukturen i flera olika större utvecklingsprojekt. Man hittar - naturligtvis! - "small worlds-"effekter och skafria beteenden.

Abstract : The components of a large software application do not interact in random ways. Instead, class diagrams exhibit remarkable topological similarities to other natural and artificial systems. The components of a large software application are very well connected because the mean shortest distance between them is very low in spite of having a relatively small number of connections per class. In addition, these diagrams are very heterogeneous. These measurements are of a general nature and are largely independent of the particular semantics of the application. As shown in this paper, and irrespective of the specific features of each system analyzed, the final outcome of software evolution is a small world, hierarchical class diagram with well-defined statistical properties. The consequences for software evolution are outlined.

Från rapportens avslutande kommentarer: The important point of our work is that different software architectures share the same universal topological features, that is, small-worldness and scale-free behavior. This is a very surprising result and raises several interesting questions about how we (as human designers) organize knowledge and express the inner workings of a very complex, and abstract machine.

Posted by hakank at juli 23, 2003 10:27 EM Posted to Dynamiska system | Systemutveckling