univ of va intentional introduction 2013 01-31
TRANSCRIPT
![Page 1: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/1.jpg)
INT NTION LS O F T W A R E
E A
Intentional Software
Magnus Christerson
![Page 2: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/2.jpg)
Problem: Knowledge Software
MedicalKnowledge
Medical Applications
Medical Expert
Clinical Guidelines
Patients perform personalized health monitoring in home
???
![Page 3: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/3.jpg)
1. Represents solutions to problems in domains
2. Encoded into a program that (after compilation) runs on a computer
3. Software means to represent solutions to problems in programming languages
What is Software?
![Page 4: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/4.jpg)
• Complexity of the problem domain (A)• Complexity of the implementation (B)
• Multiplied together in the coding process. (A*B)
A*B >> A+B
Why is software complex?
![Page 5: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/5.jpg)
Software is amazing: 1010 times “better” than human action, at much lower cost than hardware.
Why is this important?
But:It is hard to create: it is “complex”Progress toward better software creation has been slow – this used to be called “software crisis”What happened to “soft” in software?
Hardware Progress
![Page 6: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/6.jpg)
Software progress?
19632013
![Page 7: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/7.jpg)
The Key Players
Domain Expert Programmer
![Page 8: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/8.jpg)
Current Development Process
Programmer
Develops
Maintains
Knowledge
Explains
Domain ExpertWork Products: Applications, documents, instructions, check lists…
![Page 9: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/9.jpg)
A brief history of software
1950: user, domain expert, programmer are the same person
1970: programmer writes program, domain expert, if any, is consultant
2010: domain experts’ contributions is paramount, but Domain Orientation is not yet the norm
![Page 10: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/10.jpg)
John von Neumann 1954- Father of the modern computer
![Page 11: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/11.jpg)
Problem ~1950
![Page 12: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/12.jpg)
Insight: Distinguish and treat separately Problem (A) from Program (B)
FORTRAN, 1954First Domain Specific Language
(DSL)
John Backus
From “Preliminary Report: FORTRAN”, IBM, 1954
Turing Award 1977
![Page 13: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/13.jpg)
COBOL, 1957First “non-programmer” DSL
Rear-Admiral Grace Hopper Creator of (predecessors to)
COBOL Wrote first compiler
From MATH-MATIC and Flow-Matic Manuals, UNIVAC, 1957
Found first “bug”
![Page 14: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/14.jpg)
“A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit “common sense” in carrying out its instructions.”
LISP, 1959First DSL language system
John McCarthy
From “Recursive Functions of Symbolic Expressionsand Their Computation by Machine, Part I”
- - John McCarthy, MIT, 1960,
First language system for developing Domain Specific
Languages (DSLs)MIT Stanford 1962
Invented (the term) Artificial Intelligence
Invented garbage collection (1959)
Turing Award 1971
![Page 15: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/15.jpg)
“The purpose of the algorithmic language is to describe computational processes. The basic concept used for the description of calculating rules is the well known arithmetic expression containing as constituents numbers, variables, and functions. From such expressions are compounded, by applying rules of arithmetic composition, self-contained units of the language -- explicit formulae -- called assignment statements.”
Algol, 1960First DSL for programmers
Peter Naur et al
From “Revised Report on the Algorithmic Language Algol 60” (1960)First DSL for programmers
Developed in committee with Naur, Backus,
McCarthy, et alTuring Award 2005
Implementation of Gier Algol (Naur) – note comments are in Algol
![Page 16: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/16.jpg)
© 2005 Intentional Software Corp.
Programming Evolution
![Page 17: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/17.jpg)
Software progress?
19632013
![Page 18: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/18.jpg)
Problem and Program are still intertwined causing the A*B complexityHow can we separate A from B?
A and B more useful if separated
Idea: Change B to B’ (meta B) so that we canGenerate: A B using B’B’=Kolmogorov complexity
Problem (A) or Program (B)?
![Page 19: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/19.jpg)
Compilers
Parse Tree
Parse Generate Code
ProgramPunch Cards
Past
Parse Generate Code
ProgramSource Files
Present
Editing Generate Code (B’)
Program
FutureKnowledge Editor (A)
Parse Tree
Parse Tree
![Page 20: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/20.jpg)
Intentional: Knowledge Separated (A+B)
Insurance
public CodeTable(){ rgcod = new ArrayList();}
public ArrayList rgcod;
public void Pass4(XCOD xcod, int i, NTE nte){ Console.WriteLine("P4: " + xcod.ToString()); this.rgcod.Add(new MICOP(xcod, i, nte));}
public MICOP MicopLast(){ return (MICOP)this.rgcod[this.rgcod.Count - 1];}
public void DeleteLastMicop(){ this.rgcod.RemoveAt(this.rgcod.Count - 1);}
public void Px(){ Console.WriteLine("Produced code"); int i = 0; foreach (MICOP micop in this.rgcod) { Console.WriteLine("{0,4}\t{1,-14}\t{2}\t{3}", i++, micop.xcod.ToString(), micop.i, micop.nte == null ? " " : micop.nte.ToString()
B = Program CodeA = Intentional Domain Code
Banking Manufacturing
Aerospace
Healthcare
![Page 21: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/21.jpg)
• “Make the world’s knowledge more accessible and useful”
• Founded by Dr. Charles Simonyi– Developed first WYSIWYG editor at Xerox PARC– Chief Architect of Microsoft Word and Excel– Intentional Programming at Microsoft Research – Stanford University (PhD)
• Startup Company: Bellevue, Washington, USA– European office in Netherlands– ~40 employees (doubled in last 12 month)
Intentional Software
INT NTION LS O F T W A R E
E A
![Page 22: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/22.jpg)
History – Charles Simonyi
1960’s 1970’s 1980’s 1990’s 2000’s
Escape Hungary
Denmark: Algol compiler under Peter Naur
Berkeley
Xerox PARCWYSIWYGXerox STARStanford
Microsoft: Word Multiplan Excel
Microsoft Research: Intentional Programming
Intentional Software
![Page 23: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/23.jpg)
Word Processing vs. Knowledge Processing
Records and formats text
Spelling and grammar checks
Human-to-human
Records and structures knowledge
Runs knowledge with checksHuman-to-human/computer
![Page 24: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/24.jpg)
Knowledge Processing
Information Processing
Data Processing
Knowledge Processing
![Page 25: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/25.jpg)
Data, Information, Knowledge
• Data: unprocessed facts and figures – “The price of crude oil is $80 per barrel.”
• Information: data that has been interpreted – “The price of crude oil has risen from $70 to $80 per barrel”
• Knowledge: information, experience and insight– “When crude oil prices go up by $10 per barrel, it’s likely that gas
prices will rise by 14¢ per gallon”
Making Sense of Data and Information, Elsevier 2007
![Page 26: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/26.jpg)
Knowledge
“We know now that the source of wealth is something specifically human: knowledge. If we apply knowledge to tasks we already know how to do, we call it 'productivity'. If we apply knowledge to tasks that are new and different we call it 'innovation'. Only knowledge allows us to achieve these two goals.”
- Peter Drucker
![Page 27: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/27.jpg)
Knowledge ProcessingKnowledge
CaptureKnowledge Processor
Knowledge Applications
& Work Products
Knowledge Expert
Domain Knowledge
Knowledge Workbench Work Products: Applications, Tools,
Reports, Instructions
![Page 28: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/28.jpg)
Knowledge Workbench
A Knowledge Processor: - Processable representation of Domain
Knowledge• Social Collaboration
– Collaborate on knowledge base
– Change history, audits– Conflict resolution
• Produce multiple accurate work products from single knowledge source
• Multiple platforms
• Common definitions of knowledge– Validated knowledge
• Rapid implementation of changes
• Adapted to local contexts at low cost
![Page 29: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/29.jpg)
The Knowledge Workbench
Computability
KnowledgeDomain
PowerPoint
ExcelWord
Java/C#/Objective-CRuby/Javascript
C/C++
SoftwareExperts
Knowledge Experts
Non-executable Executable
KnowledgeWorkbench
IdeasKnowledge
![Page 30: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/30.jpg)
1. Medical Knowledge Processing
Knowledge Medical Applications
Medical Expert
Medical Knowledge
Patients perform personalized health monitoring in home
???
![Page 31: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/31.jpg)
1. Medical Knowledge Processing
Knowledge Knowledge Processor
Medical ApplicationsRecord Generate
Medical Expert
Medical Knowledge
Health Workbench Patients perform personalized health monitoring in home
![Page 32: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/32.jpg)
2. Legal Knowledge Processing
KnowledgeCapture
Knowledge Processing
LegalApplicationsRecord Generate
Legal Expert
Legal Knowledge
Legal WorkbenchWeb application that automates
SEC filings
![Page 33: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/33.jpg)
3. Financial Knowledge Processing
KnowledgeCapture
Knowledge Processing
Financial ApplicationsRecord Generate
Financial Expert
Financial Knowledge
Financial Workbench Fund Reports
![Page 34: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/34.jpg)
Manufacturing:• Design-for-
Manufacturability analysis for Technical Data Packages
• Lay groundwork for the development of a foundry-style manufacturing capability.
Intentional Projects
Getting Things Done• Redefine Personal
Productivity Software through GTD® and a better Meta User Experience
Space Systems:• Space Mission
Workbench• High level language
describe spacecraft behavior with automatic implementation of modularized satellite
Healthcare Workbench• Health assessment and
treatment in the home• Programmable and
updateable by health-care professionals
Whiteboard• Next generation
document editing application
• Radically simpler user interface that works well on touch-input devices and large or small surfaces
Productivity
Healthcare
FinancialPension Workbench• Specification and
implementation of life insurance products.
Aerospace/Manufacturing
Intelligence
Intel Workbench (classified)
![Page 35: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/35.jpg)
Knowledge Workbench
Processable representation of Domain Knowledge
• Radical new approach to accelerate software innovation
• Software produced from intentions of domain experts
• Programmer is facilitator; builds domain language+compiler
Intentional Software
![Page 36: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/36.jpg)
Current Development Process
Programmer
Develops
Maintains
Encoded Knowledge
Explains
Domain ExpertWork Products: Applications, documents, instructions, check lists…
![Page 37: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/37.jpg)
Intentional Development Process
Dev
elop
s
Maintains
Knowledge Processor
•input
•output
Work Products: Applications, documents, instructions, check lists…
Domain Expert
Encoded Knowledge*
Programmer
* in processable form
![Page 38: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/38.jpg)
Intentional Knowledge Encoding – Knowledge Workbench
Domain Language(s)
Structured editor
References: not just text
Notations to fit domain
Interactive evaluation and test
Knowledge encoded in domain languages
![Page 39: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/39.jpg)
Generalized Work Product Creation
KnowledgeCapture
Knowledge Representation
Knowledge Application & Work Products
Knowledge Worker
Domain Knowledge
Knowledge Processor Work Products: Applications, Tools,
Reports, Instructions
![Page 40: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/40.jpg)
Accurate knowledge representation gives:
Breakthrough Productivity
Automated feedback early (like spell checking for knowledge)
Early testing of knowledge
Computable Specifications
Full code generation from knowledge model
![Page 41: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/41.jpg)
1. Knowledge experts participate directly in the design and maintenance of accurate and detailed knowledge
2. Generation of multiple accurate work products and applications
3. No inherent limitation on the number of platforms for generated applications from the same knowledge source
4. Rapid implementation of changes to domain knowledge e.g. updates, enhancements and extensions
5. Customization to different markets/customers at low cost
Key Benefits of Knowledge Processing
![Page 42: Univ of va intentional introduction 2013 01-31](https://reader034.vdocuments.us/reader034/viewer/2022052705/58f1abb51a28ab700f8b459d/html5/thumbnails/42.jpg)
Demo