SlideShare a Scribd company logo
1 of 28
Download to read offline
Much has changed in the Cloud, but
some fundamentals remain
unchanged. As enterprises continue
a migration to cloud platforms,
architectures and operating models,
there is a periodic need to reevaluate
their portfolio of preexisting
applications to assess the options for
migration.
This is a reprise and reimagining of a
whitepaper authored and informed by a
cloud consulting project in 2009.
https://www.pexels.com/search/clouds/
Moving To
The Cloud
Evaluating Software Architecture
Using Proven SEI Methods
Mark Sigler
Mar 2018
EVALUATING A SOFTWARE ARCHITECTURE
BALANCING RISK AND REWARD
• How to optimize for time to market and economics?
• How to reduce risk and improve capabilities?
“As in life, if you marry your architecture in haste,
you and your stakeholders will repent in leisure.”1
—Barry Boehm
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
1. “Spiral Development: Experience, Principles and Refinement”, Barry Boehm, Feb 2000
AGENDA
• What is an Architecture?
• How to Validate a Software Architecture?
• Why Evaluate an Architecture?
• When Can an Architecture Be Evaluated?
• Who's Involved?
• What Are the Outputs of an Architecture Evaluation?
• What Are the Benefits and Costs?
• Conclusions
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHAT IS AN ARCHITECTURE?
• Foundation for any software system.
• Basis for all system Abilities:
• Usability
• Maintainability
• Reliability
• Scalability
• Extensibility
• Securability
• Portability
• Not necessarily in that order of priority
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Refer to Appendix for additional details
HOW TO VALIDATE A
SOFTWARE ARCHITECTURE?
• Three proven methods, each and all developed at the
Software Engineering Institute of Carnegie Mellon University:
• ATAM: Architecture Tradeoff Analysis Method
• SAAM: Software Architecture Analysis Method
• ARID: Active Reviews for Intermediate Designs
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
ARCHITECTURE TRADEOFF
ANALYSIS METHOD (ATAM)
• Structured technique for understanding the tradeoffs inherent in the
architectures of software-intensive systems.
• Principled way to evaluate a software architecture's fitness with
respect to multiple competing quality attributes.
• Spiral model of design: one of postulating candidate architectures
followed by analysis and risk mitigation, leading to refined
architectures.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
SOFTWARE ARCHITECTURE
ANALYSIS METHOD (SAAM)
• Predict the quality of a system before it has been developed.
• Quality of the architecture is validated by analyzing the impact of
predefined scenarios on architectural components.
• Addresses concerns at the architecture design level which inherently
crosscut multiple architectural components.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
ACTIVE REVIEWS FOR
INTERMEDIATE DESIGNS (ARID)
• Method for reviewing preliminary software designs (such as for a
component or a subsystem) for suitability in its intended usage
context and environment.
• Results in a high-fidelity design review coupled with high-quality
familiarization with the design.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHY EVALUATE AN ARCHITECTURE?
• The cost to fix an error found during requirements or early design
phases is orders of magnitudes less to correct than error found in
testing.
• Architecture determines the structure of the project: schedules and
budgets, performance goals, team structure, documentation
organization, and testing and maintenance activities.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHEN CAN AN ARCHITECTURE
BE EVALUATED?
• Architecture evaluation occurs when the architecture has been
specified but before implementation has begun.
• Lean and Agile methods suggest incremental experimentation,
reevaluation and correction during implementation.
• Plan, Experiment, Adjust, Validate
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHEN CAN AN ARCHITECTURE BE
EVALUATED?
• Two useful variations:
• Early - at any stage in the architecture creation process to examine those
architectural decisions already made and choose among architectural options.
• Late - takes place when the architecture is nailed down and the
implementation is complete. Mainly used when architecture is inherited from
legacy system.
• Migrating legacy applications to the cloud inherently is Late, but
subject to further evaluation.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHO'S INVOLVED?
• Evaluation team - People who will conduct the evaluation and
perform the analysis.
• Responsible and some perhaps Consulted (RACI)
• Stakeholders - Stakeholders are people who have a vested interest in
the architecture and the system.
• Consulted and possibly Accountable (RACI)
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHAT ARE THE OUTPUTS OF AN
ARCHITECTURE EVALUATION?
• Prioritized Statement of Quality Attribute Requirements.
• Having a prioritized statement of the quality attributes serves as an excellent
documentation record to accompany any architecture and guide it through its
evolution.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHAT ARE THE OUTPUTS OF AN
ARCHITECTURE EVALUATION?
• Mapping of Approaches to Quality Attributes.
• Produces a mapping that shows how the architectural approaches achieve (or
fail to achieve) the desired quality attributes.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHAT ARE THE OUTPUTS OF AN
ARCHITECTURE EVALUATION?
• Risks and Non-risks.
• Risks are potentially problematic architectural decisions.
• Non-risks are good decisions that rely on assumptions that are frequently
implicit in the architecture.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
WHAT ARE THE BENEFITS AND COSTS?
• Forces an Articulation of Specific Quality Goals.
• Results in the Prioritization of Conflicting Goals.
• Puts Stakeholders in the Same Room.
• Improves the Quality of Architectural Documentation.
• Uncovers Opportunities for Cross-Project Reuse.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
CONCLUSION
• The average architecture evaluation adds no more than a few days to
the project schedule. Spike sprint.
• Architecture created in haste will precipitate disaster: performance
goals not met, Security goals falling, customer dissatisfaction, system
that is too hard to change, and schedules and budgets through the
roof. Operating model will disintegrate.
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Appendix
Background Information
Abilities
Definitions for a Foundation
ABILITIES
1) Usability
• Software usability can be described as how effectively end users can use,
learn, or control the system. Some questions to ask yourself to determine
usability might be:
• Is there a UI metaphor that I am using to help users adapt? (for example, the ‘desktop’ is
a metaphor)
• Are the most common operations streamlined to be performed quickly?
• Can new users quickly adapt to the software without help? (is it intuitive?)
• Do validation and error messages make sense?
• Is the visual design atheistically pleasing?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
2) Maintainability
• The relevant definition of maintainability implies how brittle the code is to
change. As a result, I tie the terms flexibility and testability into the overall
maintainability of a project.
• Does the entire team understand the code base or does knowledge islands exist?
• Is the code throughly regression tested?
• Can modifications to the project be done in a timely manner?
• Will upgrades of major and minor releases including patches be seamless, not impacting
availability or functionality of the users?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
3) Scalability
• Scalability is the ability for your program to gracefully meet the demand of
stress caused by increased usage. In short, ensuring your program doesn’t
slow or bust when pounded by more users than you originally anticipated.
• What is your current peak load that you can handle?
• How many database records can create until critical operations slow down?
• Is the primary scaling strategy to “scale up” or to “scale out” — that is, to upgrade the
nodes in a fixed topology, or to add nodes?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
4) Reliability
• How long the system is up and running and the Mean Time Between Failure
(MTBF) is known as the availability of a program.
• How long does the system need to run without failure?
• What is the acceptable length of time for the system to be down?
• Can down times be scheduled?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
5) Extensibility
• Are there points in the system where changes can be made with (or without)
program changes?
• Can the database schema flex to accommodate change?
• Does the system allow Inversion of Control (IoC)?
• Can end users extend the system (scripts, user defined fields, etc)?
• Can 3rd party developers leverage your system?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
6) Securability
• Measure of system’s ability to resist unauthorized attempts at usage or
behavior modification, while still providing service to legitimate users.
• Does the system need user or role based security?
• Does code access security need to occur?
• What operations need to be secured?
• How will users be administered?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
ABILITIES
7) Portability
• Portability is the ability for your application to run on numerous platforms.
This is can include actual application hosting, viewing, or data portability.
• Can the data be migrated to other systems?
• For web applications, which browsers does your web app support?
• Which operating systems does your program run on?
• Can the system be migrated to other cloud platforms?
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
References
Recommended Reading
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
RECOMMENDED READING
• Experiences in Migrations of Legacy Systems
• Methodology for the Cost Benefit Analysis of a Large Scale ...
• Automated Provisioning of Cloud and Cloudlet Applications
This work is licensed under a
Creative Commons Attribution
ShareAlike 4.0 International License.
https://resources.sei.cmu.edu/

