SEI Virtual Event Showcases Value of System Quality Attributes
January 30, 2013 • Article
January 30, 2013—On January 16, 2013, senior researchers from the Software Engineering Institute (SEI) hosted "Architecting in a Complex World." The live, three-hour virtual event attracted more than 1,000 registered participants from 60 countries. The SEI researchers explored ways to overcome challenging aspects of complexity, such as distributed development and extended system life, that affect system and system-of-systems development. Their presentations drew from several years of SEI experience that confirm the importance of quality attributes to system success. The SEI has made the event's keynote talk and three webinars available for on-demand viewing at http://www.sei.cmu.edu/go/architecting-in-a-complex-world/.
"Quality attributes are first-class citizens in understanding how we're going to meet the business and mission goals for a particular system," Linda Northrop, SEI Fellow and director of the Research, Technology, and System Solutions Program, told event attendees in an opening keynote talk. "Our work is explicitly focused on quality attributes because we understand how important . . . their characterization, their fulfillment, is to success with a software development effort," Northrop said.
Early Life-cycle, Scenario-based Approach
While software development organizations typically do a good job in eliciting functional requirements, they do a "bad job" eliciting quality attribute requirements, Rob Wojcik said in his webinar. As a remedy, he introduced the Quality Attribute Workshop (QAW), which leads stakeholders to agree on scenarios that represent the system's quality attribute requirements.
Root-cause Analysis Approach
Ipek Ozkaya's webinar expanded the discussion of quality attributes to the context of large-scale agile development. "More often than not, especially in contexts where agile software development has been embraced wholeheartedly, we see a lack of understanding of the difference between architecturally significant requirements and functional requirements. This results in, especially downstream . . . a substantial amount of rework."
In response, Ozkaya advocated root-cause analysis "to examine technical and nontechnical areas in development, looking at both Agile software development and software architecture fundamentals." Root cause analysis into quality attributes requires architecture analysis to predict system properties and a measurement environment to monitor the implemented system's quality are needed, along with an approach such as the QAW to elicit requirements, Ozkaya said.
Using Vignettes and End-to-end Threads
"Functionality and capability are critically important, but the architecture must be driven by the quality attributes. This is true in system architecture and system-of-systems architecture," Michael Gagliardi said in his webinar. "Specifying and addressing quality attributes early and evaluating the architecture to identify risks is key to success. This is exacerbated in a system-of-systems context," according to Gagliardi.
Gagliardi reported on his use of the Mission Thread Workshop (MTW) in system-of-systems development. In an MTW, stakeholders augment mission threads with quality attribute considerations using the concept of a vignette. "Vignettes here like scenarios in software architecture [as used in the Quality Attribute Workshop]. A vignette sets context for one or more [end-to-end] mission threads," Gagliardi said.
On-demand Viewing of Webinars Available
To watch the webinar recordings, download the webinar slides, and get more information about software architecture, please visit http://www.sei.cmu.edu/go/architecting-in-a-complex-world/.
Continue this conversation about quality attributes, agile development, and system-of-systems challenges in the SEI Architecture Technology User Network (SATURN). The SATURN 2013 Conference will be held in Minneapolis, MN, on April 29-May 3.
For nearly two decades, the SEI has been instrumental in the creation and development of the field of software engineering known as software architecture. The software architecture of a program or computing system is a depiction of the system that fosters understanding of how the system will behave.