39
IBM Research © 2009 IBM Corporation Grady Booch Trends in Software

Tendencias en Ingeniería de Software - Ing. Grady Booch

Embed Size (px)

Citation preview

Page 1: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 2: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 3: Tendencias en Ingeniería de Software - Ing. Grady Booch

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))

Page 4: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 5: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 6: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 7: Tendencias en Ingeniería de Software - Ing. Grady Booch

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 

Page 8: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 9: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 10: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 11: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 12: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 13: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 14: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 15: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 16: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 17: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 18: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 19: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 20: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 21: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 22: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 23: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 24: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 25: Tendencias en Ingeniería de Software - Ing. Grady Booch

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 

Page 26: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 27: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 28: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 29: Tendencias en Ingeniería de Software - Ing. Grady Booch

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 

Page 30: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 31: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 32: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 33: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 34: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 35: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 36: Tendencias en Ingeniería de Software - Ing. Grady Booch

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

Page 37: Tendencias en Ingeniería de Software - Ing. Grady Booch

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 

Page 38: Tendencias en Ingeniería de Software - Ing. Grady Booch

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 

Page 39: Tendencias en Ingeniería de Software - Ing. Grady Booch

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