More Related Content

What's hot

IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6Strongback Consulting
 
DevOps: From Adoption to Performance
DevOps: From Adoption to PerformanceDevOps: From Adoption to Performance
DevOps: From Adoption to PerformanceDynatrace
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleAfrasiyab Haider
 
+Software development methodologies
+Software development methodologies+Software development methodologies
+Software development methodologieswalid sassi
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleSanjeev Sharma
 
DevOps in the Hybrid Cloud
DevOps in the Hybrid CloudDevOps in the Hybrid Cloud
DevOps in the Hybrid CloudRichard Irving
 
How NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOpsHow NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOpsSanjeev Sharma
 
System developement methods
System developement methodsSystem developement methods
System developement methodssachinsreekumar
 
Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014Sanjeev Sharma
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesIBM UrbanCode Products
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at ScaleIBM UrbanCode Products
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)ghayour abbas
 
DTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionDTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionSanjeev Sharma
 
Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Ganesh Samarthyam
 
Re-Platforming Applications for the Cloud
Re-Platforming Applications for the CloudRe-Platforming Applications for the Cloud
Re-Platforming Applications for the CloudCarter Wickstrom
 

What's hot (20)

Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6IBM Collaborative Lifecycle Management Solution for DevOps v6
IBM Collaborative Lifecycle Management Solution for DevOps v6
 
