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