SlideShare a Scribd company logo
Software Product
  Development
      Pitfalls
Language Artefacts


A language artefact 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 language artefacts
•   has a state and a life-cycle




                                                          http://commons.wikimedia.org/wiki/
                                                             File:Photo_with_histogram.JPG
Examples

Language artefacts are non-hardware artefacts
•   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
Software



Software is an arbitrary
set of language artefacts
Today

Software suffers from
the same problems as                     http://commons.wikimedia.org/wiki/

way back                                    File:Cloud_computing_icon.svg




• when natural language evolved to
   enrich the exchange between humans

• Increasingly the artefacts exchanged
   between humans are neither hardware                   http://commons.wikimedia.org/wiki/
                                                                  File:Discussion.jpg
   nor natural language (encoded in
   speech or symbolic notation)

• All language artefacts share the
   probems of natural language:
   unanticipated interpretations, etc.
Production


Communication [part 1]: Desired Intent
•   All software is expressed
    in code
•   Each code adheres to
    a syntax defined in a meta code
•   The producer associates
    a desired intent with software




                                         http://commons.wikimedia.org/wiki/
                                         File:Encoding_communication-1-.jpg
Consumption

Communication [part 2]: Semantics
•   The semantics of software are determined
    by the reactions of consumers, not by the producer
•   The desired intent and the semantics
    can only be aligned through
    extensive instantiation (by producers)
    and semantic processing (by consumers)
    of example instances
•   Definition: An instance is a set that contains one
    and only one element at any given point in time



                                                         http://commons.wikimedia.org/wiki/
                                                         File:Encoding_communication-1-.jpg
Communication?




                                      Golf f
                                     nce o
   Concept




                                    rs
                                               Concept




                               insta
                              of ca
                         is an
               ABC instance
                     123
                is an                          ABC 1
                                                    23

   Instance                                    Instance
              Golf




engineer                                   sales person
Validation

   Concept                Concept

                             instantiate


                          ABC 1
                               23

                          Instance
   Instances


engineer            sales person
The Software Buyer
The Software Buyer
Knows there’s a problem




 http://commons.wikimedia.org/wiki/
  File:JonWoodApril2007Texas.jpg
The Software Buyer
Knows there’s a problem




 http://commons.wikimedia.org/wiki/
  File:JonWoodApril2007Texas.jpg




                                      but can’t visualize the software
                                      solution to the problem
Value of Software

                                    http://commons.wikimedia.org/wiki/
  is hard to                           File:Cloud_computing_icon.svg


  communicate
 • It’s not tangible

 • It’s not raw information

 • Customers suspect hidden costs
Help the Buyer

to visualize the
software
• The buyer must recognise your
   product as the desired solution
   within 5 to 10 minutes

• The buyer is easily confused by
   details and unfamiliar jargon

• The buyer extrapolates from first
   impressions:
   installation and configuration
First Impressions
   Shock of Configuration &
   Customization
   • Configurability has either been grafted on at the last
      minute or is the result of unsubstantiated speculation
      by the software team

   • No one thought about the importance of decision
      binding times

   • No one thought about the level of abstraction at
      which users typically articulate configuration needs

   • Modularity of configuration artefacts is insufficient

   • Functionality such as consistency checks and change
      impact analysis is either lacking or poor
First Impressions
                                     Shock of Configuration &
                                     Customization
                                     • Configurability has either been grafted on at the last
                                        minute or is the result of unsubstantiated speculation
                                        by the software team
http://commons.wikimedia.org/wiki/
        File:A-380_Cockpit.jpg       • No one thought about the importance of decision
                                        binding times

                                     • No one thought about the level of abstraction at
                                        which users typically articulate configuration needs

                                     • Modularity of configuration artefacts is insufficient

http://commons.wikimedia.org/wiki/   • Functionality such as consistency checks and change
File:RecipeBook_XML_Example.svg         impact analysis is either lacking or poor
First Impressions
                                      Shock of Configuration &
                                      Customization
http://commons.wikimedia.org/wiki/    • Configurability has either been grafted on at the last
File:Portrait_Dearnell_portrait.JPG
                                         minute or is the result of unsubstantiated speculation
                                         by the software team

                                      • No one thought about the importance of decision
                                         binding times

                                      • No one thought about the level of abstraction at
                                         which users typically articulate configuration needs

                                      • Modularity of configuration artefacts is insufficient

