SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Model-Driven Development for Agile Projects
Objectives

• Drive down development time and costs and increase product
  quality
• Proactively head off technical debt and ensure architectural
  integrity
• Jump start development projects with proven conventions
• Attain solution space knowledge continuity
• Drive down maintenance costs
• Enable platform-level refactoring
Balance Concerns



Architectura                       Rapid
 l Integrity                      Delivery
Why Model?

• Models provide a representation of problem and solution
  space knowledge that is portable and persistent

• Common lexicon for communicating concepts and building
  understanding across all developers

• Picture is worth 1000 words

• Basis for conversation about the relationships of key
  abstractions in a system
Software is Executable Knowledge*

• Books and similar media contain static knowledge
• Software encapsulates knowledge about how to solve a
  problem in such a way that the application of that knowledge
  can be automated
• Model-driven development allows us to use software to
  automate our knowledge about how to implement software
  systems




                                              * Of Zeppelins and Jet Planes; Phil Armour
Model-Driven Architecture Theory

• A methodology wherein system functionality is defined as a
  platform-independent model, using an appropriate
  specification language and then translated to one or more
  platform-specific models for the actual implementation

• The executable software is an output of a system which takes a
  technology-independent description of the solution as an input
Not Just Code Generation

• A way to continuously encapsulate new development
  knowledge in ways that can automate development
• Retain key business knowledge across heterogeneous
  technologies
• Allow developers to focus their creativity on parts of
  the system that matter the most to users
• Not just point-in-time activity
Types of Models

• Platform-Independent Model (PIM)
   – Describes the business concerns of an application in a technology-agnostic
     way
   – Bridges between problem and solution spaces
   – Holds true regardless of what technology is used to implement the system


• Platform-Specific Model (PSM)
   – Describes how the PIM will be realized using a specific set of implementation
     technologies (e.g. Java, .NET, Ruby, Objective-C, etc.)
   – Describes the implementation mechanisms of a system
   – PIM can be implemented using any number of PSMs
Keep Models Simple

• Pick a terse domain-specific language for the PIM
• The more complex the modeling language and
  conventions, the less effective it will be in
  communicating the essential information
• Don’t try to model everything
• “Advances” like UML 2.0 actually went the other
  direction
   – Made modeling less accessible
   – Irony is the goal was to better enable MDA
Example DSL For Software Systems

• Entities
   – Things that have state
• Controls
   – Things that orchestrate interaction between entities to realize
     some functionality
• Boundaries
   – Sit between external actors and the system
• Enumerations
   – A fixed list of values
• Primitives
   – Simple, atomic types
Example Model
Codify Implementation Patterns

• Implementation patterns are platform-specific
• Architectural mechanisms
• Where do patterns come from?
   – Previous development projects
   – Prototypes
   – Other peoples’ projects
• Encapsulate pattern knowledge into transformation
  templates
• Defines the development conventions
Keep the Transformation Language Simple

• Minimum specification needed to access model
  elements

• Minimum utilities needed to handle string functions
  like capitalization

• Simple decision structures
Example Transformation Template
PIM + Transformations = Source Code
Benefits of MDD

• Improve developer productivity
   – Automate development of “plumbing” code
• Increase the value of each manually developed line
  of code
• Improve code quality and maintainability
   – Convention-based approach limits entry points for manual
     development
   – Code generation drives up code consistency
Benefits of MDD

• Spend more time understanding user needs!
• Rapidly adapt to changing needs
  – Refactor the templates to use new conventions or even
    new programming languages
  – Preserve platform-independent aspects of design
• Build systems that are self-documenting
• Spend less time starting new projects
• Decrease time to onboard new developers
Blending MDD and Agile

• Treat models as development artifacts not
  documentation artifacts
• Keep it simple
• Model and generate code continuously
• Make implementation knowledge executable to
  continually increase velocity
Minimize Waste & Keep it Simple
• Only model parts of system needed to implement current
  iteration’s stories
• Don’t try to model everything
   – Focus on key abstractions
   – Too much detail leads to models that are overly complex and
     difficult to maintain
• Don’t try to generate all the code
   – Doing so can lead to technical debt in the transformation
     templates
   – Only generate code for architectural mechanisms you actually
     need
   – If figuring out how to generate something seems tortured
     maybe it shouldn’t be generated!
