SlideShare a Scribd company logo
1 of 54
Getting SPAMMED for
architecture
Arnon Rotem-Gal-Oz
Biometrics Line Development Manager
Rafael LTD.
Haifa, Israel
arnon@rgoarchitects.com
Famous Last Words…
“It is a very humbling experience to make a
multimillion-dollar mistake, but it is also
very memorable….”
(Fred Brooks - “Mythical Man-Month” p.47)
We don’t want to get there
So, What is Software
Architecture exactly?
Software architecture is the
fundamental organization of a system,
embodied in its components, their
relationships to each other and the
environment, and the principles
governing its design and evolution
The architect doesn't talk, he acts.
When this is done,
the team says, "Amazing:
we did it, all by ourselves!" (17)
The architect observes the world
but trusts his inner vision.
He allows things to come and go.
His heart is open as the sky. (12)
Philippe Kruchten - http://www.bredemeyer.com/tao_by_Kruchten.htm
Explorer
Designer
Advocate
The role of the architect
Ron Jacobs
Yeah – but a better analogy is
The Role of the Architect – take II
Designer
Renaissance Man
Visionary & Leader
Mentor
At the end of the day it is the
Architect who is ultimately
responsible for the quality of the
system/product
First, who are we working for?
The Usual Suspects
Customer End-User Project Manager Management
Developers Maintainers Security Analysts
Project New comers Testers Customer’s IT group
Mapping Stakeholders
low High
low
High
Concern
Importance
(or Power)
Interest
Monitor
(Minimum Effort)
Keep
Informed
Keep
Satisfied
Manage
Closely
Based on Schekkerman - IEAD
Architecture Principles
Set the direction for the solution
Initial guidelines to consider for the solution
And there are always some
constraints
Next, we have to think
about the quality Attributes
Quality Attributes
• Performance
• Availability
• Usability
• Security
 Maintainability
 Portability
 Reusability
 Testability
End User’s view
Developer’s view
 Time To Market
 Cost and
Benefits
 Projected life
time
 Targeted Market
 Integration with
Legacy System
 Roll back
