What is Software Architecture... and an overview. PV260 Software Quality Ondřej "Ondra" Krajíček HgjíE ondrej.krajicek@ysoft.com [ffi ©OndrejKrajicek H "Perfection is not achieved when there is nothing to add, but when there is nothing to remove." Antoine de Saint Exupery "Insanity is doing the same thing over and over and expecting different results." (attributed to) Albert Einstein "It has to work." IETF RFC 1925 Software Architecture is seldom about functional requirements. Software Architecture is the important stuff (whatever that is). Ralph Johnson Cost Cost Programming defect found via Pair Programming Programming defect found via Continuous Integration Requirements defect found via traditional acceptance testing Design defect found via traditional system testing Design or programming defect found via Test Driven Development (TDD) Requirements or design defect found via Active Stakeholder Participation Requirements or design defect found via Model Storming Progamming defect found via traditional " system testing Defect found via a review or inspection _____Defect found via independent parallel testing Time Length of Feedback Cycle Copyright 2006-2009 Scon W. Ambl&r COSt Of Change Curve Copyright (c) 2006-2009 Scott W Ambler SOFTWARE ARCHITECTURE IS THE SERVANT OF HIGH-PRIORITY STAKEHOLDER VALUES. IS AS SIMPLE AS POSSIBLE, BUT NOT SIMPLER AND IS DESIGNED TO BE REPLACEABLE. Tom Gilb (Architecture Manifesto) COMPETITIVE ENGINEERING A HAMMOOR* KM SYS TIMS ENGINEERING. REQUIREMENTS ENGINEERING. ANO SOFTWARE ENGINEERING USING ^LANGUAGE SERVANT HIGH-PRIORITY STAKEHOLDER VALUES AS SIMPLE AS POSSIBLE NOT SIMPLER REPLACEABLE Software Architecture is Strategy Strategy is a plan how to deliver on your goals. Your goals are defined by high-priority stakeholders. SOFTWARE ARCHITECTURE IS THE STRATEGY HOW TO DELIVER HIGH-PRIORITY STAKEHOLDER VALUES. It is still important to accept change because no battle plan survives the first contact with the enemy. Software Architecture is Risk Mitigation What happens when things go wrong? Is it important? Software Architecture is Communication What does it mean? How to deliver and protect stakeholder values? Software Architect is a Teacher HOW ARE YOU DOING ON YOUR UNSPOKEN OBJECTIVES? rAY WHAT? as I'M REFERRING TO THE GOALS I HAVE IN NY KIND THAT I'VE NEVER MENTIONED. HOW ARE THOSE GOING? TOTALLY NAILING THEN. Who does software architecture then? Software Architecture is done by everyone. Key Takeaways Architecture is a servant of high priority stakeholder values, Is as simple as possible, but not simpler. Is designed to be replaceable. Software Architecture is a Strategy. Software Architecture is Communication Software Architect is a Teacher.