DevOps: From Adoption to Performance
DevOps: From Adoption to PerformanceDevOps: From Adoption to Performance
DevOps: From Adoption to Performance
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
+Software development methodologies
+Software development methodologies+Software development methodologies
+Software development methodologies
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
DevOps for Enterprise Systems - Rosalind Radcliffe
DevOps for Enterprise Systems - Rosalind RadcliffeDevOps for Enterprise Systems - Rosalind Radcliffe
DevOps for Enterprise Systems - Rosalind Radcliffe
 
DevOps in the Hybrid Cloud
DevOps in the Hybrid CloudDevOps in the Hybrid Cloud
DevOps in the Hybrid Cloud
 
How NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOpsHow NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOps
 
System developement methods
System developement methodsSystem developement methods
System developement methods
 
Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014Continuous Delivery to the cloud - Innovate 2014
Continuous Delivery to the cloud - Innovate 2014
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a Startup
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for Databases
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at Scale
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 
Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
DTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect SessionDTS-1778 Understanding DevOps - IBM InterConnect Session
DTS-1778 Understanding DevOps - IBM InterConnect Session
 
Cloud, agile
Cloud, agileCloud, agile
Cloud, agile
 
Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop Refactoring for Software Design Smells - 1 day Workshop
Refactoring for Software Design Smells - 1 day Workshop
 
Re-Platforming Applications for the Cloud
Re-Platforming Applications for the CloudRe-Platforming Applications for the Cloud
Re-Platforming Applications for the Cloud
 

Similar to Moving To The Cloud, Evaluating Architectures

Lect6 life cycle phases
Lect6 life cycle phasesLect6 life cycle phases
Lect6 life cycle phasesmeena466141
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computingAhmed M. Abed
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleDhivyaa C.R
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managersYaniv Pessach
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...WSO2
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 
Principle 11 needs to go! by Ken France at #AgileIndia2019
Principle 11 needs to go! by Ken France at #AgileIndia2019Principle 11 needs to go! by Ken France at #AgileIndia2019
Principle 11 needs to go! by Ken France at #AgileIndia2019Agile India
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Cloud Computing and Agile Product Line Engineering Integration
Cloud Computing and Agile Product Line Engineering IntegrationCloud Computing and Agile Product Line Engineering Integration
Cloud Computing and Agile Product Line Engineering IntegrationHeba Elshandidy
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 
Agile projects are for delivering packaged software too
Agile projects are for delivering packaged software tooAgile projects are for delivering packaged software too
Agile projects are for delivering packaged software tooDavid Harmer
 

Similar to Moving To The Cloud, Evaluating Architectures (20)

RRC RUP
RRC RUPRRC RUP
RRC RUP
 
Lect6 life cycle phases
Lect6 life cycle phasesLect6 life cycle phases
Lect6 life cycle phases
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycle
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managers
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Principle 11 needs to go! by Ken France at #AgileIndia2019
Principle 11 needs to go! by Ken France at #AgileIndia2019Principle 11 needs to go! by Ken France at #AgileIndia2019
Principle 11 needs to go! by Ken France at #AgileIndia2019
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Cloud Computing and Agile Product Line Engineering Integration
Cloud Computing and Agile Product Line Engineering IntegrationCloud Computing and Agile Product Line Engineering Integration
Cloud Computing and Agile Product Line Engineering Integration
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Agile projects are for delivering packaged software too
Agile projects are for delivering packaged software tooAgile projects are for delivering packaged software too
Agile projects are for delivering packaged software too
 