Schedule
Business
Community
view
A list of quality attributes exists in
ISO/IEC 9126-2001 Information Technology – Software Product Quality
Utility
Performance
Response
Under normal conditions -
update of an entity in the
persistent storage <0.5
Second
Latency
Under normal or stress
conditions, critical alert
generated by the system will
be displayed in less than 1
seconds (for generation)
Data Loss
under all conditions, a
message acknowledged by
the system will not be lost
Availability Hardware Issues
Under all conditions, when a
server crash, the system will
resume operation in less
than 30 seconds
Usability
Compliance
The system should comply
with maritime data
standards (e.g. Mercator
projection)
Operability
The system should handle
user request without
impeding the user's ability to
continue controlling the
system (e.g. initiate
additional requests)
Security
Unauthorized
users
under normal conditions and
connectivity the system
should alert an unauthorized
login attempt (intrusion)
within 1 minute
Adaptability More Users
When additional users need
access to the system, add
new /more hardware (to
support load) under 4 man
weeks
Identify
scenarios
and
prioritize
them using
Utility trees
Just remember that they
actually look like this…
The secret to quality attribute
analysis is the scenarios
Anatomy of a scenario
– Under normal operation, perform a database transaction
in under 100 milliseconds.
Context Stimulus
Response
Oh yeah – there’s also
modeling and design…
Repository
PC
UIEntity
PC
PC
MapUIC
+
UIC
UIC
UIEntity
UIEntity
MAP
Bus
IBUS
Some
Service
Message
Handler
RootUIC
PC
Message
Handler
Message
Handler
UIC
Correlator
Portal
sd Portal - Send Message
Portal Corrolator
ServiceMsg1
IBus MessageHandler MessageMapper
UIC Repository
ServiceMsg2
opt Needs new entity
loop All message handlers
1.0
1.1 Register
1.2 Send(ServiceMessage,Service)
2.0 message:=
2.1 handle(message)
2.2 entity:= Build(message)
2.3 insertEntity(entity)
2.4 RepositoryChanged
2.5 CorrelatedMessageRecieved
2.6 callback(cookie,EntitiesAffected)
Metacase –www.metacase.com
Pattern can save
you the trouble of
reinventing the
wheel
If you want the
architecture to
be effective it
has to be
communicated
Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth
(The road not taken, Robert Frost 1915)
When you present an architecture
you should consider your
target audience
Compare this:
id Service View
UI
«Service»
COP
«Service»
Navigation
«Service»
OwnSiteESB
«Service»
Alerts
With this
COP
Alerts
UI Own
Site
Navigation
ESB
Technology Mapping
v
Human Workflow
ECM DW OLTP
DALService Agents
Business RulesActivity
Workflow
Authorization
Monitoring
Façade
Log&Trace
ExceptionManagement
Configuration
Authentication
Signing
Rich UI Web UI
Logistics E-PublishFinance
K2
SQL 2005 SQL 2005
Generated C#
ILOG RulesC#
BizTalk 2004
Tamuz+Win2003
CAUnicenter
WCF
EnterpriseLibrary
EnterpriseLibrary
EnterpriseLibrary
AzMan
Signing
Outlook + C# ASP.NET 2.0 on IIS 6.0
Documentum
WCF
SAP
Logistics
Adobe
Elements
SAP 4.6D
FI
BizTalk 2004
Where are we at?
Architecture
Quality
Attributes
Technology
Patterns &
Anti-patterns
Principles
Community
experience
Stakeholders
Architect
people
A “deliverable”
Produce
Key
Is an input
Constraints
OK then, so we are all set
The architecture
has to be
Evaluated to make
sure it is any good
Test Early
Total Risk ExposureRisk Exposure Reduction
Time
Risk
Risk Reduction
Period
Controlled risk management period
Total Risk
Exposure
Sometimes we need to do more
formal evaluations
ATAM flow – SEI - http://www.sei.cmu.edu/architecture/ata_method.html
Formal Evaluation Example LAAAM
• Assessment Matrix
– Evaluate suitability of strategies against
scenarios
Value
Cost
Strategies
Scenarios
Based on Jeromy Carriere
LAAAM – Example (1/2)
Strategy
Scenario Analysis Weight
A. Perform
no
rearchitectin
g. Maintain
with minimal
effort the
existing ABC
application
architecture.
Introduce no
new
dependencie
s on ABC
components.
B.
Incrementall
y wrap
existing ABC
application
components
in the model
provided
with .NET.
C.
Completel
y port
existing
ABC
application
s to .NET.
D.
Completely
port
existing
ABC
applications
to J2EE,
using
existing
enterprise
frameworks.
1. A new
application
leverages the
XYZ data store.
Value 1 Moderate Moderate-
High
Moderate Moderate
Development
Cost
1.5 High Low High High
Operations
Cost
1 Low Low-
Moderate
Low Low-
Moderate
Assessment 3 6 3 2.5
Based on Jeromy Carriere
LAAAM – Example (2/2)
Scenario Analysis Weight A B C D
2. The XYZ
application's
presentation
is customized
by the user to
determine
layout and
content.
Value 1 Low Moderate-
High
High High
Development
Cost
1.5 N/A Moderate Moderate-
High
Moderate-
High
Operations
Cost
1 N/A Low-
Moderate
Low Low-
Moderate
Assessment 0 4.5 4.75 4.25
3. The peak
transaction
rate for the
XYZ
application
increases by
10x (after
scenario 2).
Value 1 Low Moderate-
High
High High
Development
Cost
1.5 High Low-
Moderate
Moderate-
High
High
Operations
Cost
1 High Moderate Low Moderate
Assessment 0 4.75 4.75 3
Based on Jeromy Carriere
All we have to
do now is to
deploy the
architecture
Stakeholders
Principles
Attributes
Modeling
Mapping
Evaluation
Deployment
It is “easy” in waterfall
& incremental
Requirements Architecture Design Code Integration Test
Requirements
& planning
game
R,A,D,C,I,T
(Time boxed)
R,A,D,C,I,T
(Time boxed)
R,A,D,C,I,T
(Time boxed)
R,A,D,C,I,T
(Time boxed)
Final Test
Requirements Architecture
Design, Code, Integrate,
Test
Design,
Code,
Integrate,
Test
Final Integration Final Test
Moving from Waterfall to Agile
waterfall
Incremental
Agile
based on Johanna Rothman
Building in small iterations
can be dangerous
Winchester Mystery House
Can you do Agile Architecture?
JEDUF vs. BDUF
Component A
Component
B
Component
C
Component
D
Component
F
Component
H
Component
I
Evolve the
architecture
http://www.flickr.com/photos/hyperclouds/459716791/
Architect must
implement?
Stakeholders
Principles
Attributes
Modeling
Mapping
Evaluation
Deployment

