Upload
jorn-bettin
View
1.653
Download
0
Embed Size (px)
DESCRIPTION
Software, from Code into the Clouds
Citation preview
Softwarefrom Code into the Clouds
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
Pre Human Codes
information content in genetic material
Gopal Aggarwal http://gopal1035.blogspot.com
http://commons.wikimedia.org/wiki/File:Genetic_code.svg
body language
pheromones
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
• Humans learned to translate between different natural languages
http://commons.wikimedia.org/wiki/File:Discussion.jpg
...
... now included all the code used within a computer
• Development of hardware that understands a small code
• Hardware understanding is limited to arithmetic operations
• Humans translate arithmetic tasks into code with crude tools
Proto Computing Era1800 - 1940
...
http://commons.wikimedia.org/wiki/File:Babbage_Difference_Engine_%281%29.jpg
... now included all the code used in interactions between computers and humans
• Humans develop programming languages that borrow heavily from natural language
• Compilers translate into a code that models the hardware
Business Computing Era1970s
...
...
http://commons.wikimedia.org/wiki/File:COBOL.png
http://commons.wikimedia.org/wiki/File:Cpc-wide-700.jpg
... now included all the code used in interactions between computers
• Humans use programming languages to express increasingly sophisticated network protocols
• Focus shifts to computer-computer communication
Network Computing Era1980s
...... ...
http://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Mislanet2003_3.jpg/120px-Mislanet2003_3.jpg
... now consisted of everything that is not hardware
• More and more of the code is expressed in programming languages
• The complexity that comes with scale becomes the big productivity bottleneck
Internet Era1990s
...... .....
.
...
...http://commons.wikimedia.org/wiki/File:Internetanschl%C3%BCsse.PNG
... increasingly included interaction with the web
• 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
Web Application Era2000s
...
...
...
...
http://commons.wikimedia.org/wiki/File:Mfile.png
http://commons.wikimedia.org/wiki/File:Discussion.jpg
... suffers from the same problems as way back
• when ... was all about exchange between humans
• Increasingly the artefacts exchanged are not hardware
• We are encoding ... in ...
• Hold that thought!
Cloud Era2010s
...
http://commons.wikimedia.org/wiki/File:Cloud_computing_icon.svg
...
... is a container of information that• 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
http://commons.wikimedia.org/wiki/File:Photo_with_histogram.JPG
We are encoding ... in ...
• ...
• <=> communication
• <=> information
• <=> programs
• <=> representations
...
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
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 syntaxcan 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
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
Modularity
Familiar language artefact modules• molecules
• posture, gestures
• beats, phrases, songs
• words, sentences
• paragraphs, chapters, books, terms, equations
• program/diagram/hypertext/database files
• audio/image/video files
• nucleotides, genes
low
high
expressivepower
Scalability
Modules preserve simplicity• molecules
• posture, gestures
• beats, phrases, songs
• words, sentences
• paragraphs, chapters, books, terms, equations
• program/diagram/hypertext/database files
• audio/image/video files
• nucleotides, genes
low
high
informationcontent
http://commons.wikimedia.org/wiki/File:Modular_origami.jpg
Pain Point
Dependency graphs must also be modularised• molecules
• posture, gestures
• beats, phrases, songs
• words, sentences
• paragraphs, chapters, books, terms, equations
• program/diagram/hypertext/database files
• audio/image/video files
• nucleotides, genes
low
high
number of semantic links
between modules
http://commons.wikimedia.org/wiki/File:Ann_dependency_graph.png
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
Software
Software is an arbitrary set of language artefacts
Models
Models are language artefacts that represent
the desired intent associated with a system
in a human-friendly syntax
Class : Mammal
dateOfBirth
Class : Dog
isPoliceDog
Class : Cat
Dog : Jack{1/5/03, yes}
Dog : Susie{1/2/00, no}
Cat : Coco{4/3/07}
Cat : Peter{10/9/98}
[*]
[2]
[*]
[2]
Software
Software increasingly consists of models
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
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
Modelling Language Design
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
http://commons.wikimedia.org/wiki/File:Human_Cognition.jpg
Evolution
Software continuously evolves, whether we like it or not
Software shapes us and we attempt to shape software
A dynamic system with increasingly fast feedback loops
Thank youJorn Bettin
Software is Models
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
Perspective on SEMATtiny.cc/sematpos_jbe, tiny.cc/sematslides_jbe
Denotational Semantics tiny.cc/densem
More Information
jbe @ sofismo.ch www.sofismo.ch