SlideShare a Scribd company logo
beyond software evolution:
software environmentalism
@girba
an E-type system must be
continually adapted or it becomes
progressively less satisfactory
as an E-type system evolves, its
complexity increases unless work is
done to maintain or reduce it
Lehman, Belady 1974
074 0 -74 5 9/12 / $ 31.0 0 © 2 012 I E E E J U LY/AUGU S T 2012 | IE E E S O F T WA R E 19
IMPACT
Editor: Michiel van Genuchten
Open Digital Dentistry
genuchten@ieee.org
Editor: Les Hatton
Kingston University
l.hatton@kingston.ac.uk
IMPACT
Compound Annual
Growth Rate for Software
Michiel van Genuchten and Les Hatton
Six impact columns published over the past three years
and a couple of precisely measured products let us
calculate the compound annual growth rate.
MANY OF US subscribe to the belief
that software is growing. This is gen-
erally fueled by apocryphal stories, rea-
soning that as hardware speeds up, the
software seems to slow down almost in
proportion, and because software can’t
just slow down, there must be more
instructions for it to carry out; there-
fore, it must be growing. But how fast?
Statements such as “software doubles
every two years” are still sufficient for
many audiences due to a lack of empiri-
cal data. There is some data available
from open source products, but size
data from industrial products over a
longer period of time is scarce.
In this installment of the Impact de-
partment, we want to discuss software
growth in more detail, a discussion we
base on the data published in previous
installments that cover products (10
since 2010). Six out of the 10 provide
the software size at a minimum of two
points in time.1–6 This lets us calculate
the approximate growth rate over that
period of time. Table 1 contains the
data as previous-installment authors
have described it.
Note that these products vary in
application;
safety criticality (for instance,
magnetic resonance, oil explora-
tion, and flight management sys-
tems were characterized as safety
critical);
software size (orders of magnitude
difference, both at start and at the
end); and
team size (from a few engineers to
hundreds of them).
The sizing data covers periods rang-
ing from seven to 22 years. Note that
we don’t yet have enough data for de-
tailed statistical analyses, but the val-
ues are quite robust.
A Compound Annual Growth
Rate for Software
The last column of Table 1 states
the compound annual growth rate
(CAGR). CAGR is year-over-year
growth over some number of years. For
example, doubling in five years can be
explained by a CAGR of 1.15 (1.155 =
2.01). CAGR is often used in analysis
reports summarizing the expected fu-
ture growth of markets or revenue. The
CAGR of the six products listed fall
within a surprisingly small range. To be
clear, we didn’t cherry-pick these prod-
ucts based on their CAGRs, nor will we
in the future. The CAGR ranged from
1.11 to 1.29 for the six products listed.
Because software can’t just slow down,
there must be more instructions for it to
carry out; therefore, it must be growing.
growth rate over that
Table 1 contains the
-installment authors
e products vary in
ality (for instance,
onance, oil explora-
ht management sys-
aracterized as safety
A Compound Annual Growth
Rate for Software
The last column of Table 1 states
the compound annual growth rate
(CAGR). CAGR is year-over-year
growth over some number of years. For
example, doubling in five years can be
explained by a CAGR of 1.15 (1.155 =
2.01). CAGR is often used in analysis
reports summarizing the expected fu-
ture growth of markets or revenue. The
CAGR of the six products listed fall
within a surprisingly small range. To be
clear, we didn’t cherry-pick these prod-
ucts based on their CAGRs, nor will we
in the future. The CAGR ranged from
1.11 to 1.29 for the six products listed.
growing.
May❘ June2000 IT Pro 171520-9202/00/$10.00 © 2000 IEEE
Leveraging
Legacy
System
Dollars for
E-Business
Len Erlikh
A
lthough many firms have rapidly and
enthusiastically adopted distributed
architectures, many more are stuck
with mainframe-based mission-critical
systems that continue to isolate them from their
partner, supplier, and customer systems. Indeed,
IDC estimates there are more than 10,000 large
IBM mainframe sites worldwide with 200 billion
lines of legacy code still in use.
Most companies want to transform their appli-
cations to meet new business
demands, but because legacy
systems tend to be unwieldy,
monolithic, and inflexible,
many firms regard modern-
ization assomewhere between
improbable and impossible.
Reeling from the Y2K deba-
cle and saddled with years of
application backlog,the most
these companies can hope for
is to keep their legacy system
alive.
And keeping it alive is get-
ting more expensive.According to an informal in-
dustry poll, 85 to 90 percent of IS budgets goes to
legacy system operation and maintenance.It is also
becoming harder to find qualified personnel to do
the maintenance. All of this makes it difficult to
add new functionality and keep up with business
requirements.
The ideal solution is to transform legacy systems
to newer,more productive platforms so that com-
panies can exploit faster and cheaper develop-
ment technologies,like Java and XML (Extensible
Markup Language).The focus then shifts to func-
tionality, not the infrastructure, which means a
company can respond more quickly to its chang-
ing business requirements and technology
enhancements.
NOT A TRIVIAL PURSUIT
But this legacy transformation isn’t trivial,
which is why many companies avoid it. The e-
business architecture emphasizes just about
everything foreign to a legacy system—distrib-
uted heterogeneous platforms, component
encapsulation, the merging of standards, open-
ness. The challenge is to preserve the wealth of
captured business knowledge and have the sys-
tem fit into the component world of the new e-
architecture.
RescueWare, legacy transformation software
from Relativity Technologies, breaks business
knowledge into stand-alone pieces, or e-compo-
nents.The e-components are basically collections
of objects that perform specific business services,
have clearly defined application program inter-
faces (APIs),and are accessible through modern
industry-standard protocols.
Because these e-components encapsulate indi-
vidual business processes and because other com-
ponents can freely access them, a company can
more precisely control individual business
processes. This divide-and-conquer approach
allows companies to do rapid concurrent devel-
opment. Each large-scale business process
becomes a self-contained unit of manageable size,
making it easier to deploy in a Web-based envi-
ronment.
Legacy transformation in RescueWare begins
with understanding what parts of the legacy sys-
tem are worth transitioning to the e-business
Legacy Modernization Resources
Hunting forBusiness Rules
Inside
Converting a
monolithic legacy
system to stand-alone
components can turn
this source of business
knowledge into a
competitive edge.
A
lthough many firms have rapidly and
enthusiastically adopted distributed
architectures, many more are stuck
with mainframe-based mission-critical
systems that continue to isolate them from their
partner, supplier, and customer systems. Indeed,
IDC estimates there are more than 10,000 large
IBM mainframe sites worldwide with 200 billion
lines of legacy code still in use.
Most companies want to transform their appli-
cations to meet new business
demands, but because legacy
systems tend to be unwieldy,
monolithic, and inflexible,
many firms regard modern-
ization assomewhere between
improbable and impossible.
Reeling from the Y2K deba-
cle and saddled with years of
NOT A TR
But this
which is w
business a
everything
uted hete
encapsula
ness. The c
captured b
tem fit into
architectur
RescueW
from Rela
knowledge
nents.The
of objects t
have clear
faces (API
industry-st
rting a
ithic legacy
to stand-alone
nents can turn
urce of business
an E-type system must be
continually adapted or it becomes
progressively less satisfactory
as an E-type system evolves, its
complexity increases unless work is
done to maintain or reduce it
Lehman, Belady 1974
@girba
moosetechnology.org
@girba
moosetechnology.org humane-assessment.com
@girba
moosetechnology.org humane-assessment.com
pharo.org
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
demodriven.com
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
demodriven.com
feenk.com
@girba
I help teams to
not read code
@girba
I help teams to
not read code
@girba
...
Description description;
Value
...
Boolean actualValue
BooleanValue
...
...
...Value
...
Description description;
Value
...
Boolean actualValue
BooleanValue
...
...
...Value
Value value;
...
if (value == null) { ... }
accept(Visitor)
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
Value value;
...
if (value == null) { ... }
accept(Visitor)
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
UndefinedValue
Value value;
...
if (value == null) { ... }
accept(Visitor)
boolean isUndefined()
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
boolean isUndefined()
UndefinedValue
Value value;
...
if (value == null) { ... }
accept(Visitor)
boolean isUndefined()
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
boolean isUndefined()
UndefinedValue
Value value;
...
if (value.isUndefined()) { ... }
Value value;
...
if (value == null) { ... }
valueClass :=  self allModelTypes entityNamed: #'Value'.
valueVariables := valueClass withSubclassHierarchy
flatCollectAsSet: #structuresWithDeclaredType.
valueVariables select: [ :each |
     (('*', each name , ' != null*') match:
each belongsTo sourceText) or: [
     ('*', each name , ' == null*') match:
each belongsTo sourceText ] ]
Value value;
...
if (value == null) { ... }
/**
* The method can return null
*/
Value doSomething() {
...
return value;
}
valueMethods := valueClass withSubclassHierarchy
flatCollectAsSet: #behavioursWithDeclaredType.
valueMethods select: [:each |
each comments anySatisfy: [:c |
'*null*' match: c sourceText ] ]
/**
* The method can return null
*/
Value doSomething() {
...
return value;
}
development
development
decision
development
mcluhan / culkin
mcluhan / culkin
have the right to build upon
recyclable systems
have the right to build upon
recyclable systems
have the responsibility to produce
recyclable systems
have the right to build upon
assessable systems
have the responsibility to produce
assessable systems
mcluhan / culkin
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
craft
analysis
hypothesize
decision
development
decision
assessment
development
humane-assessment.com
have the right to build upon
assessable systems
have the responsibility to produce
assessable systems
beyond software evolution:
software environmentalism
@girba
@girba

More Related Content

What's hot

Pavan Kumar - Workforce & Mobility Services Professional
Pavan Kumar -  Workforce & Mobility Services ProfessionalPavan Kumar -  Workforce & Mobility Services Professional
Pavan Kumar - Workforce & Mobility Services Professionalpavan kumar sadhanala vvs
 
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Revelation Technologies
 
Enterprise Software at Web-Scale
Enterprise Software at Web-ScaleEnterprise Software at Web-Scale
Enterprise Software at Web-Scale
Tom Mueck
 
Micro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution information
Micro Focus
 
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud ComputingAcademic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
IRJET Journal
 
Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika Sushma
 
Consulting
ConsultingConsulting
Consulting
Markus Voelter
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramchandra Reddy
 
DevOps101 (version 2)
DevOps101 (version 2)DevOps101 (version 2)
DevOps101 (version 2)
Sanjeev Sharma
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabad
VamsiNihal
 

What's hot (20)

Resume_Tushar_Bhilare
Resume_Tushar_BhilareResume_Tushar_Bhilare
Resume_Tushar_Bhilare
 
Innovate presentation
Innovate presentationInnovate presentation
Innovate presentation
 
Pavan Kumar - Workforce & Mobility Services Professional
Pavan Kumar -  Workforce & Mobility Services ProfessionalPavan Kumar -  Workforce & Mobility Services Professional
Pavan Kumar - Workforce & Mobility Services Professional
 
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
 
Enterprise Software at Web-Scale
Enterprise Software at Web-ScaleEnterprise Software at Web-Scale
Enterprise Software at Web-Scale
 
Micro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution information
 
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud ComputingAcademic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
 
Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)
 
Consulting
ConsultingConsulting
Consulting
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015
 
Resume-RDn-Detailed
Resume-RDn-DetailedResume-RDn-Detailed
Resume-RDn-Detailed
 
Rahul Resume
Rahul Resume Rahul Resume
Rahul Resume
 
HAROONDAVIDcv1
HAROONDAVIDcv1HAROONDAVIDcv1
HAROONDAVIDcv1
 
sumit
sumitsumit
sumit
 
DevOps101 (version 2)
DevOps101 (version 2)DevOps101 (version 2)
DevOps101 (version 2)
 
Mandhania Chetan N Resume
Mandhania Chetan N ResumeMandhania Chetan N Resume
Mandhania Chetan N Resume
 
Sandeep_MF_4+years of exp
Sandeep_MF_4+years of expSandeep_MF_4+years of exp
Sandeep_MF_4+years of exp
 
Udit
UditUdit
Udit
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabad
 
CV
CVCV
CV
 

Similar to Beyond software evolution: Software environmentalism

Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Codemotion
 
P r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s sP r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s s
matele41
 
Getting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&AGetting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&A
IMAP - Global Mergers & Acquisitions Advisory
 
Online Intelligence- POL
Online Intelligence- POLOnline Intelligence- POL
Online Intelligence- POLDavid Barak
 
Business Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your BusinessBusiness Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your Business
at MicroFocus Italy ❖✔
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformation
Kaizenlogcom
 
P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16
guest558440c
 
The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011Nati Shalom
 
NetSuite Enterprise Brochure
NetSuite Enterprise BrochureNetSuite Enterprise Brochure
NetSuite Enterprise Brochure
Aboitizland, Inc.
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical Debt
CAST
 
Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now
Dennis Layton
 
The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...
Diego Alberto Tamayo
 
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Beth Taylor
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About It
run_frictionless
 
Kapstone CIO Insights
Kapstone CIO InsightsKapstone CIO Insights
Kapstone CIO Insights
WinWire Technologies Inc
 
How Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdfHow Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdf
Sufalam Technologies
 
How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?
Cygnet Infotech
 
Openerp sap book-introduction
Openerp sap book-introductionOpenerp sap book-introduction
Openerp sap book-introductionAPLO DIA
 
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdfThe_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
subbulokam
 

Similar to Beyond software evolution: Software environmentalism (20)

Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
 
P r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s sP r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s s
 
Getting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&AGetting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&A
 
Capgemini links
Capgemini linksCapgemini links
Capgemini links
 
Online Intelligence- POL
Online Intelligence- POLOnline Intelligence- POL
Online Intelligence- POL
 
Business Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your BusinessBusiness Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your Business
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformation
 
P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16
 
The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011
 
NetSuite Enterprise Brochure
NetSuite Enterprise BrochureNetSuite Enterprise Brochure
NetSuite Enterprise Brochure
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical Debt
 
Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now
 
The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...
 
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About It
 
Kapstone CIO Insights
Kapstone CIO InsightsKapstone CIO Insights
Kapstone CIO Insights
 
How Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdfHow Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdf
 
How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?
 
Openerp sap book-introduction
Openerp sap book-introductionOpenerp sap book-introduction
Openerp sap book-introduction
 
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdfThe_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
 

More from Tudor Girba

Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Tudor Girba
 
GT Spotter
GT SpotterGT Spotter
GT Spotter
Tudor Girba
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)
Tudor Girba
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!
Tudor Girba
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
Tudor Girba
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective Thinking
Tudor Girba
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
Tudor Girba
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)
Tudor Girba
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development room
Tudor Girba
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading code
Tudor Girba
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)
Tudor Girba
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systems
Tudor Girba
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Tudor Girba
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Tudor Girba
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Tudor Girba
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaser
Tudor Girba
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)
Tudor Girba
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)
Tudor Girba
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011
Tudor Girba
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011
Tudor Girba
 

