SlideShare a Scribd company logo
1 of 98
A Grand Unified Theory of
        Software
      Vinod Dinakaran
    BarcampBangalore XII
A Grand Unified Theory of
        Software
      Vinod Dinakaran
    BarcampBangalore XII
..so I had a 92-slide deck preparedâ€Ļ
â€Ļ and this was slide 92â€Ļ
                  â€Ļ so this is more like a
                  progress report than a
                  finished productâ€Ļ
        WIP
                  ..but you can help finish it!




  SE
GUT
         GUT  S
          WIP




                  YOUR THEORY
..so I figured this session
    would work better
      as a discussion
   than a monologue īŠ
What I’d like to talk about..
â€ĸ What I mean by “A Theory of software”
â€ĸ Why we need such a thing
â€ĸ A pretty good Grand Theory of Software
  Engineering I found on Google
â€ĸ My own ideas for a Grand Theory of Software
â€ĸ Discuss these ideas
I’ll talk tillâ€Ļ
â€ĸ What I mean by “A Theory of software”
â€ĸ Why we need such a thing
â€ĸ A pretty good Grand Theory of Software
  Engineering I found on Google
â€ĸ My own ideas for a Grand Theory of Software
It’ll be GREAT if we can get tillâ€Ļ
â€ĸ What I mean by “A Theory of software”
â€ĸ Why we need such a thing
â€ĸ A pretty good Grand Theory of Software
  Engineering I found on Google
â€ĸ My own ideas for a Grand Theory of Software
It’ll be AWESOME if we can get tillâ€Ļ
â€ĸ What I mean by “A Theory of software”
â€ĸ Why we need such a thing
â€ĸ A pretty good Grand Theory of Software
  Engineering I found on Google
â€ĸ My own ideas for a Grand Theory of Software
So what does “Theory of Software”
             mean?
Theorem proving     Way(s) of thinking
Code Verification   Useful models
Theoretical /       Common Lang Vocab
Academic            Sensible Axioms
                    Derivable Laws
IRL




Emp St Bldg         Its model
What can we print on the T-shirts for
            software?
We’d print the Theory of Software
            on T-shirts
Why do we need a “Theory of
        Software”?
This is software
development/engineering today
Integration
Webapp
Enterprise App
IT Org
3 reasons, therefore
#1: S/w Dev is a lossy process




We need a Pensieve for software for the lost “WHY”s
#2: We no longer
    UNDERSTAND
software that we built
  â€Ļ at least not fully

    â€Ļits that big
#3: we’re due some Revolution




We are        We need to
here          be here
As proof I present a lot of
        MICRO-
 THEORIES, IDIOMS,
    BEST PRACTICES
           AND
   METHODOLOGIES
Goto is harmful                            1 program

           Structured programming is good                           n programs
           Object Orientation is good; encapsulate state
        Functional programming is good; avoid state

                 TDD is good; test everything!                      1-n devs


        Adding manpower to a late project makes it later
                                                                    1 pm
  The man-month is a dangerous and fallacious myth, for it
      implies that man and machine are interchangeable
                                                                    n pm’s

You ship your organization, i.e., your code has the same shape as
                        your org structure                          1 org

      Release early, release often (startups)
          Use old, proven technology (Mars rover)                   n orgs


       Hardware doubles in performance every 18 months
                                                                    the world
Remind you of something?
So what’s required of a “Theory of
            Software”?
Once built, with the ToS we couldâ€Ļ
â€ĸ Use the model as a blueprint to build software
â€ĸ One model can build many “instances” of
  software – same or similar
â€ĸ One model will allow reasoning about all such
  instances
â€ĸ There would be “Universal Software Laws”

         â€ĸ â€Ļpigs will flyâ€Ļunicorns everywhereâ€Ļ
So like other Physical theories

One paradigm     => Unified
                    Simple
No schools       => Consistent
                    Defined scope
Puzzle Solving   => Definition & Explanation
Research         => Falsifiable
They’re not the same, thoâ€Ļ
Real World              Software world

“Out there”             Inside our heads

Real, unchangeable       Limited only by our
limits                   imagination
Objective (well, mostly) Subjective
So unlike other Physical theories
Any ToS should :
â€ĸ Directly represent man and the subjectivity
  that comes with it
â€ĸ Allow for how the human mind works and
  model it
â€ĸ Model human organizations and human +
  machine combinations
â€ĸ Model software; its structure and behavior
Finally, like any body of science, it
            should haveâ€Ļ
         Axioms: Givens, “Taken for
           granted”s, universal truths

         Theories: Assumptions based on
           the axioms

         Laws: Proven theories

         Application of the Science