More Related Content

Similar to SAF

Rsc 2009 Process Management Yesterday Today Tomorrow
Rsc 2009   Process Management Yesterday Today TomorrowRsc 2009   Process Management Yesterday Today Tomorrow
Rsc 2009 Process Management Yesterday Today Tomorrowdjtrent
 
Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureTiffany Graham
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEtsurdilovic
 
Making Observability Actionable At Scale - DBS DevConnect 2019
Making Observability Actionable At Scale - DBS DevConnect 2019Making Observability Actionable At Scale - DBS DevConnect 2019
Making Observability Actionable At Scale - DBS DevConnect 2019Squadcast Inc
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
Winning People to DevOps
Winning People to DevOpsWinning People to DevOps
Winning People to DevOpsMatthew Skelton
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010Klocwork
 
IANS information security forum 2019 summary
IANS information security forum 2019 summaryIANS information security forum 2019 summary
IANS information security forum 2019 summaryKarun Chennuri
 
WSTA Breakfast Seminar
WSTA Breakfast SeminarWSTA Breakfast Seminar
WSTA Breakfast SeminarJoshua McKenty
 
Wall-Street Technology Association (WSTA) Feb-2012
Wall-Street Technology Association (WSTA) Feb-2012Wall-Street Technology Association (WSTA) Feb-2012
Wall-Street Technology Association (WSTA) Feb-2012Joshua McKenty
 
Using security to drive chaos engineering - April 2018
Using security to drive chaos engineering - April 2018Using security to drive chaos engineering - April 2018
Using security to drive chaos engineering - April 2018Dinis Cruz
 
Software Development in Uncertain Times (VoxxedDays Athens 2022)
Software Development in Uncertain Times (VoxxedDays Athens 2022)Software Development in Uncertain Times (VoxxedDays Athens 2022)
Software Development in Uncertain Times (VoxxedDays Athens 2022)Michail Argyriou
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxssuser78ac77
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignVMware Tanzu
 
Os rtos.ppt
Os rtos.pptOs rtos.ppt
Os rtos.pptrahul km
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 

Similar to SAF (20)

Lect 01
Lect 01Lect 01
Lect 01
 
Rsc 2009 Process Management Yesterday Today Tomorrow
Rsc 2009   Process Management Yesterday Today TomorrowRsc 2009   Process Management Yesterday Today Tomorrow
Rsc 2009 Process Management Yesterday Today Tomorrow
 
Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software Architecture
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTEJBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
JBoss Drools and Drools Fusion (CEP): Making Business Rules react to RTE
 
Making Observability Actionable At Scale - DBS DevConnect 2019
Making Observability Actionable At Scale - DBS DevConnect 2019Making Observability Actionable At Scale - DBS DevConnect 2019
Making Observability Actionable At Scale - DBS DevConnect 2019
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Winning People to DevOps
Winning People to DevOpsWinning People to DevOps
Winning People to DevOps
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
IANS information security forum 2019 summary
IANS information security forum 2019 summaryIANS information security forum 2019 summary
IANS information security forum 2019 summary
 
WSTA Breakfast Seminar
WSTA Breakfast SeminarWSTA Breakfast Seminar
WSTA Breakfast Seminar
 
Wall-Street Technology Association (WSTA) Feb-2012
Wall-Street Technology Association (WSTA) Feb-2012Wall-Street Technology Association (WSTA) Feb-2012
Wall-Street Technology Association (WSTA) Feb-2012
 
