T23: Building Solid Distributed Enterprise Software Architectures: Architecture Principles and UML Views
Monday, Oct 23, from 08:30 to 12:00, C124
Defining an effective software architecture is essential to the successful development of distributed enterprise software systems. The definition of an architecture that meets the project's needs and the communication of this complex set of information can be a daunting task for even the most experienced software architects. This tutorial provides an overview of enterprise software architecture views and principles. Initially the tutorial describes the development of component and deployment views based on IEEE 1471 and UML. Next, software architecture principles such as abstraction, separation of concerns, coupling and cohesion, and modularity are discussed in the context of software architecture. For each principle, the tradeoffs and issues are illustrated using the previously described architectural views. The techniques and principles described in this tutorial are based on a significant experience base architecting enterprise software systems. As a result, the approaches, principles, and examples described here form a practical basis for software architects working on distributed enterprise systems. In addition, the tutorial includes two hands-on exercises to give students a chance to apply the techniques for themselves.
Intermediate: Basic understanding of UML. Experience as a software developer. Interest in software architecture. Experience with enterprise software systems beneficial.
Goals: After the tutorial students will understand the following: * SW Architecture terminology based on UML and IEEE 1471 * Key architectural views for modeling and evaluation of distributed enterprise software architectures * Modeling of components, processes, and deployment * Key software architecture principles for distributed enterprise systems * Development and evaluation of software architectures using views and principles
Format: Slides and Exercises
Jeff Garland, CrystalClear Software: Jeff Garland has worked on many large-scale software projects over the past 20 years, in many different domains, including telephone switching, industrial process control, satellite ground control, and financial systems. He has served as both the lead architect and a member of the architecture team on several of these projects. Mr. Garland holds a Master's degree in Computer Science from Arizona State University and a Bachelor of Science in Systems Engineering from the University of Arizona. He is currently President and Principle Consultant for CrystalClear Software, a consulting firm that specializes in the development of software architectures for large-scale systems.
Richard Anthony, General Dynamics C4 Systems: Richard Anthony has over 20+ years experience working on large-scale software development efforts. The systems are from application areas such as satellite and network operations systems, telephony base station control, manufacturing, and simulation. He has served in the role of software architect, design engineering technical lead, software design lead, software system engineer, and developer on projects in these application areas. Mr. Anthony holds Master's degrees in Computer Science and Mathematics, as well as a Bachelor's degree in Mathematics, all from the University of Wyoming. He is currently a Software Architect at General Dynamics C4 Systems.