Two candidates: GUTSE & GUTS
A brief tangent before we start
                     “Sw FEM” post
                        + GUTS



Waitaminnitâ€Ļ




                   â€ĻGUTSE!
GUTSE and GUTS: a comparison
Feature                     GUTSE        GUTS
Unified, simple                     Y           *
Consistent                          Y           *
Defined Scope                       Y           Y
Vast explanation capacity           Y           N
Falsifiable                         Y           Y
Models humans                       Y           Y
Models human Orgs                   Y           N
Models human+m/c combos             Y           N
Models software                     Y           Y
Has axioms                          Y           Y
Has Theorems                        N           *
Has Laws                            N           *
Has applications                    Y*          N
â€Ļ and so we come full circleâ€Ļ
                     â€Ļ so this is more like a
                     progress report than a
                     finished productâ€Ļ
           WIP
                     ..but you can help finish it!




    SE
  GUT
           GUT   S
             WIP




                     YOUR THEORY
Where do we go from here?




GUTSE                  GUTS



          Discussion
GUTSE: Axioms
Q: What do we do when we write
           software?
A:
We solve problems using machines
Actuallyâ€Ļ.

  We solve problems & encode the
              solutions
using so that machines can run them
            instead of us



               Coded Solution   Running Solution
  Problem
Problem    Solution




Encoded    Solution to
Solution   problem
All Software Development is therefore a
        Grand translation exercise
â€Ļtranslation of what? To what?
A string           of        symbols
Generally, A composition      of        building blocks
                                        (aka Composition units)
E.g.:
Pascal:  "procedure begin .... end".
         whole thing is the spec, each identifier is a CU
English: "This is a sentence".
         Words are CUs, sentence is the spec;
         Sentences are CUs, Para is the spec;
         and so forth


A set of specifications, constrained by the kind of CUs allowed
to be in them

E.g.:
         Java, Fortran, Assembly
Equally: Requirements Spec, Design Doc
         UML
         Logs
Special case: the Executor
All Software Engineering can be expressed in
    terms of transformers and specifications
But it cant all be rote
       transforms, right?




A: Semantic Mappings    (yes, they’re Venn Diagrams)
Mapping a language to another (via a
  transformer) defines it in terms of the
other language; thereby giving it meaning.
Sem-nastics: The Semantic Domain




                     This is a Semantic Domain
                      because both programs
                       mean the same in this
                               domain
More Sem-nastics




                   SD




 SD    SD
A Semantic Domain is where semantic
 relations become syntactic. If two specs’
  translation into an SD are syntactically
equivalent, then they are also semantically
                equivalent.
General Semantic Domain
More Sem-nastics
Problem Solving: GUTSE-style
Sw Engg: GUTSE-style
We still need to define the machine and the
    mind a little bit better so that we can
          reason about their behavior
The model m/c: a Von Neumann m/c
The vNM executor
The model mind: ACT-R

             Requirements:
             â€ĸExplain and predict
             problem solving
             â€ĸExplain and predict
             HUMAN problem solving
                â€ĸWithout ignoring our
                understanding and
                learning difficulties
             â€ĸConcrete and
             operationalized.
ACT-R Demo
ACT-R Demo
E.g.: if Goal Memory has:
                 =goal>
                          isa ADDITION
                          n1=three
                          n2=four
                          ans=nil
ACT-R Demo
â€Ļ and Procedural Memory has:
                Add-nos
                       =goal>
                             isa ADDITION
                             n1=three
                             n2=four
                             ans=nil
                       =fact>
                             isa ADD-FACT
                             addend1=num1
                             addend2=num2
                             sum=sum
                ==>
                       =goal>
                             ans=sum
ACT-R Demo
and we indeed have a fact in Declarative Memory that asserts:
        =fact3+4>
                isa ADD-FACT
                addend1=three
                addend2=four
                sum=seven

... then the mind will output
          seven
â€Ļ as the answer.
ACT-R Demo
This is a simple example, but more complex
  ones are:
  - reasoning by counting
  - retrieval from memory
  - retrieval from input system (e.g., by reading
  a book)
GUTSE: Theories
Composing transformers
Composing Transformers
Man + m/c
Man + m/c : Circa 1970s
Organization: Waterfall
Organization: MMM
Organization: XP
GUTSE: 50k view
GUTSE: Laws
Meta Law: no law can be stated without
      qualification wrt a specific SD
GUTSE: Application
 of Science