Agile projects
Agile projectsAgile projects
Agile projects
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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, ...
 

Moving To The Cloud, Evaluating Architectures

  • 1. Much has changed in the Cloud, but some fundamentals remain unchanged. As enterprises continue a migration to cloud platforms, architectures and operating models, there is a periodic need to reevaluate their portfolio of preexisting applications to assess the options for migration. This is a reprise and reimagining of a whitepaper authored and informed by a cloud consulting project in 2009. https://www.pexels.com/search/clouds/ Moving To The Cloud Evaluating Software Architecture Using Proven SEI Methods Mark Sigler Mar 2018
  • 2. EVALUATING A SOFTWARE ARCHITECTURE BALANCING RISK AND REWARD • How to optimize for time to market and economics? • How to reduce risk and improve capabilities? “As in life, if you marry your architecture in haste, you and your stakeholders will repent in leisure.”1 —Barry Boehm This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. 1. “Spiral Development: Experience, Principles and Refinement”, Barry Boehm, Feb 2000
  • 3. AGENDA • What is an Architecture? • How to Validate a Software Architecture? • Why Evaluate an Architecture? • When Can an Architecture Be Evaluated? • Who's Involved? • What Are the Outputs of an Architecture Evaluation? • What Are the Benefits and Costs? • Conclusions This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 4. WHAT IS AN ARCHITECTURE? • Foundation for any software system. • Basis for all system Abilities: • Usability • Maintainability • Reliability • Scalability • Extensibility • Securability • Portability • Not necessarily in that order of priority This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Refer to Appendix for additional details
  • 5. HOW TO VALIDATE A SOFTWARE ARCHITECTURE? • Three proven methods, each and all developed at the Software Engineering Institute of Carnegie Mellon University: • ATAM: Architecture Tradeoff Analysis Method • SAAM: Software Architecture Analysis Method • ARID: Active Reviews for Intermediate Designs This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 6. ARCHITECTURE TRADEOFF ANALYSIS METHOD (ATAM) • Structured technique for understanding the tradeoffs inherent in the architectures of software-intensive systems. • Principled way to evaluate a software architecture's fitness with respect to multiple competing quality attributes. • Spiral model of design: one of postulating candidate architectures followed by analysis and risk mitigation, leading to refined architectures. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 7. SOFTWARE ARCHITECTURE ANALYSIS METHOD (SAAM) • Predict the quality of a system before it has been developed. • Quality of the architecture is validated by analyzing the impact of predefined scenarios on architectural components. • Addresses concerns at the architecture design level which inherently crosscut multiple architectural components. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 8. ACTIVE REVIEWS FOR INTERMEDIATE DESIGNS (ARID) • Method for reviewing preliminary software designs (such as for a component or a subsystem) for suitability in its intended usage context and environment. • Results in a high-fidelity design review coupled with high-quality familiarization with the design. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 9. WHY EVALUATE AN ARCHITECTURE? • The cost to fix an error found during requirements or early design phases is orders of magnitudes less to correct than error found in testing. • Architecture determines the structure of the project: schedules and budgets, performance goals, team structure, documentation organization, and testing and maintenance activities. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 10. WHEN CAN AN ARCHITECTURE BE EVALUATED? • Architecture evaluation occurs when the architecture has been specified but before implementation has begun. • Lean and Agile methods suggest incremental experimentation, reevaluation and correction during implementation. • Plan, Experiment, Adjust, Validate This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 11. WHEN CAN AN ARCHITECTURE BE EVALUATED? • Two useful variations: • Early - at any stage in the architecture creation process to examine those architectural decisions already made and choose among architectural options. • Late - takes place when the architecture is nailed down and the implementation is complete. Mainly used when architecture is inherited from legacy system. • Migrating legacy applications to the cloud inherently is Late, but subject to further evaluation. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 12. WHO'S INVOLVED? • Evaluation team - People who will conduct the evaluation and perform the analysis. • Responsible and some perhaps Consulted (RACI) • Stakeholders - Stakeholders are people who have a vested interest in the architecture and the system. • Consulted and possibly Accountable (RACI) This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 13. WHAT ARE THE OUTPUTS OF AN ARCHITECTURE EVALUATION? • Prioritized Statement of Quality Attribute Requirements. • Having a prioritized statement of the quality attributes serves as an excellent documentation record to accompany any architecture and guide it through its evolution. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 14. WHAT ARE THE OUTPUTS OF AN ARCHITECTURE EVALUATION? • Mapping of Approaches to Quality Attributes. • Produces a mapping that shows how the architectural approaches achieve (or fail to achieve) the desired quality attributes. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 15. WHAT ARE THE OUTPUTS OF AN ARCHITECTURE EVALUATION? • Risks and Non-risks. • Risks are potentially problematic architectural decisions. • Non-risks are good decisions that rely on assumptions that are frequently implicit in the architecture. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 16. WHAT ARE THE BENEFITS AND COSTS? • Forces an Articulation of Specific Quality Goals. • Results in the Prioritization of Conflicting Goals. • Puts Stakeholders in the Same Room. • Improves the Quality of Architectural Documentation. • Uncovers Opportunities for Cross-Project Reuse. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 17. CONCLUSION • The average architecture evaluation adds no more than a few days to the project schedule. Spike sprint. • Architecture created in haste will precipitate disaster: performance goals not met, Security goals falling, customer dissatisfaction, system that is too hard to change, and schedules and budgets through the roof. Operating model will disintegrate. This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 20. ABILITIES 1) Usability • Software usability can be described as how effectively end users can use, learn, or control the system. Some questions to ask yourself to determine usability might be: • Is there a UI metaphor that I am using to help users adapt? (for example, the ‘desktop’ is a metaphor) • Are the most common operations streamlined to be performed quickly? • Can new users quickly adapt to the software without help? (is it intuitive?) • Do validation and error messages make sense? • Is the visual design atheistically pleasing? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 21. ABILITIES 2) Maintainability • The relevant definition of maintainability implies how brittle the code is to change. As a result, I tie the terms flexibility and testability into the overall maintainability of a project. • Does the entire team understand the code base or does knowledge islands exist? • Is the code throughly regression tested? • Can modifications to the project be done in a timely manner? • Will upgrades of major and minor releases including patches be seamless, not impacting availability or functionality of the users? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 22. ABILITIES 3) Scalability • Scalability is the ability for your program to gracefully meet the demand of stress caused by increased usage. In short, ensuring your program doesn’t slow or bust when pounded by more users than you originally anticipated. • What is your current peak load that you can handle? • How many database records can create until critical operations slow down? • Is the primary scaling strategy to “scale up” or to “scale out” — that is, to upgrade the nodes in a fixed topology, or to add nodes? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 23. ABILITIES 4) Reliability • How long the system is up and running and the Mean Time Between Failure (MTBF) is known as the availability of a program. • How long does the system need to run without failure? • What is the acceptable length of time for the system to be down? • Can down times be scheduled? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 24. ABILITIES 5) Extensibility • Are there points in the system where changes can be made with (or without) program changes? • Can the database schema flex to accommodate change? • Does the system allow Inversion of Control (IoC)? • Can end users extend the system (scripts, user defined fields, etc)? • Can 3rd party developers leverage your system? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 25. ABILITIES 6) Securability • Measure of system’s ability to resist unauthorized attempts at usage or behavior modification, while still providing service to legitimate users. • Does the system need user or role based security? • Does code access security need to occur? • What operations need to be secured? • How will users be administered? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 26. ABILITIES 7) Portability • Portability is the ability for your application to run on numerous platforms. This is can include actual application hosting, viewing, or data portability. • Can the data be migrated to other systems? • For web applications, which browsers does your web app support? • Which operating systems does your program run on? • Can the system be migrated to other cloud platforms? This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Paraphrased from http://codesqueeze.com/the-7-software-ilities-you-need-to-know/
  • 27. References Recommended Reading This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License.
  • 28. RECOMMENDED READING • Experiences in Migrations of Legacy Systems • Methodology for the Cost Benefit Analysis of a Large Scale ... • Automated Provisioning of Cloud and Cloudlet Applications This work is licensed under a Creative Commons Attribution ShareAlike 4.0 International License. https://resources.sei.cmu.edu/