lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

software-abstraction-modeling.wiki (1573B)


      1 == Software abstraction & modeling ==
      2 software engineering: the application of engineering to software. a programmer writes a complete program, a software engineer creates a component.
      3 
      4 engineers abstract away from details that can be _safely_ ignored.
      5 
      6 model: simplified/partial representation of reality, defined to accomplish a task or reach an agreement
      7 
      8 abstraction: generalizing – setting aside specific and individual features
      9 
     10 software design: creating models representing an abstract view of the system
     11 
     12 === Models ===
     13 what is a model?
     14     * mapping feature: a model is based on an original
     15     * reduction feature: a model only reflects a relevant selection of the original's properties
     16     * pragmatic feature: a model needs to be usable in place of an original with respect to some purpose
     17 
     18 consumer and intent influence the abstraction level of a model
     19 
     20 descriptive models:
     21     * a subject is described by the model
     22     * sketches and throw-away models – short life time, used to better understand the reality
     23     * models of ideas and vision about the system to be developed – to exploit model for having feedback before actually implementing the system
     24     * models extracted from a running system or code – e.g. to visualize all calls between Java classes
     25 
     26 prescriptive models:
     27     * a model prescribes the subject
     28     * the subject does not yet exist
     29     * the models guide the development of the system
     30     * most common consumers are code generators
     31     * often used for development, so their importance may decay when the system is implemented
     32