Continuous Model Transformation

• Integrate model transformation into every build

• Ensures code and model are always in sync

• One-time or infrequent model transformations
   – Same negative effects as not doing CI with source code
   – Undermines value proposition of MDD altogether
CMT Implementation Strategy

• Put boilerplate code in
  immutable base classes
   – Re-generate immutable code
     every build
• Put hooks for manual
  development in leaf nodes
   – One-time generation of
     modifiable code, don’t re-
     generate
Balance Rigidity Against Flexibility




Rigidity                      Flexibility
Putting It Together
Structural key abstraction changes




                 PIM                                Non-Modifiable Code



                                               Value added behavioral and
Architecturally significant changes              user experience changes

                TT
                  T
          Transformations
                                                    Modifiable Code
MDD + Testing

• Enable test developers to focus on test logic
  development
• Use MDD to generate test helper components
   – User interface element finders
   – Access server components
• Do not generate verification logic
Atlas MDD Toolkit

• Open source (http://atlas-mda.org)
• Specifies a very simple DSL for describing systems
• Supports any modeling tool whose model representation
  can be adapted to the Atlas DSL
• Model transformations developed using Velocity open
  source template language
• Simple configuration of transformation target attributes
   – E.g. output path, overwrite, etc
• Easily pluggable into common build environments
   – Maven, Visual Studio, command line, etc
Support for PSM Guidance

• Platform-specific guidance when all the information
  needed to generate code doesn’t exist in the PIM
Simple Configuration
Atlas Maven Configuration

• Plugs into the generate sources target
Case Study 1 – Failed Project Rescue

• Previous vendor:
   – Took 3 years to deliver base functionality with unsustainable
     technical debt
   – Cost tens of millions of dollars
• Using MDD, our team:
   – Re-implemented base functionality and established new
     conventions and templates in 4 months
   – Added several new high-value features
   – Attained a 70/30 generated/hand-coded ratio
   – Cost less than one million dollars
   – Left the client with a model that described the system and a
     development platform to add new features
Case Study 2 – Bootstrap Development Team

• Initial agile seed team formulated conventions and
  architectural mechanisms during development of initial
  stories
   – Majority of technical complexity driven out
• Less experienced developers added to multiply
  development throughput
   – Conventions and plumbing already established
   – Most development was “between the braces”
   – New developers immediately productive
• Seed team detached and left less expensive, self-
  sufficient team in place
• Led to multi-million dollar follow-on award to add
  incremental functionality on product base

Weitere ähnliche Inhalte

Was ist angesagt?

Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software ArchitectureChris F Carroll
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentSpiffy
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overviewslides_teltools
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_bIBM
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 
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
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornmentSpiffy
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projectsSpiffy
 
iMediaTrans Brochure - English Version, March 2013
iMediaTrans Brochure - English Version, March 2013iMediaTrans Brochure - English Version, March 2013
iMediaTrans Brochure - English Version, March 2013David Lee
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systemsMarco Brambilla
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsDevOps for Enterprise Systems
 
Enterprise Application Framework
Enterprise Application FrameworkEnterprise Application Framework
Enterprise Application Frameworkhussulinux
 
Rhapsody Systems Software
Rhapsody Systems SoftwareRhapsody Systems Software
Rhapsody Systems SoftwareBill Duncan
 

Was ist angesagt? (20)

Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: Development
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overview
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
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...
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
 
ALM for SharePoint projects
ALM for SharePoint projectsALM for SharePoint projects
ALM for SharePoint projects
 
iMediaTrans Brochure - English Version, March 2013
iMediaTrans Brochure - English Version, March 2013iMediaTrans Brochure - English Version, March 2013
iMediaTrans Brochure - English Version, March 2013
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systems
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise Environments
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
Enterprise Application Framework
Enterprise Application FrameworkEnterprise Application Framework
Enterprise Application Framework
 
Rhapsody Systems Software
Rhapsody Systems SoftwareRhapsody Systems Software
Rhapsody Systems Software
 

Andere mochten auch

Model-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & OverviewModel-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & OverviewEelco Visser
 
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Real-Time Innovations (RTI)
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
 
MDSD with Eclipse @ JUG Hamburg
MDSD with Eclipse @ JUG HamburgMDSD with Eclipse @ JUG Hamburg
MDSD with Eclipse @ JUG HamburgSebastian Zarnekow
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryJohan den Haan
 
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012Salesforce Deutschland
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Etienne Juliot
 
Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015FSJU AUJF
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesJan Hentschel
 
Model Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model EvolutionModel Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model EvolutionSander Vermolen
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneHeiko Behrens
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionMarco Brambilla
 
Getting Started with Big Data for Business Managers
Getting Started with Big Data for Business ManagersGetting Started with Big Data for Business Managers
Getting Started with Big Data for Business ManagersDatameer
 
Schatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfenSchatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfenNiels de Bruijn
 
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXTModell-getriebene Softwareentwicklung für Lego Mindstorms NXT
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXTjoergreichert
 
Analyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop WebinarAnalyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop WebinarDatameer
 

Andere mochten auch (20)

CG2010 Introducing MDSD
CG2010 Introducing MDSDCG2010 Introducing MDSD
CG2010 Introducing MDSD
 
Model-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & OverviewModel-Driven Software Development - Introduction & Overview
Model-Driven Software Development - Introduction & Overview
 
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
 
MDSD with Eclipse @ JUG Hamburg
MDSD with Eclipse @ JUG HamburgMDSD with Eclipse @ JUG Hamburg
MDSD with Eclipse @ JUG Hamburg
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
 
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012Service Cloud für Fortgeschrittene – Die Roadmap für 2012
Service Cloud für Fortgeschrittene – Die Roadmap für 2012
 
Model-Driven Software Development 2.0
Model-Driven Software Development 2.0Model-Driven Software Development 2.0
Model-Driven Software Development 2.0
 
Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015Israel redefining innovation at International CES 2015
Israel redefining innovation at International CES 2015
 
Datameer
DatameerDatameer
Datameer
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
Model Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model EvolutionModel Driven Software Development - Data Model Evolution
Model Driven Software Development - Data Model Evolution
 
iPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhoneiPhonical and model-driven software development for the iPhone
iPhonical and model-driven software development for the iPhone
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
 
Getting Started with Big Data for Business Managers
Getting Started with Big Data for Business ManagersGetting Started with Big Data for Business Managers
Getting Started with Big Data for Business Managers
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
 
Schatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfenSchatten IT erfolgreich bekämpfen
Schatten IT erfolgreich bekämpfen
 
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXTModell-getriebene Softwareentwicklung für Lego Mindstorms NXT
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXT
 
Analyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop WebinarAnalyzing Unstructured Data in Hadoop Webinar
Analyzing Unstructured Data in Hadoop Webinar
 

Ähnlich wie Model-Driven Development for Rapid Delivery and Architectural Integrity

Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibAndrew Coleman
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)PG Scholar
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsNoor Ul Hudda Memon
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellKeith McFarlane
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...HostedbyConfluent
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentAndrew Coleman
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
Accelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application DevelopmentAccelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application DevelopmentMicro Focus
 
Yogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh Fegade
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Profile_YogeshFegade
Profile_YogeshFegadeProfile_YogeshFegade
Profile_YogeshFegadeYogesh Fegade
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slidesvenkatasubramanianSr5
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Mdsd capable target architecture
Mdsd capable target architectureMdsd capable target architecture
Mdsd capable target architecturerida mariam
 

Ähnlich wie Model-Driven Development for Rapid Delivery and Architectural Integrity (20)

Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
API-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project WinterfellAPI-driven Legacy Migration: Results from Project Winterfell
API-driven Legacy Migration: Results from Project Winterfell
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Ppt nardeep
Ppt nardeepPpt nardeep
Ppt nardeep
 
Accelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application DevelopmentAccelerating time to delivery: Modernizing Application Development
Accelerating time to delivery: Modernizing Application Development
 
Yogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh_Fegade_Profile
Yogesh_Fegade_Profile
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Profile_YogeshFegade
Profile_YogeshFegadeProfile_YogeshFegade
Profile_YogeshFegade
 
Unified modeling language basics and slides
Unified modeling language basics and slidesUnified modeling language basics and slides
Unified modeling language basics and slides
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Mdsd capable target architecture
Mdsd capable target architectureMdsd capable target architecture
Mdsd capable target architecture
 

Kürzlich hochgeladen

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
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
 
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
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Kürzlich hochgeladen (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
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
 
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
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Model-Driven Development for Rapid Delivery and Architectural Integrity

  • 2. Objectives • Drive down development time and costs and increase product quality • Proactively head off technical debt and ensure architectural integrity • Jump start development projects with proven conventions • Attain solution space knowledge continuity • Drive down maintenance costs • Enable platform-level refactoring
  • 3. Balance Concerns Architectura Rapid l Integrity Delivery
  • 4. Why Model? • Models provide a representation of problem and solution space knowledge that is portable and persistent • Common lexicon for communicating concepts and building understanding across all developers • Picture is worth 1000 words • Basis for conversation about the relationships of key abstractions in a system
  • 5. Software is Executable Knowledge* • Books and similar media contain static knowledge • Software encapsulates knowledge about how to solve a problem in such a way that the application of that knowledge can be automated • Model-driven development allows us to use software to automate our knowledge about how to implement software systems * Of Zeppelins and Jet Planes; Phil Armour
  • 6. Model-Driven Architecture Theory • A methodology wherein system functionality is defined as a platform-independent model, using an appropriate specification language and then translated to one or more platform-specific models for the actual implementation • The executable software is an output of a system which takes a technology-independent description of the solution as an input
  • 7. Not Just Code Generation • A way to continuously encapsulate new development knowledge in ways that can automate development • Retain key business knowledge across heterogeneous technologies • Allow developers to focus their creativity on parts of the system that matter the most to users • Not just point-in-time activity
  • 8. Types of Models • Platform-Independent Model (PIM) – Describes the business concerns of an application in a technology-agnostic way – Bridges between problem and solution spaces – Holds true regardless of what technology is used to implement the system • Platform-Specific Model (PSM) – Describes how the PIM will be realized using a specific set of implementation technologies (e.g. Java, .NET, Ruby, Objective-C, etc.) – Describes the implementation mechanisms of a system – PIM can be implemented using any number of PSMs
  • 9. Keep Models Simple • Pick a terse domain-specific language for the PIM • The more complex the modeling language and conventions, the less effective it will be in communicating the essential information • Don’t try to model everything • “Advances” like UML 2.0 actually went the other direction – Made modeling less accessible – Irony is the goal was to better enable MDA
  • 10. Example DSL For Software Systems • Entities – Things that have state • Controls – Things that orchestrate interaction between entities to realize some functionality • Boundaries – Sit between external actors and the system • Enumerations – A fixed list of values • Primitives – Simple, atomic types
  • 12. Codify Implementation Patterns • Implementation patterns are platform-specific • Architectural mechanisms • Where do patterns come from? – Previous development projects – Prototypes – Other peoples’ projects • Encapsulate pattern knowledge into transformation templates • Defines the development conventions
  • 13. Keep the Transformation Language Simple • Minimum specification needed to access model elements • Minimum utilities needed to handle string functions like capitalization • Simple decision structures
  • 15. PIM + Transformations = Source Code
  • 16. Benefits of MDD • Improve developer productivity – Automate development of “plumbing” code • Increase the value of each manually developed line of code • Improve code quality and maintainability – Convention-based approach limits entry points for manual development – Code generation drives up code consistency
  • 17. Benefits of MDD • Spend more time understanding user needs! • Rapidly adapt to changing needs – Refactor the templates to use new conventions or even new programming languages – Preserve platform-independent aspects of design • Build systems that are self-documenting • Spend less time starting new projects • Decrease time to onboard new developers
  • 18. Blending MDD and Agile • Treat models as development artifacts not documentation artifacts • Keep it simple • Model and generate code continuously • Make implementation knowledge executable to continually increase velocity
  • 19. Minimize Waste & Keep it Simple • Only model parts of system needed to implement current iteration’s stories • Don’t try to model everything – Focus on key abstractions – Too much detail leads to models that are overly complex and difficult to maintain • Don’t try to generate all the code – Doing so can lead to technical debt in the transformation templates – Only generate code for architectural mechanisms you actually need – If figuring out how to generate something seems tortured maybe it shouldn’t be generated!
  • 20. Continuous Model Transformation • Integrate model transformation into every build • Ensures code and model are always in sync • One-time or infrequent model transformations – Same negative effects as not doing CI with source code – Undermines value proposition of MDD altogether
  • 21. CMT Implementation Strategy • Put boilerplate code in immutable base classes – Re-generate immutable code every build • Put hooks for manual development in leaf nodes – One-time generation of modifiable code, don’t re- generate
  • 22. Balance Rigidity Against Flexibility Rigidity Flexibility
  • 23. Putting It Together Structural key abstraction changes PIM Non-Modifiable Code Value added behavioral and Architecturally significant changes user experience changes TT T Transformations Modifiable Code
  • 24. MDD + Testing • Enable test developers to focus on test logic development • Use MDD to generate test helper components – User interface element finders – Access server components • Do not generate verification logic
  • 25. Atlas MDD Toolkit • Open source (http://atlas-mda.org) • Specifies a very simple DSL for describing systems • Supports any modeling tool whose model representation can be adapted to the Atlas DSL • Model transformations developed using Velocity open source template language • Simple configuration of transformation target attributes – E.g. output path, overwrite, etc • Easily pluggable into common build environments – Maven, Visual Studio, command line, etc
  • 26. Support for PSM Guidance • Platform-specific guidance when all the information needed to generate code doesn’t exist in the PIM
  • 28. Atlas Maven Configuration • Plugs into the generate sources target
  • 29. Case Study 1 – Failed Project Rescue • Previous vendor: – Took 3 years to deliver base functionality with unsustainable technical debt – Cost tens of millions of dollars • Using MDD, our team: – Re-implemented base functionality and established new conventions and templates in 4 months – Added several new high-value features – Attained a 70/30 generated/hand-coded ratio – Cost less than one million dollars – Left the client with a model that described the system and a development platform to add new features
  • 30. Case Study 2 – Bootstrap Development Team • Initial agile seed team formulated conventions and architectural mechanisms during development of initial stories – Majority of technical complexity driven out • Less experienced developers added to multiply development throughput – Conventions and plumbing already established – Most development was “between the braces” – New developers immediately productive • Seed team detached and left less expensive, self- sufficient team in place • Led to multi-million dollar follow-on award to add incremental functionality on product base

Hinweis der Redaktion

  1. Compliment sessions that talk address figuring out what to build and making sure we built the right thing.
  2. “When humans do things that computers can automate, the computers get together and laugh at the humans.”How did we model the business concerns?What decisions did we make about how to implement the system?Code reviews are a reactive way to prevent tech debt.
  3. Architectural integrityCode consistencyImplementation patternsMaintainableAdherence to conventions
  4. How many people here model?Drive out ambiguity inherent in natural languageAs we will see, models can now be made first-class citizens that are developed just like source code.
  5. Object Management GroupOMG MDA states that model is transformed from PIM to PSM and PSM to source code.
  6. Complex modeling conventions cause us to focus more on the nuances of the modeling tool instead of focusing on solving the problem.Model the 20% that specifies 80% of the valueUML 2 – Too many modeling conventions and options made it overly complex
  7. Traditional Analysis Model artifactYet to find the system whose non-technical aspects can not be described in these terms
  8. Pick a development language -> Pick some application framework(s), Decide on your conventions for how to use those frameworks.Template exchange.
  9. Example is based on JPA conventions.Templatized PSM.
  10. Persistent knowledge transfer mechanism for capturing development decisionsConventions take guesswork out of where to do manual developmentNot locked into specific conventions or languagesApplication frameworks are a start but require manual development on their own
  11. Continuously incorporate lessons learned into templates.
  12. Product catalog BUFD story @ first bulletBUFD designers tend to fall in love with their designs - not good
  13. Practice makes perfect
  14. Need way to preserve manual code and maximize automation.
  15. Be rigid where we need to enforce key conventions. Allow flexibility where developers need the freedom to implement creative solutions.Generally, flexibility needed for complex business rules and user interface components.
  16. Generate Sn web driver finders and Fn fixture test components.
  17. UML:Sparx EA, MagicDraw, Visual ParadigmXML
  18. 30% was mostly business logic and UX related
  19. Also established UI / development patterns.