<<

Reflections on Architecture Linda Northrop SEI Fellow

Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

© 2016 Carnegie Mellon University

Distribution Statement A: Approved for Public Release; Distribution is Unlimited Notices Copyright 2016 Carnegie Mellon University

This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center.

Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense.

NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.

[Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.

This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at [email protected].

Carnegie Mellon® and CERT® are registered marks of Carnegie Mellon University. DM-0003595

Reflections on © 2016 Carnegie Mellon University 2 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Software Architecture

The quality and longevity of a software-reliant system is largely determined by its architecture.

Architecture is of enduring importance because it is the right abstraction for performing ongoing analyses throughout a system’s lifetime.

Reflections on Software Architecture © 2016 Carnegie Mellon University 3 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Software Architecture Thinking

. High-level system design providing system-level structural abstractions and quality attributes, which help in managing complexity . Makes engineering tradeoffs explicit

Reflections on Software Architecture © 2016 Carnegie Mellon University 4 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Quality Attributes

Quality attributes . properties of work products or goods by which stakeholders judge their quality . stem from business and mission goals. . need to be characterized in a system-specific way

Quality attributes include . Performance . Availability . Interoperability . Modifiability . Usability . Security . Etc.

Reflections on Software Architecture © 2016 Carnegie Mellon University 5 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Central Role of Architecture

IMPLEMENT AND EVOLVE

DESIGN IMPLEMENT

BUSINESS AND MISSION GOALS ARCHITECTURE SYSTEM

SATISFY CONFORM

SATISFY

Reflections on Software Architecture © 2016 Carnegie Mellon University 6 Distribution Statement A: Approved for Public Release; Distribution is Unlimited ‘90’s – “The Golden Age of Software Architecture” Clements and Shaw: IEEE Software. March/April 2006.

Reflections on Software Architecture © 2016 Carnegie Mellon University 7 Distribution Statement A: Approved for Public Release; Distribution is Unlimited ‘90’s: Early Foundations BOOKS PRINCIPLES

Perry and Wolf paper Gamma/Helm/ Shaw/Garlan Rechtin/Maier Witt/Baker/Merritt Johnson/Vlissides

SAAM 4+1 Views Acme, Darwin, Wright UML 1.1 EVALUATION REPRESENTATION

Kazman/Bass/Abowd/ Kruchten Garlan/Jackson/Shaw/ Webb Boehm

Reflections on Software Architecture © 2016 Carnegie Mellon University 8 Distribution Statement A: Approved for Public Release; Distribution is Unlimited SEI’s Role

The SEI developed principles, methods, foundations, techniques, tools, and materials in support of creating, fostering, and stimulating widespread transition of architecture- centric engineering.

Reflections on Software Architecture © 2016 Carnegie Mellon University 9 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Our View: Architecture-Centric Engineering

Reflections on Software Architecture © 2016 Carnegie Mellon University 10 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Advancements Over the Years

Architectural patterns and tactics Component-based approaches Company-specific product lines Model-based approaches Persisting Themes: Aspect-oriented approaches . Modularity . Commonality vs Frameworks and platforms Variability Standard interfaces Standards SOA

Reflections on Software Architecture © 2016 Carnegie Mellon University 11 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Community Gatherings

Research Practice . WICSA . Software Architect

. CompArch . ArchConf . SATURN . European . O’Reilly Software Conference on . SEI Software Architecture Architecture Software Educators’ Workshop Conference Architecture Series . QoSA

+ tracks in other research and practitioner events

Reflections on Software Architecture © 2016 Carnegie Mellon University 12 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Related Shifts

Incremental approaches Light-weight software development approaches Open source Distributed development environments

Reflections on Software Architecture © 2016 Carnegie Mellon University 13 Distribution Statement A: Approved for Public Release; Distribution is Unlimited What Changed?

Increased connectivity Scale and complexity . decentralization and distribution

https://www.flickr.com/photos/simononly/ . “big data” . increased operational tempo . inter-reliant ecosystems . autonomy . vulnerability . collective action Disruptive and emerging https://www.flickr.com/photos/cogdog/ technologies

Reflections on Software Architecture © 2016 Carnegie Mellon University 14 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Technology Trends

Reflections on Software Architecture © 2016 Carnegie Mellon University 15 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Software Development Trends

Application frameworks Distributed development environments Cloud strategies NoSQL NewSQL Machine Learning Static analysis tools Dashboards DevOps Containers Microservices

Reflections on Software Architecture © 2016 Carnegie Mellon University 16 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Technical Challenges

Reflections on Software Architecture © 2016 Carnegie Mellon University 17 Distribution Statement A: Approved for Public Release; Distribution is Unlimited The Intersection and Architecture

At the intersections there are difficult tradeoffs to be made in structure, process, time, and cost.

Architecture is the enabler for tradeoff analyses.

Reflections on Software Architecture © 2016 Carnegie Mellon University 18 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and Accelerated Capability

How much architecture design is enough? Can architecture design be done incrementally? There is a difference between being agile and doing agile. Agility is enabled by architecture – not stifled by it. Managing technical debt is key.

Reflections on Software Architecture © 2016 Carnegie Mellon University 19 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Technical Debt* A design or construction approach that's expedient in the short term but that creates a technical context that increases complexity and cost in the long term.

• Term first used by Cunningham, W. 1992. The WyCash Portfolio Management System. OOPSLA '92 Experience Report. http://c2.com/doc/oopsla92.html. Graph: Jim Highsmith, Oct 19 2010 http://jimhighsmith.com/the-financial-implications-of- technical-debt/ Reflections on Software Architecture © 2016 Carnegie Mellon University 20 Distribution Statement A: Approved for Public Release; Distribution is Unlimited In Research and Practice

Dagstuhl Workshop on “Two developers ask forgiveness of Technical Debt technical debt at the beginning of the sprint” April 2016 Jean-Francois Millet 1857-1859: Classic Programmer Paintings

Reflections on Software Architecture © 2016 Carnegie Mellon University 21 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Timeline for Managing Technical Debt

Incurred Symptom Rework Payoff

1 2 3 4

tj ti

What is the debt? Intentional and strategic Technical debt issue description 5

How does debt accumulate? Static and architecture analysis

When to pay back debt? Architecture-focused release planning

Reflections on Software Architecture © 2016 Carnegie Mellon University 22 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and Technical Debt Bad architectural choices rated as the top contributor to technical debt, followed by overly complex code and inadequate testing among over 1800 developers we surveyed. 56% of the respondents ranked architecture among their top three pain points. A Field Study of Technical Debt https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html

Reflections on Software Architecture © 2016 Carnegie Mellon University 23 Distribution Statement A: Approved for Public Release; Distribution is Unlimited What color is your backlog?

Visible Invisible

New features Architectural, Positive and added structural Value functionality features

Negative Value Technical Defects Debt

Philippe Kruchten, Robert L. Nord, Ipek Ozkaya: Technical Debt: From Metaphor to Theory and Practice. IEEE Software 29(6): 18-21 (2012)

Reflections on Software Architecture © 2016 Carnegie Mellon University 24 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Continuous Deployment

The DevOps movement continues what Agile started.

Reflections on Software Architecture © 2016 Carnegie Mellon University 25 Distribution Statement A: Approved for Public Release; Distribution is Unlimited DevOps in Practice

Focus is on . culture and teaming . process and practices − value stream mapping − continuous delivery practices − Lean thinking . tooling, automation, and measurement − tooling to automate manual, repetitive tasks − static analysis − automation for monitoring architectural health − performance dashboards − containers

Reflections on Software Architecture © 2016 Carnegie Mellon University 26 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and DevOps

Design decisions that involve deployment- related limitations can blindside teams.

Architectural choices need to facilitate continuous delivery.

Reflections on Software Architecture © 2016 Carnegie Mellon University 27 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Microservices

“Army of contractors migrating to Microservices” Canaletto, 1733 or 1734 : Classic Programmer Paintings

Reflections on Software Architecture © 2016 Carnegie Mellon University 28 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture Evolution for Business Applications

Progress in . decomposition management Persisting Themes: . supporting change . Modularity . . automation Commonality vs Variability

SaaS UX Srv

UX Srv APIs UX PaaS BL BL BL UX BL IaaS Data Data Data Data

Monoliths 2-Tier 3-Tier SOA Cloud Microservices

Reflections on Software Architecture © 2016 Carnegie Mellon University 29 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and Scale

Cloud strategies Cloud strategies for mobility Big data

“Scale Changes Everything”

Reflections on Software Architecture © 2016 Carnegie Mellon University 30 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Two Perspectives of Software Architecture in Cloud Computing

Two potentially different sets of = business goals and quality attributes

Reflections on Software Architecture © 2016 Carnegie Mellon University 31 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Mobile Device Trends

Reflections on Software Architecture © 2016 Carnegie Mellon University 32 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture Trends: Cyber-Foraging

Edge Computing Using external resource-rich surrogates to augment the capabilities of resource-limited devices . code/computation offload . data staging Nokia Siemens Networks Liquid Applications

Cisco Systems Fog Computing

Reflections on Software Architecture © 2016 Carnegie Mellon University 33 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Big Data Systems

Two very distinct but related technological thrusts . Data analytics . Infrastructure Analytics is typically a massive data reduction exercise – “data to decisions.” Computation infrastructure necessary to ensure the analytics are . fast . scalable . secure . easy to use

Reflections on Software Architecture © 2016 Carnegie Mellon University 34 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and Big Data

System costs must grow more slowly than system capacity. Approaches . scalable software architectures . scalable software technologies . scalable execution platforms Scalability reduces as implementation complexity grows. NoSQL/NewSQL models are not created equal. You can’t manage what you don’t monitor.

Reflections on Software Architecture © 2016 Carnegie Mellon University 35 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Architecture and Assurance It’s not just about security, but functioning as intended and only as intended. Supply chains, open source, frameworks, outsourcing introduce unknowns. Tool chains that generate code, configuration files, etc. introduce unknowns. Consequences include operational failures, security and privacy compromises, reputational impact, etc. Reflections on Software Architecture © 2016 Carnegie Mellon University 36 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Assurance is Imperative

Reflections on Software Architecture © 2016 Carnegie Mellon University 37 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Analysis and Architectural Models

. evaluation is not a phase – ongoing analysis is required . capture architecture in a form amenable to ongoing analysis • range from informal (e.g., visio diagrams) to formal (e.g., with precisely defined execution semantics) • In safety critical systems formality is warranted. • Example: SAE Architecture Analysis & Design Language (AADL) Standard Suite (AS-5506 Series) - single annotated architecture model permits formal analysis across multiple quality attributes . More tooling and automation is needed to satisfy assurance needs.

Reflections on Software Architecture © 2016 Carnegie Mellon University 38 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Software Development: Making Decisions

There is tension and a need for educated decisions. Architecture is the enabler for tradeoff analyses.

Reflections on Software Architecture © 2016 Carnegie Mellon University 39 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Conclusion

. Software architecture has strong foundations. . Much progress has been made. . Changes stemming from connectivity have precipitated a new world – new technologies, approaches, and challenges. . Software architecture principles and their importance persist. . But…much remains to be done. . The future is in your hands.. be mindful.

Persisting Themes: . Modularity . Commonality vs Variability

Reflections on Software Architecture © 2016 Carnegie Mellon University 40 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Reflections on Software Architecture © 2016 Carnegie Mellon University 41 Distribution Statement A: Approved for Public Release; Distribution is Unlimited This Is the Work of Many

At the SEI and CMU (past and present) Len Bass Philippe Kruchten Joe Batman Grace Lewis Felix Bachmann Ipek Ozkaya Mario Barbacci Rod Nord Stephany Bellomo Mary Shaw Paul Clements and many more… Peter Feiler And so many others David Garlan in the professional James Ivers community.. Rick Kazman John Klein Mark Klein

Reflections on Software Architecture © 2016 Carnegie Mellon University 42 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Contact Information

Linda Northrop SEI Fellow Telephone: 1+ 412-268-7638 Email: [email protected] @LindaNorthrop

Website: http://www.sei.cmu.edu/architecture

U.S. Mail: Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890

Reflections on Software Architecture © 2016 Carnegie Mellon University 43 Distribution Statement A: Approved for Public Release; Distribution is Unlimited