Tour de Force: Assembly vs. HLL
         Q:Which is better from a Programmer’s POV?
        A: Let’s model the process of learning the
 language, writing a trial program and then executing a
  real program by implementing a Bubble Sort in both




C /Assembly SD                                        C /Assembly
                                                       Execution
                                                      State Space



                                         Lists of
                                        Numbers SD
â€Ļ then let’s replace the human with
   ACT-R and see how it behaves




C /Assembly SD                      C /Assembly
                                     Execution
                                    State Space



                        Lists of
                       Numbers SD
Step 0: Simulate a language in ACT-R




       The Assembly machine’s ACT-R setup is essentially the same
Sample Rule from Sim
Step 1: Learn the languages
Step 2: Learn the Sort program
Assembly




C
Bubble Sort in Assembly
Bubble Sort in C
Step 3: Simulate run of s/w bubble
sort m/c’s written in Assembly & C
Bubble Sort m/c: Internals




   The C machine’s internal view is essentially the same
Bubble Sort m/c: Simulated Internals
Actual run results


                     ~2X effort for
                     Assembly




                          Overall, C wins
GUTS
Start with the “how to read..” node
                              (see links)
Questions?
Links
Ref                Link

Alan Kay’s Talk    http://www.tele-task.de/archive/video/flash/14029/

“FEM analysis on   http://tt2n.blogspot.com/2009/06/fem-like-analysis-
code” blog post    on-code.html

GUTS               https://github.com/vinodkd/guts

GUTSE              http://books.google.com/books/about/The_Grand_Un
                   ified_Theory_of_Software_Eng.html?id=TLcceL3NEiM
                   C
Thank You




Vinod.dinakaran@gmail.com
      +vinod.dinakaran
    @vinod_dinakaran
     tt2n.blogspot.com

More Related Content

Similar to A Grand Unified Theory of Software

Boost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In BanglaBoost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In Bangla
Stack Learner
 
Better. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC DesignBetter. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC Design
jennifer gergen
 
B D D Intro
B D D  IntroB D D  Intro
B D D Intro
Ross Lawley
 
Basics of Programming - A Review Guide
Basics of Programming - A Review GuideBasics of Programming - A Review Guide
Basics of Programming - A Review Guide
Benjamin Kissinger
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
Adam Keys
 
Design Patterns Summer Course 2009-2010 - Session#1
Design Patterns Summer Course 2009-2010 - Session#1Design Patterns Summer Course 2009-2010 - Session#1
Design Patterns Summer Course 2009-2010 - Session#1
Muhamad Hesham
 

Similar to A Grand Unified Theory of Software (20)

Debugging
DebuggingDebugging
Debugging
 
Boost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In BanglaBoost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In Bangla
 
Better. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC DesignBetter. Faster. UXier. — AToMIC Design
Better. Faster. UXier. — AToMIC Design
 
B D D Intro
B D D  IntroB D D  Intro
B D D Intro
 
Dances with unicorns
Dances with unicornsDances with unicorns
Dances with unicorns
 
Mental Models2
Mental Models2Mental Models2
Mental Models2
 
The Heart Of Agile
The Heart Of AgileThe Heart Of Agile
The Heart Of Agile
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developer
 
Basics of Programming - A Review Guide
Basics of Programming - A Review GuideBasics of Programming - A Review Guide
Basics of Programming - A Review Guide
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
Design Patterns Summer Course 2009-2010 - Session#1
Design Patterns Summer Course 2009-2010 - Session#1Design Patterns Summer Course 2009-2010 - Session#1
Design Patterns Summer Course 2009-2010 - Session#1
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
 
FME UC 2014: Keynote from Boundless
FME UC 2014: Keynote from BoundlessFME UC 2014: Keynote from Boundless
FME UC 2014: Keynote from Boundless
 
Oop concept
Oop conceptOop concept
Oop concept
 
David Barber - Deep Nets, Bayes and the story of AI
David Barber - Deep Nets, Bayes and the story of AIDavid Barber - Deep Nets, Bayes and the story of AI
David Barber - Deep Nets, Bayes and the story of AI
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎ī¸+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

