Archive: 2013-05

This September, the SEI will be coming to Los Angeles to offer two onsite professional development courses, Documenting Software Architectures and Software Architecture Design and Analysis. Successful completion of these two courses fulfills two of the four requirements toward the SEI Software Architecture Professional Certificate, which can help you gain the skills and acquire the experience to enhance your career.

Since 2010, the SEI and IEEE have been conferring two attendee-selected awards at SATURN. The IEEE Software SATURN Architecture in Practice Presentation Award is given to the presentation that best describes experiences, methods, and lessons learned from the implementation of architecture-centric practices. Anthony Tsakiris of Ford Motor Company, Jeromy Carriere of eBay, Inc., and Michael Keeling of Vivisimo received this award in 2010, 2011, and 2012 respectively. This year's award winner was Simon Brown of Coding the Architecture for his presentation titled The Conflict Between Agile and Architecture: Myth or Reality.

Notes by Brendan Foote and Ian De Silva

IEEE Invited Talk: Games Software Architect Play: On Reasoning Fallacies, Cognitive Biases, and Politics

Phillippe Kruchten, University of British Columbia

Phillippe got exposure to large and not-so-large companies as a software architecture consultant with Rational in the early part of the century. Everywhere, he saw how design really was the same thing as making decisions, and everyone uses a process to do that.

Notes by Ian De Silva

Software Development Improvement Program: Enabling Software Excellence at a Hardware Company

Sascha Stoeter, ABB

ABB has historically been a hardware company, but it has been slowly increasing the amount of software development it does since the 80s. It is a distributed company (in 34+ countries) with software embedded into products such as controllers. Each team has its own set of tools to support development efforts.

Notes by Ian De Silva

Lean and Mean Architecting with Risk- and Cost- Driven Architecture

Eltjo Poort, CGI
Solution architecture includes more than just the software; it may include business processes, information systems, technologies, and the environment. Solution architecture approaches fill the gap between enterprise architecture approaches and technical architecture approaches. Enterprise approaches are weak on transformation and implementation, while technical architecture is weak on cross-technology stakeholder concerns.

Notes by Brendan Foote

All Architecture Evaluation Is Not the Same: Lessons Learned from More Than 50 Architecture Evaluations in Industry
Matthias Naab, Jens Knodel, and Thorsten Keuler, Fraunhofer IESE
Matthias has evaluated many systems' architecture, ranging from tens of thousands of lines of code to tens of millions, and primarily in Java, C++ and C#. From this he distills out commonalities in the various stages of the evaluations. To start with, the initiator of the evaluation was either the development company or an outside company, such as a current customer or a potential one. The questions being asked also varied--whether wondering if the architecture is adequate for one's solutions, what the impact would be of changing the system's paradigm, or how big a difference there was between a system and the reference architecture.

Notes by Brendan Foote

Keynote Address: Learning to Surf

Mary Poppendieck, Poppendieck.LLC

We've always had to ability to think in different ways by pretending to "stand in someone else's shoes." But without even trying, we are using two different modes of thinking: type 1, the fast, reflexive, intuitive mode; and type 2, which is slow and thoughtful.

Notes by Frank M. Rischner

Architecture Patterns for Mobile Systems in Resource-Constrained Environments
Grace Lewis, Jeff Boleng, Gene Cahill, Edwin Morris, Marc Novakouski, James Root, and Soumya Simanta, SEI

First responders, soldiers, and other front-line personnel work in resource-constrained environments. It is necessary to use mobile systems in those environments. The systems are limited in performance and battery life. This talk is about architectural patterns. The first pattern Lewis talked about is the Data Source Integration Pattern, which means the data source is on the server. Some of the operations on the data are very power consuming, so we don't want them on the mobile device. The user defines the filters on the mobile device and sends them to the server. The second pattern is the Group Context Awareness Pattern. The users don't go out in the field alone. The users' devices are connected to the same controller, so all devices show the same view. Since the users are not in the field alone and probably operate in a close area, only one device needs the GPS has to be turned on. This model is a layered MVC pattern. Rule sets apply to the mission and are interchangeable. The third pattern is the Cloudlet-Based Cyber-Foraging Pattern. Cyber-foraging has been around for a while; the most known application is probably Siri from Apple. The Cloudlet-Based Cyber-Foraging base is on a VM manager.

The SEI is conducting a survey to understand more about the extent to which architectural concerns play a role in agile software development. In particular, the goal of this survey is to understand some of the existing practices used to quantify architecture. This topic is of growing importance. As successful agile techniques are applied to larger and larger projects, they require increased visibility into the architecture of the system. Your participation is important to allow the SEI to correctly characterize the nature of the problem and to understand some solutions that people have found useful.

