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.md (1568B)


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