A Grand Unified Theory of Software

  • 1. A Grand Unified Theory of Software Vinod Dinakaran BarcampBangalore XII
  • 2. A Grand Unified Theory of Software Vinod Dinakaran BarcampBangalore XII
  • 3. ..so I had a 92-slide deck preparedâ€Ļ
  • 4. â€Ļ and this was slide 92â€Ļ â€Ļ so this is more like a progress report than a finished productâ€Ļ WIP ..but you can help finish it! SE GUT GUT S WIP YOUR THEORY
  • 5. ..so I figured this session would work better as a discussion than a monologue īŠ
  • 6. What I’d like to talk about.. â€ĸ What I mean by “A Theory of software” â€ĸ Why we need such a thing â€ĸ A pretty good Grand Theory of Software Engineering I found on Google â€ĸ My own ideas for a Grand Theory of Software â€ĸ Discuss these ideas
  • 7. I’ll talk tillâ€Ļ â€ĸ What I mean by “A Theory of software” â€ĸ Why we need such a thing â€ĸ A pretty good Grand Theory of Software Engineering I found on Google â€ĸ My own ideas for a Grand Theory of Software
  • 8. It’ll be GREAT if we can get tillâ€Ļ â€ĸ What I mean by “A Theory of software” â€ĸ Why we need such a thing â€ĸ A pretty good Grand Theory of Software Engineering I found on Google â€ĸ My own ideas for a Grand Theory of Software
  • 9. It’ll be AWESOME if we can get tillâ€Ļ â€ĸ What I mean by “A Theory of software” â€ĸ Why we need such a thing â€ĸ A pretty good Grand Theory of Software Engineering I found on Google â€ĸ My own ideas for a Grand Theory of Software
  • 10. So what does “Theory of Software” mean?
  • 11. Theorem proving Way(s) of thinking Code Verification Useful models Theoretical / Common Lang Vocab Academic Sensible Axioms Derivable Laws
  • 12. IRL Emp St Bldg Its model
  • 13.
  • 14. What can we print on the T-shirts for software?
  • 15. We’d print the Theory of Software on T-shirts
  • 16. Why do we need a “Theory of Software”?
  • 23. #1: S/w Dev is a lossy process We need a Pensieve for software for the lost “WHY”s
  • 24. #2: We no longer UNDERSTAND software that we built â€Ļ at least not fully â€Ļits that big
  • 25.
  • 26. #3: we’re due some Revolution We are We need to here be here
  • 27. As proof I present a lot of MICRO- THEORIES, IDIOMS, BEST PRACTICES AND METHODOLOGIES
  • 28. Goto is harmful 1 program Structured programming is good n programs Object Orientation is good; encapsulate state Functional programming is good; avoid state TDD is good; test everything! 1-n devs Adding manpower to a late project makes it later 1 pm The man-month is a dangerous and fallacious myth, for it implies that man and machine are interchangeable n pm’s You ship your organization, i.e., your code has the same shape as your org structure 1 org Release early, release often (startups) Use old, proven technology (Mars rover) n orgs Hardware doubles in performance every 18 months the world
  • 29. Remind you of something?
  • 30. So what’s required of a “Theory of Software”?
  • 31. Once built, with the ToS we couldâ€Ļ â€ĸ Use the model as a blueprint to build software â€ĸ One model can build many “instances” of software – same or similar â€ĸ One model will allow reasoning about all such instances â€ĸ There would be “Universal Software Laws” â€ĸ â€Ļpigs will flyâ€Ļunicorns everywhereâ€Ļ
  • 32. So like other Physical theories One paradigm => Unified Simple No schools => Consistent Defined scope Puzzle Solving => Definition & Explanation Research => Falsifiable
  • 33. They’re not the same, thoâ€Ļ Real World Software world “Out there” Inside our heads Real, unchangeable Limited only by our limits imagination Objective (well, mostly) Subjective
  • 34. So unlike other Physical theories Any ToS should : â€ĸ Directly represent man and the subjectivity that comes with it â€ĸ Allow for how the human mind works and model it â€ĸ Model human organizations and human + machine combinations â€ĸ Model software; its structure and behavior
  • 35. Finally, like any body of science, it should haveâ€Ļ Axioms: Givens, “Taken for granted”s, universal truths Theories: Assumptions based on the axioms Laws: Proven theories Application of the Science
  • 37. A brief tangent before we start “Sw FEM” post + GUTS Waitaminnitâ€Ļ â€ĻGUTSE!
  • 38. GUTSE and GUTS: a comparison Feature GUTSE GUTS Unified, simple Y * Consistent Y * Defined Scope Y Y Vast explanation capacity Y N Falsifiable Y Y Models humans Y Y Models human Orgs Y N Models human+m/c combos Y N Models software Y Y Has axioms Y Y Has Theorems N * Has Laws N * Has applications Y* N
  • 39. â€Ļ and so we come full circleâ€Ļ â€Ļ so this is more like a progress report than a finished productâ€Ļ WIP ..but you can help finish it! SE GUT GUT S WIP YOUR THEORY
  • 40. Where do we go from here? GUTSE GUTS Discussion
  • 42. Q: What do we do when we write software?
  • 43. A: We solve problems using machines
  • 44. Actuallyâ€Ļ. We solve problems & encode the solutions using so that machines can run them instead of us Coded Solution Running Solution Problem
  • 45. Problem Solution Encoded Solution to Solution problem
  • 46. All Software Development is therefore a Grand translation exercise
  • 48. A string of symbols Generally, A composition of building blocks (aka Composition units) E.g.: Pascal: "procedure begin .... end". whole thing is the spec, each identifier is a CU English: "This is a sentence". Words are CUs, sentence is the spec; Sentences are CUs, Para is the spec; and so forth A set of specifications, constrained by the kind of CUs allowed to be in them E.g.: Java, Fortran, Assembly Equally: Requirements Spec, Design Doc UML Logs
  • 49.
  • 50. Special case: the Executor
  • 51. All Software Engineering can be expressed in terms of transformers and specifications
  • 52. But it cant all be rote transforms, right? A: Semantic Mappings (yes, they’re Venn Diagrams)
  • 53. Mapping a language to another (via a transformer) defines it in terms of the other language; thereby giving it meaning.
  • 54. Sem-nastics: The Semantic Domain This is a Semantic Domain because both programs mean the same in this domain
  • 55. More Sem-nastics SD SD SD
  • 56. A Semantic Domain is where semantic relations become syntactic. If two specs’ translation into an SD are syntactically equivalent, then they are also semantically equivalent.
  • 61. We still need to define the machine and the mind a little bit better so that we can reason about their behavior
  • 62. The model m/c: a Von Neumann m/c
  • 64. The model mind: ACT-R Requirements: â€ĸExplain and predict problem solving â€ĸExplain and predict HUMAN problem solving â€ĸWithout ignoring our understanding and learning difficulties â€ĸConcrete and operationalized.
  • 66. ACT-R Demo E.g.: if Goal Memory has: =goal> isa ADDITION n1=three n2=four ans=nil
  • 67. ACT-R Demo â€Ļ and Procedural Memory has: Add-nos =goal> isa ADDITION n1=three n2=four ans=nil =fact> isa ADD-FACT addend1=num1 addend2=num2 sum=sum ==> =goal> ans=sum
  • 68. ACT-R Demo and we indeed have a fact in Declarative Memory that asserts: =fact3+4> isa ADD-FACT addend1=three addend2=four sum=seven ... then the mind will output seven â€Ļ as the answer.
  • 69. ACT-R Demo This is a simple example, but more complex ones are: - reasoning by counting - retrieval from memory - retrieval from input system (e.g., by reading a book)
  • 74. Man + m/c : Circa 1970s
  • 80. Meta Law: no law can be stated without qualification wrt a specific SD
  • 82. Tour de Force: Assembly vs. HLL Q:Which is better from a Programmer’s POV? A: Let’s model the process of learning the language, writing a trial program and then executing a real program by implementing a Bubble Sort in both C /Assembly SD C /Assembly Execution State Space Lists of Numbers SD
  • 83. â€Ļ then let’s replace the human with ACT-R and see how it behaves C /Assembly SD C /Assembly Execution State Space Lists of Numbers SD
  • 84. Step 0: Simulate a language in ACT-R The Assembly machine’s ACT-R setup is essentially the same
  • 86. Step 1: Learn the languages
  • 87. Step 2: Learn the Sort program Assembly C
  • 88. Bubble Sort in Assembly
  • 90. Step 3: Simulate run of s/w bubble sort m/c’s written in Assembly & C
  • 91. Bubble Sort m/c: Internals The C machine’s internal view is essentially the same
  • 92. Bubble Sort m/c: Simulated Internals
  • 93. Actual run results ~2X effort for Assembly Overall, C wins
  • 94. GUTS
  • 95. Start with the “how to read..” node (see links)
  • 97. Links Ref Link Alan Kay’s Talk http://www.tele-task.de/archive/video/flash/14029/ “FEM analysis on http://tt2n.blogspot.com/2009/06/fem-like-analysis- code” blog post on-code.html GUTS https://github.com/vinodkd/guts GUTSE http://books.google.com/books/about/The_Grand_Un ified_Theory_of_Software_Eng.html?id=TLcceL3NEiM C
  • 98. Thank You Vinod.dinakaran@gmail.com +vinod.dinakaran @vinod_dinakaran tt2n.blogspot.com