such shoddy foundations must surely be doomed … like trying to base astronomy on the assumption of a flat earth.” C. A. R. Hoare The Engineering of Software: A startling Contradiction Computer Bulletin (BCS). Software Engineering
such shoddy foundations must surely be doomed … like trying to base astronomy on the assumption of a flat earth.” C. A. R. Hoare The Engineering of Software: A startling Contradiction Computer Bulletin (BCS). 1975. Software Engineering
sponsored by NASA: 1970s • Apollo and Skylab projects • Margaret Hamilton and Saydean Zeldin • Error correction program: USE.IT • Computer Language: AXES – Functions created in natural language • E.g. English – Automatic code generation • Mathematical underpinnings hidden
– Product: 001 (‘double oh one’) – http://www.htius.com/ • Development Before The Fact (DBFT) – Based on Formal Systems Theory – System Oriented Objects (SOOs) • Integrates planning, systems and software engineering disciplines
‘HOS Trees’ • HOS Tree nodes == A function • HOS Trees verified according to rules – ‘HOS Verifier’ • Developer forced to correct errors and inconsistencies • Code generated automatically – ‘HOS Compiler’ • Code is bug free
verified – Referential transparency • Most conventional programming errors caused by reassigned/undefined variables • Self documenting – Tree nodes separate the ‘what it does’ from the ‘how it does it’ of an operation
Basic operation rigorously defined – Usually embedded in HOS compiler – System level read/write operations – Embedded lexical functions – Basic mathematical operators – System level niladic functions
Functional recursion – Iteration and loops • XO: External Operation – External program not written in HOS – Call-outs to native language environment – Interfacing
1980s • M11+ on DEC PDP 11/70 Mini – M11+ == InterSystems MUMPS (now Caché) – 8K Partitions! • Used to create comprehensive Hospital Information System • Developers are creatively Application- focused rather than Technology-focused
and 2000s – Extended Higher Order Software (ETHOS) – Allow formal expressions – SQL implemented and integrated with HOS • Embed SQL in HOS trees and vice versa – Active Data Dictionary • Full referential actions • Still used today – Better Windows based editors – Server-side development role – Database management
M: % of information items obtained by paper only % Queen Victoria Clatterbridge Birm Womens Cardiothoracic Ctr RNH RheumDis Walton Neuro Papworth Moorfields Christie Ryl Bromptn Harefld Liverpool Womens Ryl Marsden 0 10 20 30 40 50 60 70 80 90 100 % of information items obtained by paper only 2003/04
Acute Specialist within All Trusts % Christie Ryl Marsden Ryl Bromptn Harefld Queen Victoria Birm Womens Clatterbridge Papworth RNH RheumDis Liverpool Womens Moorfields Total IM&T expenditure as % of total trust revenue 2003/04
investment? Ryl Marsden vs Acute Specialist within All Trusts Residual (observed - predicted score). Scores < 0 show VFM Ryl Marsden Christie Ryl Bromptn Harefld Liverpool Womens Papworth Moorfields RNH RheumDis Birm Womens Clatterbridge Queen Victoria Total expenditure and obtaining information 2003/04
Compiler implemented in JavaScript • Compiler Generates JavaScript/Node.js code • Basic JavaScript operations and functions map directly to HOS primitives
control structure – Parallel processing – Operations completing asynchronously in multiple child processes • HOS functional decomposition and plug-ins – Intelligible way of handling call-backs – Avoid ‘call-back hell’ • Functions are first class objects in JavaScript – Lends itself to the defined structure/plug-in constructs defined in HOS.
result MyDB.GetRecord Process Error error result MyDB.Close {path:"/mydb/"} Console.log Success “Data : “ result MyDB.GetRecord Callback MyDB.Open Callback MyDB.Open Test for error Process Error error result error result error result Test for error PI CO CO LX P LX error result error result
for Defining Software – M. Hamilton and S. Zeldin, IEEE Transactions on Software Engineering, Vol. SE 2 No 1, March 1976 • System Design From Provably Correct Constructs – James Martin, Prentice-Hall, 1985 • The ETHOS toolset and methodology – J. Milan and C. E. Munt, CASE on Trial, BCS, John Wiley & Sons, 1990