Using security to drive chaos engineering - April 2018
Using security to drive chaos engineering - April 2018Using security to drive chaos engineering - April 2018
Using security to drive chaos engineering - April 2018
 
Software Development in Uncertain Times (VoxxedDays Athens 2022)
Software Development in Uncertain Times (VoxxedDays Athens 2022)Software Development in Uncertain Times (VoxxedDays Athens 2022)
Software Development in Uncertain Times (VoxxedDays Athens 2022)
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptx
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
Ibm innovate ci for system z
Ibm innovate ci for system zIbm innovate ci for system z
Ibm innovate ci for system z
 
Os rtos.ppt
Os rtos.pptOs rtos.ppt
Os rtos.ppt
 
L23 Summary and Conclusions
L23 Summary and ConclusionsL23 Summary and Conclusions
L23 Summary and Conclusions
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 

More from Arnon Rotem-Gal-Oz

More from Arnon Rotem-Gal-Oz (20)

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
 
Apache spark
Apache sparkApache spark
Apache spark
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
 
REST presentation
REST presentationREST presentation
REST presentation
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
 
Building reliable systems from unreliable components
Building reliable systems from unreliable componentsBuilding reliable systems from unreliable components
Building reliable systems from unreliable components
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Things to think about while architecting azure solutions
Things to think about while architecting azure solutionsThings to think about while architecting azure solutions
Things to think about while architecting azure solutions
 
Soa
Soa Soa
Soa
 
Rest
RestRest
Rest
 

Recently uploaded

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

