SlideShare a Scribd company logo
Software development effort reduction with Co-op Dr.ir. Lodewijk Bergmans  [lbergmans@acm.org]
About me ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Message of this talk ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contents ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Challenges in software development
Some major issues in SE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Experience: complexity vs project risk  source: Wallace, Keil & Rai, “Understanding software project risk: a cluster analysis”, Information & Management 42 (2004)
Improvement potential source: Walker Royce, “Improving Software Economics”: IBM white paper (2009) costs (per person year) 10-35% 5-10% <5% 200-1000% 25-100% 15-35% 5-25% impact (productivity) 25-50%
Technical challenges ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Understanding the problem
Key technique in SE: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A  composition technique  (‘composition operator’) combines the behavior of two or more program elements.
Result: subroutine co-routine aggregation inheritance  (Smalltalk style) inheritance (C++ style) inheritance (BETA style) multiple inheritance dynamic inheritance associative inheritance delegation predicate dispatch mixin  inheritance traits point-cut-advice composition inter-type declarations roles contracts composition filters dependency injection parameterization actors hyperspaces layered object model
[object Object],[object Object]
Composition techniques in the physical world
[object Object],[object Object],[object Object],[object Object]
Result: accidental complexity ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The solution approach
programming languages  should not fix composition mechanisms,  but make them extensible and tailorable.
“ it is not the strongest  of the species that will survive,  or the most intelligent. It is the most adaptable to change.” 1859 Darwin (Megginson)
“ We need to put tools  for language growth  in the hands of the users.” 1998 Steele
“ ... lets [the programmers] [..]  express concise solutions and  free the original language designer  from ever having to say &quot;I'm sorry&quot;  ” 2008 Piumarte & Warth
Co-op (‘ Co mposition -Op erator’) solution ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Technology Application
Usage of Co-Op ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example of using Co-Op Patterns: Observer Pattern ,[object Object],[object Object],[object Object]
A quick view on  the definition of the operator ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example of using Co-Op Patterns: State Pattern ,[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Practical applicability
Large-scale industrial case ,[object Object],[object Object],int  get_kng(KNG_struct*  KNG_ptr) { const char* func_name = &quot;get_kng&quot;; int result = OK; timing_handle timing_hdl = NULL; TIMING_IN; trace_in(mod_data.tr_handle, func_name); if (result == OK) { /* Retrieve current KNG */ *KNG_ptr = mod_data.KNG; } HE(result, &quot;GET_KNG FAILED&quot;); trace_out(mod_data.tr_handle, func_name, result); TIMING_OUT; return result; } primary  functionality error  handling
Industrial case: approach ,[object Object],[object Object],KNG_struct  get_kng() { return ( mod_data.KNG); }
Industrial case:  numbers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Technology realization
Co-op Proof-of-concept ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IDE integration sample
Execution model perspective
Composition Model primitives ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A helicopter view ,[object Object],filter  bindings match bindings apply constraints & evaluate bindings
Trends in sw. development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
About related work ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evaluation
Benefits per stakeholder audience benefits application developer - straightforward application of canned solutions - write less code (=> less bugs) software designer - designs are explicit in code, and localized - more robust to change - can choose optimal solutions (instead of a few fixed ones) senior SE/sw. architect - more opportunities to (guarantee) use of standard solutions - more opportunities to keep code and design consistent - better tools to manage complexity Sw. manager/project leader - better consistency (i.e. quality) - managing complexity    more control over project - empower all team members to build better software easier. end-user/ product owner - software that has fewer problems - software that is flexible: easier/cheaper to maintain and evolve
Co-op: an agile enabler ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion: Co-op application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thanks for your attention ,[object Object],[object Object],assistant prof., SE groep / EEM CS University of Twente, The Netherlands email: lbergmans@acm.org phone: +31-53-4894271 web: trese.cs.utwente.nl/~bergmans software engineering specialist steX bv, The Netherlands email: lodewijk@stexbv.com cell phone: +31-651100838 web: www.stexbv.com Dr.ir. Lodewijk Bergmans

More Related Content

What's hot

DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
Dragan Nikolić
 
Csit77404
Csit77404Csit77404
Csit77404
csandit
 
Vb net xp_03
Vb net xp_03Vb net xp_03
Vb net xp_03Niit Care
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
Vicente García Díaz
 
11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14Niit Care
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
Benoit Combemale
 
Software code metrics
Software code metricsSoftware code metrics
Software code metrics
PVS-Studio
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
Benoit Combemale
 
MDA with Executable UML
MDA with Executable UMLMDA with Executable UML
MDA with Executable UML
Chris Raistrick
 
Objc
ObjcObjc
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
Anže Vodovnik
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16Niit Care
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLelliando dias
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
Sudarshan Dhondaley
 
De-virtualizing virtual Function Calls using various Type Analysis Technique...
De-virtualizing virtual Function Calls using various Type  Analysis Technique...De-virtualizing virtual Function Calls using various Type  Analysis Technique...
De-virtualizing virtual Function Calls using various Type Analysis Technique...
IOSR Journals
 

What's hot (16)

DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
 
Csit77404
Csit77404Csit77404
Csit77404
 
Vb net xp_03
Vb net xp_03Vb net xp_03
Vb net xp_03
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
 
11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
 
Software code metrics
Software code metricsSoftware code metrics
Software code metrics
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
MDA with Executable UML
MDA with Executable UMLMDA with Executable UML
MDA with Executable UML
 
ASE02 DMP.ppt
ASE02 DMP.pptASE02 DMP.ppt
ASE02 DMP.ppt
 
Objc
ObjcObjc
Objc
 
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEMODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
 
12 ooad uml-16
12 ooad uml-1612 ooad uml-16
12 ooad uml-16
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
 
De-virtualizing virtual Function Calls using various Type Analysis Technique...
De-virtualizing virtual Function Calls using various Type  Analysis Technique...De-virtualizing virtual Function Calls using various Type  Analysis Technique...
De-virtualizing virtual Function Calls using various Type Analysis Technique...
 

Viewers also liked

Hpl2011.pptx
Hpl2011.pptxHpl2011.pptx
Hpl2011.pptxlbergmans
 
Automation framework design and implementation
Automation framework design and implementationAutomation framework design and implementation
Automation framework design and implementation
gaoliang641
 
Custom Action Framework
Custom Action FrameworkCustom Action Framework
Custom Action Framework
Alfresco Software
 
Automation Framework
Automation FrameworkAutomation Framework
Automation Frameworkmehramit
 
automation framework
automation frameworkautomation framework
automation frameworkANSHU GOYAL
 
Cost Reduction Strategies:Focus and Techniques
Cost Reduction Strategies:Focus and TechniquesCost Reduction Strategies:Focus and Techniques
Cost Reduction Strategies:Focus and Techniques
Thomas Tanel
 

Viewers also liked (6)

Hpl2011.pptx
Hpl2011.pptxHpl2011.pptx
Hpl2011.pptx
 
Automation framework design and implementation
Automation framework design and implementationAutomation framework design and implementation
Automation framework design and implementation
 
Custom Action Framework
Custom Action FrameworkCustom Action Framework
Custom Action Framework
 
Automation Framework
Automation FrameworkAutomation Framework
Automation Framework
 
automation framework
automation frameworkautomation framework
automation framework
 
Cost Reduction Strategies:Focus and Techniques
Cost Reduction Strategies:Focus and TechniquesCost Reduction Strategies:Focus and Techniques
Cost Reduction Strategies:Focus and Techniques
 

Similar to Software development effort reduction with Co-op

Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
lbergmans
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
Anil Bapat
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Steven Smith
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
bryafaissal
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
AnkitPangasa1
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
ijseajournal
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
Chris Eargle
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.ppt
TemesgenAzezew
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
Kuwait10
 
Design patterns
Design patternsDesign patterns
Design patterns
Binu Bhasuran
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
sujathavvv
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
MalarMohana
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
Ptidej Team
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 
2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction 2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction
Mark Billinghurst
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Fahe Em
 
Software engineering
Software engineeringSoftware engineering
Software engineeringFahe Em
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementationthe_wumberlog
 

Similar to Software development effort reduction with Co-op (20)

Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.ppt
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
 
Programming in c++
Programming in c++Programming in c++
Programming in c++
 
MSR Asia Summit
MSR Asia SummitMSR Asia Summit
MSR Asia Summit
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction 2013 Lecture 5: AR Tools and Interaction
2013 Lecture 5: AR Tools and Interaction
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Lecture 1 uml with java implementation
Lecture 1 uml with java implementationLecture 1 uml with java implementation
Lecture 1 uml with java implementation
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Software development effort reduction with Co-op

  • 1. Software development effort reduction with Co-op Dr.ir. Lodewijk Bergmans [lbergmans@acm.org]
  • 2.
  • 3.
  • 4.
  • 6.
  • 7. Experience: complexity vs project risk source: Wallace, Keil & Rai, “Understanding software project risk: a cluster analysis”, Information & Management 42 (2004)
  • 8. Improvement potential source: Walker Royce, “Improving Software Economics”: IBM white paper (2009) costs (per person year) 10-35% 5-10% <5% 200-1000% 25-100% 15-35% 5-25% impact (productivity) 25-50%
  • 9.
  • 10.
  • 11.
  • 12. Result: subroutine co-routine aggregation inheritance (Smalltalk style) inheritance (C++ style) inheritance (BETA style) multiple inheritance dynamic inheritance associative inheritance delegation predicate dispatch mixin inheritance traits point-cut-advice composition inter-type declarations roles contracts composition filters dependency injection parameterization actors hyperspaces layered object model
  • 13.
  • 14. Composition techniques in the physical world
  • 15.
  • 16.
  • 18. programming languages should not fix composition mechanisms, but make them extensible and tailorable.
  • 19. “ it is not the strongest of the species that will survive, or the most intelligent. It is the most adaptable to change.” 1859 Darwin (Megginson)
  • 20. “ We need to put tools for language growth in the hands of the users.” 1998 Steele
  • 21. “ ... lets [the programmers] [..] express concise solutions and free the original language designer from ever having to say &quot;I'm sorry&quot; ” 2008 Piumarte & Warth
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
  • 31.
  • 32.
  • 34.
  • 37.
  • 38.
  • 39.
  • 40.
  • 42. Benefits per stakeholder audience benefits application developer - straightforward application of canned solutions - write less code (=> less bugs) software designer - designs are explicit in code, and localized - more robust to change - can choose optimal solutions (instead of a few fixed ones) senior SE/sw. architect - more opportunities to (guarantee) use of standard solutions - more opportunities to keep code and design consistent - better tools to manage complexity Sw. manager/project leader - better consistency (i.e. quality) - managing complexity  more control over project - empower all team members to build better software easier. end-user/ product owner - software that has fewer problems - software that is flexible: easier/cheaper to maintain and evolve
  • 43.
  • 44.
  • 45.

Editor's Notes

  1. Venture Lab panel presentation Lodewijk Bergmans
  2. RoI factors: 400-4000% 70-1000% 150-700% -500% (c) 2010 steX bv – www.stexbv.com
  3. quote: “7 th . Law of Computer programming: Program complexity grows until it exceeds the capability of the programmer who must maintain it.” 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  4. Many composition mechanisms... includes domain-specific ones such as exemplified by many design patterns! Note that these are all *well-motivated* with (specific) examples where the specific technique is superior to other ones... so, why so many??  5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  5. Inheritance vs delegation static vs dynamic, sharing structure vs sharing state Smalltalk inheritance vs Beta inheritance robustness/predictability vs. flexibility/extensibility inheritance &amp; aggregation vs. aspects local reasoning vs. global reasoning &amp; maintainability so what do ‘real engineers’ do?  5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  6. if you look at the construction of houses, cars or even much smaller devices, a lot of different construction techniques are combined because each incurs trade-off: easy-to-use, fast, cheap, strong, can be undone, .. 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  7. just a handful! it appears as if only nails &amp; rope are sufficient to build the complex systems that we do (AspectJ is a notable exception) typically these include message invocations, object aggregation and inheritance with specific (always fixed) semantics we need to address this issue  5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  8. Many composition mechanisms... includes domain-specific ones such as exemplified by many design patterns! Note that these are all *well-motivated* with (specific) examples where the specific technique is superior to other ones... so, why so many??  5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  9. Time is ready for designing languages without fixed &amp; built-in composition mechanisms: Hypothesis: Prog. languages of the (some) future will support extensible/tailorable composition mechanisms. 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  10. old news: even Darwin said it 1,5 century ago. According to Darwin in “the origin of species” In fact it is not an exact quote, but a paraphrase of –probably- Megginson in 1963 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  11. -- And later, about Fortress, in “a growable language”: “ The result is that we have a fairly complicated language for library writers that enables them to write libraries that present a relatively simple set of interfaces to the application programmer.” and in Guy Steele talks about language design in the January Doctor Dobb&apos;s. “ I&apos;m not saying we should throw structured programming out the window. I am saying that the trade-offs have changed and are likely to keep changing.” 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  12. Piumarte &amp; Warth “Open extensible object models” in Hirschfeld, rose (eds) Self-sustainable systems (LNCS) 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  13. composition mechanisms must be composable within the same application also on same abstractions depending on semantics! (inherent incompatabilities) e.g. combining beta- and smalltalk inheritance in same hierarchy makes no sense. closure: composition mechanisms are first-class citizens -&gt; scalable model 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  14. show a before and after code view!! wher eit is used show/flash the Observe co-operator code?o rewrite in Magik syntax?? Venture lab panel presentation: background material 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute
  15. multiple inheritance (reuses single inheritance) tracing abstraction (with &amp; without PA reuse) 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  16. not all instances are shown! 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  17. It is about a suitable abstraction level for representing composition operators; this shows the outline of our abstraction. we explain it by showing the computation model/ execution semantics (in fact we believe that in an ever more dynamic world, it is important to have a computation model, so things can be made dynamic, whenever required) 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  18. evaluate binding: - evaluate constraints to determine a partial ordering and evaluate the first match(es) binding of context variables between incoming and outgoing event 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  19. dynamic languages flexible, expressive compositions DSLs (also: polyglot &amp; multi-paradigm programming) right abstractions for right job Model Driven Engineering separate (implementation details) and logic, avoid boilerplate code meta-modelling &amp; meta-programming allow for separation of concerns, modularizing common solutions in a transparent manner conclusions: we believe dynamic languages fit more natural wih a computation model, rather than a transformational approach. choose the appropriate language abstractions for expressing a program where possible design domain-specific abstractions once and reuse we are more used to jumping up and down meta-levels and handling higher-level abstractions today 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material
  20. e.g. CLOS: the notion of parents is fixed in the design of the MOP 5/20/10 (c) 2009-2010 stex BV, confidential: please do not distribute Venture lab panel presentation: background material