What an Architect Needs to Know Experiences from the Siemens Curriculum for Software Engineers
Total Page:16
File Type:pdf, Size:1020Kb
Corporate Technology What an Architect Needs to Know Experiences from the Siemens Curriculum for Software Engineers Frank Buschmann Siemens AG Corporate Technology Systems Architecture and Platforms Copyright © Siemens AG 2010. All rights reserved. Content Motivation Software architect target profile Senior software architect curriculum Summary Page 2 October 2010 Buschmann © Siemens AG, Corporate Technology 1 Background and motivation The economic success of many Siemens products is highly dependent on key software knowledge and practices. The qualification of software engineers has high priority for Siemens Levels & roles Head of Class A Project: R&D High complexity (platform / product line) High degree of innovation SW PM Big business impact, high risk Cross-functional, distributed structure, big team SW PLM Certified Senior Software Architect (SSWA) r ts e n g e r a Certified e n Class B Project: m e a e Software Architect n r i M Moderate innovation in technology, medium risk i g t u Architect (SWA) Software n s Medium business impact, medium teams q Architect Software e e E T R Software Class C Project: Developer Enhancing known technology and requirements, low risk Single site development, small teams Page 3 October 2010 Buschmann © Siemens AG, Corporate Technology Content Motivation Software architect target profile Senior software architect curriculum Summary Page 4 October 2010 Buschmann © Siemens AG, Corporate Technology 2 Software architect mission Software Architects drive and guide the specification and realization of a software system through its entire lifetime They provide the architecture vision of a ERP product Warehouse Management Their decisions are driven by clear focus on H C Warehouse DB Representation Access the intended business for the software and its I Material Flow associated requirements Control Fault Mgr They are guided by vision and experience User Mgr Base Automation They lead, guide, coach, and motivate the architects and developers in their teams They involve the relevant management before taking important decisions Page 5 October 2010 Buschmann © Siemens AG, Corporate Technology Software architect competence spider Architects must be proficient in all areas of software development, but most of all they must be thoughtful leaders! Business case understanding Business and Testing and Quality assurance Global development strategy quality Expert Test processes Legal issues and methods Advanced Software System Product Requirements processes development Basic management engineering SW development processes Requirements engineering Project Product line engineering Leadership management Software architecture Social skills Architecture and development Competence level scale design and realization Basic – can understand Configuration SW design Software Architect (SWA) Advanced – can apply management methods Expert – can guide Senior Software Architect (SSWA) Page 6 October 2010 Buschmann © Siemens AG, Corporate Technology 3 Involvement in the business case A properly defined business case and project scope inform about The key purpose and main responsibilities of a software system Its business-relevant requirements and USP’s The context of the system: boundaries, users and their interests, and the domain model The system’s business model The envisioned market for the system and the expected market share The expected revenue (over time), the planned investment (over time) The system’s technology, development and release roadmaps The system’s Intellectual Property Rights (IPR) strategy The architect must understand the system’s business case, and is involved in defining its scope, domain model, roadmaps, and IPR strategy Page 7 October 2010 Buschmann © Siemens AG, Corporate Technology Involvement in requirements engineering An architect is dependent on clearly defined requirements to take explicit, thoughtful, focused, and balanced design decisions. Requirements drive the selection of appropriate design concepts and realization technologies for their solution They guide design decisions in case of conflicts They ensure a design addresses all requirements, and only the requirements They enable testing the specified design and its realization Master node Hot standby • The planned uptime of the system is process image 7x24, the planned downtime is 10 consecutive days every 2 years • The process image of the plant must be Stand-by node available 99,999% of the planned uptime • Recovery [reference to the recovery process] in case of an unplanned outage should take at most 2 seconds Legend request Qualitative requirements lead to appropriate and reply sustainable design decisions synchronize Page 8 October 2010 Buschmann © Siemens AG, Corporate Technology 4 Involvement in requirements engineering To guide the design and implementation of a software system, requirements should expose the following quality attributes: Feasible – supports the business case g n i r Correct – precise qualitative description e e n i Unambiguous – precise qualitative description g n E s Testable – precise quantitative description t n e Consistent – with other requirements m e r i Traceable – can be identified clearly u q e Prioritized – regarding business value, technical R risk, realization complexity, ... The architect must understand the system’s requirements, is involved in challenging their properties, and contributes all technical aspects to their specification and prioritization. It is the architect’s responsibility to initiate dialog with the relevant management and project roles if requirements are lacking the above qualities. Page 9 October 2010 Buschmann © Siemens AG, Corporate Technology Involvement in testing Test can help tell an architect how sustainable an architecture is and how well the architecture meets the system requirements A defined test strategy supports testing the success critical aspects of the system Design for testability requires clear modularization, Scheduling Client FIFO strict design by contract, and stable intermediate Strategy Service states along the control flow of key use cases Future Scheduler Interface Activation List A. Method* Regular architecture reviews and Memento code quality management help to Request Macro Store Fetch maintain architecture sustainability Command Item Item Storage Leafs LoadIn Warehouse and to avoid architecture drift Capacity Only Layers Core Storage Abstract Abstract Abstract Manager Visitor Iterator Strategy * * Abstract Successor Storage * The architect and test manager must SOC Atomic Composite Factory Storage Storage Hazardous* Bin Warehouse Aisle agree on a test strategy, the architect SOC Hazardous Real must prepare the system’s architecture Value Bin for testability, participate in reviews, and interpret and react on test results Page 10 October 2010 Buschmann © Siemens AG, Corporate Technology 5 Involvement in software processes Define and realize a software architecture using an iterative, risk-driven, requirements-driven, and test-driven development process, in which An iterative, time-boxed approach provides continuous feedback Risk- and requirements orientation ensures that the most important aspects of the system's realization are addressed first: key functionality, quality, technological risks A test-driven approach provides concrete feedback on the quality of the architecture and its realization The architect is involved in defining the software development process to ensure that it defines a feedback loop for achieving product quality and less risk Page 11 October 2010 Buschmann © Siemens AG, Corporate Technology Responsibility in design and realization Define a sustainable baseline architecture – an architectural "whole": The fundamental structure and form of the software system: its core parts, their main responsibilities, relationships, interfaces, and collaborations Concurrency Concept for Performance and Scalability The concepts for addressing ERP success-critical, system-wide Scheduling Client FIFO Warehouse Strategy quality attributes Service management Future Scheduler H Interface Warehouse DB Activation M Access List representation A. Method* The guiding principles I Memento Material flow Request and design directives control Macro Store Fetch Command Item Item Fault Storage Leafs LoadInWarehouse for the architecture mgmt Capacity Only Layers Core Storage Abstract Abstract Abstract User Manager Visitor Iterator Strategy * * Abstract mgr Active ObjectSuccessor Storage* Base automation SOC Atomic Composite Key for success is that all Factory Storage Storage Hazardous* Bin Warehouse Aisle SOC architecture work is driven Hazardous Real Value Bin by requirements and that the architect guides realization: Business Logic Infrastructure Subsystems Subsystem architect also implements Page 12 October 2010 Buschmann © Siemens AG, Corporate Technology 6 Responsibility in design and realization An architect needs a clear set of values, activities, practices, and methods to System and domain scoping Specify and implement a software architecture constructively and in a timely fashion Baseline architecture specification Check and ensure the appropriate architectural quality Iterative, risk-driven, Enforcing the requirements-driven, and Respond to changes of all architecture vision kinds, such as changing test-driven development requirements and priorities Strategic and Design for usability Deal with problems that arise tactical design during the definition and realization of the software architecture