SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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-ScaleTom 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 informationMicro 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 ComputingIRJET Journal
 
Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika Sushma
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramchandra Reddy
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabadVamsiNihal
 

La actualidad más candente (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 a 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 2016Codemotion
 
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 smatele41
 
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 Businessat 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 transformationKaizenlogcom
 
P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16guest558440c
 
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 BrochureAboitizland, Inc.
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtCAST
 
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
 
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
 
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
 
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 Itrun_frictionless
 
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.pdfSufalam 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.pdfsubbulokam
 

Similar a 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
 
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...
 
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...
 
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
 

Más de 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
 
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 cardsTudor Girba
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingTudor Girba
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks laterTudor 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 roomTudor 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 codeTudor 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 systemsTudor 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 teaserTudor 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 2011Tudor 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 2011Tudor Girba
 

Más de 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
 

Último

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Último (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

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