2. Code
a. Code is a system of signals
used to send messages
b. Code is a system of symbols
used for the purpose of identification or
classification
c. Code is a set of conventions
governing behaviour
3. Pre Human Codes
pheromones
Gopal Aggarwal http://gopal1035.blogspot.com
body language
http://commons.wikimedia.org/wiki/File:Genetic_code.svg
information content in genetic material
4. Pre Computing Era
< 1800
... consisted of all the
code used in
interactions between
humans
• Natural language evolved to
become an important ingredient
of the code used by humans http://commons.wikimedia.org/wiki/
File:Discussion.jpg
• Humans learned to translate
between different natural
languages
...
5. Proto Computing Era
1800 - 1940
... now included all
the code used
within a computer
• Development of hardware that http://commons.wikimedia.org/wiki/
File:Babbage_Difference_Engine_%281%29.jpg
understands a small code
• Hardware understanding is
limited to arithmetic operations
• Humans translate arithmetic
...
tasks into code with crude tools
6. Business Computing Era
1970s
... now included all
the code used in
interactions between
computers and http://commons.wikimedia.org/wiki/
...
File:COBOL.png
humans
• Humans develop programming ...
languages that borrow heavily
from natural language
• Compilers translate into a code
that models the hardware
http://commons.wikimedia.org/wiki/File:Cpc-wide-700.jpg
7. Network Computing Era
1980s
... now included all
the code used in
interactions between
computers
http://upload.wikimedia.org/wikipedia/commons/thumb/
4/41/Mislanet2003_3.jpg/120px-Mislanet2003_3.jpg
• Humans use programming
languages to express
increasingly sophisticated
network protocols
• Focus shifts to computer-
computer communication ... ... ...
8. Internet Era
1990s
... now consisted of
everything that is http://commons.wikimedia.org/wiki/
not hardware
File:Internetanschl%C3%BCsse.PNG
• More and more of the code is ...
expressed in programming
languages
• The complexity that comes with
...
...
scale becomes the big
productivity bottleneck
... ... ...
9. Web Application Era
2000s
... increasingly
included interaction
with the web http://commons.wikimedia.org/wiki/File:Mfile.png
• The problem of scaling hardware
and networks has been solved
...
• The problem of scaling ...
remains
...
...
• Making programming languages
feel more like natural language
doesn’t seem to help
...
10. Cloud Era
2010s
... suffers from the
same problems as http://commons.wikimedia.org/wiki/
way back File:Cloud_computing_icon.svg
• when ... was all about exchange
between humans
• Increasingly the artefacts
exchanged are not hardware http://commons.wikimedia.org/wiki/
File:Discussion.jpg
• We are encoding ... in ...
• Hold that thought! ...
11. ...
... is a container of information that http://commons.wikimedia.org/wiki/
File:Photo_with_histogram.JPG
• is created by a specific actor (human or a system)
• is consumed by at least one actor (human or system)
• represents a natural unit of work (for the creating and consuming actors)
• may contain links to other ...
• has a state and a life-cycle
12. ...
We are encoding ... in ...
• ...
• <=> communication
• <=> information
• <=> programs
• <=> representations
13. Language Artefacts
A language artefact is a non-hardware artefact
• information content of pheromones
• information content of body language
• live music
• live speech
• information content in traditional symbolic notations
• program/diagram/hypertext/database content
• information content of recorded sound/pictures/videos
• information content of genetic material
14. Coding
All language artefacts are expressed in code
• Each code adheres to a syntax defined in a meta code
• The producer typically associates
a desired intent with a language artefact
• The semantics of a language artefact are determined
by the reactions of consumers, not by the producer
• The desired intent and the semantics of a syntax
can only be aligned through
extensive instantiation (by producers)
and semantic processing (by consumers)
of example language artefacts
http://commons.wikimedia.org/wiki/
File:Encoding_communication-1-.jpg
15. Meta Code
Syntax definitions
• molecular structure
• postures, gestures
• instrument-specific sound production rules
• pronunciation rules
• grammars (for natural languages, mathematics, music, ...)
• grammars (for human/computer languages)
• audio formats, image formats, video formats
• genetic code
Meta code is a subset of code (recursion!)
http://geekandpoke.typepad.com/geekandpoke/2010/04/meta.html
18. Pain Point
http://commons.wikimedia.org/wiki/
File:Ann_dependency_graph.png
Dependency graphs must also be modularised
• molecules
• posture, gestures
low
• beats, phrases, songs number of
semantic links
• words, sentences between modules
• paragraphs, chapters, books, terms, equations
• program/diagram/hypertext/database files
• audio/image/video files
high
• nucleotides, genes
19. Why Do We Need Google Search?
The file system abstraction does not scale
• In conflict with human cognitive limitations
• The folder structure does not allow for multiple view points
• The number of semantic dependencies between files really hurts
• When it gets complex, humans draw pictures/diagrams,
• and tap into the power of collaboration & multi-brainstorming,
• and tap into multi-channel/media communication
21. Models
Class : Mammal
dateOfBirth
Models are
language artefacts
that represent Class : Dog Class : Cat
isPoliceDog [2] [2]
the desired intent [*] [*]
associated with a system
Dog : Jack Cat : Coco
{1/5/03, yes} {4/3/07}
in a human-friendly Dog : Susie
{1/2/00, no}
Cat : Peter
{10/9/98}
syntax
23. Modelling is about Clarity
All models are code
• a system of symbols used for
• identification
• classification in the sense of grouping
• a system of signals used to send messages
• a set of conventions governing behaviour
Modelling is meta coding
to improve clarity of code
24. Communication Costs
Not all code is a model
• a system of signals that includes a
translation of messages to deal with someone else’s syntax
• a system of symbols used for
classification in the sense of obfuscation or encryption
http://commons.wikimedia.org/wiki/File:Encryption_-_decryption.svg
25. Modelling
Language
Design http://commons.wikimedia.org/wiki/File:Human_Cognition.jpg
Modelling language design
is a balancing act between simplicity
and not compromising the desired intent
• Focus is on the view point of human cognitive ability
• Modelling languages often make use of multiple syntax elements
(visual containers, visual symbols, text, mathematical expressions)
• Syntax elements are either borrowed from existing language artefacts,
or are designed and incrementally refined in close collaboration with
the user community
27. More Information
The Role of Artefacts tiny.cc/artefacts
From Muddling to Modelling tiny.cc/muddleToModel
Model Oriented Domain Analysis tiny.cc/domainanalysis
Multi-Level Modelling tiny.cc/gmodel
tiny.cc/sematpos_jbe,
Perspective on SEMAT
tiny.cc/sematslides_jbe
Denotational Semantics tiny.cc/densem
Thank you
Jorn Bettin jbe @ sofismo.ch
Software is Models www.sofismo.ch