A wonderful workshop, titled Software Architecture Challenges in the 21st Century, took place at the University of Southern California on June 8th. The workshop was co-sponsored by IEEE Software, USC's Center for Systems and Software Engineering, and UC Irvine's Institute for Software Research (ISR). Here is my personal summary of the talks; the presentation slides are available online.
The workshop started with a fascinating talk by Philippe Kruchten discussing the inherent tensions between Software Architecture and Agile Software Development. Philippe described what happens to a large project developed using agile processes without an underlying architecture using an appt metaphor: hitting the wall. This is what happens in marathon runs when depletion of glycogen stores in the liver and muscles, manifests itself by precipitous fatigue and loss of energy. In a software project lacking architectural guidance increasing complexity brings the project to a halt. Philippe presented a real-life case where the agile developers showed in the weekly meetings more code but not new features. Philippe suggested that big agile projects require two types of architects: a maker and keeper of big decisions, whom Fowler describes as architectus reloadus, and a mentor, troubleshooter, and prototyper, whom Fowler describes as architectus aryzus. As the project progresses, the reloadus architects can be moved away from the architecture team to another project, while the aryzus architects can be moved from the prototyping team to become team leads of the feature teams.
In the next talk Richard Taylor from UCI discussed architectural styles that favor dynamic software adaptation. He presented four key properties that are associated with dynamic adaptation: Behavior, Asynchrony, State, and Execution context. He then provided some examples of reconfigurable architectures.
Pekka Abrahamsson, a member of the IEEE Software editorial board, presented agile transitioning cases from a number of companies.
After the lunch break Grady Booch addressed the workshop through Second Life. His topic was the defenestration of superfluous architectural accoutrements (French for unusual clothes, as I was told). According to Grady, architecture affects not only how we design the solution, but also how we design the organization. Here are some sound bytes from his talk.
Neno Medvidovic's talk was on the anatomy and physiology of the grid. Neno and his colleagues used architectural recovery techniques to examine the actual implementation of 16 grid implementations looking for the standard architectural layers of a grid: fabric, connectivity, resource, collective, and application. They were surprised to find empty layers, skipped layers, up-calls, and multi-layer components that didn't fit in the architecture. In total they found 250 architectural discrepancies.
The final technical talk was by André van der Hoek, and was titled Architecture? Architecting! André started with the question, "If an architecture is components, connectors, configurations, what are architects doing?" To study software designers in action he gave them a project and followed them in action. Through his studies he realized that not every experienced designer is a good designer and that good designers know when to stop drilling down. He then presented a neat demo of Calico, an electronic whiteboard. This allows drawing, but also moving, undoing, regrouping, check pointing, dealing with scraps, and working with multiple drawings on a grid.
The workshop ended with a panel discussion between five researchers.
Last modified: Tuesday, June 9, 2009 5:19 pm
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.