SAF

  • 1. Getting SPAMMED for architecture Arnon Rotem-Gal-Oz Biometrics Line Development Manager Rafael LTD. Haifa, Israel arnon@rgoarchitects.com
  • 2. Famous Last Words… “It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable….” (Fred Brooks - “Mythical Man-Month” p.47)
  • 3. We don’t want to get there
  • 4. So, What is Software Architecture exactly?
  • 5. Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution
  • 6. The architect doesn't talk, he acts. When this is done, the team says, "Amazing: we did it, all by ourselves!" (17) The architect observes the world but trusts his inner vision. He allows things to come and go. His heart is open as the sky. (12) Philippe Kruchten - http://www.bredemeyer.com/tao_by_Kruchten.htm
  • 7. Explorer Designer Advocate The role of the architect Ron Jacobs Yeah – but a better analogy is
  • 8. The Role of the Architect – take II Designer Renaissance Man Visionary & Leader Mentor
  • 9. At the end of the day it is the Architect who is ultimately responsible for the quality of the system/product
  • 10.
  • 11. First, who are we working for?
  • 12. The Usual Suspects Customer End-User Project Manager Management Developers Maintainers Security Analysts Project New comers Testers Customer’s IT group
  • 13. Mapping Stakeholders low High low High Concern Importance (or Power) Interest Monitor (Minimum Effort) Keep Informed Keep Satisfied Manage Closely Based on Schekkerman - IEAD
  • 14. Architecture Principles Set the direction for the solution Initial guidelines to consider for the solution
  • 15.
  • 16. And there are always some constraints
  • 17. Next, we have to think about the quality Attributes
  • 18. Quality Attributes • Performance • Availability • Usability • Security  Maintainability  Portability  Reusability  Testability End User’s view Developer’s view  Time To Market  Cost and Benefits  Projected life time  Targeted Market  Integration with Legacy System  Roll back Schedule Business Community view A list of quality attributes exists in ISO/IEC 9126-2001 Information Technology – Software Product Quality
  • 19. Utility Performance Response Under normal conditions - update of an entity in the persistent storage <0.5 Second Latency Under normal or stress conditions, critical alert generated by the system will be displayed in less than 1 seconds (for generation) Data Loss under all conditions, a message acknowledged by the system will not be lost Availability Hardware Issues Under all conditions, when a server crash, the system will resume operation in less than 30 seconds Usability Compliance The system should comply with maritime data standards (e.g. Mercator projection) Operability The system should handle user request without impeding the user's ability to continue controlling the system (e.g. initiate additional requests) Security Unauthorized users under normal conditions and connectivity the system should alert an unauthorized login attempt (intrusion) within 1 minute Adaptability More Users When additional users need access to the system, add new /more hardware (to support load) under 4 man weeks Identify scenarios and prioritize them using Utility trees
  • 20. Just remember that they actually look like this…
  • 21. The secret to quality attribute analysis is the scenarios
  • 22. Anatomy of a scenario – Under normal operation, perform a database transaction in under 100 milliseconds. Context Stimulus Response
  • 23. Oh yeah – there’s also modeling and design…
  • 25. sd Portal - Send Message Portal Corrolator ServiceMsg1 IBus MessageHandler MessageMapper UIC Repository ServiceMsg2 opt Needs new entity loop All message handlers 1.0 1.1 Register 1.2 Send(ServiceMessage,Service) 2.0 message:= 2.1 handle(message) 2.2 entity:= Build(message) 2.3 insertEntity(entity) 2.4 RepositoryChanged 2.5 CorrelatedMessageRecieved 2.6 callback(cookie,EntitiesAffected)
  • 27. Pattern can save you the trouble of reinventing the wheel
  • 28. If you want the architecture to be effective it has to be communicated
  • 29. Two roads diverged in a yellow wood, And sorry I could not travel both And be one traveler, long I stood And looked down one as far as I could To where it bent in the undergrowth (The road not taken, Robert Frost 1915)
  • 30. When you present an architecture you should consider your target audience
  • 31. Compare this: id Service View UI «Service» COP «Service» Navigation «Service» OwnSiteESB «Service» Alerts
  • 34. v Human Workflow ECM DW OLTP DALService Agents Business RulesActivity Workflow Authorization Monitoring Façade Log&Trace ExceptionManagement Configuration Authentication Signing Rich UI Web UI Logistics E-PublishFinance
  • 35. K2 SQL 2005 SQL 2005 Generated C# ILOG RulesC# BizTalk 2004 Tamuz+Win2003 CAUnicenter WCF EnterpriseLibrary EnterpriseLibrary EnterpriseLibrary AzMan Signing Outlook + C# ASP.NET 2.0 on IIS 6.0 Documentum WCF SAP Logistics Adobe Elements SAP 4.6D FI BizTalk 2004
  • 36. Where are we at? Architecture Quality Attributes Technology Patterns & Anti-patterns Principles Community experience Stakeholders Architect people A “deliverable” Produce Key Is an input Constraints
  • 37. OK then, so we are all set
  • 38. The architecture has to be Evaluated to make sure it is any good
  • 39. Test Early Total Risk ExposureRisk Exposure Reduction Time Risk Risk Reduction Period Controlled risk management period Total Risk Exposure
  • 40. Sometimes we need to do more formal evaluations ATAM flow – SEI - http://www.sei.cmu.edu/architecture/ata_method.html
  • 41. Formal Evaluation Example LAAAM • Assessment Matrix – Evaluate suitability of strategies against scenarios Value Cost Strategies Scenarios Based on Jeromy Carriere
  • 42. LAAAM – Example (1/2) Strategy Scenario Analysis Weight A. Perform no rearchitectin g. Maintain with minimal effort the existing ABC application architecture. Introduce no new dependencie s on ABC components. B. Incrementall y wrap existing ABC application components in the model provided with .NET. C. Completel y port existing ABC application s to .NET. D. Completely port existing ABC applications to J2EE, using existing enterprise frameworks. 1. A new application leverages the XYZ data store. Value 1 Moderate Moderate- High Moderate Moderate Development Cost 1.5 High Low High High Operations Cost 1 Low Low- Moderate Low Low- Moderate Assessment 3 6 3 2.5 Based on Jeromy Carriere
  • 43. LAAAM – Example (2/2) Scenario Analysis Weight A B C D 2. The XYZ application's presentation is customized by the user to determine layout and content. Value 1 Low Moderate- High High High Development Cost 1.5 N/A Moderate Moderate- High Moderate- High Operations Cost 1 N/A Low- Moderate Low Low- Moderate Assessment 0 4.5 4.75 4.25 3. The peak transaction rate for the XYZ application increases by 10x (after scenario 2). Value 1 Low Moderate- High High High Development Cost 1.5 High Low- Moderate Moderate- High High Operations Cost 1 High Moderate Low Moderate Assessment 0 4.75 4.75 3 Based on Jeromy Carriere
  • 44. All we have to do now is to deploy the architecture
  • 46. It is “easy” in waterfall & incremental
  • 47. Requirements Architecture Design Code Integration Test Requirements & planning game R,A,D,C,I,T (Time boxed) R,A,D,C,I,T (Time boxed) R,A,D,C,I,T (Time boxed) R,A,D,C,I,T (Time boxed) Final Test Requirements Architecture Design, Code, Integrate, Test Design, Code, Integrate, Test Final Integration Final Test Moving from Waterfall to Agile waterfall Incremental Agile based on Johanna Rothman
  • 48. Building in small iterations can be dangerous
  • 50. Can you do Agile Architecture?
  • 51. JEDUF vs. BDUF Component A Component B Component C Component D Component F Component H Component I