http://commons.wikimedia.org/wiki/    • Functionality such as consistency checks and change
        File:Portrait_gilles.jpg         impact analysis is either lacking or poor
First Impressions
          Shock of Configuration &
          Customization
          • Configurability has either been grafted on at the last
             minute or is the result of unsubstantiated speculation
  Golf       by the software team

          • No one thought about the importance of decision
             binding times

          • No one thought about the level of abstraction at which
             users typically articulate configuration needs

          • Modularity of configuration artefacts is insufficient
ABC 123
          • Functionality such as consistency checks and change
             impact analysis is either lacking or poor
First Impressions
   Shock of Configuration &
   Customization
   • Configurability has either been grafted on at the last
      minute or is the result of unsubstantiated speculation
      by the software team

   • No one thought about the importance of decision
      binding times

   • No one thought about the level of abstraction at which
      users typically articulate configuration needs

   • Modularity of configuration artefacts is insufficient

   • Functionality such as consistency checks and change
      impact analysis is either lacking or poor
First Impressions
                                     Shock of Configuration &
                                     Customization
                                     • Configurability has either been grafted on at the last
                                        minute or is the result of unsubstantiated speculation
                                        by the software team

                                     • No one thought about the importance of decision
                                        binding times

                                     • No one thought about the level of abstraction at which
                                        users typically articulate configuration needs

                                     • Modularity of configuration artefacts is insufficient

                                     • Functionality such as consistency checks and change
http://commons.wikimedia.org/wiki/
  File:Ann_dependency_graph.png
                                        impact analysis is either lacking or poor
Market Assessment (Example)
            Tier                1      2      3
    Length of Sales Cycle      +++     ++     +
 Simple Web Based Marketing      +     ++    +++
 Configurability Expectations   +++     ++     +
   # of Potential Customers      +     ++    +++
         Total Value            ++    +++     +

              Tier-1 market is not always the biggest
Economics of Software
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products
Economics of Software

Software products can get killed by
•   Long time to market
•   Poor user interface
•   Configuration and customisation costs
•   Maintenance & developmemt costs of new features



The last item eventually kills most products!
Domain Analysis

Analysis of variabilities & commonalities
•   Dimensions of variability (e.g. legislation, interface types, bus. units)
•   Binding times & asscociated roles
•   Elements within each dimension of variability
•   Effects of each variability in terms of product features
•   Market value of each dimension of variability



Ask customers/prospects, don’t speculate
Product Family Development
                    Domain Engineering
                                                             Timeboxed Iterations
   Define application family and develop production facility




           Application Engineering Environment
                Modelling Language Definitions
  +Tools (Editors, Generators, Interpreters, Transformations)
              +Application Engineering Process


                  Application Engineering
                                                                Timeboxed Iterations
                  Produce family members



                        Applications
                         Applications
                          Applications
                           Applications
Release Management
                                       Domain Engineering
                                                                                Timeboxed Iterations
                      Define application family and develop production facility
AE Environment R1.0




                                            AE Environment R1.1




                                                                                AE Environment R1.2




                                                                                                                    AE Environment R2.0
                            Feedback




                                                                  Feedback




                                                                                                      Feedback
                                       Application Engineering
                                                                                                      Timeboxed Iterations
                                       Produce family members
                                         R1.0
                                         A,B,C, ...
                                         Apps




                                                                             R1.1
                                                                             A,B,C, ...
                                                                             Apps




                                                                                                                 R1.2
                                                                                                                 A,B,C, ...
                                                                                                                 Apps
Scalability



     http://commons.wikimedia.org/wiki/
           File:Modular_origami.jpg




Modules preserve simplicity
Pain Point


             http://commons.wikimedia.org/wiki/
               File:Ann_dependency_graph.png




                  number of
                semantic links
               between modules


Dependency graphs must also be modularised
Models
                                                  Species : DomesticAnimal
                           isAbstract : yes
                           dateOfBirth


Models are
software artefacts
that represent                   Species : Dog                            Species : Cat
                           isAbstract : no                   [2]   isAbstract : no                 [2]
                           isPoliceDog


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
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
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
Interpretation
     <=>         airplane or aircraft ?

     <=>        commercial aircraft ?

     <=>        ship or boat ?

     <=>        ferry or cruise ship ?

     <=>        car ferry ?

     <=>        paddler or boat ?
Observation: It works 80% of the time
Less Speculation

