tendencias en ingeniería de software - ing. grady booch
TRANSCRIPT
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 1/39
IBM Research
© 2009 IBM Corporation
Grady Booch
Trends in Software
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 2/39
IBM Research
© 2009 IBM Corporation
How Much Software Exists In The World?
SLOC is a measure of labor
– Old code never dies
– Some code is DOA
Some assumptions 1 SLOC = 1 semicolon
Number of software professionals worldwide
% of software professionals who cut code
SLOC/developer/year
$100/SLOC to develop
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 3/39
IBM Research
© 2009 IBM Corporation
Number Of Software Professional Worldwide
Number of IT professionals worldwide
y = -128.47x3
+ 12800x2
- 59294x + 146623
0
2,000,000
4,000,000
6,000,000
8,000,000
10,000,000
12,000,000
14,000,000
16,000,000
1 9 4 5
1 9 4 8
1 9 5 1
1 9 5 4
1 9 5 7
1 9 6 0
1 9 6 3
1 9 6 6
1 9 6 9
1 9 7 2
1 9 7 5
1 9 7 8
1 9 8 1
1 9 8 4
1 9 8 7
1 9 9 0
1 9 9 3
1 9 9 6
1 9 9 9
2 0 0 2
2 0 0 5
Number of IT professionals worldwide(assumptions)
Poly. (Number of IT professionals
worldwide (assumptions))
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 4/39
IBM Research
© 2009 IBM Corporation
% Of Software Professionals Who Cut Code
% of IT professionals worldwide who cut code
y = -0.0075x + 0.7575
0%
10%
20%
30%
40%
50%
60%
70%
80%
1 9 4 5
1 9 4 7
1 9 4 9
1 9 5 1
1 9 5 3
1 9 5 5
1 9 5 7
1 9 5 9
1 9 6 1
1 9 6 3
1 9 6 5
1 9 6 7
1 9 6 9
1 9 7 1
1 9 7 3
1 9 7 5
1 9 7 7
1 9 7 9
1 9 8 1
1 9 8 3
1 9 8 5
1 9 8 7
1 9 8 9
1 9 9 1
1 9 9 3
1 9 9 5
1 9 9 7
1 9 9 9
2 0 0 1
2 0 0 3
2 0 0 5
of IT professionals worldwide who cut code %)assumptions (
Poly. (% of IT profes sionals worldwide who cut
))code (assumptions
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 5/39
IBM Research
© 2009 IBM Corporation
SLOC/Developer/Year
New or modified source lines of code per year per developer
y = -0.0328x3
+ 4.8392x2
- 67.596x + 1062.8
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
1 9 4 5
1 9 4 7
1 9 4 9
1 9 5 1
1 9 5 3
1 9 5 5
1 9 5 7
1 9 5 9
1 9 6 1
1 9 6 3
1 9 6 5
1 9 6 7
1 9 6 9
1 9 7 1
1 9 7 3
1 9 7 5
1 9 7 7
1 9 7 9
1 9 8 1
1 9 8 3
1 9 8 5
1 9 8 7
1 9 8 9
1 9 9 1
1 9 9 3
1 9 9 5
1 9 9 7
1 9 9 9
2 0 0 1
2 0 0 3
2 0 0 5
New or modified source lines of code per year
)per developer (as sumptions
Poly. (New or modified source lines of code per))year per developer (assumptions
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 6/39
IBM Research
© 2009 IBM Corporation
New Or Modified SLOC/Year And Cumulative
New or modified source lines of code per year per developer & cumulative
0
100,000,000,000
200,000,000,000
300,000,000,000
400,000,000,000
500,000,000,000
600,000,000,000
700,000,000,000
800,000,000,000
1 9 4 5
1 9 4 8
1 9 5 1
1 9 5 4
1 9 5 7
1 9 6 0
1 9 6 3
1 9 6 6
1 9 6 9
1 9 7 2
1 9 7 5
1 9 7 8
1 9 8 1
1 9 8 4
1 9 8 7
1 9 9 0
1 9 9 3
1 9 9 6
1 9 9 9
2 0 0 2
2 0 0 5
New or modified source lines of code per
year
Cumulative source lines of code
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 7/39
IBM Research
© 2009 IBM Corporation
The Current State
The typical software-intensive system is
• Continuously evolving
• Connected, distributed, & concurrent
• Multilingual & multiplatform
• Secure & autonomic
• Developed by geographically- temporally-distributed teams
Most systems are actually systems of systems
• Services & other messaging mechanisms dominate
• Such systems encompass both hardware & software
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 8/39
IBM Research
© 2009 IBM Corporation
Growth Of Storage
The production of data is growing
• Google processes 20 petabytes/day1
• The Internet handles over 627 petabytes/day2
– Storage densities are increasing
• 200 gigabytes/inch2
are common today• Racetrack memory could increase storage density by two orders of
magnitude (20,000 gigabytes/inch2)3
1http://www.niallkennedy.com/blog/2008/01/google‐mapreduce‐stats.html2http://en.wikipedia.org/wiki/Petabyte3http://www.almaden.ibm.com/spinaps/research/sd/?racetrack
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 9/39
IBM Research
© 2009 IBM Corporation
Growth Of Computational Power
Computational power is abundant• A single BladeCenter can reach 7 teraflops• IBM Road Runner has reached one petaflop• Hardware costs are around 20 cents/gigaflop; operating
costs are approximately 3 watts/gigaflop1
– The frequency scaling wars are ending • At 10 atoms/transistor, quantum effects & power dissipation
become critical issues issues• Multicore processors are becoming the norm
1http://en.wikipedia.org/wiki/FLOPS
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 10/39
IBM Research
© 2009 IBM Corporation
Growth Of Connectivity
Bandwidth is increasing• Copper may reach 10 gigabytes/second• Wireless networks are becoming pervasive
– Out of 3.7 billion IPv4 addresses1
• China 19.246 million
• US 13.610 million
• Germany 5.414 million
• Italy 3.881 million
• Indonesia 3.465 million
• Taiwan 3.455 million
1http://www.bgpexpert.com/addressespercountry.php
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 11/39
IBM Research
© 2009 IBM Corporation
Future Software-Intensive Systems
Future systems will be just like contemporary ones except they
will be
• More massive
• More pervasive
• More transparent• More critical
Domain-specific platforms are growing in dominance
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 12/39
IBM Research
© 2009 IBM Corporation
The Role Of Software
Our civilization runs on software (Bjarne Stroustrup)
– Innovating to capture new value
– Improving productivity of resources deployed
The privilege and the responsibility of the software
professional
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 13/39
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 14/39
IBM Research
© 2009 IBM Corporation
The Growth Of Complexity
Lower ManagementComplexity
Higher ManagementComplexity
DODweaponsystem
National Air Traffic ControlSystem
Telecom switch
Large-scalesimulation
DODmanagementinformationsystem
Enterpriseinformationsystems
Enterpriseapplication
Business
spreadsheet
Smallscientificsimulation
Embeddedautomotiveapplication Commercial
compiler
Lower Technical
Complexity
Higher TechnicalComplexity
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 15/39
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 16/39
IBM Research
© 2009 IBM Corporation
1960s-1970s 1980s-1990s 2000+
Conventional:Diseconomy of Scale
Software Engineering:Diseconomy of Scale
Modern Best Practices:Economy of Scale
P
r o j e c t C o s t
Functionality, Scale, and Complexity
Software Engineering Economics
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 17/39
IBM Research
© 2009 IBM Corporation
The Software Development Paradox
Building quality software that matters is fundamentally hard work
– Software development often takes longer than we expect it should
– There never seems to be enough time to do quality work
– There’s always more that remains to be done
Software-intensive systems can amplify human intelligence, but
they cannot replace human judgment
Software-intensive systems can fuse, coordinate, classify, and
analyze information, but they cannot create knowledge
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 18/39
IBM Research
© 2009 IBM Corporation
Assembly -> Fortran/COBOL -> Simula -> C++ -> Java
Naked HW -> BIOS -> OS -> Middleware -> Domain-specificWaterfall -> Spiral -> Iterative -> AgileProcedural -> Object Oriented -> Service OrientedEarly tools -> CLE -> IDE -> XDE -> CDEIndividual -> Workgroup -> OrganizationProprietary systems -> Open standards
Languages:
Platforms:Processes:
Architecture:Tools:
Enablement:Ownership:
The entire history of software engineering has been one of
increasing levels of abstraction.
The History of Software Engineering
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 19/39
IBM Research
© 2009 IBM Corporation
The Software Development Paradox
Not everything we want to build can be built
– Theoretical/technical/pragmatic limitations
Not everything we want to build should be built
– Economic/social/political limitations
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 20/39
IBM Research
© 2009 IBM Corporation
The Limits of Technology
The laws of physics
The laws of software
The challenge of algorithms
The difficulty of distribution
The problems of design
The importance of organization
The impact of economics
The influence of politics
The limits of human imagination
Fundamental
Human
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 21/39
IBM Research
© 2009 IBM Corporation
The Developer Experience
Contemporary systems are
– Distributed and concurrent
– Multi-platform and multi-lingual
– Made of hundreds of thousands of moving parts, each of which maybe changed nearly independently
– Involve multiple stakeholders
A sea change is underway
– Code centric -> artifact-centric
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 22/39
IBM Research
© 2009 IBM Corporation
Forces In Software
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 23/39
IBM Research
© 2009 IBM Corporation
Points Of Friction
Start up
Work product collaboration
Communication
Time starvation
Stakeholder cooperation
Stuff that doesn’t work
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 24/39
IBM Research
© 2009 IBM Corporation
How Much Process Is Necessary?
Amount of Process Necessary
When is More Appropriate?Distributed teams
Large projects (25, 125, 625)
Complex projectsExternally imposed constraints
Standards
Contractual requirements
Legal requirements
When is Less Appropriate?Co-located teams
Smaller projects (less than 25)
Straightforward projectsInternally imposed constraints
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 25/39
IBM Research
© 2009 IBM Corporation
Architecture First
Conceptual Physical
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
PerformanceScalability
Throughput
System integrators
System topology Delivery, installation
communication
System engineering
Analysts/Designers
Structure
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 26/39
IBM Research
© 2009 IBM Corporation
Develop Iteratively
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 27/39
IBM Research
© 2009 IBM Corporation
How We Got Here
1910s beginning of automation
1920s beginning of expansion
1930s beginning of dependence
1940s beginning of von Neuman machines
1950s rise of the machines
1960s rise of the languages and methods1970s death of the mainframe
1980s age of the personal computer
1990s age of the Internet and new methods
2000s retrenchment
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 28/39
IBM Research
© 2009 IBM Corporation
The Future Of Software Engineering
The best way to predict the future is to invent it (Alan Kaye)
General trends
– The movement of software into the interstitial spaces of society
– The growth of complexity
– The primacy of continuously-evolving systems
– The elimination of computational constraints
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 29/39
IBM Research
© 2009 IBM Corporation
The Future of Software Engineering
Specific short/medium term issues
– Open source
– Outsourcing
– Active security
– Pattern-centric development
– Service-oriented architectures
– Model-driven development
– Collaborative development environments
Specific longer term issues
– Aspect-oriented programming
– Rise of the non-professional programmer
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 30/39
IBM Research
© 2009 IBM Corporation
Where We Are Going
2010s age of transparency
Software burrows itself into the interstitial spaces of society
2020s total dependence
Virtually every human activity touches some software
2030s rise of the machines
Semiautonomous entities with varying degrees of agency amplify humanactivity
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 31/39
IBM Research
© 2009 IBM Corporation
The State of Software - 2031
Platforms
Languages
Operating systems & middleware
Connection
Security
Autonomics
Developer experience
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 32/39
IBM Research
© 2009 IBM Corporation
Platforms
Moore’s law has died
The typical personal computer contains multiple processors, a
petabyte of main memory, an exabyte of external memory, and
untethered terabit connectivity
Virtual high resolution displays dominate; 3D windows, mice,gestures, and voice are the usual mechanisms for interaction
Form factors will change such that most personal computers will
be wearable or embedded
Most software is embedded in devices
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 33/39
IBM Research
© 2009 IBM Corporation
Languages
Most programmers still write algorithmic snippets in the context
of a sea of objects
Legacy XML, Java, C++, and UML persist
Domain-specific frameworks are mainstream
Aspects are mainstream
Some algorithmic breakthroughs have emerged
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 34/39
IBM Research
© 2009 IBM Corporation
Operating Systems
Operating systems have largely been commoditized
Middleware that does transaction isolation, load balancing,
resource management, and data access still dominates
– but it too has largely been commoditized
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 35/39
IBM Research
© 2009 IBM Corporation
Connection
More than ever, the network is the computer
– Monolithic -> client/server -> Web -> grid
Network access is a global utility
Not everything is an enterprise system, but most applications
are connected to several
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 36/39
IBM Research
© 2009 IBM Corporation
Security
New kinds of cybercrime have arisen
– unlimited piles of money still do not yield secure systems
– Air gaps are still not enough
Rolling failures still plague some systems
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 37/39
IBM Research
© 2009 IBM Corporation
Autonomics
No computer has yet passed the Turing Test (but we have come
close)
Most interesting systems exhibit signs of agency and self-repair
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 38/39
IBM Research
© 2009 IBM Corporation
Developer Experience
Most developers have grown up believing that the Internet always existed
Most programming is now done by domain-specific developers who only
incidentally learn how to program
– Most development occurs along the edge and the seams of systems
There have been only incremental improvements in programmer productivity and
the programming model – The dominance of Eclipse
– The developer experience is centered around the collaborative development environment
– Distributed development is common
Lawyers are now commonly a part of most development teams
– Some projects are regulated and some individuals are registered
8/14/2019 Tendencias en Ingeniería de Software - Ing. Grady Booch
http://slidepdf.com/reader/full/tendencias-en-ingenieria-de-software-ing-grady-booch 39/39
IBM Research
© 2009 IBM Corporation
Conclusion
Building quality software that matters is – and will remain -
fundamentally hard
Individuals and teams must cope with high degrees of
uncertainty, ambiguity, and chaos, while at the same time,
demanding creativity, predictability, and repeatability
We can only hope to engineer the illusion of simplicity