Notes by Frank M. Rischner

The Design Space of Modern HTML5/JavaScript Web Applications

Marcin Nowak and Cesare Pautasso, University of Lugano
Whenever we create a web application, we have to decide where the application runs, either on the server side or on the client side. When using HTML5, we push everything but the data to the client. In the example scenario, the server is treated as the database, and the browser is seen as a terminal. There are several Model View interaction patterns: Model View Controller Pattern, Model View Presenter Pattern, and Model View ViewModel Pattern, which is the most flexible one of the patterns. Most recent movements apply the "Model View *" pattern, which leaves out the controller.

Notes by Ian De Silva

The Conflict Between Agile and Architecture: Myth or Reality?

Simon Brown, Coding the Architecture

Agile is about working in small increments, getting feedback, and improving the process or product. Architecture is about structure and vision. There is no conflict between agile and architecture because every software project has an architecture. There is, however, a conflict in the approach and team structure.

Notes by Ian De Silva

Introducing Agile in Large-Scale Projects

Vladimir Koncar, Ericsson Nikola Tesla Drago Holub, Ericsson Nikola Tesla Zoran Kokolj, Ericsson Nikola Tesla Emina Filipovic-Juric, Ericsson Nikola Tesla Josko Bilic, Ericsson Nikola Tesla
In this talk, Koncar described his team's experiences using agile on a large-scale telecom project at Ericsson. This hardware-dependent project was estimated to be about 10 million lines of code, requiring the work of 100 developers for two years. Because of hardware-plan instability, uncertain requirements, and sensitive time to market, agile was the development methodology of choice. In particular, they used Scrum with long-term, cross-functional teams.

Notes by Brendan Foote

Design and Analysis of Cyber-Physical Systems: AADL and Avionics Systems
Julien Delange and Peter Feiler, SEI

Architectural decisions affect nonfunctional requirements, which are critical to the safety of systems. Rework costs increase the later a defect is detected in the software development life cycle. In Delange’s experience, a $10,000 architecture-phase correction can save $3 million! These errors can be caused by mismatched assumptions in embedded software. One anecdote is a train on which the doors wouldn’t close, so the conductor stepped outside to push them closed. But the system assumes the conductor is inside, so the train automatically took off. Dual core laptops also violated many assumptions that developers had made up to that time. To put it glibly, if we can’t get iTunes right on dual core machines, how are we supposed to make safe airplanes with even more complicated hardware?

Notes by Brendan Foote

How to Build, Implement, and Use an Architecture Metamodel

Chris Armstrong, Armstrong Process Group, Inc.
Armstrong discussed the architecture-description standard UML model, showing how an architecture description expresses an architecture, fulfills the concerns of stakeholders, and more. He uses the difference between raw accounting data and the common views the way, say, a CFO would need to because of the way that an architecture is standardized by the RFC 42010 (that is, what subset of the entire UML model is particularly useful?).

Notes by Frank M. Rischner, Ian De Silva, and Brendan Foote

Keynote Address: WordPress.com and the Future of Work

Scott Berkun, ScottBerkun.com
Berkun is the author of the forthcoming A Year Without Pants, a reflection on his time working as a team lead for WordPress.com, and four other books. Before that, he was a Microsoft employee and worked on Internet Explorer and Windows. He saw a lot of differences between those two working environments, which his book aims to articulate. At WordPress.com, people are distributed globally (hence, no one has to go to work or "wear pants"). They also get to meet up in cool places like Athens.

Notes by Frank M. Rischner

Architecting Long-Lived Systems

Harald Wesenberg and Einar Landre, Statoil Arne Wiklund, Kongsberg

Statoil uses environmental-monitoring software for monitoring the impacts of their oil business on the environment. Statoil struggled to build a system that would live for a long time. Making sure there is no impact on the environment, how do we build a system that lives for 70 years and adapts to changes?

  • Don't monitor the major events like oils spills; monitor the little things and their impacts on the environment.
  • Use agile projects, since there are a huge number of unknowns in the unknowns.
  • Use stacking capabilities and business capabilities. Those business capabilities are driven by value, are measurable, and provide actions. Each capability is a small enterprise-architecture element.

Notes by Frank M. Rischner, Ian De Silva, and Brendan Foote SATURN 2013 Keynote Address: 15 Years of SOA at Credit Suisse: Lessons Learned and Remaining Challenges Stephan Murer, Credit Suisse Murer works for Credit Suisse, which finds competitive advantage in creating their own systems, rather than outsourcing that work to software vendors. The company handles a large-scale user base, with almost 67,750 users in 550 locations.