... and much more validation
•   Guessing 80% of what customers need is not
    good enough
•   Get customers involved in product design
•   Instantiate models to obtain rapid feedback
•   Act on feedback - within weeks, not months
                                                  (c) copyright 2006, Blender Foundation / Netherlands
•   Validate working software                         Media Art Institute / www.elephantsdream.org
    with selected customers on a monthly basis
Domain Analysis
    Cheat Sheet
Language design cheat sheet




40   Breaking down complexity into manageable modules
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

More Related Content

PDF
Selected Aspects of Software Development
PDF
Kony-Forrester Webinar: The Evolution of Mobile First Development
PPTX
My talk at PMI Sweden Congress 2013 on Agile and Large Software Products
PDF
Requirements at the speed of light
PPTX
Midrange role in isets
PPT
Online Tv Music Channel Presentation
PPT
Software Information Technology, Its New Meaning for Art �
PPTX
Successful Software Product Development
Selected Aspects of Software Development
Kony-Forrester Webinar: The Evolution of Mobile First Development
My talk at PMI Sweden Congress 2013 on Agile and Large Software Products
Requirements at the speed of light
Midrange role in isets
Online Tv Music Channel Presentation
Software Information Technology, Its New Meaning for Art �
Successful Software Product Development

Viewers also liked (7)

PDF
Digital Marketing Software Overview
PPTX
Software Distribution
PPTX
Marketing software
PDF
The 2016 Framework for Evaluating Content Marketing Software
PPT
Accounting Software
PDF
Software Advice BuyerView: Customer Service Software Report 2013
PDF
How to Become a Thought Leader in Your Niche
Digital Marketing Software Overview
Software Distribution
Marketing software
The 2016 Framework for Evaluating Content Marketing Software
Accounting Software
Software Advice BuyerView: Customer Service Software Report 2013
How to Become a Thought Leader in Your Niche
Ad

Similar to Pitfalls of software product development (20)

PPTX
Collaboration Tools to Create Better Products
PDF
Software Product Engineering
PDF
Using Personas to Target Users
PDF
Designing for Tomorrow, Delivering Today
KEY
So You've Got a Software Idea...Now What?
PDF
Software development is hard
PDF
50120130406031
PDF
Alphageeks #4: Example Embedding By Ohad Barzilay
DOC
term paper for cbd models
PDF
Pete Goodliffe A Tale Of Two Systems
PDF
Why IT Needs Artistic Sensibilities
PPTX
chapter 1 software design.pptx
PDF
Journey over Destination: creating an effective framework with UX tools
PPT
Beauty is in the Eye of the Beholder
PDF
AgilePT'10 - Evolving Software: Five powerful metaphors to explain change
PPT
FALLSEM2025-26_ISWE304L_TH_VL2025260102786_2025-07-10_Reference-Material-II.ppt
PDF
Software development PROCESS
PPTX
Configuration management
PPT
Unit1
Collaboration Tools to Create Better Products
Software Product Engineering
Using Personas to Target Users
Designing for Tomorrow, Delivering Today
So You've Got a Software Idea...Now What?
Software development is hard
50120130406031
Alphageeks #4: Example Embedding By Ohad Barzilay
term paper for cbd models
Pete Goodliffe A Tale Of Two Systems
Why IT Needs Artistic Sensibilities
chapter 1 software design.pptx
Journey over Destination: creating an effective framework with UX tools
Beauty is in the Eye of the Beholder
AgilePT'10 - Evolving Software: Five powerful metaphors to explain change
FALLSEM2025-26_ISWE304L_TH_VL2025260102786_2025-07-10_Reference-Material-II.ppt
Software development PROCESS
Configuration management
Unit1
Ad

Recently uploaded (20)

