SlideShare a Scribd company logo
1 of 68
Download to read offline
How to Speak the Language
of Application Architecture
Brad Beiermann
2
1. Intro
2. The Software Architect Role
3. Continuous Design & Application
Architecture Design Principles
4. Generic Models
5. Modeling Your Software
6. Software Design Patterns
7. Architecture Review Board
8. Enterprise Architecture &
Frameworks
AGENDA
Brad Beiermann
LinkedIn: https://www.linkedin.com/in/bradbeiermann
Contact email: bradb@cimstrat.com
GitHub: Bassmint123
Company: KAPOW Events (https://www.kapow.com)
Current Role: Director of Technology
Presenter
Kapow is the world’s leading corporate events platform,
offering unique experiences that are easy to book, drive
bottom-line results and don’t break the bank.
Get an unfair amount of face time with your customers, partners and teams
10k+
Experiences
1k+
Customers
5k+
Events
Global events company
Cvent acquires Chicago
startup Kapow
For corporate events these days, steak
dinners are out. To keep up with
changing demands, event technology
company Cvent is acquiring Chicago
startup Kapow. With its 50 employees,
THE SOFTWARE ARCHITECT ROLE
7
1. Software Application - Designs the structure of applications
Titles: Software Architect, Application Architect, Framework
Architect
2. Sales & Support - Involved in the implementation of products
Titles: Solution Architect, Field Architect
3. Systems - Skilled in infrastructure design
Titles: System Architect, Cloud Architect, Infrastructure Architect
4. Operations - Skilled in business enterprise functions and design
Titles: Enterprise Architect, Integration Architect
POPULAR IT ARCHITECTURE ROLES
8
● Familiarity with an architectural modeling language
● Fluent in creating diagrams or visual feature representations
● Architecture frameworks (ie. TOGAF, Zachman, ITIL,...etc.)
● Comfort around a codebase...but development is not a focus
● Present a vision of how something is built end-to-end holistically
● Derive costs effective designs and options
CLASSIC SOFTWARE ARCHITECT DISCIPLINES
What are the essential skills?...
9
● Growing and mentoring Architects -- not really happening today.
● It is hard to measure design as an investment
● Selling design is not much different than selling vitamins
● Design “slows development” mentality
● “The code is our documentation” mentality
● Agile development
○ Envisioning step not done correctly
○ No design discipline guidelines (Manifesto principle #11?)
○ Code delivery prioritized over design
● Complete abandonment of architecture skills used in waterfall
It is an industry sacrilege to say anything bad about the Agile
manifesto, but it has some gaps...
“DEBATES & SYMPTOMS”
10
As a Developer...
- Nature of the work in more instant gratification.
Example: Write -> Run -> Results
- An application’s success is measurable
- Your product is a codebase
- The code is viewable, you can actually see it.
- Low abstraction
As an Architect...
- Nature of the work is more delayed gratification.
- The success of architecture is hard to measure.
- Your product is a vision
- EA governance is invisible, yet omnipresent.
- High abstraction
GOING FROM DEVELOPER TO APPLICATION ARCHITECT
11
Step 1: Be design driven.
Where do you start?...
Step 2: Refer back to Step 1.
12
GETTING INTO THE ARCHITECT ROLE
● Ease into it. Don’t rush. This is a discipline.
● Think about how something (ie. business,
customer,...etc.) works and the strategy
behind it.
● Resist the urge to just hurry up and draw
something, or rush into patterns.
● Architecture involves articulation. It’s easy to
overwhelm an audience.
● Think BIG, but start small.
13
Our code tells us what is being done.
The code is merely a set of instructions.
Architecture tells us why something is being
done, and how it is being done.
The architecture is a vision and strategy.
CODE VS. STRATEGY
CONTINUOUS DESIGN &
APPLICATION ARCHITECTURE
DESIGN PRINCIPLES
15
CONTINUOUS DESIGN
● Continuous Design (Incremental Design) - The practice of creating and
modifying the design of a system as it is developed (Agile), rather than
purporting to specify the system completely before development starts
(Waterfall)
● Continuous Design was popularized by
eXtreme Programming (XP).
● Continuous Design also uses test driven
development (TDD) and refactoring
practices.
What is it?...
16
Waterfall for:
1. Requirements
2. Analysis
3. Design
Agile for:
1. Iterative Coding
2. Iterative Testing
3. Operations
(Deployment)
HYBRID DELIVERY FRAMEWORK
17
Architecture
Design
Session(s)
Team
creates
arch/design
(Kruchten
4+1, UML,
Modelling)
Business
Stakeholders &
Clients
Sprint
Planning
Meeting &
Grooming
Release Planning
Design Driven Software Development Lifecycle (SDLC)
Our Implementation of
Continuous Design step within
the Agile SDLC doing
incremental design.
18
CONTINUOUS DESIGN PRINCIPLES
● Incremental design: Design just enough to build the sprint
release, but build upon the application’s holistic view.
● Build to change, instead of building to last.
● Model to analyze and reduce risk.
● Use design to identify key engineering decisions.
● Recognize delayed gratifications in a design.
● Use models and visualizations as a communication and
collaboration tool.
19
ENGINEERING DIAGRAMS
A picture is worth a
thousand words
vs
A diagram should be
of few words
20
“Far too many teams allow their codebases to grow without having an
insight into the structure of the code. The result is often the proverbial "big
ball of mud"; a codebase that is tangled, hard to understand, hard to work
with and hard to change. Visualising the structure of your code is the
first step towards improving it.”
-- Simon Brown
Big Ball of Mud (BBM)
21
22
“In our quest to become Agile, we have lost the ability
to visually communicate our code.”
-- Simon Brown
GENERIC MODELS
24
THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING
Modelling
Fragmentation
mid-1960s to
mid-1990s
1st Generation
Methods &
Modeling
Languages
2nd Generation
Methods &
Modeling
Languages
Booch ‘91
Booch ‘93
OMT1 OMT2
Shlaer-Mellor
1980s
SASD
1960s &
1970s
Smalltalk
(v1 1972)
OOA-
OOD
1981
Smalltalk-80
(v2 1980)
Martin/Odell
OOM 1973
UML 2.0
2005
UML 2.5
2015
UML 2.6
Exp 2019
MOF
Meta-Object
Family
2006
UML 2.x
OCL 2005
OOSE
1992
Rational
Software
1994
Rational
Rose
1994
IBM
Acquires
Rational
2003
Kruchten 4+1
Model
1995
RUP
1996
UML 1.0
1997
OMG
Adopts
UML 1.1
Fall 1997
UML 1.5
2003
XP
1999
Agile
Manifesto
2001
Arrival of
Modern
Modern Web
Frameworks
BPMN
2008
SOA
Arrival of
Microservices
2014
IaS
2016C4
Model
2011
25
THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING
Modelling
Fragmentation
mid-1960s to
mid-1990s
1st Generation
Methods &
Modeling
Languages
2nd Generation
Methods &
Modeling
Languages
Booch ‘91
Booch ‘93
OMT1 OMT2
Shlaer-Mellor
1980s
SASD
1960s &
1970s
Smalltalk
(v1 1972)
OOA-
OOD
1981
Smalltalk-80
(v2 1980)
Martin/Odell
OOM 1973
UML 2.0
2005
UML 2.5
2015
UML 2.6
Exp 2019
MOF
Meta-Object
Family
2006
UML 2.x
OCL 2005
OOSE
1992
Rational
Software
1994
Rational
Rose
1994
IBM
Acquires
Rational
2003
Kruchten 4+1
Model
1995
RUP
1996
UML 1.0
1997
OMG
Adopts
UML 1.1
Fall 1997
UML 1.5
2003
XP
1999
Agile
Manifesto
2001
Arrival of
Modern
Modern Web
Frameworks
BPMN
2008
SOA
Arrival of
Microservices
2014
IaS
2016C4
Model
2011
26
KRUCHTEN 4+1
Logical View
(Structural View)
Process View
(Behavioral View)
Development View
(Implementation View)
Physical View
(Environment View)
Scenario
(User View)
● Developed by Philippe Kruchten
● The “4+1” view model is rather
“generic”
● Used for describing the
architecture of software-intensive
systems, based on the use of
multiple, concurrent views.
27
Scenario is to help capture the requirements so that all the stakeholders
understand how the system is intended to be used.
Artifacts: Use Case, User Story, Epic
Logical view is designed to address the end user's concerns about ensuring
that all of their desired functionality is captured by the system. In an
object-oriented system, this is often at the class level.
Artifacts: UML Class Diagram
Process view is designed for people designing the whole system and then
integrating the subsystems or the system into a system of systems.
Artifacts: UML Sequence Diagram
4 + 1 VIEWS
28
Development view is primarily for developers who will be building the modules
and the subsystems. It should show dependencies and relationships between
modules, how modules are organized, reuse, and portability.
Artifacts: UML Component/Artifact Diagram
Physical view is primarily for system designers and administrators who need
to understand the physical locations of the software, physical connections
between nodes, deployment and installation, and scalability.
Artifacts: Network Diagram, UML Deployment Diagram, Infrastructure Diagram
4 + 1 VIEWS
29
● Developed by Simon Brown
○ Conceptually started around 2006
○ Published in 2011
● Inspired from Kruchten 4+1 and UML
● Model Type: Generic, Visual, & Non-Notational
● The C4 Model consists of a hierarchical set of software
architecture diagrams, based on four common abstractions:
○ Context
○ Containers
○ Components
○ Code
C4 Model
Simon Brown
C4 Model Creator
30
Think of the C4 Model as Google Maps for your code...
Inspiration of C4 Model
31
C4 Abstraction Model
1. Context
2. Container
4. Code
Bidirectional
3. Component
MODELING YOUR SOFTWARE
33
1. Ad Hoc (i.e. no method)
2. Industry Standard Modeling
3. Roll Your Own (RYO)
DOIN’ IT!
Three ways architecture design often happens...
Architecture is omnipresent, but not always visible.
34
THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING
Modelling
Fragmentation
mid-1960s to
mid-1990s
1st Generation
Methods &
Modeling
Languages
2nd Generation
Methods &
Modeling
Languages
Booch ‘91
Booch ‘93
OMT1 OMT2
Shlaer-Mellor
1980s
SASD
1960s &
1970s
Smalltalk
(v1 1972)
OOA-
OOD
1981
Smalltalk-80
(v2 1980)
Martin/Odell
OOM 1973
UML 2.0
2005
UML 2.5
2015
UML 2.6
Exp 2019
MOF
Meta-Object
Family
2006
UML 2.x
OCL 2005
OOSE
1992
Rational
Software
1994
Rational
Rose
1994
IBM
Acquires
Rational
2003
Kruchten 4+1
Model
1995
RUP
1996
UML 1.0
1997
OMG
Adopts
UML 1.1
Fall 1997
UML 1.5
2003
XP
1999
Agile
Manifesto
2001
Arrival of
Modern
Modern Web
Frameworks
BPMN
2008
SOA
Arrival of
Microservices
2014
IaS
2016C4
Model
2011
35
THE EVOLUTION OF UML
36
THE UNIFIED MODELLING LANGUAGE
● Developed by the Three Amigos:
○ Grady Booch - Booch 91 & 93 for abstraction techniques
○ James Rumbaugh - Object Modeling Technique OMT1 & OMT2
○ Ivar Jacobson - Often known as the “father of Use Cases”,
developed Object Oriented Software Engineering (OOSE)
● Is a visual modeling language
● Applies to modeling and systems
● Is used for expressing the artifacts of a
system-intensive process.
● Is based on the object-oriented paradigm
37
WHAT UML IS AND IS NOT
Not a visual programming language
A visual modeling language
Not a tool or repository specification
Modeling language specification
Not a process
Enables processes
38
“A good 70 percent of UML was a useless farce to sell overpriced clunky tools
(looking at you, Rational Rose). Don’t learn UML to go around annoying
people with useless class diagrams. Do learn the basics so you can read a
sequence diagram and learn to think this way.”
Andrew Oliver
InfoWorld
7 Books You Must Read to be a Real Software Developer
April 19, 2018
Today’s UML...
39
USE CASE
Actor
Use Case
Use Case
Boundary
● A use case is an end-to-end process
description.
● Ivar Jacobson -- Father of the Use Case
● It includes many steps or transactions
● It is not normally an individual step activity or
process.
● Identify by: “The actor can…”
● It has:
○ Pre-Condition
○ Action
○ Post-Condition
40
ABSTRACTION LEVEL
Essential
Very Abstract
Less Detail
Real
Very Concrete
More Detail
Essential vs Real Use Cases
Degree of Design Commitment
41
USE CASE DIAGRAM
42
DECOMPOSITION (INTO CONCEPTUAL MODEL)
● The quintessential object-oriented step in analysis or investigation is the
decomposition of the problem into individual concepts -- the things we are
aware of.
● Conceptual Model - A representation of concepts in a problem domain.
● The focus of a conceptual model may show:
○ Concepts
○ Associations between concepts
○ Attributes of concepts
Flight
date
time
Real-world concept
not a software class
or artifact. A container.
FlightDatabase
date[ ]
time[ ]
Software artifact. NOT
a real-world concept
AVOID
YES!
43
DECOMPOSITION (INTO CLASSES)
Flight
date
number
time
In UML definition...
Class - A description for a set of things that share the same attributes, methods,
relationships, and semantics.
Operation - A service that can be requested from an object to different behavior.
Airport
name
Flies-to
Flight
date
time
FlightDescription
number
Described-by
* 1
Airport
name
Describes-flights-to
1
*
WORSE BETTER!
Conceptual Model
(ie. containers of real world concepts)
More software oriented
(ie. classes, operations)
44
WHY DECOMPOSITION INTO CONCEPTUAL MODEL?
● Decomposition into a conceptual model is an intermediary
step.
● Going straight to classes can be more challenging to
decompose into proper abstraction without a conceptual
model.
TIP: If you are struggling to find your class abstractions, go
back to your conceptual model.
45
● Shows a particular course of events
within a use case.
● Shows the external actors that
interact directly with the system.
● Shows the system events that the
actors generate
● The ordering of events should
follow their order in the use case
SYSTEM SEQUENCE DIAGRAM
message()
message()
Id 1:
Class
Id 2:
Class
46
Cashier
:System
Use Case: Buy Items
enterItem(UPC, quantity)
endSale()
makePayment(amount)
CREATING A SEQUENCE DIAGRAM
47
FRONT-END SEQUENCE DIAGRAM
Office Employee
:Backend
Application
Use Case: Manage Users
enterLogin(id, pwd)
returnUI()
promptUserInfo()
:Employee
Database
checkLogin()
validateLogin()
addUser(info)
enterUserInfo()
submit()
saveUser()
Add
User
48
CLASS DIAGRAM
● Illustrates the specifications for
software classes and interfaces.
● Shows definitions for software
entities rather than real-world
concepts.
● Identifies the classes
participating in the software
solution.
● Shows class relationships.
association-name
ClassName 1
attribute
...
+method()
...
1 1
run()
<<interface>>
Runnable 1
Multiplicity
49
Use Case: Buy Items
CREATING A CLASS DIAGRAM
50
COMPONENT/ARTIFACT DIAGRAM
● Useful because it provides us a
high-level, architectural view of the
system that we will will be building.
● Allow an architect to verify that a
system's required functionality is
being implemented
● As of UML 2.x components are now
strictly logical, design-time
constructs.
● Show run time dependencies
● An artifact can be a physical unit, a
file (ie. csv, gem, modules,...etc.),
executable (apps), script, database,
etc.
i18n (gem) home.erb
Senario: Internationalization
51
Scenario: VPA On-boarding
CREATING COMPONENT/ARTIFACT DIAGRAM
52
PHYSICAL/DEPLOYMENT DIAGRAM
● Shows the hardware for the system
and any cloud instances
● Shows any software that is installed
on the hardware.
● Displays the connectivity of the
disparate machines to one another.
SOFTWARE DESIGN
PATTERNS
54
● In software engineering, a design pattern is a general reusable
solution to a commonly occurring problem in software design.
● A design pattern is not a finished design that can be transformed
directly into code. Rather, it is a description or template for how to solve a
problem that can be used in many different situations.
● Patterns originated as an architectural concept by Christopher Alexander
around the late 70s.
DEFINING SOFTWARE ARCHITECTURE PATTERNS
55
● Design patterns gained popularity in computer
science after the book Design Patterns: Elements of
Reusable Object-Oriented Software was published in
1994 by the so-called "Gang of Four"
● The book's authors are Erich Gamma, Richard Helm,
Ralph Johnson and John Vlissides -- known as GoF
● Introduced patterns by “Type”
○ Creational
○ Structural
○ Behavioral
○ Data Access (later)
GoF
56
Supporters
Q. Why DO patterns?
A. Design patterns can speed up the development process and productivity
by providing tested, proven development paradigms.
Critics
Q. Why NOT DO patterns?
A. They are viewed a work arounds for core features missing in a language
framework, or sometimes viewed as a lack of good abstractioning and
barrier to creativity.
THE ARGUMENTS
57
Creational patterns are ones that create objects for you, rather than
having you instantiate objects directly. This gives your program more
flexibility in deciding which objects need to be created for a given case.
Structural patterns concern class and object composition. They use
inheritance to compose interfaces and define ways to compose objects to
obtain new functionality.
Behavioral patterns are specifically concerned with communication
between objects.
THREE PATTERN TYPES
ARCHITECTURE REVIEW BOARD (ARB)
59
● ARB (Architecture Review Board)
● Ultimately align design with the company
business goals, strategies, and objectives.
● Improve the quality of our products.
● Define technical design standards, policies,
and principles for the company overall.
WHY DO AN ARB?
60
MIT Knowledge Base
http://kb.mit.edu/confluence/display/home/The+Knowledge+Base
MIT ARB Guidelines:
http://kb.mit.edu/confluence/pages/viewpage.action?pageId=155261497
KAPOW ARB STANDARD & FORMAT
The MIT standard for an ARB is the most commonly used.
61
Short Term Goals:
● Establish architecture baseline and promote architecture best practices
● Establish an architectural framework that can be used for design
● Create architecture roadmaps that supports your business
● Support an “Agile Mindset”
Long Term Goals:
● Prevent framework bloat and achieve a platform that can easily be maintenanced
● Reduce long term technical debt
● Help keep our technology costs inline
● Reduce onboarding time for new resources
ARB GOALS
62
- Start with the end in mind
- Design the EA program for maximum scale and flexibility upfront
- Create a maturity roadmap and follow it
- Don’t try to boil the ocean
- Focus on quick wins
- Show results early and often
Start Small
Plan Big
KEYS TO SUCCESS FOR THE ARB
ENTERPRISE ARCHITECTURE &
FRAMEWORKS
64
ARCHITECTURE CONTINUUM
Thinking of enterprise architecture like cities...
65
ENTERPRISE ARCHITECTURE
● Enterprise Architecture is a strategy to
minimize IT and business mistakes
● Many competing perspectives and
approaches to Enterprise Architecture exist
● There is no single, agreed upon Enterprise
Architecture standard.
66
ENTERPRISE ARCHITECTURE FRAMEWORKS
● Just like software frameworks, there are EA frameworks.
● EA frameworks help us be productive in creating and managing our designs.
● There are many frameworks to choose from:
❏ FEAF
❏ Gartner Model
❏ TOGAF
❏ Poldat
❏ DoDAF-TAFIN
❏ C4ISR AE
❏ DOE AE
❏ TOGAF-ADM
❏ Zachman
❏ ITIL
❏ IT4IT
❏ COBIT
67
TOGAF
● Current version is 9.1
● http://pubs.opengroup.org/architecture/togaf9
-doc/arch/
● Often the go-to framework for enterprise
architecture and system architecture
● Maintained by:
● TOGAF - The Open Group Architectural Framework
TOGAF
ADM
68

More Related Content

What's hot

Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentationJavier Perez
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOpsNaoki (Neo) SATO
 
Enterprise Architecture Governance: A Framework for Successful Business
Enterprise Architecture Governance: A Framework for Successful BusinessEnterprise Architecture Governance: A Framework for Successful Business
Enterprise Architecture Governance: A Framework for Successful BusinessNathaniel Palmer
 
Azure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsAzure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsJoost Veldhuis, MSc
 
Enterprise architecture framework business case
Enterprise architecture framework business caseEnterprise architecture framework business case
Enterprise architecture framework business caseAlex Antonatos
 
IT4IT - itSMFUK v4 (3)
IT4IT - itSMFUK v4 (3)IT4IT - itSMFUK v4 (3)
IT4IT - itSMFUK v4 (3)Tony Price
 
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...SlideTeam
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 
Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Jean Gehring
 
Approach To It Strategy And Architecture
Approach To It Strategy And ArchitectureApproach To It Strategy And Architecture
Approach To It Strategy And ArchitectureAlan McSweeney
 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeEoin Woods
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with SpringSam Brannen
 
Automated Tools For System Analysis and Design
Automated Tools For System Analysis and DesignAutomated Tools For System Analysis and Design
Automated Tools For System Analysis and DesignAmit Kundu
 

What's hot (20)

Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 
EA and SOA
EA and SOAEA and SOA
EA and SOA
 
Build an Application Integration Strategy
Build an Application Integration StrategyBuild an Application Integration Strategy
Build an Application Integration Strategy
 
[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps[JAZUG Tohoku Azure DevOps] Azure DevOps
[JAZUG Tohoku Azure DevOps] Azure DevOps
 
Enterprise Architecture Governance: A Framework for Successful Business
Enterprise Architecture Governance: A Framework for Successful BusinessEnterprise Architecture Governance: A Framework for Successful Business
Enterprise Architecture Governance: A Framework for Successful Business
 
Azure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsAzure Devops Build Tools for Powerapps
Azure Devops Build Tools for Powerapps
 
Power Platform ALM with DevOps
Power Platform ALM with DevOpsPower Platform ALM with DevOps
Power Platform ALM with DevOps
 
Azure DevOps in Action
Azure DevOps in ActionAzure DevOps in Action
Azure DevOps in Action
 
Togaf 9.2 Introduction
Togaf 9.2 IntroductionTogaf 9.2 Introduction
Togaf 9.2 Introduction
 
Enterprise architecture framework business case
Enterprise architecture framework business caseEnterprise architecture framework business case
Enterprise architecture framework business case
 
IT4IT - itSMFUK v4 (3)
IT4IT - itSMFUK v4 (3)IT4IT - itSMFUK v4 (3)
IT4IT - itSMFUK v4 (3)
 
software engineering ethics
software engineering ethicssoftware engineering ethics
software engineering ethics
 
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
Devops Strategy Roadmap Lifecycle Ppt Powerpoint Presentation Slides Complete...
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2Enterprise Architecture & Project Portfolio Management 2/2
Enterprise Architecture & Project Portfolio Management 2/2
 
Approach To It Strategy And Architecture
Approach To It Strategy And ArchitectureApproach To It Strategy And Architecture
Approach To It Strategy And Architecture
 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in Practice
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
Automated Tools For System Analysis and Design
Automated Tools For System Analysis and DesignAutomated Tools For System Analysis and Design
Automated Tools For System Analysis and Design
 

Similar to The Language of Application Architecture

Agile software architecture
Agile software architectureAgile software architecture
Agile software architectureScott Hsieh
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30Roger Snook
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayRamadevi Lakshmanan
 
Aec Logic Company Profile
Aec Logic Company ProfileAec Logic Company Profile
Aec Logic Company Profileachandra_iitd
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseFestGroup
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?iasaglobal
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded SystemsRoger Snook
 
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015IBM France Lab
 
ERP solution architect role, part I
ERP solution architect role, part IERP solution architect role, part I
ERP solution architect role, part IViacheslav Nefedov
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
 
Mulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence ConsultingMulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence ConsultingFlorence Consulting
 
Creating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpCreating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpLOIC BURDET
 
Agile Architecture Belfast Software Architecture User Group
Agile Architecture   Belfast Software Architecture User GroupAgile Architecture   Belfast Software Architecture User Group
Agile Architecture Belfast Software Architecture User GroupPaul Wallace
 
The software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialThe software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialrpietruszkiewicz
 
The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021Anders Lundsgård
 
IBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdfIBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdfssusere9d9791
 
PureApplication: Devops and Urbancode
PureApplication: Devops and UrbancodePureApplication: Devops and Urbancode
PureApplication: Devops and UrbancodeJohn Hawkins
 

Similar to The Language of Application Architecture (20)

Agile software architecture
Agile software architectureAgile software architecture
Agile software architecture
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile Way
 
Aec Logic Company Profile
Aec Logic Company ProfileAec Logic Company Profile
Aec Logic Company Profile
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
 
Upmc tpdev1
Upmc tpdev1Upmc tpdev1
Upmc tpdev1
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
 
ERP solution architect role, part I
ERP solution architect role, part IERP solution architect role, part I
ERP solution architect role, part I
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 
Mulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence ConsultingMulesoft Milano meetup #6 Florence Consulting
Mulesoft Milano meetup #6 Florence Consulting
 
Creating UI Marketers Won't F*Up
Creating UI Marketers Won't F*UpCreating UI Marketers Won't F*Up
Creating UI Marketers Won't F*Up
 
Agile Architecture Belfast Software Architecture User Group
Agile Architecture   Belfast Software Architecture User GroupAgile Architecture   Belfast Software Architecture User Group
Agile Architecture Belfast Software Architecture User Group
 
The software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialThe software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorial
 
The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021
 
IBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdfIBM Standards Research Presentation.pdf
IBM Standards Research Presentation.pdf
 
PureApplication: Devops and Urbancode
PureApplication: Devops and UrbancodePureApplication: Devops and Urbancode
PureApplication: Devops and Urbancode
 

Recently uploaded

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

The Language of Application Architecture

  • 1. How to Speak the Language of Application Architecture Brad Beiermann
  • 2. 2 1. Intro 2. The Software Architect Role 3. Continuous Design & Application Architecture Design Principles 4. Generic Models 5. Modeling Your Software 6. Software Design Patterns 7. Architecture Review Board 8. Enterprise Architecture & Frameworks AGENDA
  • 3. Brad Beiermann LinkedIn: https://www.linkedin.com/in/bradbeiermann Contact email: bradb@cimstrat.com GitHub: Bassmint123 Company: KAPOW Events (https://www.kapow.com) Current Role: Director of Technology Presenter
  • 4. Kapow is the world’s leading corporate events platform, offering unique experiences that are easy to book, drive bottom-line results and don’t break the bank. Get an unfair amount of face time with your customers, partners and teams 10k+ Experiences 1k+ Customers 5k+ Events
  • 5. Global events company Cvent acquires Chicago startup Kapow For corporate events these days, steak dinners are out. To keep up with changing demands, event technology company Cvent is acquiring Chicago startup Kapow. With its 50 employees,
  • 7. 7 1. Software Application - Designs the structure of applications Titles: Software Architect, Application Architect, Framework Architect 2. Sales & Support - Involved in the implementation of products Titles: Solution Architect, Field Architect 3. Systems - Skilled in infrastructure design Titles: System Architect, Cloud Architect, Infrastructure Architect 4. Operations - Skilled in business enterprise functions and design Titles: Enterprise Architect, Integration Architect POPULAR IT ARCHITECTURE ROLES
  • 8. 8 ● Familiarity with an architectural modeling language ● Fluent in creating diagrams or visual feature representations ● Architecture frameworks (ie. TOGAF, Zachman, ITIL,...etc.) ● Comfort around a codebase...but development is not a focus ● Present a vision of how something is built end-to-end holistically ● Derive costs effective designs and options CLASSIC SOFTWARE ARCHITECT DISCIPLINES What are the essential skills?...
  • 9. 9 ● Growing and mentoring Architects -- not really happening today. ● It is hard to measure design as an investment ● Selling design is not much different than selling vitamins ● Design “slows development” mentality ● “The code is our documentation” mentality ● Agile development ○ Envisioning step not done correctly ○ No design discipline guidelines (Manifesto principle #11?) ○ Code delivery prioritized over design ● Complete abandonment of architecture skills used in waterfall It is an industry sacrilege to say anything bad about the Agile manifesto, but it has some gaps... “DEBATES & SYMPTOMS”
  • 10. 10 As a Developer... - Nature of the work in more instant gratification. Example: Write -> Run -> Results - An application’s success is measurable - Your product is a codebase - The code is viewable, you can actually see it. - Low abstraction As an Architect... - Nature of the work is more delayed gratification. - The success of architecture is hard to measure. - Your product is a vision - EA governance is invisible, yet omnipresent. - High abstraction GOING FROM DEVELOPER TO APPLICATION ARCHITECT
  • 11. 11 Step 1: Be design driven. Where do you start?... Step 2: Refer back to Step 1.
  • 12. 12 GETTING INTO THE ARCHITECT ROLE ● Ease into it. Don’t rush. This is a discipline. ● Think about how something (ie. business, customer,...etc.) works and the strategy behind it. ● Resist the urge to just hurry up and draw something, or rush into patterns. ● Architecture involves articulation. It’s easy to overwhelm an audience. ● Think BIG, but start small.
  • 13. 13 Our code tells us what is being done. The code is merely a set of instructions. Architecture tells us why something is being done, and how it is being done. The architecture is a vision and strategy. CODE VS. STRATEGY
  • 14. CONTINUOUS DESIGN & APPLICATION ARCHITECTURE DESIGN PRINCIPLES
  • 15. 15 CONTINUOUS DESIGN ● Continuous Design (Incremental Design) - The practice of creating and modifying the design of a system as it is developed (Agile), rather than purporting to specify the system completely before development starts (Waterfall) ● Continuous Design was popularized by eXtreme Programming (XP). ● Continuous Design also uses test driven development (TDD) and refactoring practices. What is it?...
  • 16. 16 Waterfall for: 1. Requirements 2. Analysis 3. Design Agile for: 1. Iterative Coding 2. Iterative Testing 3. Operations (Deployment) HYBRID DELIVERY FRAMEWORK
  • 17. 17 Architecture Design Session(s) Team creates arch/design (Kruchten 4+1, UML, Modelling) Business Stakeholders & Clients Sprint Planning Meeting & Grooming Release Planning Design Driven Software Development Lifecycle (SDLC) Our Implementation of Continuous Design step within the Agile SDLC doing incremental design.
  • 18. 18 CONTINUOUS DESIGN PRINCIPLES ● Incremental design: Design just enough to build the sprint release, but build upon the application’s holistic view. ● Build to change, instead of building to last. ● Model to analyze and reduce risk. ● Use design to identify key engineering decisions. ● Recognize delayed gratifications in a design. ● Use models and visualizations as a communication and collaboration tool.
  • 19. 19 ENGINEERING DIAGRAMS A picture is worth a thousand words vs A diagram should be of few words
  • 20. 20 “Far too many teams allow their codebases to grow without having an insight into the structure of the code. The result is often the proverbial "big ball of mud"; a codebase that is tangled, hard to understand, hard to work with and hard to change. Visualising the structure of your code is the first step towards improving it.” -- Simon Brown Big Ball of Mud (BBM)
  • 21. 21
  • 22. 22 “In our quest to become Agile, we have lost the ability to visually communicate our code.” -- Simon Brown
  • 24. 24 THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING Modelling Fragmentation mid-1960s to mid-1990s 1st Generation Methods & Modeling Languages 2nd Generation Methods & Modeling Languages Booch ‘91 Booch ‘93 OMT1 OMT2 Shlaer-Mellor 1980s SASD 1960s & 1970s Smalltalk (v1 1972) OOA- OOD 1981 Smalltalk-80 (v2 1980) Martin/Odell OOM 1973 UML 2.0 2005 UML 2.5 2015 UML 2.6 Exp 2019 MOF Meta-Object Family 2006 UML 2.x OCL 2005 OOSE 1992 Rational Software 1994 Rational Rose 1994 IBM Acquires Rational 2003 Kruchten 4+1 Model 1995 RUP 1996 UML 1.0 1997 OMG Adopts UML 1.1 Fall 1997 UML 1.5 2003 XP 1999 Agile Manifesto 2001 Arrival of Modern Modern Web Frameworks BPMN 2008 SOA Arrival of Microservices 2014 IaS 2016C4 Model 2011
  • 25. 25 THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING Modelling Fragmentation mid-1960s to mid-1990s 1st Generation Methods & Modeling Languages 2nd Generation Methods & Modeling Languages Booch ‘91 Booch ‘93 OMT1 OMT2 Shlaer-Mellor 1980s SASD 1960s & 1970s Smalltalk (v1 1972) OOA- OOD 1981 Smalltalk-80 (v2 1980) Martin/Odell OOM 1973 UML 2.0 2005 UML 2.5 2015 UML 2.6 Exp 2019 MOF Meta-Object Family 2006 UML 2.x OCL 2005 OOSE 1992 Rational Software 1994 Rational Rose 1994 IBM Acquires Rational 2003 Kruchten 4+1 Model 1995 RUP 1996 UML 1.0 1997 OMG Adopts UML 1.1 Fall 1997 UML 1.5 2003 XP 1999 Agile Manifesto 2001 Arrival of Modern Modern Web Frameworks BPMN 2008 SOA Arrival of Microservices 2014 IaS 2016C4 Model 2011
  • 26. 26 KRUCHTEN 4+1 Logical View (Structural View) Process View (Behavioral View) Development View (Implementation View) Physical View (Environment View) Scenario (User View) ● Developed by Philippe Kruchten ● The “4+1” view model is rather “generic” ● Used for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views.
  • 27. 27 Scenario is to help capture the requirements so that all the stakeholders understand how the system is intended to be used. Artifacts: Use Case, User Story, Epic Logical view is designed to address the end user's concerns about ensuring that all of their desired functionality is captured by the system. In an object-oriented system, this is often at the class level. Artifacts: UML Class Diagram Process view is designed for people designing the whole system and then integrating the subsystems or the system into a system of systems. Artifacts: UML Sequence Diagram 4 + 1 VIEWS
  • 28. 28 Development view is primarily for developers who will be building the modules and the subsystems. It should show dependencies and relationships between modules, how modules are organized, reuse, and portability. Artifacts: UML Component/Artifact Diagram Physical view is primarily for system designers and administrators who need to understand the physical locations of the software, physical connections between nodes, deployment and installation, and scalability. Artifacts: Network Diagram, UML Deployment Diagram, Infrastructure Diagram 4 + 1 VIEWS
  • 29. 29 ● Developed by Simon Brown ○ Conceptually started around 2006 ○ Published in 2011 ● Inspired from Kruchten 4+1 and UML ● Model Type: Generic, Visual, & Non-Notational ● The C4 Model consists of a hierarchical set of software architecture diagrams, based on four common abstractions: ○ Context ○ Containers ○ Components ○ Code C4 Model Simon Brown C4 Model Creator
  • 30. 30 Think of the C4 Model as Google Maps for your code... Inspiration of C4 Model
  • 31. 31 C4 Abstraction Model 1. Context 2. Container 4. Code Bidirectional 3. Component
  • 33. 33 1. Ad Hoc (i.e. no method) 2. Industry Standard Modeling 3. Roll Your Own (RYO) DOIN’ IT! Three ways architecture design often happens... Architecture is omnipresent, but not always visible.
  • 34. 34 THE EVOLUTION OF SOFTWARE ARCHITECTURE & MODELING Modelling Fragmentation mid-1960s to mid-1990s 1st Generation Methods & Modeling Languages 2nd Generation Methods & Modeling Languages Booch ‘91 Booch ‘93 OMT1 OMT2 Shlaer-Mellor 1980s SASD 1960s & 1970s Smalltalk (v1 1972) OOA- OOD 1981 Smalltalk-80 (v2 1980) Martin/Odell OOM 1973 UML 2.0 2005 UML 2.5 2015 UML 2.6 Exp 2019 MOF Meta-Object Family 2006 UML 2.x OCL 2005 OOSE 1992 Rational Software 1994 Rational Rose 1994 IBM Acquires Rational 2003 Kruchten 4+1 Model 1995 RUP 1996 UML 1.0 1997 OMG Adopts UML 1.1 Fall 1997 UML 1.5 2003 XP 1999 Agile Manifesto 2001 Arrival of Modern Modern Web Frameworks BPMN 2008 SOA Arrival of Microservices 2014 IaS 2016C4 Model 2011
  • 36. 36 THE UNIFIED MODELLING LANGUAGE ● Developed by the Three Amigos: ○ Grady Booch - Booch 91 & 93 for abstraction techniques ○ James Rumbaugh - Object Modeling Technique OMT1 & OMT2 ○ Ivar Jacobson - Often known as the “father of Use Cases”, developed Object Oriented Software Engineering (OOSE) ● Is a visual modeling language ● Applies to modeling and systems ● Is used for expressing the artifacts of a system-intensive process. ● Is based on the object-oriented paradigm
  • 37. 37 WHAT UML IS AND IS NOT Not a visual programming language A visual modeling language Not a tool or repository specification Modeling language specification Not a process Enables processes
  • 38. 38 “A good 70 percent of UML was a useless farce to sell overpriced clunky tools (looking at you, Rational Rose). Don’t learn UML to go around annoying people with useless class diagrams. Do learn the basics so you can read a sequence diagram and learn to think this way.” Andrew Oliver InfoWorld 7 Books You Must Read to be a Real Software Developer April 19, 2018 Today’s UML...
  • 39. 39 USE CASE Actor Use Case Use Case Boundary ● A use case is an end-to-end process description. ● Ivar Jacobson -- Father of the Use Case ● It includes many steps or transactions ● It is not normally an individual step activity or process. ● Identify by: “The actor can…” ● It has: ○ Pre-Condition ○ Action ○ Post-Condition
  • 40. 40 ABSTRACTION LEVEL Essential Very Abstract Less Detail Real Very Concrete More Detail Essential vs Real Use Cases Degree of Design Commitment
  • 42. 42 DECOMPOSITION (INTO CONCEPTUAL MODEL) ● The quintessential object-oriented step in analysis or investigation is the decomposition of the problem into individual concepts -- the things we are aware of. ● Conceptual Model - A representation of concepts in a problem domain. ● The focus of a conceptual model may show: ○ Concepts ○ Associations between concepts ○ Attributes of concepts Flight date time Real-world concept not a software class or artifact. A container. FlightDatabase date[ ] time[ ] Software artifact. NOT a real-world concept AVOID YES!
  • 43. 43 DECOMPOSITION (INTO CLASSES) Flight date number time In UML definition... Class - A description for a set of things that share the same attributes, methods, relationships, and semantics. Operation - A service that can be requested from an object to different behavior. Airport name Flies-to Flight date time FlightDescription number Described-by * 1 Airport name Describes-flights-to 1 * WORSE BETTER! Conceptual Model (ie. containers of real world concepts) More software oriented (ie. classes, operations)
  • 44. 44 WHY DECOMPOSITION INTO CONCEPTUAL MODEL? ● Decomposition into a conceptual model is an intermediary step. ● Going straight to classes can be more challenging to decompose into proper abstraction without a conceptual model. TIP: If you are struggling to find your class abstractions, go back to your conceptual model.
  • 45. 45 ● Shows a particular course of events within a use case. ● Shows the external actors that interact directly with the system. ● Shows the system events that the actors generate ● The ordering of events should follow their order in the use case SYSTEM SEQUENCE DIAGRAM message() message() Id 1: Class Id 2: Class
  • 46. 46 Cashier :System Use Case: Buy Items enterItem(UPC, quantity) endSale() makePayment(amount) CREATING A SEQUENCE DIAGRAM
  • 47. 47 FRONT-END SEQUENCE DIAGRAM Office Employee :Backend Application Use Case: Manage Users enterLogin(id, pwd) returnUI() promptUserInfo() :Employee Database checkLogin() validateLogin() addUser(info) enterUserInfo() submit() saveUser() Add User
  • 48. 48 CLASS DIAGRAM ● Illustrates the specifications for software classes and interfaces. ● Shows definitions for software entities rather than real-world concepts. ● Identifies the classes participating in the software solution. ● Shows class relationships. association-name ClassName 1 attribute ... +method() ... 1 1 run() <<interface>> Runnable 1 Multiplicity
  • 49. 49 Use Case: Buy Items CREATING A CLASS DIAGRAM
  • 50. 50 COMPONENT/ARTIFACT DIAGRAM ● Useful because it provides us a high-level, architectural view of the system that we will will be building. ● Allow an architect to verify that a system's required functionality is being implemented ● As of UML 2.x components are now strictly logical, design-time constructs. ● Show run time dependencies ● An artifact can be a physical unit, a file (ie. csv, gem, modules,...etc.), executable (apps), script, database, etc. i18n (gem) home.erb Senario: Internationalization
  • 51. 51 Scenario: VPA On-boarding CREATING COMPONENT/ARTIFACT DIAGRAM
  • 52. 52 PHYSICAL/DEPLOYMENT DIAGRAM ● Shows the hardware for the system and any cloud instances ● Shows any software that is installed on the hardware. ● Displays the connectivity of the disparate machines to one another.
  • 54. 54 ● In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. ● A design pattern is not a finished design that can be transformed directly into code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. ● Patterns originated as an architectural concept by Christopher Alexander around the late 70s. DEFINING SOFTWARE ARCHITECTURE PATTERNS
  • 55. 55 ● Design patterns gained popularity in computer science after the book Design Patterns: Elements of Reusable Object-Oriented Software was published in 1994 by the so-called "Gang of Four" ● The book's authors are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides -- known as GoF ● Introduced patterns by “Type” ○ Creational ○ Structural ○ Behavioral ○ Data Access (later) GoF
  • 56. 56 Supporters Q. Why DO patterns? A. Design patterns can speed up the development process and productivity by providing tested, proven development paradigms. Critics Q. Why NOT DO patterns? A. They are viewed a work arounds for core features missing in a language framework, or sometimes viewed as a lack of good abstractioning and barrier to creativity. THE ARGUMENTS
  • 57. 57 Creational patterns are ones that create objects for you, rather than having you instantiate objects directly. This gives your program more flexibility in deciding which objects need to be created for a given case. Structural patterns concern class and object composition. They use inheritance to compose interfaces and define ways to compose objects to obtain new functionality. Behavioral patterns are specifically concerned with communication between objects. THREE PATTERN TYPES
  • 59. 59 ● ARB (Architecture Review Board) ● Ultimately align design with the company business goals, strategies, and objectives. ● Improve the quality of our products. ● Define technical design standards, policies, and principles for the company overall. WHY DO AN ARB?
  • 60. 60 MIT Knowledge Base http://kb.mit.edu/confluence/display/home/The+Knowledge+Base MIT ARB Guidelines: http://kb.mit.edu/confluence/pages/viewpage.action?pageId=155261497 KAPOW ARB STANDARD & FORMAT The MIT standard for an ARB is the most commonly used.
  • 61. 61 Short Term Goals: ● Establish architecture baseline and promote architecture best practices ● Establish an architectural framework that can be used for design ● Create architecture roadmaps that supports your business ● Support an “Agile Mindset” Long Term Goals: ● Prevent framework bloat and achieve a platform that can easily be maintenanced ● Reduce long term technical debt ● Help keep our technology costs inline ● Reduce onboarding time for new resources ARB GOALS
  • 62. 62 - Start with the end in mind - Design the EA program for maximum scale and flexibility upfront - Create a maturity roadmap and follow it - Don’t try to boil the ocean - Focus on quick wins - Show results early and often Start Small Plan Big KEYS TO SUCCESS FOR THE ARB
  • 64. 64 ARCHITECTURE CONTINUUM Thinking of enterprise architecture like cities...
  • 65. 65 ENTERPRISE ARCHITECTURE ● Enterprise Architecture is a strategy to minimize IT and business mistakes ● Many competing perspectives and approaches to Enterprise Architecture exist ● There is no single, agreed upon Enterprise Architecture standard.
  • 66. 66 ENTERPRISE ARCHITECTURE FRAMEWORKS ● Just like software frameworks, there are EA frameworks. ● EA frameworks help us be productive in creating and managing our designs. ● There are many frameworks to choose from: ❏ FEAF ❏ Gartner Model ❏ TOGAF ❏ Poldat ❏ DoDAF-TAFIN ❏ C4ISR AE ❏ DOE AE ❏ TOGAF-ADM ❏ Zachman ❏ ITIL ❏ IT4IT ❏ COBIT
  • 67. 67 TOGAF ● Current version is 9.1 ● http://pubs.opengroup.org/architecture/togaf9 -doc/arch/ ● Often the go-to framework for enterprise architecture and system architecture ● Maintained by: ● TOGAF - The Open Group Architectural Framework TOGAF ADM
  • 68. 68