More from Tudor Girba (20)

Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
 
GT Spotter
GT SpotterGT Spotter
GT Spotter
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective Thinking
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development room
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading code
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systems
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaser
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011
 

Recently uploaded

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 

Recently uploaded (20)

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 

Beyond software evolution: Software environmentalism

  • 1. beyond software evolution: software environmentalism @girba
  • 2. an E-type system must be continually adapted or it becomes progressively less satisfactory as an E-type system evolves, its complexity increases unless work is done to maintain or reduce it Lehman, Belady 1974
  • 3. 074 0 -74 5 9/12 / $ 31.0 0 © 2 012 I E E E J U LY/AUGU S T 2012 | IE E E S O F T WA R E 19 IMPACT Editor: Michiel van Genuchten Open Digital Dentistry genuchten@ieee.org Editor: Les Hatton Kingston University l.hatton@kingston.ac.uk IMPACT Compound Annual Growth Rate for Software Michiel van Genuchten and Les Hatton Six impact columns published over the past three years and a couple of precisely measured products let us calculate the compound annual growth rate. MANY OF US subscribe to the belief that software is growing. This is gen- erally fueled by apocryphal stories, rea- soning that as hardware speeds up, the software seems to slow down almost in proportion, and because software can’t just slow down, there must be more instructions for it to carry out; there- fore, it must be growing. But how fast? Statements such as “software doubles every two years” are still sufficient for many audiences due to a lack of empiri- cal data. There is some data available from open source products, but size data from industrial products over a longer period of time is scarce. In this installment of the Impact de- partment, we want to discuss software growth in more detail, a discussion we base on the data published in previous installments that cover products (10 since 2010). Six out of the 10 provide the software size at a minimum of two points in time.1–6 This lets us calculate the approximate growth rate over that period of time. Table 1 contains the data as previous-installment authors have described it. Note that these products vary in application; safety criticality (for instance, magnetic resonance, oil explora- tion, and flight management sys- tems were characterized as safety critical); software size (orders of magnitude difference, both at start and at the end); and team size (from a few engineers to hundreds of them). The sizing data covers periods rang- ing from seven to 22 years. Note that we don’t yet have enough data for de- tailed statistical analyses, but the val- ues are quite robust. A Compound Annual Growth Rate for Software The last column of Table 1 states the compound annual growth rate (CAGR). CAGR is year-over-year growth over some number of years. For example, doubling in five years can be explained by a CAGR of 1.15 (1.155 = 2.01). CAGR is often used in analysis reports summarizing the expected fu- ture growth of markets or revenue. The CAGR of the six products listed fall within a surprisingly small range. To be clear, we didn’t cherry-pick these prod- ucts based on their CAGRs, nor will we in the future. The CAGR ranged from 1.11 to 1.29 for the six products listed. Because software can’t just slow down, there must be more instructions for it to carry out; therefore, it must be growing.
  • 4. growth rate over that Table 1 contains the -installment authors e products vary in ality (for instance, onance, oil explora- ht management sys- aracterized as safety A Compound Annual Growth Rate for Software The last column of Table 1 states the compound annual growth rate (CAGR). CAGR is year-over-year growth over some number of years. For example, doubling in five years can be explained by a CAGR of 1.15 (1.155 = 2.01). CAGR is often used in analysis reports summarizing the expected fu- ture growth of markets or revenue. The CAGR of the six products listed fall within a surprisingly small range. To be clear, we didn’t cherry-pick these prod- ucts based on their CAGRs, nor will we in the future. The CAGR ranged from 1.11 to 1.29 for the six products listed. growing.
  • 5. May❘ June2000 IT Pro 171520-9202/00/$10.00 © 2000 IEEE Leveraging Legacy System Dollars for E-Business Len Erlikh A lthough many firms have rapidly and enthusiastically adopted distributed architectures, many more are stuck with mainframe-based mission-critical systems that continue to isolate them from their partner, supplier, and customer systems. Indeed, IDC estimates there are more than 10,000 large IBM mainframe sites worldwide with 200 billion lines of legacy code still in use. Most companies want to transform their appli- cations to meet new business demands, but because legacy systems tend to be unwieldy, monolithic, and inflexible, many firms regard modern- ization assomewhere between improbable and impossible. Reeling from the Y2K deba- cle and saddled with years of application backlog,the most these companies can hope for is to keep their legacy system alive. And keeping it alive is get- ting more expensive.According to an informal in- dustry poll, 85 to 90 percent of IS budgets goes to legacy system operation and maintenance.It is also becoming harder to find qualified personnel to do the maintenance. All of this makes it difficult to add new functionality and keep up with business requirements. The ideal solution is to transform legacy systems to newer,more productive platforms so that com- panies can exploit faster and cheaper develop- ment technologies,like Java and XML (Extensible Markup Language).The focus then shifts to func- tionality, not the infrastructure, which means a company can respond more quickly to its chang- ing business requirements and technology enhancements. NOT A TRIVIAL PURSUIT But this legacy transformation isn’t trivial, which is why many companies avoid it. The e- business architecture emphasizes just about everything foreign to a legacy system—distrib- uted heterogeneous platforms, component encapsulation, the merging of standards, open- ness. The challenge is to preserve the wealth of captured business knowledge and have the sys- tem fit into the component world of the new e- architecture. RescueWare, legacy transformation software from Relativity Technologies, breaks business knowledge into stand-alone pieces, or e-compo- nents.The e-components are basically collections of objects that perform specific business services, have clearly defined application program inter- faces (APIs),and are accessible through modern industry-standard protocols. Because these e-components encapsulate indi- vidual business processes and because other com- ponents can freely access them, a company can more precisely control individual business processes. This divide-and-conquer approach allows companies to do rapid concurrent devel- opment. Each large-scale business process becomes a self-contained unit of manageable size, making it easier to deploy in a Web-based envi- ronment. Legacy transformation in RescueWare begins with understanding what parts of the legacy sys- tem are worth transitioning to the e-business Legacy Modernization Resources Hunting forBusiness Rules Inside Converting a monolithic legacy system to stand-alone components can turn this source of business knowledge into a competitive edge.
  • 6. A lthough many firms have rapidly and enthusiastically adopted distributed architectures, many more are stuck with mainframe-based mission-critical systems that continue to isolate them from their partner, supplier, and customer systems. Indeed, IDC estimates there are more than 10,000 large IBM mainframe sites worldwide with 200 billion lines of legacy code still in use. Most companies want to transform their appli- cations to meet new business demands, but because legacy systems tend to be unwieldy, monolithic, and inflexible, many firms regard modern- ization assomewhere between improbable and impossible. Reeling from the Y2K deba- cle and saddled with years of NOT A TR But this which is w business a everything uted hete encapsula ness. The c captured b tem fit into architectur RescueW from Rela knowledge nents.The of objects t have clear faces (API industry-st rting a ithic legacy to stand-alone nents can turn urce of business
  • 7. an E-type system must be continually adapted or it becomes progressively less satisfactory as an E-type system evolves, its complexity increases unless work is done to maintain or reduce it Lehman, Belady 1974
  • 15. I help teams to not read code @girba
  • 16. I help teams to not read code @girba
  • 17.
  • 22. accept(Visitor) boolean isUndefined() Description description Value accept(Visitor) Boolean actualValue BooleanValue accept(Visitor) ... ...Value accept(Visitor) boolean isUndefined() UndefinedValue Value value; ... if (value == null) { ... }
  • 23. accept(Visitor) boolean isUndefined() Description description Value accept(Visitor) Boolean actualValue BooleanValue accept(Visitor) ... ...Value accept(Visitor) boolean isUndefined() UndefinedValue Value value; ... if (value.isUndefined()) { ... }
  • 24. Value value; ... if (value == null) { ... }
  • 25. valueClass :=  self allModelTypes entityNamed: #'Value'. valueVariables := valueClass withSubclassHierarchy flatCollectAsSet: #structuresWithDeclaredType. valueVariables select: [ :each |      (('*', each name , ' != null*') match: each belongsTo sourceText) or: [      ('*', each name , ' == null*') match: each belongsTo sourceText ] ] Value value; ... if (value == null) { ... }
  • 26. /** * The method can return null */ Value doSomething() { ... return value; }
  • 27. valueMethods := valueClass withSubclassHierarchy flatCollectAsSet: #behavioursWithDeclaredType. valueMethods select: [:each | each comments anySatisfy: [:c | '*null*' match: c sourceText ] ] /** * The method can return null */ Value doSomething() { ... return value; }
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 55.
  • 56.
  • 58.
  • 59. have the right to build upon recyclable systems
  • 60. have the right to build upon recyclable systems have the responsibility to produce recyclable systems
  • 61. have the right to build upon assessable systems have the responsibility to produce assessable systems
  • 62.
  • 63.
  • 64.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 78. have the right to build upon assessable systems have the responsibility to produce assessable systems
  • 79. beyond software evolution: software environmentalism @girba