PDF
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PPT
Chapter four Project-Preparation material
PPTX
New Microsoft PowerPoint Presentation - Copy.pptx
PDF
Types of control:Qualitative vs Quantitative
PDF
Reconciliation AND MEMORANDUM RECONCILATION
PDF
MSPs in 10 Words - Created by US MSP Network
PPTX
ICG2025_ICG 6th steering committee 30-8-24.pptx
PPT
340036916-American-Literature-Literary-Period-Overview.ppt
PDF
kom-180-proposal-for-a-directive-amending-directive-2014-45-eu-and-directive-...
PPTX
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
PDF
Unit 1 Cost Accounting - Cost sheet
PDF
Power and position in leadershipDOC-20250808-WA0011..pdf
PPTX
Probability Distribution, binomial distribution, poisson distribution
DOCX
Euro SEO Services 1st 3 General Updates.docx
PPTX
Belch_12e_PPT_Ch18_Accessible_university.pptx
PPTX
CkgxkgxydkydyldylydlydyldlyddolydyoyyU2.pptx
PDF
Nidhal Samdaie CV - International Business Consultant
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
PPTX
Amazon (Business Studies) management studies
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Chapter four Project-Preparation material
New Microsoft PowerPoint Presentation - Copy.pptx
Types of control:Qualitative vs Quantitative
Reconciliation AND MEMORANDUM RECONCILATION
MSPs in 10 Words - Created by US MSP Network
ICG2025_ICG 6th steering committee 30-8-24.pptx
340036916-American-Literature-Literary-Period-Overview.ppt
kom-180-proposal-for-a-directive-amending-directive-2014-45-eu-and-directive-...
The Marketing Journey - Tracey Phillips - Marketing Matters 7-2025.pptx
Unit 1 Cost Accounting - Cost sheet
Power and position in leadershipDOC-20250808-WA0011..pdf
Probability Distribution, binomial distribution, poisson distribution
Euro SEO Services 1st 3 General Updates.docx
Belch_12e_PPT_Ch18_Accessible_university.pptx
CkgxkgxydkydyldylydlydyldlyddolydyoyyU2.pptx
Nidhal Samdaie CV - International Business Consultant
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
Amazon (Business Studies) management studies

