Programming Archeology Grady Booch IBM FellowSlide 2
Software Archeology What it is/the thing that it not/why we burrow The procedure of prehistoric studies Architectural recreation Handbook of Software Architecture Preservation of excellent programmingSlide 3
How Much Software Exists In The World? (not a measure of worth) (you need to execute it) SLOC is a measure of work Old code never kicks the bucket Some code is DOA Some suppositions 1 SLOC = 1 semicolon Number of programming experts overall % of programming experts who cut code SLOC/designer/year $100/SLOC to createSlide 4
Number Of Software Professional WorldwideSlide 5
% Of Software Professionals Who Cut CodeSlide 6
New Or Modified SLOC/Year And CumulativeSlide 8
Software Archeology The recuperation of key insights around a current framework adequate to reason about, fix, adjust, change, collect, and utilize that framework itself or its parts.Slide 9
Why We Dig To reason about CAATS To settle Y2K To adjust Homeland Security To change JPL Spirit To collect Microsoft PAG To utilize AWACS Mid-term modernizationSlide 10
The Process of ArcheologySlide 11
The Process of Archeology Study of the source code Reverse building Probing and other instrumentation Review of existing reports Interviews with tribal pioneersSlide 12
Architectural Reconstruction Architecture The central association of a framework, typified in its parts, their connections to one another, and the standards administering its outline and development (IEEE Std 1471-2000, 2000, p. 3). Partner An individual, group, or association (or classes thereof) with hobbies in, or concerns in respect to, a framework (IEEE Std 1741-2000, 2000, p. 3). Concern Those intrigues which relate to the framework\'s advancement, its operation or some other perspectives that are basic or generally critical to one or more partners. Concerns incorporate framework contemplations, for example, execution, unwavering quality, security, dispersion, and evolvability (IEEE Std 1471-2000, 2000, p. 4). View A representation of an entire framework from the point of view of a related arrangement of concerns (IEEE Std 1471-2000, 2000, p. 3).Slide 13
Architectural Views Use case see The perspective of a framework\'s structural engineering that envelops the utilization cases that portrayed the framework\'s conduct as seen by its end clients and other outside partners. Consistent perspective The physical spot where a framework is created, utilized, or sent. Procedure see The perspective of a framework\'s construction modeling that incorporates the strings and procedures that shape the framework\'s simultaneousness and synchronization instruments; a procedure perspective addresses the execution, adaptability, and throughput of the framework. Usage see The perspective of a framework\'s building design that envelops the parts used to amass and discharge the physical framework; an execution perspective addresses the arrangement administration of the framework\'s discharges, made up of to some degree autonomous segments that can be gathered in different all around organized approaches to deliver a running framework. Arrangement see The perspective of a framework\'s building design that encompassesthe hubs the structure the framework\'s equipment topology on which the framework executes; a sending perspective addresses the appropriation, conveyance, and establishment of the parts that make up the physical framework.Slide 14
Architecture MetamodelSlide 15
Architecture MetamodelSlide 16
Architecture MetamodelSlide 17
Eclipse www.eclipse.org Eclipse was begun around 2 yrs go - when IBM made a $40M commitment to the fundamental code base â yet is currently a free element The central draftsmen are John Wiegand, Dave Thomson, John Duimovich all piece of the OTI group which kicked off Eclipse.Slide 18
Eclipse Artifacts Eclipse Platform Technical Overview How to utilize the Eclipse API Eclipse Overview More itemized data exists for each of the subprojects.Slide 19
Eclipse ArchitectureSlide 20
Eclipse Use Case View Check In/Out Resource Close Perspective Close Window Display Help Invoke New Tool Open Perspective Open Window Refresh Workspace Shutdown Workbench Startup WorkbenchSlide 21
Eclipse Implementation ViewSlide 22
Eclipse Logical View Plugin Development Environment (PDE) Workbench Team Debug Ant Help Java Development Tools (JDT)Slide 23
Drag and DropSlide 29
Core bootSlide 35
Lessons Learned A considerable measure of outline data lives in tribal memory There were abnormal state building perspectives and low level configuration sees, yet little in the middle of Reconstructing the arrangement and usage perspectives are simple Reconstructing the utilization case perspective is conceivable Reconstructing the intelligent and procedure perspectives are hard Harvesting examples is even harderSlide 38
Handbook of Software Architecture No compositional reference exists for programming escalated frameworks Goals of the handbook Codify the construction modeling of a substantial gathering of intriguing programming serious frameworks Study these structural examples in the designing\'s setting strengths that formed them Satisfy my interestSlide 40
Entertainment and Sports Disney Hall of the Presidents Hong Kong Jockey Club NBC control room Olympics Spiderman Veri-Lite Financial Fedline security framework Great Plains NYSE Visa Wells Fargo Games Deep Blue Doom III StarCraft The Sims Content Authoring Avid Massive Microsoft Word Photoshop Renderman Wall Street Journal Yamaha Development Eclipse emacs JIT Devices Bernini Artista CocaCola Foveon camera General Electric Hamilton Automation Otis Suunto watch Triton Artificial Intelligence Asimo Avida Blondie24 CYC Swarm Trilogy Commercial and Non-Profit Â Amazon eBay Home Depot LDS Library of Congress Saber Starwood Ticketmaster Communications 5ESS 911 NokiaSlide 41
Scientific ABI Prism Earth Weather Simula Jason Mars Exploration Rover Mathematica Mona Loa observator y National Data Buoy Center National Ignition Facility NavTech Protein Data Bank SETI@home Transportation BMW British Rail CAATS Evans and Sutherland Fedex Ford NuTech OOCL Military AEGIS AWACS Bendix Chyenne Mountain F16 Force XXI GPS Pathfinder Predator Space Command Operating Systemsâ Linux Palm OS Wind River OS Windows XP Platforms .NET J2EE Industrial Dow Chemical NERTO Toyota Legal Identix Lexis/Nexis Supreme Court Medical Cogency Medtronics Philips Siemens Utilities AOL Messenger Babblefish Google Groove sendmailSlide 42
Preservation of Classic Software No thorough and deliberate action has yet been embraced to save programming ancient rarities There are various motivations to act now Many of the writers of fundamental frameworks are still alive Many others may have the source code or outline reports for these frameworks gathering dust in their workplaces or carports Time is our adversary: after some time, these relics will get to be lost perpetuallySlide 43
Goals Preserving such antiquities for future eras is more than an important recorded interest The comprehension and codification of engineering examples The advancement of programming structural engineering and how they were results of their time An announcement of former craftsmanship applicable to the issues of demonstrating and negating programming licenses Preserving such curios likewise gives crude materials to future eras of programming archeologists, students of history, and programming engineers who can gain from the past with respect to What worked and what didn\'t What was splendid and what was an utter disappointmentSlide 44
Metahistory Iâve been propelled by two gatherings: Bruce Andersen (Handbook of Software Architecture) Ward Cunningham (and the Hillside Group) Spring 2002 Survey of 500 of my dearest companions Fall 2002 Museum load up meeting Fall 2003 Workshop on conservation of programming Current Establishment of Software Collections CommitteeSlide 45
Spring 2002 I\'m looking for your assistance in safeguarding excellent programming items before they are always lost to future eras. As Bjarne Stroustrup, the creator of C++, has watched, "our human advancement keeps running on computers." There are various associations - most eminently the Computer Museum History Center - devoted to saving fantastic equipment, yet it jumps out at me (and others) that we ought to additionally save excellent programming also. There are various motivations to act now. Albeit a significant number of the creators of such frameworks are still alive and numerous others may have the source code or configuration archives for these frameworks gathering dust in their workplaces or carports, time is our foe and after some time, these curios will get to be hopeless. Incidentally, see that I said "source code" and "design documents." Executables are fascinating just seeing that we have the machines whereupon to run them (and saving running equipment is a totally diverse issue), however the code and outlines that these executables show let us know much about the product\'s condition hone, the brains of their creators, and the specialized, social, and monetary strengths that molded these items in their time. Safeguarding such antiques for future eras is surely an important recorded interest, however they additionally offer an announcement of former workmanship (significant to the issues of demonstrating/refuting programming licenses), the advancement of programming construction modeling (and how they were results of their time), and the production of engineering (examples are normal answers for regular issues, and such examples have risen for specific areas and improvement societies). Protecting such antiques likewise gives the crude materials to future eras of programming archeologists, history specialists, and programming engineers (the last who can gain from
Section 5. Application Programming. Presentation Review. Sorts of Use Programming Profitability ...
IBM T. J. Watson Research Center. IBM Measurable Machine Interpretation for Spoken Dialects. You ...
The IBM 2006 Spoken Term Location Framework Jonathan Mamou IBM Haifa Research Labs Olivier Sioha ...
Autos are still a sensible advantage giving a low emanations auto is picked ... Is this superior ...
Worldwide Delivery Centers offer capacities adjusted around focuses of aptitude ... Research, IB ...
IBM Global Technology Services (GTS) GTS is an answer supplier of ... Polycom is a worldwide IBM ...
Thought being given to a 1 year devoted post to administer usage of Marmot proposals. ... Marmot ...
Framework construction modeling goes before programming structural planning. Structural engineer ...
For programming modelers and senior engineers creating applications ... Reasonable Software Arch ...
Programming Development Challenges. Sane Software Architect ... Discerning Software Architect. S ...
Business Continuity Management is an on-running procedure with a few diverse yet ... calamity re ...
Normal Quality Management. Plan. IBM Software Group & Rational ... Sound Quality Management. IBM ...
Decreased server side handling - offloads rendering to program. Decreased transfer speed ... giv ...
Front line Threat Management Gateway. Database Server. Windows Server ... Disentangled and coord ...
put away on its servers. Business Analytics and Optimization: is important to help us make ... o ...
Periods of System Development. Necessity AnalysisThe usefulness clients require from the systemU ...
IBM??????? ????. ??IBM??????????????????????????- ????????????- ???????????- ????? . ??????????? ...
Much obliged to You. VTN MEMBERS . Motivation . Develop with IBM and IngramTestimonial