This course presents step five in the Cornell Systems Engineering Program's Eight Steps for Getting Design Right: developing the architecture. This is the central course in the series for developing your understanding of how systems work and how to describe how they work. In addition, it covers many new considerations important to everyone engaged in system design. The concepts and tools presented here are relevant to a wide variety of projects, large and small.
The process of developing the architecture involves creating a description of the system in terms of its subsystems and how they work together. The challenge for the designer is to create a description that communicates effectively to all members of the design team-for example, to hardware engineers versed in mechanical or electrical engineering as well as to software engineers versed in computer science-even though these groups may speak discipline-specific languages. This course uses basic concepts introduced earlier in the series to develop a general language for describing system architecture that everyone on the team can understand.
This course is unique in several ways. It emphasizes the role of architecture, a role typically ignored in Design for Six Sigma approaches. It presents a behavioral basis for architecture that likewise is often overlooked in systems engineering. In this course, the learner finds that most of the work products resulting from the design process are derived from operational descriptions. This behavior-centered approach integrates otherwise diverse views of the system and has enormous benefits for the end-user, ensuring that every aspect of the product's or service's use has been thoroughly thought through.
Systems thinking requires both detail and abstraction. A manager can develop her team's systems-thinking skills by using the affinity process to abstract system behavior from detailed operational descriptions. Anyone using this approach, manager or designer, learns to think through the coordination and control of the system and to allocate functionality and performance to subsystems.