Great designs come from great designers - F. P. Brooks Adaptivity in Software Architecture
Who? Angelo van der Sijpt Software engineer Fontys Eindhoven, Computer Science, 2003 TU Eindhoven, Computer Science and Engineering, 2007 2
Who? luminis 25 employees Arnhem, Enschede Innovative software In-house and at customer Share knowledge 3
Adaptivity in Software Architecture 4
Associations Robustness Intelligence Scalability Flexibility Autonomy 5
What is adaptivity? Any su!ciently advanced technology is indistinguishable from magic. Arthur C. Clarke 6
What is adaptivity? Any su!ciently advanced technology is indistinguishable from magic. Arthur C. Clarke Adaptivity is Something we know when we see it But we cannot point it out Something desirable 6
Emergence www.robbaker.org http://en.wikipedia.org/wiki/internet 7
Redundancy What? Making elements expendable Current examples P2P systems, backups, RAID Issues No guarantees How to shut down? 8
Decoupling Localizing effects Something has to give http://flickr.com/photos/33006928@n00/32979973/ 9
Service awareness Everything is a resource Use when available, cope when not Trading, e.g. correctness for reliability quality for availability 10
Parallelizability & Distributability Some trends Multi-core systems Mobile equipment Increased networking 11
Scalability Quality of service Performance Resource consumption 12
Adaptivity in Software Architecture 13
A concept What exactly is a concept? A fundamental choice of focus Could be a choice of technology, but underlying this is likely something else. We can bind concepts together to form styles, or to form architectures 14
From concept to architecture 15
From concept to architecture Architecture Style Concept 15
From concept to architecture Quality factor Architecture Style Concept Artifact 15
From concept to architecture Quality factor Nonfunctional Architecture Style Concept Artifact System 15
Adaptivity and software architecture? Useful styles Event based P2P SOA Measurable by concepts, but corresponding with intuition 16
Adaptivity in Software Architecture 17
Whoops... Concepts... capture intuition, and are recognizable 18
Whoops... Concepts... capture intuition, and are recognizable But... are not creatable, and do not correspond to methods 18
Yes, there is a problem There are no fool-proof methods Still, there are many projects that end more or less satisfactory. Why? 19
Yes, there is a problem There are no fool-proof methods Still, there are many projects that end more or less satisfactory. Why? People 19
Any advice? Continue progress, but do not look for a silver bullet. Be aware of oversimplification. Creating good software is hard. Trust good people! 20
In the end Flexible, adaptive software needs a new way of making it. 21
Angelo van der Sijpt angelo.vandersijpt@luminis.nl Adaptivity in Software Architecture, TU/e, 2007 tue.nl/bibliotheek 22