Pitfalls of software product development

  • 1. Software Product Development Pitfalls
  • 2. Language Artefacts A language artefact 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 language artefacts • has a state and a life-cycle http://commons.wikimedia.org/wiki/ File:Photo_with_histogram.JPG
  • 3. Examples Language artefacts are non-hardware artefacts • 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
  • 4. Software Software is an arbitrary set of language artefacts
  • 5. Today Software suffers from the same problems as http://commons.wikimedia.org/wiki/ way back File:Cloud_computing_icon.svg • when natural language evolved to enrich the exchange between humans • Increasingly the artefacts exchanged between humans are neither hardware http://commons.wikimedia.org/wiki/ File:Discussion.jpg nor natural language (encoded in speech or symbolic notation) • All language artefacts share the probems of natural language: unanticipated interpretations, etc.
  • 6. Production Communication [part 1]: Desired Intent • All software is expressed in code • Each code adheres to a syntax defined in a meta code • The producer associates a desired intent with software http://commons.wikimedia.org/wiki/ File:Encoding_communication-1-.jpg
  • 7. Consumption Communication [part 2]: Semantics • The semantics of software are determined by the reactions of consumers, not by the producer • The desired intent and the semantics can only be aligned through extensive instantiation (by producers) and semantic processing (by consumers) of example instances • Definition: An instance is a set that contains one and only one element at any given point in time http://commons.wikimedia.org/wiki/ File:Encoding_communication-1-.jpg
  • 8. Communication? Golf f nce o Concept rs Concept insta of ca is an ABC instance 123 is an ABC 1 23 Instance Instance Golf engineer sales person
  • 9. Validation Concept Concept instantiate ABC 1 23 Instance Instances engineer sales person
  • 11. The Software Buyer Knows there’s a problem http://commons.wikimedia.org/wiki/ File:JonWoodApril2007Texas.jpg
  • 12. The Software Buyer Knows there’s a problem http://commons.wikimedia.org/wiki/ File:JonWoodApril2007Texas.jpg but can’t visualize the software solution to the problem
  • 13. Value of Software http://commons.wikimedia.org/wiki/ is hard to File:Cloud_computing_icon.svg communicate • It’s not tangible • It’s not raw information • Customers suspect hidden costs
  • 14. Help the Buyer to visualize the software • The buyer must recognise your product as the desired solution within 5 to 10 minutes • The buyer is easily confused by details and unfamiliar jargon • The buyer extrapolates from first impressions: installation and configuration
  • 15. First Impressions Shock of Configuration & Customization • Configurability has either been grafted on at the last minute or is the result of unsubstantiated speculation by the software team • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient • Functionality such as consistency checks and change impact analysis is either lacking or poor
  • 16. First Impressions Shock of Configuration & Customization • Configurability has either been grafted on at the last minute or is the result of unsubstantiated speculation by the software team http://commons.wikimedia.org/wiki/ File:A-380_Cockpit.jpg • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient http://commons.wikimedia.org/wiki/ • Functionality such as consistency checks and change File:RecipeBook_XML_Example.svg impact analysis is either lacking or poor
  • 17. First Impressions Shock of Configuration & Customization http://commons.wikimedia.org/wiki/ • Configurability has either been grafted on at the last File:Portrait_Dearnell_portrait.JPG minute or is the result of unsubstantiated speculation by the software team • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient http://commons.wikimedia.org/wiki/ • Functionality such as consistency checks and change File:Portrait_gilles.jpg impact analysis is either lacking or poor
  • 18. First Impressions Shock of Configuration & Customization • Configurability has either been grafted on at the last minute or is the result of unsubstantiated speculation Golf by the software team • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient ABC 123 • Functionality such as consistency checks and change impact analysis is either lacking or poor
  • 19. First Impressions Shock of Configuration & Customization • Configurability has either been grafted on at the last minute or is the result of unsubstantiated speculation by the software team • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient • Functionality such as consistency checks and change impact analysis is either lacking or poor
  • 20. First Impressions Shock of Configuration & Customization • Configurability has either been grafted on at the last minute or is the result of unsubstantiated speculation by the software team • No one thought about the importance of decision binding times • No one thought about the level of abstraction at which users typically articulate configuration needs • Modularity of configuration artefacts is insufficient • Functionality such as consistency checks and change http://commons.wikimedia.org/wiki/ File:Ann_dependency_graph.png impact analysis is either lacking or poor
  • 21. Market Assessment (Example) Tier 1 2 3 Length of Sales Cycle +++ ++ + Simple Web Based Marketing + ++ +++ Configurability Expectations +++ ++ + # of Potential Customers + ++ +++ Total Value ++ +++ + Tier-1 market is not always the biggest
  • 23. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products
  • 24. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products
  • 25. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products
  • 26. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products
  • 27. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products
  • 28. Economics of Software Software products can get killed by • Long time to market • Poor user interface • Configuration and customisation costs • Maintenance & developmemt costs of new features The last item eventually kills most products!
  • 29. Domain Analysis Analysis of variabilities & commonalities • Dimensions of variability (e.g. legislation, interface types, bus. units) • Binding times & asscociated roles • Elements within each dimension of variability • Effects of each variability in terms of product features • Market value of each dimension of variability Ask customers/prospects, don’t speculate
  • 30. Product Family Development Domain Engineering Timeboxed Iterations Define application family and develop production facility Application Engineering Environment Modelling Language Definitions +Tools (Editors, Generators, Interpreters, Transformations) +Application Engineering Process Application Engineering Timeboxed Iterations Produce family members Applications Applications Applications Applications
  • 31. Release Management Domain Engineering Timeboxed Iterations Define application family and develop production facility AE Environment R1.0 AE Environment R1.1 AE Environment R1.2 AE Environment R2.0 Feedback Feedback Feedback Application Engineering Timeboxed Iterations Produce family members R1.0 A,B,C, ... Apps R1.1 A,B,C, ... Apps R1.2 A,B,C, ... Apps
  • 32. Scalability http://commons.wikimedia.org/wiki/ File:Modular_origami.jpg Modules preserve simplicity
  • 33. Pain Point http://commons.wikimedia.org/wiki/ File:Ann_dependency_graph.png number of semantic links between modules Dependency graphs must also be modularised
  • 34. Models Species : DomesticAnimal isAbstract : yes dateOfBirth Models are software artefacts that represent Species : Dog Species : Cat isAbstract : no [2] isAbstract : no [2] isPoliceDog 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
  • 35. 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
  • 36. 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
  • 37. Interpretation <=> airplane or aircraft ? <=> commercial aircraft ? <=> ship or boat ? <=> ferry or cruise ship ? <=> car ferry ? <=> paddler or boat ? Observation: It works 80% of the time
  • 38. Less Speculation ... and much more validation • Guessing 80% of what customers need is not good enough • Get customers involved in product design • Instantiate models to obtain rapid feedback • Act on feedback - within weeks, not months (c) copyright 2006, Blender Foundation / Netherlands • Validate working software Media Art Institute / www.elephantsdream.org with selected customers on a monthly basis
  • 39. Domain Analysis Cheat Sheet
  • 40. Language design cheat sheet 40 Breaking down complexity into manageable modules
  • 41. 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