This document provides an introduction to software architecture. It discusses key concepts like architectural significant decisions, separation of concerns, modular structures, and design across elements and interactions. The document emphasizes that architecture is about both structure (parts and relationships) and behavior (how the system works). It provides examples of architectural patterns and mechanisms and stresses the importance of developing a theory of the system through views and architecture decision records.
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
In this Business Analysis training session, you will learn about SDLC. Topics covered in this session are:
⢠SDLC (Software Development Life Cycle)
⢠Types of SDLC Methodologies
⢠Waterfall Approach
⢠Incremental Approach
⢠Iterative Approach
⢠Difference between Incremental and Iterative
⢠Prototype Approach
⢠Spiral Approach
⢠Overview of RUP
⢠Phases of RUP
⢠Activity
⢠Artifact
⢠Worker
⢠Worflow
⢠Overview of Agile
For more information, click here: https://www.mindsmapped.com/courses/business-analysis/step-by-step-guide-to-learn-sdlc-methodologies/
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
In this Business Analysis training session, you will learn about SDLC. Topics covered in this session are:
⢠SDLC (Software Development Life Cycle)
⢠Types of SDLC Methodologies
⢠Waterfall Approach
⢠Incremental Approach
⢠Iterative Approach
⢠Difference between Incremental and Iterative
⢠Prototype Approach
⢠Spiral Approach
⢠Overview of RUP
⢠Phases of RUP
⢠Activity
⢠Artifact
⢠Worker
⢠Worflow
⢠Overview of Agile
For more information, click here: https://www.mindsmapped.com/courses/business-analysis/step-by-step-guide-to-learn-sdlc-methodologies/
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Â
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
Architecture principles, How to, Patterns,
Comparison with other SOA styles
Pragmatic options to scale Monoliths
Illustrated with the Netflix stack and Gilt, SoundCloud testimonials
To go futher, check 200 - Building Microservices
http://fr.slideshare.net/SteveSfartz/building-microservices-55458071
What is-requirement-traceability-matrix-and-why-is-it-needed-pooja deshmukh
Â
A traceability matrix is an archive that compares any two-baseline documents that require a many
to-many relationship to check the fulfillment of the relationship. It is utilized to track the
prerequisites and to check that the present project necessities are met.
What is Code Refactoring?
Refactoring refers to structuring the code to:
- Increase readability of code
- Fix bugs easily
- Enhance design
- Introduce flexibility to code.
Refactoring is to restructure or rewrite source code to improve internal consistency, readability, etc. without changing its function.
This is an introductory lecture to Architecture Description Languages, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Edureka!
Â
** DevOps Engineer Masters Program: https://www.edureka.co/masters-program/devops-engineer-training **
This Edureka PPT on "DevOps Engineer" will explain what does it take to become a successful DevOps Engineer, and what industries are looking for in a DevOps Professional. We have included various DevOps job roles that you can apply for. Below are the topics included in the PPT:
1. Who is a DevOps Engineer?
2. DevOps Engineer Skills
3. DevOps Engineer Job Description
4. DevOps Masters Course At Edureka
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
Â
Full clear download( no error formatting) at: https://goo.gl/XmRyGP
software engineering a practitioner's approach 8th edition pdf free download
software engineering a practitioner's approach 8th edition ppt
software engineering a practitioner's approach 6th edition pdf
software engineering pressman 9th edition pdf
software engineering a practitioner's approach 9th edition
software engineering a practitioner's approach 9th edition pdf
software engineering a practitioner's approach 7th edition solution manual pdf
roger s. pressman
Architecture principles, How to, Patterns,
Comparison with other SOA styles
Pragmatic options to scale Monoliths
Illustrated with the Netflix stack and Gilt, SoundCloud testimonials
To go futher, check 200 - Building Microservices
http://fr.slideshare.net/SteveSfartz/building-microservices-55458071
What is-requirement-traceability-matrix-and-why-is-it-needed-pooja deshmukh
Â
A traceability matrix is an archive that compares any two-baseline documents that require a many
to-many relationship to check the fulfillment of the relationship. It is utilized to track the
prerequisites and to check that the present project necessities are met.
What is Code Refactoring?
Refactoring refers to structuring the code to:
- Increase readability of code
- Fix bugs easily
- Enhance design
- Introduce flexibility to code.
Refactoring is to restructure or rewrite source code to improve internal consistency, readability, etc. without changing its function.
This is an introductory lecture to Architecture Description Languages, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Edureka!
Â
** DevOps Engineer Masters Program: https://www.edureka.co/masters-program/devops-engineer-training **
This Edureka PPT on "DevOps Engineer" will explain what does it take to become a successful DevOps Engineer, and what industries are looking for in a DevOps Professional. We have included various DevOps job roles that you can apply for. Below are the topics included in the PPT:
1. Who is a DevOps Engineer?
2. DevOps Engineer Skills
3. DevOps Engineer Job Description
4. DevOps Masters Course At Edureka
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
UX + Agile: The Good, The Bad, and The UglyJoshua Randall
Â
There's a rumor going around that user experience (UX) and Agile don't play well together. In this talk, I'll explain that they do -- most of the time! I will draw on my experiences at three large Cleveland companies.
Slides from the October 9, 2019 Unity webinar featuring SHoP Architects, an award-winning architecture firm based in New York City.
Check out the deck to see:
-How Unity Reflect transfers multiple BIM models from Revit into real-time 3D in one click
-How SHoP Architects uses Unity Reflect to better connect design and construction
-Augmented reality (AR) and virtual reality (VR) applications SHoP Architects has built with Unity Reflect
Watch the webinar here: https://create.unity3d.com/aec-webinar-unity-reflect-demo
Architectural thinking - the Sucess Factor of Scaled AgileWolfgang GĂśbl
Â
There is currently much debate about whether and how agility scales at the enterprise level. Many approaches exist, such as scaled Agile frameworks (SAFe, LeSS, DaD), Beta Codex, Beyond Budgeting, Sociocracy or Open Space, but success stories are rare..
Design thinking and Agile are the methods currently used to implement innovative point solutions at short notice. Companies rarely take enough time for long-term thinking. Fast innovation, sloppily integrated into the existing IT landscape, however, has lead to a complexity explosion that made IT tremendously expensive and increasingly sluggish for change. And this is not an IT problem but the result of bad funding decisions by business executives. Therefore it must be addressed at a business- and governance level, not by autonomous solution development teams.
Many people of the Agile community perceive IT governance and architecture management as too rigid and heavyweight to be integrated with Agil. This is not surprising given the prevailing heavy and immature enterprise architecture frameworks and their ivory-tower use in practice.
This presentation discusses why Agile will never scale without a consistent model of the business (=âbusiness architectureâ) that is understood, maintained an accepted by everybody, from CEO to software developer. It presents a lightweight, business-focused approach to architecture that should be integrated with common scaled agile frameworks (such as SAFe, LeSS, DaD) to really make them scale.
HugtakiĂ° hugbĂşnaĂ°ararkĂtektĂşr er yfirhlaĂ°iĂ° orĂ° og Þýðir mismunandi hluti fyrir mismunandi fĂłlk. ViĂ° ĂŚtlum Ă Ăžessum fyrirlestri aĂ° skilgreina Ă˝mis hugtĂśk tengd arkĂtektĂşr til aĂ° fĂĄ betri skilning ĂĄ Ăžessu. ViĂ° munum einnig skilgreina hvaĂ° agile arkĂtektĂşr Þýðir eĂ°a hvaĂ° ĂžaĂ° Þýðir ekki. ĂĂĄ skoĂ°um viĂ° monolith arkĂtektĂşr sem er hinn hefĂ°bundi arkĂtektĂşr sem flestir nota Ă dag. Vandinn er sĂĄ aĂ° Ă dag eru krĂśfurnar meiri en Ăžessi arkĂtektĂşr rĂŚĂ°ur viĂ° og ĂžvĂ hafa menn veriĂ° aĂ° skoĂ°a aĂ°rar leiĂ°ir eins og lightweight Service Oriented Architecture og hvernig smĂĂ°a mĂĄ hugbĂşnaĂ° sem ĂžjĂłnustur eĂ°a microapps eĂ°a microservice.
ViĂ° skoĂ°um einnig lagskiptingu en ĂžaĂ° er elsta trikkiĂ° Ă bĂłkinni og byggir ĂĄ deila og drottna aĂ°ferĂ°inni.
Design Visualization: Smoke and Mirrors (slides)Ruth Malan
Â
What is software architecture? (nuancing our view, to inform our views)
What role does visual play in design?
What is the landscape of visual design in software, and how are we doing?
How is design like a comic?
Visual design, visual collaboration, stickies and diagrams are all integral to DDD. But why? How is it so effective? Is it though? Weâll take a look at the role of the visual in communication, collaboration and reasoning, drawing on work in various related areas. Including comics.
Part i: Introduction and Context setting around Design in Agile; Decisions and Constraints; Decisions and Trade-offs; Getting to know the domains (contexts of use, development and operations, value partners and others); Design and expressions of system value, capabilities and properties
Part ii: Why Visual Matters to Design, some exemplars we can learn from, and lessons we can draw about why we need to bring visual models back into our design toolkit (some already do, obviously, but why more of us need to)
Part iii: Architectural design -- using visual models to look inside the system, and design the organizing structure, and how it works.
Annotated slides here: https://www.ruthmalan.com/Journal/2019/201902OReillySAConPresentation.htm
Clues (which may range from hints, heuristics, tips, ... patterns, ... checklists, ...) for architects, creating good, right successful systems (and the architectures that enable them).
How we think of architecture shapes what we do as architects, and what we do, shapes how we think of architecture. We will explore our conception of architecture in this dual sense, with an emphasis on visualization and visual expression of design (intention and reflection).
Presented at SATURN 2017
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Â
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Â
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Â
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Â
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
Â
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Â
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Large Language Models and the End of ProgrammingMatt Welsh
Â
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Â
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges â from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Atelier - Innover avec lâIA GĂŠnĂŠrative et les graphes de connaissancesNeo4j
Â
Atelier - Innover avec lâIA GĂŠnĂŠrative et les graphes de connaissances
Allez au-delĂ du battage mĂŠdiatique autour de lâIA et dĂŠcouvrez des techniques pratiques pour utiliser lâIA de manière responsable Ă travers les donnĂŠes de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la prĂŠcision, la transparence et la capacitĂŠ dâexplication dans les systèmes dâIA gĂŠnĂŠrative. Vous partirez avec une expĂŠrience pratique combinant les relations entre les donnĂŠes et les LLM pour apporter du contexte spĂŠcifique Ă votre domaine et amĂŠliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile dâIA gĂŠnĂŠrative, en vous fournissant des exemples pratiques et codĂŠs pour dĂŠmarrer en quelques minutes.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
Â
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS â17, Xiâan, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS â17.
- Invited for presentation at SoCal PLS â16.
- Invited for poster presentation at PLDI SRC â16.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
Â
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operateâor are planning to operateâbroader deployments at their institution.
3. Software Architecture Workshop
Introduction Slide 3
Articles of
Confederation
Virginia Plan
Madisonâs Notes AmendmentsThe Constitution
Federalist papers
Expressions of the Architecture
4. Software Architecture Workshop
Introduction Slide 4
Alexander Hamilton
John Jay
Benjamin Franklin
Signing of the Constitution. September 17, 1787
The Architects
James Madison
âArchitect of the Constitutionâ
6. Software Architecture Workshop
Introduction Slide 6
Workshop Objectives
⢠Advance in our ability to create an
architecture that is
ď§ Good: is technically sound
ď§ Right: meets the stakeholder needs (business, customers,
developers, managers, etc.)
ď§ SUCCESSFUL: is delivering value
7. Software Architecture Workshop
Introduction Slide 7
Introduction to Software Architecture
Overview
⢠What: characterizing software architecture
concerns and decisions
⢠Why: understand the contribution it makes
⢠How: the (visual) architecting process
⢠and build a roadmap of what we will do over next 4 days
⢠Who: architectsârole, responsibilities and
capabilities
⢠Where and When: organizational and
lifecycle context
14. Software Architecture Workshop
Introduction Slide 14
Big Ball of Mud Architecture:
High Cost of Change
âIf you think good
architecture is expensive,
try bad architectureâ
â Brian Foote
âYou reach for the
banana, and get the
entire gorillaâ
â Michael Stahl
16. Software Architecture Workshop
Introduction Slide 16
Modular Structure(s): ďŻ Cost of Change!
⢠Isolate impact of change
⢠Isolate arenas of uncertainty and experiment
⢠Increase reversibility, replaceability,
⢠Increase responsiveness/adaptability
⢠Reduce complexity
ď§ Divide and conquer
ď§ âwe have to keep it crisp, disentangled, and simple if we
refuse to be crushed by the complexities of our own
making...â â Dijkstra
19. Software Architecture Workshop
Introduction Slide 19
Architecture: Parts and Relations!
âSoftware architecture refers to the high level
structures of a software system [..] Each
structure comprises software elements,
relations among them, and properties of both
elements and relations.â
â wikipedia 2017
(after Clements et al, 2010)
20. Software Architecture Workshop
Introduction Slide 20
[intermezzo]
âEverything that needs to be said
has already been said. But since no
one was listening, everything must
be said again.
â AndrĂŠ Gide
22. Software Architecture Workshop
Introduction Slide 22
Design: What?
"Everyone designs who
devises courses of action
aimed at changing
existing situations into
preferred ones."
â Herbert Simon
23. Software Architecture Workshop
Introduction Slide 23
How: Finding the (Natural) Shape
âI go along with the natural
makeupââŚ
âwhen I come to the tricky
parts, I slow downâ
â Chuang Tzu: âThe
Dexterous Butcherâ
24. Software Architecture Workshop
Introduction Slide 24
Separation: Outside/Inside
â Ambrose Bierce, Devilâs Dictionary
ABATIS, n. [1.] Rubbish in front
of a fort, to prevent the rubbish
outside from molesting the
rubbish inside.
Image: Engineering and the Mindâs Eye
âDesign things to make their
performance as insensitive to
the unknown or uncontrollable
external influence as practical.â
â Eb Rechtin
26. Software Architecture Workshop
Introduction Slide 26
Boundaries
âThere was a wall. It did not look important. It
was built of uncut rocks roughly mortared. An
adult could look right over it, and even a child
could climb it. Where it crossed the roadway,
instead of having a gate it degenerated into
mere geometry, a line, an idea of boundary.
But the idea was real. It was important. For
seven generations there had been nothing in
the world more important than that wall.
Like all walls it was ambiguous, two-faced.
What was inside it and what was outside it
depended upon which side of it you were on.â
â Ursula K. Le Guin, The Dispossessed
27. Software Architecture Workshop
Introduction Slide 27
Abstractions
As programmers we deal
with abstractions all the
time and we have to invent
them in order to solve our
problems
â Michael Feathers
30. Software Architecture Workshop
Introduction Slide 30
How: Factor and Refactor
âThe responsibility of architecture
is the architecture of responsibility.â
â Jan van Til/Tom Graves
Does this component have a
cohesive identity or purpose â a
single responsibility at the level of
abstraction of the abstraction?
33. Software Architecture Workshop
Introduction Slide 33
System: What?
âA system is an
interconnected set of
elements that is
coherently organized in
a way that achieves
somethingâ
â Donella Meadows
Image: donellameadows.org
34. Software Architecture Workshop
Introduction Slide 34
Essence of Systems is
http://www.bredemeyer.com
⢠Relationships
⢠Interfaces
⢠Form
⢠Fit
⢠Function
â Eberhardt Rechtin
39. Software Architecture Workshop
Introduction Slide 39
Minimalist Architecture
Copyright Š 1999-2017 Bredemeyer Consulting
http://www.bredemeyer.com
Those decisions that must
be made from a system
perspective
⢠system outcomes
⢠across boundaries
Dana Bredemeyer
41. Software Architecture Workshop
Introduction Slide 41
How: Design Across
Elements and Interactions: How it Works
http://www.bredemeyer.com
Posit structure
Explore behavior
Revise structure
How will this
work?What is it made
(up) of?
How does this
contribute to/inhibit
desired properties?
42. Software Architecture Workshop
Introduction Slide 42
Design Across: Structure and Behavior
http://www.bredemeyer.com
What
ARCHITECTURE
STRUCTURE
interfaces
elements and
relationships
How
BEHAVIOR
Logical
Conceptual
43. Software Architecture Workshop
Introduction Slide 43
Design Is How It Works
http://www.bredemeyer.com
What
(system view)
HowWhat
(user view)
ARCHITECTURE
STRUCTUREBEHAVIOR
CAPABILITIESCONTEXT
Why
v v
How well
FUNCTION PROPERTIES
architecturally significant mechanisms
44. Software Architecture Workshop
Introduction Slide 44
Architecturally significant?
Copyright Š 1999-2017 Bredemeyer Consulting
http://www.bredemeyer.com
demands (forces, properties, âŚ) on the
system that are challenging, push the limits,
raise risks, require design attention
45. Software Architecture Workshop
Introduction Slide 45
LMAX Disruptor Mechanism
Challenges:
A trading platform
needs very low latency
- trades have to be
processed quickly
because the market is
moving rapidly.
A retail platform adds
complexity because it
has to do this for lots
of people.
Source: Martin Fowler http://martinfowler.com/articles/lmax.html
46. Software Architecture Workshop
Introduction Slide 46
Founding Classics
âThe Federalist Papers
are arguments that
support different parts of
the design of the
Constitution.â
â Alan Kay, 1995
50. Software Architecture Workshop
Introduction Slide 50
Keep an Architecture Decision Record
Title: short noun phrase
Context: describe the forces at play,
probably in tension
Decision: describe our response to
these forces
Status: proposed, accepted,
deprecated or superseded
Consequences: describe the resulting
context, after applying the decision
â Michael Nygard, Documenting
Architecture Decisions, Nov 2011
51. Software Architecture Workshop
Introduction Slide 51
Architecture as Intention and Reflection
http://www.bredemeyer.com
System Design Intention
(what should be)
System Design Reflection
(what is)
53. Software Architecture Workshop
Introduction Slide 53
Also: Just⌠take note(s)!
Leonardo da Vinciâs notebooks
Observe the system
Develop and share theory
⢠of operation
(interactions, resolution
of forces, outcomes)
⢠of relation of structure to
function/properties
54. Software Architecture Workshop
Introduction Slide 54
Design Stays Inside the Box?
Copyright Š 1999-2017 Bredemeyer Consulting
http://www.bredemeyer.com
No, no it does not!
55. Software Architecture Workshop
Introduction Slide 55
Copyright Š 1999-2008 Bredemeyer Consulting
http://www.bredemeyer.com
Connecting the Dots: relating decisions to
strategies, needs and forces they address
57. Software Architecture Workshop
Introduction Slide 57
Context Factors
Image source: Sarah Mei on Twitter
âDesign quality is not a
property of the code. It's
a joint property of the
code and the context in
which it exists.â
â Sarah Mei
58. Software Architecture Workshop
Introduction Slide 58
"Always design a thing by considering it in its
next larger context" â Eliel Saarinen
http://www.bredemeyer.com
Context System-in-Context
(use, dev, ops)
System
(Ecosystem)
Architecture
structure and
mechanisms
âRequirementsâ
design of system
capabilities
Strategy
ecosystem interventions
59. Software Architecture Workshop
Introduction Slide 59
the elephant in the room
http://www.bredemeyer.com
itâs all design!
â˘Strategy sets design
direction
â˘âRequirementsâ is design
of system capabilities and
properties
â˘Architecture is design to
achieve them
60. Software Architecture Workshop
Introduction Slide 60
Architecturally Significant
http://www.bredemeyer.com
Structurally significant
⢠Organizing structure
⢠Architecturally significant
mechanisms
⢠Structural integrity and
sustainability
Strategically significant
⢠game shapers and game changers
What is make
or break?
What impacts
how we
compete?
"I wasn't the one pushing things in the wrong direction, but I should have been the one to stop it." â Chad Fowler
61. Software Architecture Workshop
Introduction Slide 61
Not Just Good, but Right and Successful!
http://www.bredemeyer.com
What
(system view)
HowWhat
(user view)
ARCHITECTURE
STRUCTUREBEHAVIOR
CAPABILITIESCONTEXT
Why How well
FUNCTION PROPERTIES
good?right?successful?
63. Software Architecture Workshop
Introduction Slide 63
Co-Design of What the System Is
and How it is Built âŚ
http://www.bredemeyer.com
right systemâbuilt right
Its messy! But so is any
alternative!
We either acknowledge that
design is a process of learning
what the system needs to be,
and is becoming, or it lets us
know the hard way!
64. Software Architecture Workshop
Introduction Slide 64
Decision Models: Places to Put Things
http://www.bredemeyer.com
Architecture Strategy
Architecture
Architecture Decision Record
Conceptual Architecture
Logical Architecture
Execution Architecture
⢠Architectural vision, principles, styles, key concepts and mechanisms
⢠Focus: high-level decisions that will strongly influence the structure of
the system; rules certain structural choices out, and guides selection
decisions and tradeoffs among others
⢠Structures and relationships, static and dynamic views,
assumptions and rationale
⢠Focus: decomposition and allocation of responsibility,
interface design, assignment to processes and threads
⢠Architecture Decision Record; open issues; guidelines, policies,
mechanisms, design patterns; frameworks, infrastructure and standards
⢠Focus: guide engineers in creating designs that maintain the integrity of
the architecture
65. Software Architecture Workshop
Introduction Slide 65
Architecture Views
http://www.bredemeyer.com
Conceptual Architecture
Logical Architecture
Execution Architecture
⢠Architecture Diagram, CRC-R cards, Design sketches for key mechanisms
⢠Focus: identification of components and allocation of responsibilities to
components; conceptually address key design challenges
⢠Updated Architecture Diagram (showing interfaces), Interface specifications,
Component specifications and usage guides, Mechanism designs
⢠Focus: design of component interactions, connection mechanisms and
protocols; interface design and specification; providing contextual information
for component users
⢠Process and Deployment Views
⢠Focus: assignment of the runtime component instances to processes,
threads and address spaces; how they communicate and coordinate; how
physical resources are allocated to them
66. Software Architecture Workshop
Introduction Slide 66
Architecture: Why?
⢠Purpose is not to be a map
of the system, though views
are useful as maps
ď§ Locate (places to find things;
places to put things)
⢠Purpose:
ď§ to do design (to do design is
to improve the design) to get
more the outcomes we want
67. Software Architecture Workshop
Introduction Slide 67
Architecture: When
⢠Earliest Responsible Moment?
⢠Last Responsible Moment?
http://www.bredemeyer.com
âWhat is the most important
think we should be thinking
about at this extraordinary
moment?â
â Buckminster Fuller
73. Software Architecture Workshop
Introduction Slide 73
Fallible We Are
âI confess that there are several parts of
this constitution which I do not at
present approve, but I am not sure I
shall never approve them: For having
lived long, I have experienced many
instances of being obliged by better
information, or fuller consideration, to
change opinions even on important
subjects, which I once thought right, but
found to be otherwise. It is therefore that
the older I grow, the more apt I am to
doubt my own judgment, and to pay
more respect to the judgment of others.â
â Benjamin Franklin
74. Software Architecture Workshop
Introduction Slide 74
Feynman on Fallibility
âWe are never definitely right,
we can only be sure we are
wrong!â
âThe first principle is that you
must not fool yourself and you
are the easiest person to foolâ
â Richard Feynman
76. Software Architecture Workshop
Introduction Slide 76
Alternatives: Rule of Three
âIf you havenât thought
of three possibilities,
you havenât thought
enough.â
â Jerry Weinberg
77. Software Architecture Workshop
Introduction Slide 77
Iterations
http://www.bredemeyer.com
You think itâs messy?
Well, itâs messier than that!
Actively weeding out weak
ideas, focusing and
improving the design, means
feedback loops, within
feedback loops
78. Software Architecture Workshop
Introduction Slide 78
Who: Architects
⢠As Leaders
ď§ Look across boundaries, and further out in time, and
asking: What does
⢠the code need,
⢠the team need,
⢠the system need,
⢠operations and users need
to thrive and be sustaining?
ď§ What needs to be done, that isnât being done?
http://www.bredemeyer.com
79. Software Architecture Workshop
Introduction Slide 79
Architects Lead
to Design Integrity
⢠An architect is a tech(nical) lead(er) -- but
architect puts emphasis on *system*
*design*, that is on being a leader who
facilitates and ensures system design
integrity. Not just design cohesion, but
resilience, more...
http://www.bredemeyer.com
80. Software Architecture Workshop
Introduction Slide 80
Design Integrity
âDesign is inherently
about what ought to be
made⌠it is inherently
ETHICAL.â
â Jabe Bloom
Image: Jabe Bloom, as he
known on twitter (@cyetain)
81. Software Architecture Workshop
Introduction Slide 81
Who: Architects
⢠Discussion: In an Agile context,
ď§ Do we still need architects?
ď§ (If yes) Do architects also code?
ď§ (Also if yes) What characterizes (good) architects?
http://www.bredemeyer.com