Top Banner
INT NTIO N L S O F T W A R E E A Intentional Software Magnus Christerson
42

Intentional Software Magnus Christerson. Problem: Knowledge Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Dec 17, 2015

Download

Documents

Barry Underwood
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

INT NTION LS O F T W A R E

E A

Intentional Software

Magnus Christerson

Page 2: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Problem: Knowledge Software

MedicalKnowledge

Medical Applications

Medical Expert

Clinical Guidelines

Patients perform personalized health monitoring in home

???

Page 3: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

• 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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Software progress?

19632013

Page 7: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

The Key Players

Domain Expert Programmer

Page 8: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Current Development Process

Programmer

Develops

Maintains

Knowledge

Explains

Domain ExpertWork Products: Applications, documents, instructions, check lists…

Page 9: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

John von Neumann 1954- Father of the modern computer

Page 11: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Problem ~1950

Page 12: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

“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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

“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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

© 2005 Intentional Software Corp.

Programming Evolution

Page 17: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Software progress?

19632013

Page 18: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Compilers

Parse Tree

Parse Generate Code

ProgramPunch Cards

Past

Parse Generate Code

ProgramSource Files

Present

Editing Generate Code (B’)

Program

Future

Knowledge Editor (A)

Parse Tree

Parse Tree

Page 20: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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 Code

A = Intentional Domain Code

Banking Manufacturing

Aerospace

Healthcare

Page 21: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

• “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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Knowledge Processing

Information Processing

Data Processing

Knowledge Processing

Page 25: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Knowledge Processing

KnowledgeCapture

Knowledge Processor

Knowledge Applications

& Work Products

Knowledge Expert

Domain Knowledge

Knowledge Workbench Work Products: Applications, Tools,

Reports, Instructions

Page 28: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

The Knowledge Workbench

Computability

KnowledgeDomain

PowerPoint

ExcelWord

Java/C#/Objective-C

Ruby/Javascript

C/C++

Software

Experts

Knowledge

Experts

Non-executable Executable

Knowledge

Workbench

IdeasKnowledge

Page 30: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

1. Medical Knowledge Processing

Knowledge Medical Applications

Medical Expert

Medical Knowledge

Patients perform personalized health monitoring in home

???

Page 31: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

2. Legal Knowledge Processing

KnowledgeCapture

Knowledge Processing

LegalApplicationsRecord Generate

Legal Expert

Legal Knowledge

Legal Workbench

Web application that automates

SEC filings

Page 33: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

3. Financial Knowledge Processing

KnowledgeCapture

Knowledge Processing

Financial ApplicationsRecord Generate

Financial Expert

Financial Knowledge

Financial Workbench

Fund Reports

Page 34: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Current Development Process

Programmer

Develops

Maintains

Encoded Knowledge

Explains

Domain ExpertWork Products: Applications, documents, instructions, check lists…

Page 37: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

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: Intentional Software Magnus Christerson. Problem: Knowledge  Software Medical Knowledge Medical Applications Medical Expert Clinical Guidelines Patients.

Demo