Editor's Notes

  1. More than 30 years ago (1975)
  2. We don’t want to get there- right?What is architectureWhat’s the architect roleHow are we going to get from nothing to a working, breathing architecture
  3. IEEE 1471 – recommended practice for architecture description of software intensive systemSoftware architecture is the collection of the fundamental decisions about a software product/solution designed to meet the project&apos;s quality attributes (i.e. requirements). The architecture includes the main components, their main attributes, and their collaboration (i.e. interactions and behavior) to meet the quality attributes. Architecture can and usually should be expressed in several levels of abstraction (depending on the project&apos;s size). If an architecture is to be intentional (rather than accidental), it should be communicated. Architecture is communicated from multiple viewpoints to cater the needs of the different stakeholders.Architectural decisions are global tied to quality attributesDesigns decisions are local –tied to functionality
  4. The Tao of Software Architect
  5. ColumbosAlan DershowitzAt the age of 28 he became the youngest full professor in Harvard law school historySuccessfully defended high profile clientsO.J. SimpsonClaus von BülowFrank Lloyd WrightFrank Lloyd Wright (June 8, 1867 – April 9, 1959) was one of the most prominent and influential architects of the first half of 20th century. He not only developed a series of highly individual styles over his extraordinarily long architectural career (spanning the years 1887-1959), he influenced the whole course of American architecture and building. To this day he remains probably America&apos;s most famous architect. (wikipedia)
  6. A teacherA visionaryA renaissance manAn architect is someone who has an holistic view of something (Natty Gur)
  7. SPAMMED
  8. constraints limit the (architectural) solution space Vs. requirements that set goals for the systemStakeholders should therefore not only specify requirements, but also constraints!Technical – Platform/technology (e.g. use .NET)Financial – Budget (don’t event think about that fancy Rule Engine)
  9. decompose and refines the business goals and quality attributesThe root of the tree is “utility” – the overall “goodness” of the systemSelect the most important quality goals to be the high-level nodesE.g. performance, modifiability, security, and availabilityThe tree reflects the hierarchical nature of quality attributes and provides the basis for prioritization
  10. Remote user requests a database report via the Web during peak period and receives it within 5 seconds.Growth scenarioAdd a new data server to reduce latency in scenario 1 to 2.5 seconds within 1 person-week.For a new release, integrate a new component implementation in three weeks.Exploratory scenarioHalf of the servers go down during normal operation without affecting overall system availability.ResponseUnder normal conditions update 100 moving objects on the map &lt; 200 miliseconsLatencyUnder normal or stress conditions, a critical alert generated by the system will be displayed to the user in less than 1 secondData lossUnder all conditions a message acknowledged by the system shall not be lost (10^5 probability)Availability Hardware failureWhen a mission is in progress, upon a server mal-function, the system will be fully operable within 30 seconds or lessChangeability Add FeatureAdd a new sensor-type to the system in 2 man-months or less
  11. Block diagram, UMLs DSL
  12. DSLI can’t show you an example from a tool we’ve made to – simulate and integrate systems.Software Factories, MDAOnce we had “Model” -&gt; “code” (CASE tools) – didn’t work because of “The Generation Gap”Model + framework -&gt; code +frameworkModel -&gt; Model -&gt; Model -&gt; model + framework -&gt; code + framework
  13. Patterns- package an experience Context and solutions (not “best practices”)Encapsulate forces and challenges ConsiderationsRemember that patterns are not a silver bullet either..
  14. Viewpoints,Document architecture at the last responsible moment
  15. On PaperSEIATAM; SAAM; ARIDLAAAMActive Design ReviewsIn CodePOCsprototypeSkeleton
  16. Lets try to think about architectural risks in our little project…
  17. SEIATAM; SAAM; ARIDLAAAMActive Design Reviews
  18. Each dimension is rated on a five point scale, from High to LowValue Operational costDevelopment costEach dimension is given a weight, to express its importance relative to the other dimensionsAssessment is performed in two passes:Treat each cell as independentNormalize across each row
  19. Making sure the architecture really fits the problemMaking sure the architecture is followedTip: Short iterations allow for better feedback loopConsider SCRUM’s 30 day sprints
  20. Not a process guidanceJust a framework of activities that can be used in a variety of ways
  21. But we’ve learned that Waterfall is problematic
  22. Iterative is better – but essentially we are doing smaller waterfalls…Incremental we are doing “mini-waterfalls”In Agile we don’t We can’t fixTime boxing gives us rhythmPotentially shippable softwareManage requirements changesIncrease trust (demonstration)
  23. This is what hacks look like38 years of construction – 147 builders 0 architects160 rooms – 40 bedrooms, 6 kitchens, 2 basements, 950 doors65 doors to blank walls, 13 staircases abandoned, 24 skylights in floorsNo architectural blueprint exists
  24. Just Enough Design Up Frontinstead of Big Design Up FrontLean Architecture
  25. Architect product ownerEmphasize FlexibilityPostpone decisionsAnother statement Johanna made, which I wholeheartedly agree with, is that you should let the architecture evolve. Evolving an architecture sounds very compelling but it is not a simple feat. Architectural decisions tend to have system wide implications which means that changing one too late in the game you&apos;d get a lot of rewrite and/or refactoring to do. My strategy to solve that conflict is to:Set the first one or two iterations as architectural ones. Some of the work in these iterations is to spike technological and architectural risk. Nevertheless most of architectural iterations are still about delivering business value and user stories. The difference is that the prioritization of the requirements is also done based on technical risks and not just business ones. By the way, when you write quality attribute requirements as scenarios makes them usable as user stories helps customers understand their business value.Try to think about prior experience to produce the baseline architecture One of the quality attributes that you should bring into the table is flexibility - but be weary of putting too much effort into building this flexibility inDon&apos;t try to implement architectural components thoroughly - it is enough to run a thin thread through them and expand then when the need arise. Sometimes it is even enough just to identify them as possible future extensions.Try to postpone architectural decisions to the last responsible moment. However, when that moment comes -make the decision. try to validate the architectural decisions by spiking them out before you introduce them into the projectThese steps don&apos;t promise that the initial architecture sticks, but in my experience it makes it possible to minimize the number of architectural decisions but still have a relatively solid foundation to base your project on
  26. Scott Ambler told me that “agile ones do”, Jim Coplien “Architect Also Implements” patternReports that they’ve seen this time and time again in successful projects.For instance, In one presentation I heared Jim mentioned one stellar team- the dev. Team of Quatro pro where the architects had a daily standup (that was 93 mind-you)In my experience Architect should almost never own features I don’t find a lot of value in architects implementing production code unless there are enough architects to go aroundArchitect must know how to implementArchitect must be able to prove his design in codeArchitect can pair program to mentor/validate/solve problem and provide guidance -&gt; this solves the getting recognition by developers part and better
  27. Services interactions are message drivenServices should be Loosely coupledEdges should provide location transparencyBusiness logic and edge are separate layersScale inside the serviceYou can use workflows for long-running interactions again - inside the service