software archeology & the handbook of software architecture · ibm research architectural views...
TRANSCRIPT
![Page 1: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/1.jpg)
®
IBM Research
Software Archeology & theHandbook of Software Architecture
Grady BoochIBM Fellow
© 2008 Grady Booch
![Page 2: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/2.jpg)
IBM Research
Software Archeology
What it is/what it not/why we dig
The process of archeology
Architectural reconstruction
Handbook of Software Architecture
P ti f l i ftPreservation of classic software
2
![Page 3: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/3.jpg)
IBM Research
How Much Software Exists In The World?
SLOC is a measure of laborOld code never diesS d i DOA
(not a measure of value)(you have to kill it)
Some code is DOASome assumptions
1 SLOC = 1 semicolonNumber of software professionals worldwide% of software professionals who cut codeSLOC/developer/yearp y$100/SLOC to develop
3
![Page 4: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/4.jpg)
IBM Research
Number Of Software Professional Worldwide
Number of IT professionals worldwide
y = -128.47x3 + 12800x2 - 59294x + 14662314 000 000
16,000,000
10,000,000
12,000,000
14,000,000
6,000,000
8,000,000
Number of IT professionals worldwide(assumptions)Poly. (Number of IT professionalsworldwide (assumptions))
2,000,000
4,000,000
0
1945
1948
1951
1954
1957
1960
1963
1966
1969
1972
1975
1978
1981
1984
1987
1990
1993
1996
1999
2002
2005
4
![Page 5: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/5.jpg)
IBM Research
% Of Software Professionals Who Cut Code
% of IT professionals worldwide who cut code
70%
80%
50%
60%
70%
of IT professionals worldwide who cut code %
y = -0.0075x + 0.7575
20%
30%
40%
p(assumptions)Poly. (% of IT professionals worldwide who cut((code (assumptions
0%
10%
20%
45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 01 03 05
194
194
194
195
195
195
195
195
196
196
196
196
196
197
197
197
197
197
198
198
198
198
198
199
199
199
199
199
200
200
200
5
![Page 6: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/6.jpg)
IBM Research
SLOC/Developer/Year
New or modified source lines of code per year per developer
y = -0.0328x3 + 4.8392x2 - 67.596x + 1062.87,000
8,000
5,000
6,000
,
New or modified source lines of code per year
2 000
3,000
4,000
p y(per developer (assumptionsPoly. (New or modified source lines of code per((year per developer (assumptions
0
1,000
2,000
45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 01 03 05
194
194
194
195
195
195
195
195
196
196
196
196
196
197
197
197
197
197
198
198
198
198
198
199
199
199
199
199
200
200
200
6
![Page 7: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/7.jpg)
IBM Research
New Or Modified SLOC/Year And Cumulative
New or modified source lines of code per year per developer & cumulative
700 000 000 000
800,000,000,000
500,000,000,000
600,000,000,000
700,000,000,000
300,000,000,000
400,000,000,000
New or modified source lines of code peryearCumulative source lines of code
100,000,000,000
200,000,000,000
0
1945
1948
1951
1954
1957
1960
1963
1966
1969
1972
1975
1978
1981
1984
1987
1990
1993
1996
1999
2002
2005
7
![Page 8: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/8.jpg)
IBM Research
Software Archeology
The recovery of essential details about an existing system sufficient to reason about, fix, adapt, modify, harvest, and use that system itself or its parts.its parts.
8
![Page 9: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/9.jpg)
IBM Research
Why We Dig
To reason aboutCAATS
To fixY2K
To adaptTo adaptHomeland Security
To modifyJPL Mars Rovers
To harvestPatriot Missile SystemPatriot Missile System
To useAWACS Mid-term modernization
9
![Page 10: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/10.jpg)
IBM Research
The Process of Archeology
Study of the source code
Reverse engineering
Probing and other instrumentation
Review of existing documents
I t i ith t ib l l dInterviews with tribal leaders
10
![Page 11: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/11.jpg)
IBM Research
The process of archeology
Most design information lives in tribal memoryTypically there exists very high level architectural views and very low level design views but little in betweenlevel design views, but little in betweenReconstructing deployment and implementation views is easyReconstructing the use case view is possibleReconstructing the logical and process views is hardHarvesting patterns is harder still
11
![Page 12: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/12.jpg)
IBM Research
The Process of Archeology
12
![Page 13: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/13.jpg)
IBM Research
Architectural Reconstruction
ArchitectureThe fundamental organization of a system, embodied in its components, their relationships to each other, and the principles governing its design and p p p g g gevolution (IEEE Std 1471-2000, 2000, p. 3).
StakeholderAn individual, team, or organization (or classes thereof) with interests in, or , , g ( ) ,concerns relative to, a system (IEEE Std 1741-2000, 2000, p. 3).
ConcernThose interests which pertain to the system's development, its operation or p y p , pany other aspects that are critical or otherwise important to one or more stakeholders. Concerns include system considerations such as performance, reliability, security, distribution, and evolvability (IEEE Std 1471-2000, 2000, p. 4).1471 2000, 2000, p. 4).
ViewA representation of a whole system from the perspective of a related set of concerns (IEEE Std 1471-2000 2000 p 3)
13
concerns (IEEE Std 1471 2000, 2000, p. 3).
![Page 14: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/14.jpg)
IBM Research
Representing Software Architecture
Logical View Implementation View
End-userFunctionality
ProgrammersConfiguration management
Use Case Viewy Use Case View
Process View
PerformanceS l bilit
System integrators
Deployment View
System topologyC i ti
System engineering
ScalabilityThroughput
CommunicationProvisioning
Conceptual Physical
14
Source: Kruchten, “The 4+1 Model View”
![Page 15: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/15.jpg)
IBM Research
Architectural Views
Use case viewThe view of a system's architecture that encompasses the use cases that described the behavior of the system as seen by its end users and other external stakeholders.
Logical viewThe physical place where a system is developed, used, or deployed.
Process viewThe view of a system's architecture that encompasses the threads and processes that form the system's concurrency and synchronization mechanisms; a process view addresses the performance, scalability, and throughput of the system.
Implementation viewImplementation viewThe view of a system's architecture that encompasses the components used to assemble and release the physical system; an implementation view addresses the configuration management of the system's releases, made up of somewhat independent components that can be assembled in various well-structured ways to produce a p y prunning system.
Deployment viewThe view of a system's architecture that encompassesthe nodes the form the system's hardware topology on which the system executes; a deployment view addresses the
15
hardware topology on which the system executes; a deployment view addresses the distribution, delivery, and installation of the parts that make up the physical system.
![Page 16: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/16.jpg)
IBM Research
Barriers To Software Archeology
Concerns over leakage of IP
Accessibility of the development team
Language
16
![Page 17: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/17.jpg)
IBM Research
Architecture Metamodel
17
![Page 18: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/18.jpg)
IBM Research
Architecture Metamodel
18
![Page 19: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/19.jpg)
IBM Research
Architecture Metamodel
19
![Page 20: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/20.jpg)
IBM Research
Air Traffic Control
20
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 21: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/21.jpg)
IBM Research
ATM
21
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 22: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/22.jpg)
IBM Research
Battlefield Management
22
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 23: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/23.jpg)
IBM Research
Cargo Routing
23
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 24: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/24.jpg)
IBM Research
Computational Chemistry
24
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 25: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/25.jpg)
IBM Research
Enterprise
25
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 26: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/26.jpg)
IBM Research
Games
26
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 27: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/27.jpg)
IBM Research
Games
27
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 28: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/28.jpg)
IBM Research
28
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 29: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/29.jpg)
IBM Research
MetLife
29
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 30: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/30.jpg)
IBM Research
Mobile Phone
30
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 31: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/31.jpg)
IBM Research
Mozilla
31
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 32: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/32.jpg)
IBM Research
Pathfinder
32
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 33: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/33.jpg)
IBM Research
Router
33
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 34: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/34.jpg)
IBM Research
Speech Recognition
34
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 35: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/35.jpg)
IBM Research
Washing Machine
35
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 36: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/36.jpg)
IBM Research
Web Server
36
Source: http://www.booch.com/architecture/architecture.jsp?part=Gallery
![Page 37: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/37.jpg)
IBM Research
Eclipse
www.eclipse.org
Eclipse was started about 2 yrs go - when IBM made a $40M t ib ti t th i d b b t i i d d t titcontribution to the main code base – but is now an independent entity
The principal architects are John Wiegand, Dave Thomson, John Duimovich all part of the OTI team which jump-started Eclipse.
37
![Page 38: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/38.jpg)
IBM Research
Eclipse Artifacts
Eclipse Platform Technical Overview
How to use the Eclipse API
Eclipse Overview
More detailed information exists for each of the subprojects.
38
![Page 39: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/39.jpg)
IBM Research
Eclipse Architecture
39
![Page 40: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/40.jpg)
IBM Research
Eclipse Use Case View
Check In/Out Resource
Close Perspective
Close Window
Display Help
I k N T lInvoke New Tool
Open Perspective
Open WindowOpen Window
Refresh Workspace
Shutdown Workbench
Startup Workbench
40
![Page 41: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/41.jpg)
IBM Research
Eclipse Implementation View
ant.jarantrunner.jarantsupport.jarantsupportlib.jarappserver jar
jdtcore.jarjface.jarjfacetext.jarjsp.jarjunit jar
servlets.jarservlets-common.jarservlets-default.jarservlets-invoker.jarservlets manager jarappserver.jar
boot.jarbootstrap.jarcatalina.jarcommons-logging.jarcompare.jar
junit.jarjunitsupport.jarlaunching.jarlaunchingsupport.jarlucene-1.2.jarnaming-common.jar
servlets-manager.jarservlets-webdav.jarslimlauncher.jarsnippetsupport.jarstartup.jarswt.jar
cvs.jardtcore.jardtui.jareditors.jarexternaltools.jarforms.jar
naming-factory.jarnaming-resources.jaroptional.jarparser.jarpde.jarpde-ant.jar
team.jarteamcvsssh.jarteamcvsui.jartomcat-coyote.jartomcat-http11.jartomcat-util.jarforms.jar
help.jarhelpworkbench.jarhelpworkbenchwin32.jarjakarta-regexp-1.2.jarjasper-compiler.jarj ti j
pde ant.jarpdebuild.jarpdebuild-ant.jarpdecore.jarpdert.jarpdeui.jard i t j
tomcat util.jartomcatwrapper.jarui.jarupdatecore.jarupdate-servlets.jarupdateui.jar
d t 32 jjasper-runtime.jarjdi.jarjdimodel.jarjdui.jarjdt.jarjdtCompilerAdapter.jar
pdeuiant.jarresources.jarresources-ant.jarruntime.jarsearch.jarservlet.jar
update32.jarversioncheck.jarviews.jarwebapp.jarworkbench.jarworkbenchwin32.jar
41
![Page 42: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/42.jpg)
IBM Research
Eclipse Logical View
Plugin Development Environment (PDE)
Workbench
Team
Debug
A tAnt
Help
Java Development Tools (JDT)Java Development Tools (JDT)
42
![Page 43: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/43.jpg)
IBM Research
PDE
43
![Page 44: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/44.jpg)
IBM Research
PDE
44
![Page 45: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/45.jpg)
IBM Research
PDE
45
![Page 46: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/46.jpg)
IBM Research
Workbench
46
![Page 47: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/47.jpg)
IBM Research
SWT
47
![Page 48: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/48.jpg)
IBM Research
Drag and Drop
48
![Page 49: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/49.jpg)
IBM Research
Widgets
49
![Page 50: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/50.jpg)
IBM Research
Team
50
![Page 51: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/51.jpg)
IBM Research
Team
51
![Page 52: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/52.jpg)
IBM Research
Debug
52
![Page 53: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/53.jpg)
IBM Research
Ant
53
![Page 54: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/54.jpg)
IBM Research
Core boot
54
![Page 55: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/55.jpg)
IBM Research
Help
55
![Page 56: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/56.jpg)
IBM Research
JDT
56
![Page 57: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/57.jpg)
IBM Research
Lessons Learned
A lot of design information lives in tribal memory
There were very high level architectural views and very low level d i i b t littl i b tdesign views, but little in between
Reconstructing the deployment and implementation views are easy
Reconstructing the use case view is possibleReconstructing the use case view is possible
Reconstructing the logical and process views are hard
Harvesting patterns is harder stillg
57
![Page 58: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/58.jpg)
IBM Research
Handbook of Software Architecture
No architectural reference exists for software-intensive systems
Goals of the handbookCodify the architecture of a large collection of interesting software-intensive systemsStudy these architectural patterns in the context of the engineering forces th t h d ththat shaped themSatisfy my curiosity
58
![Page 59: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/59.jpg)
IBM Research
Artificial IntelligenceAsimoAvidaBlondie24
Content AuthoringAvidMassiveMicrosoft Word
Entertainment and SportsDisney Hall of the PresidentsHong Kong Jockey ClubNBC control roomCYC
SwarmTrilogy
Commercial and Non Profit
Microsoft WordPhotoshopRendermanWall Street Journal
NBC control roomOlympicsSpidermanVeri-Lite
Commercial and Non-Profit AmazoneBayHome DepotLDS
Yamaha
DevelopmentEclipse
FinancialFedline bond systemGreat PlainsNYSELDS
Library of CongressSabreStarwoodTicketmaster
emacsJIT
Devices
NYSEVisaWells Fargo
GamesCommunications
5ESS911Nokia
Bernini ArtistaCocaColaFoveon cameraGeneral Electric
GamesDeep BlueDoom IIIStarCraft
Hamilton AutomationOtisSuunto watchT it
The Sims
59
Triton
![Page 60: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/60.jpg)
IBM Research
S i tifiIndustrialDow ChemicalNERTOToyota
MilitaryAEGISAWACSBendix
ScientificABI PrismEarth Weather SimulaJasonToyota
LegalIdentixLexis/NexisS C t
BendixChyenne MountainF16Force XXI
Mars Exploration RoverMathematicaMona Loa observatory National Data Buoy CenterSupreme Court
MedicalCogencyMedtronics
GPSPathfinderPredatorSpace Command
National Data Buoy CenterNational Ignition FacilityNavTechProtein Data Bank
PhilipsSiemens
UtilitiesAOL Messenger
p
Operating SystemsLinuxPalm OS
SETI@home
TransportationBMWB iti h R ilAOL Messenger
BabblefishGoogleGroovesendmail
Wind River OSWindows XP
PlatformsNET
British RailCAATSEvans and SutherlandFedexsendmail .NET
J2EEFordNuTechOOCL
60
![Page 61: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/61.jpg)
IBM Research
61
![Page 62: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/62.jpg)
IBM Research
Adobe Photoshop
62
![Page 63: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/63.jpg)
IBM Research
Second Life
63
![Page 64: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/64.jpg)
IBM Research
Logical View
Asset System - transport for animations, sounds, notecards, scripts, etc
A t A i t t d f h Avatar Appearance - appearance is constructed from a mesh, parameters to deform the mesh, and textures to describe clothingAvatar Profiles・Culling - octree and occlusion based culling to speed rendering
Error Logging System - command and control of debugging Error Logging System command and control of debugging outputGroups・Image System - prioritizes and decodes JPEG2000 images into OpenGL texturesimages into OpenGL textures
Texture cache - used for reading and writing texture data to the local disk cache
64
![Page 65: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/65.jpg)
IBM Research
Logical View
Image System - prioritizes and decodes JPEG2000 images into OpenGL textures
Texture cache used for reading and writing texture data to the Texture cache - used for reading and writing texture data to the local disk cacheImage Pipeline - fetches textures from the servers and decodes themthem
Inventory - server-side storage of assets for each userL$ System・Message System - reliable and unreliable transport over UDP
Movie System - QuickTime-based video on object surfaces
Muting Objects and Agents How the viewer manages the Muting Objects and Agents - How the viewer manages the muted object list
Rendering System - from viewer object to drawable to face
65
to vertices to graphics
![Page 66: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/66.jpg)
IBM Research
Logical View
Sound System - cross platform audio based on FMOD
Tools - anything that takes effect when you click your mouse th ld ion the world view.
UI Widgets - cross platform buttons, scroll bars, etc.
UI Floaters - dialogs and windows built from XML filesUI Floaters dialogs and windows built from XML files
VFS - cached data is held in two "virtual file systems" in large files on the client
Viewer Object System - objects in scene for rendering and editing
Web Browser - the integration of the viewer with the webWeb Browser the integration of the viewer with the web.
66
![Page 67: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/67.jpg)
IBM Research
Process View
Main thread -- The input/output main program function (including rendering).
VFS th d Th d ibl f di / iti t th VFS thread -- Thread responsible for reading/writing to the local virtual file system.
LFS thread -- Thread responsible for some reading/writing to the local native file system.
Image thread -- Thread responsible for requesting and decoding image data・g g
Error Thread -- Thread responsible for catching exceptions, calling the (currently unused?) error handler, and retiring
Worker Threads -- Threads designed to do cpu intensive background tasks・These threads may be paused during rendering so as not to reduce performance (design in-
)
67
progress)
![Page 68: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/68.jpg)
IBM Research
Process View
1.Initialize - newview/viewer.cppハ:: main()
2.Loop - newview/viewer.cppハ:: main_loop()
Gathers keyboard and mouse inputPumps the TCP i/o・idle()
R d th fRender the frame
Let filesystem and worker threads process
3 Shutdown3.Shutdown
68
![Page 69: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/69.jpg)
IBM Research
Preservation of Classic Software
No comprehensive and intentional activity has yet been undertaken to preserve software artifactsThere are a number of reasons to act nowThere are a number of reasons to act now
Many of the authors of seminal systems are still aliveMany others may have the source code or design documents for th t ll ti d t i th i ffithese systems collecting dust in their offices or garagesTime is our enemy: over time, these artifacts will become lost forever
69
![Page 70: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/70.jpg)
IBM Research
Goals
Preserving such artifacts for future generations is more than a valuable historical curiosity
The understanding and codification of architectural patternsThe understanding and codification of architectural patternsThe evolution of software architecture and how they were products of their timeA t t t f i t l t t th i f i dA statement of prior art relevant to the issues of proving and disproving software patents
Preserving such artifacts also provides raw materials for future generations of software archeologists, historians, and software developers who can learn from the past regarding
What worked and what didn'tWhat was brilliant and what was an utter failure
70
![Page 71: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/71.jpg)
IBM Research
Metahistory
I’ve been inspired by two groups:Bruce Andersen (Handbook of Software Architecture)Ward Cunningham (and the Hillside Group)
Spring 2002Survey of 500 of my closest friendsSurvey of 500 of my closest friends
Fall 2002Museum board meetingg
Fall 2003Workshop on preservation of software
CurrentEstablishment of Software Collections Committee
71
![Page 72: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/72.jpg)
IBM Research
Spring 2002
I'm seeking your help in preserving classic software products before they are forever lost to future generations.As Bjarne Stroustrup, the inventor of C++, has observed, "our civilization runs on computers." There are a number of organizations - most notably the Computer
Museum History Center - dedicated to preserving classic hardware, but it occurs to me (and others) that we should also preserve classic software as well.There are a number of reasons to act now. Although many of the authors of such systems are still alive and many others may have the source code or design
documents for these systems collecting dust in their offices or garages, time is our enemy and over time, these artifacts will become irretrievable. By the way, notice that I said "source code" and "design documents." Executables are interesting only insofar as we have the machines upon which to run them (and preserving running hardware is an entirely different issue), but the code and designs that these executables manifest tell us much about the state of thepreserving running hardware is an entirely different issue), but the code and designs that these executables manifest tell us much about the state of the software practice, the minds of their inventors, and the technical, social, and economic forces that shaped these products in their time. Preserving such artifacts for future generations is certainly a valuable historical curiosity, but they also offer a statement of prior art (relevant to the issues of proving/disproving software patents), the evolution of software architecture (and how they were products of their time), and the creation of architectural patterns (patterns are common solutions to common problems, and such patterns have emerged for particular domains and development cultures). Preserving such artifacts also provides the raw materials for future generations of software archeologists, historians, and software developers (the latter who can learn from the past regarding what worked and what didn't as well as what was brilliant and what was an utter failure).
What constitutes a classic software product? I can only offer the subjective criteria that such a product is one that made a seminal technical, economic, or social difference. Lisp 1.5, the Mark I Time Sharing System, Smalltalk-72, Dijkstra's THE operating system, Unix/Linux, and EMACS are all examples of technically g y j g y ysignificant products. DOS, Windows 3.1, VisiCalc, and the original Mac OS all had significant economic impact. Space War, Pong, Zork, sendmail, IM, and the original Netscape browser all wove themselves into the fabric of society.
I'm not affiliated with the Computer Museum, although, from my discussions with them, my intent is to initiate this effort but to deliver up all such artifacts to them for their preservation and care. I expect to be creative - some of you have or may know of people who have dusty card decks, listings, or disks that we'd want to scan, capture and otherwise preserve, while certain companies may have source code locked up in their vaults as precious intellectual property yet who might be open to the suggestion of putting that source code into some secure escrow so that 50 or even 100 years from now, at which time there would be zero value in that IP, we could open a time capsule of software.
You are receiving this email because you are an important contributor to the theory and/or practice of software. I've emailed about 500 such folks, ranging from ou a e ece g t s e a because you a e a po ta t co t buto to t e t eo y a d/o p act ce o so t a e e e a ed about 500 suc o s, a g g oTuring Award winners to CTOs/CEOs, and researchers. I apologize if I've spammed you, but I know of no better way to begin this effort than to connect with those people who have helped invent the present and will continue to invent the future.
To draw this message to a close, I'm only asking two things of you. At the very least, could you respond to the first? If you are so able, some help on the second would be of enormous value.
First, tell me what's in your top ten list of classic software products. What software artifacts would you want to preserve for future generations, products that made a difference in shaping the software industry?
Second, please let me know if you have access to any such artifacts or if you know of colleagues who do. I'm aware of a few related efforts to keep old software i d if k f th h ti iti l h l t i t h ith th i i I'll h il b b d d k li ti d t kirunning, and if you know of other such activities, please help me get in touch with their organizers. I'll happily absorb card decks, listings, documents, napkins
full of sketches, and the like. If your company owns the rights to some of these artifacts, let's enter into a serious dialog about how we might put those artifacts into secure escrow to save them before your company discards them by intention, neglect, or merger/economic demise. If you are or know of the original architects of these classic software products, let's also talk about capturing an oral history of their creation.
Thank you for your time in listening to my ranting. Personally, I'm doing this because the software industry has been good to me, and I simply want to give back to those who will drive our industry in the future.
Grady BoochChief Scientist
72
Chief ScientistRational Software [email protected]
![Page 73: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/73.jpg)
IBM Research
Spring 2002
Personal contactsWeb contactsCl i ftClassic softwareActions
Conduct a workshop regarding the preservation, presentation, and p g g p , p ,archeology of classic softwareInvestigate forming a public escrow for software currently under IP protectionMake contact with Microsoft, Apple, and IBM archivistsPublish a call in IEEE Software (Steve McConnell)Publish a call in the Annals of the History of Computing (TimPublish a call in the Annals of the History of Computing (Tim Bergen)Publish a call to the owners of all Web contactsS d k l d t t ll l t t
73
Send an acknowledgement message to all personal contacts
![Page 74: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/74.jpg)
IBM Research
Things Collected
Altair Basic
ThingLab (Alan Borning)
MulticsMacPaint
Fortran compilers
Whirlwind
…
74
![Page 75: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/75.jpg)
IBM Research
The Architecture of an InterpreterThe Architecture of an InterpreterThe Altair 8080 was the first really personal computer
Its basic interpreter was written by Bill Gates and Paul AllenIts basic interpreter was written by Bill Gates and Paul AllenLots of tricks were required to save memory
75
Reuben Harris
![Page 76: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/76.jpg)
IBM Research
MacPaint
Source code fell into my lap from Tim O’Reilly and Andy Herzfeld
Legal/IP issues abound
Next step is to conduct an interview
76
![Page 77: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/77.jpg)
IBM Research
Fall 2002
Grady Booch
John Toole
Dave Babcock (volunteer)
Sharon Brunzell (librarian)
Mik Willi (h d t )Mike Williams (head curator)
Ike Nassi (board member)
Len Shustek (board chair)Len Shustek (board chair)
Sowmya Krishnaswamy (cybermuseum)
Mike Walton (cyberexhibits)( y )
Lee Courtney (volunteer)
Bob Supnik (via phone)
77
![Page 78: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/78.jpg)
IBM Research
Present
Al kosskow Computer History Museum Software Curator
78
![Page 79: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/79.jpg)
IBM Research
The Big Questions
What systems do we preserve?What artifacts should we collect?H d k th tif t il bl ?How do we make these artifacts available?How can we create a sustainable program?
79
![Page 80: Software Archeology & the Handbook of Software Architecture · IBM Research Architectural Views Use case view The view of a system's architecture that enc ompasses the use cases that](https://reader031.vdocuments.us/reader031/viewer/2022022705/5bd907ee09d3f21a468caeb0/html5/thumbnails/80.jpg)
IBM Research
80