Software abstraction and modelling Flashcards

1
Q

Software design

A

The activity of constructing models representing:

  • abstractions of data and computation
  • the organization of these abstractions into a working
    software system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Features of a good model

A
  • mapping feature: a model is based on an original (=system)
  • reduction feature: a model only reflects a (relevant) selection of the original‘s properties
  • pragmatic feature: A model needs to be usable in place of an original with respect to some purpose
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

who does what

A

picture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

descriptive <-> prescriptive

A

subject is described by <-> prescribes the subject

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

descriptive models

A

Sketches and throw-away models
- to better understand reality and to explore possible solutions
- short lifetime (usually)
- Models of ideas and vision about the system to be developed
- to exploit the model for having feedback before implementing the system
- Models extracted from a running system or source code
- for example, to visualise all possible calls between a set of
Java classes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

prescriptive models

A
  • They guide the development of the system
    • more detailed than descriptive models
    • specify constraints for the system
  • Common consumers of prescriptive models are developers or code generators (model-driven engineering - MDE)
  • Prescriptive models are often used for development
    • their importance might decrease when the system is implemented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

informal notations

A
  • Ad-hoc visualizations with no clear semantics
  • Examples: “box-and-line” or PowerPoint diagrams
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

semiformal notations

A
  • Standardised graphical elements and construction rules, semantics are mostly specified to allow basic analysis
  • Examples: UML (we will use it extensively in this course)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

formal

A
  • Precise semantics based on mathematical constructs that allow full formal analysis for syntax and semantics
  • Examples: architecture description languages (ADLs), e.g., Acme, AADL, AUTOSAR
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Software design vs. software architecture

A
  • Software design is the activity of creating an architecture
  • Software architecture is concerned with high-level, coarse-grained structures and decisions of a system
  • Software design is concerned with more local, fine-grained structures and decisions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Why do we need (architecture and) design?

A
  • They enable reasoning about large systems
    → abstractions and hierarchies help to manage complexity
  • They are the driver for software quality (not what the system does, but how it does it)
  • They enable separating a system into parts to let teams work on them in parallel
  • They are the bridge between the requirements and the implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly