Lecture 2: Design Documentation Flashcards

1
Q

What is design?

A

Design is a problem-solving process. Its objective is to find and describe a way:

  • to implement the system’s functional requirements.
  • to respect the constraints imposed by the non-functional requirements
  • to adhere to general principles of ‘good’ quality.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a software solution?

A

A software solution is a compromise meeting all aspects:

  • implementation of functional requirements.
  • with respect to the constraints imposed by the non-functional requirements,
  • adhere to general priniciples of ‘good’ quality.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the goal of documentation?

A

The goal of documentation is to record and keep current the results of design decisions so that stakeholders find the information they need.

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

What is the result of a software design?

A
  • blueprint for the chosen solution

- design decisions

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

Why is it important to capture the rationale?

A

Decisions always have some rationale.

Organizations want to be able to reuse, support future change, increase personal effectiveness, use for training.

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

What is Software Design Description (SDD)?

A

A respresentation of a software design to be used for recording design information and communicating that design information to key design stakeholders.

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

What is a design entity: component?

A

•  No agreed upon definition
•  Any piece of software or hardware that has a clear role
-  Isolated, replaceable with a different component with equivalent functionality (DB, authentication server)
-  Reusable, generalized to fit in different types of systems (address book – for email, agenda, networking)
•  Special-purpose, providing very specific (and hence expensive) services (e-payment – for e-shopping, pay university fees, taxes)

  •   Runtime entity
  •   Delivering interfaces accessible during execution; computational unit; independently deployed unit; … [Szyperski 1998]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the design entity: Module?

A

Design entity: Module

  •   Other side of the medal
  •   A component that is defined at the programming language level
  •   E.g. methods, classes and packages are modules in Java
  •   Design-time entity
  •   Delivers properties like encapsulation, information hiding, separation of concerns, …
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a system?

A
  •   A logical entity consisting of hardware, software or both
  •   Has a set of responsibilities (goal of requirements analysis).
  •   Has a specification implemented by a collection of components.
  •   Continues to exist even if its components are changed or replaced.
  •   Sub-system:
  •   A system that is part of a larger system, and which has a defined interface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a design view?

A
  •   “A representation comprised of one or more design elements to address a set of design concerns from a specified design viewpoint.”
  •   Its purpose is to allow a stakeholder to focus on specific design concerns
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a design viewpoint?

A
  •   “The specification of the elements and conventions available for constructing and using a design view.” [IEEE 1016-2009]
  •   Example: interoperability viewpoint (description fragments)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a design overlay?

A
  •   “A mechanism to organize and present additional design information that does not strictly follow a viewpoint.”
  •   E.g. textual description of interoperability view
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a design rationale?

A
  •   “Information capturing the reasoning of the designer that led to the system as designed,
  •   including design options, trade-offs considered, decisions made, and the justifications of those decisions.” [1016-2009]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

To take design decision, what does the software engineer uses?

A

“current” knowledge:
•  the requirements
•  the design as created so far

“past” knowledge:
•  technology available
•  what has worked well in the past
•  software design principles and “best practices”

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

Seven rules for creating sound documentation

A
  •   Rule 1: write documentation from the reader’s point of view
  •   Rule 2: avoid unnecessary repetition
  •   Rule 3: avoid ambiguity
  •   Define notational conventions, stick to them
  •   Rule 4: use a standard organization
  •   Organize documentation for ease of reference
  •   Put “TBD” where info is (still) unknown
  •   Rule 5: record rationale
  •   Rule 6: keep documentation current (but not too current)
  •   Rule 7: review documentation for fitness of purpose
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How to review documentation

A

•  Goal: the design is documented well enough so that people can understand and use it.
•  A review answers questions about documentation’s consistency
- consistent with stakeholder community
- consistent with itself
- consistent with good form
- consistent with the system

17
Q

Goal of presenting design documentation

A

Goal: help the audience to appreciate the problem, see the solutions chosen, the why, and gain confidence that it is the right solution