Program: Global Analysis: Developing Software Design Strategies for Maintainability

One of the few known certainties when embarking upon the design of a new software system architecture is that the design and its implementation will likely change over time as market requirements, technologies, hardware, and business factors change. Some of these influencing factors impact the entire system, and some directly contradict other factors. These factors may be different in future versions of the product, so your architecture should be designed for maintainability to support the changes that you can reasonably expect. In order to avoid major potential rework, these factors must be addressed from the beginning of high-level design.

This half-day tutorial shows how the technique of global analysis can be used to plan better software projects by designing more maintainable architectures that anticipate change. The purpose of global analysis is to analyze the factors that influence the architecture and to develop strategies for accommodating these factors in the architecture design. These influencing factors fall within three categories: organizational, technological, and product. By applying the approach described in this tutorial, we believe that you will have a better understanding and control of the risks associated with alternative software architecture designs.

Tutorial participants will learn how to apply global analysis at the beginning of the software architecture design process so that resulting products will better anticipate change and be more maintainable. You will learn how to document the most influential architectural factors using factor tables, then develop strategies for designing the architecture using issue cards. Participants will also be exposed to architecture design review methods such as the SEI's Architecture Tradeoff Analysis Method (ATAM) in order to increase your understanding of the relationships among influencing factors, design tradeoffs, risk mitigation, and anticipating change.

Presenters: Robert L. Nord and Daniel J. Paulish

Dr. Robert Nord is currently the Siemens Industrial Resident Affiliate at the Software Engineering Institute working on new methods for architecture tradeoff analysis and product-line practices. He is also a member of the software architecture program at Siemens Corporate Research in Princeton, NJ. Dr. Nord is a co-author of a new book on software architecture design, Applied Software Architecture published by Addison Wesley, and he has applied the Four Views design approach to industrial projects within Siemens. He holds a Ph.D. in Computer Science from Carnegie Mellon University.

Dr. Daniel Paulish is a Software Project Manager at Siemens Corporate Research with over twenty years experience in software engineering management. He has recently applied Global Analysis to the design of the Athena meter data processing and control system. He has been an international lecturer on software project management, software process improvement methods, and measurement. He is a co-author of Software Metrics: A Practitioner's Guide to Improved Product Development, published by IEEE Press. Dr. Paulish is formerly an industrial resident affiliate at the Software Engineering Institute, and holds a Ph.D. in Electrical Engineering from the Polytechnic University in Brooklyn, NY.