POM L4 Flashcards

1
Q

Inherent Problems with Software Development

A
  • Requirements are constantly changing (Customers don’t know all the requirements in advance)
  • Frequent changes are difficult to manage
  • There is more than one software system to consider
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Software Life Cycle (SLC, Software Process)

A

• Set of activities and their relationships to each other to

support the development of a software system

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

Software life cycle model

A

• An abstraction that represents a software life cycle for the purpose of understanding, monitoring, or controlling the development of a software system.

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

Methodology issues

A

Methodologies provide general principles and strategies for selecting methods and tools in a given project environment when errors can occur

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

Key questions for which software methodologies usually provide guidance

A

How much involvement of the customer/ planning/ reuse/ modelling/ process/ control and monitoring.

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

Where do we need Models?

A
  • Communication (provides a common vocabulary)
  • Analysis/Design : (enables reasoning about the future system)
  • Archival (for sorting the design and rationale of an existing system)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Pros and Cons of Modelling

A

+ complexity reduction
+ makes implicit knowledge about the system explicit
+ formalizes knowledge so that participants can share it

  • Models can become complex
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Models that support Communication (also called conceptual models)

A
  • Most often used in the early phases of a project and during informal communications (The model does not have to be complete or consistent)
  • Used only to communicate idea to a person
  • Communication media such as a whiteboard, a mockup or even a napkin design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Models that support Analysis and Design

also called specification models

A
  • provides a representation that enables developers to reason about the system
  • The model is used to communicate the idea to a tool (it needs to be consistent and complete)
  • UML is preferred
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Managerial Challenges of Modeling

A
  • Formalizing knowledge is expensive (Antipattern: Analysis paralysis)
  • Models introduce redundancy (If the system is changed, the models must be changed. If one model becomes out of sync, it loses its value)
  • Models become complex
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Typical Software Life Cycle Questions

A

Which activities should we select for the software project?
• What are the dependencies between activities?
• How should we schedule the activities?

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

Tailoring

A

Adjusting a lifecycle model to fit a project

Naming: Adjusting the naming of activities
Cutting: Removing activities not need in the project
Ordering: Defining the order the activities take place in

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

Modeling a Software Lifecycle

A
  • Functional (Scenarios, user stories, use case model)
  • Structural (object identification, class diagrams)
  • Dynamic (sequence diagrams, statechart and activity diagrams)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Activity Diagram for the Life Cycle

A

Software development goes through a linear progression of states:

1) problem definition activity
2) software development activity
3) system operation activity.

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

Two Major Views of the Software Life Cycle

A
  • Activity-centered (SLC is set of development activities)

- Entity-centered (SLC is creation of deliverables)

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

Waterfall Model

A

An activity-centered life cycle model that prescribes a sequential execution of activities:v

  • The model assumes that software development can be scheduled as a step-by-step process that transforms user needs into code.
  • The goal is to never turn back once an activity is completed (restriction)

The key feature of the model is the verification activity (called “verification step” by Royce) at the end of each activity that ensures that the activity does not introduce unwanted or deletes mandatory requirements

The waterfall model measures progress by the number of tasks that have been completed.

17
Q

V-Model

A

The horizontal object flow denotes the information flow between activities of same abstraction level.

Higher levels of abstractions of the V-model deal with the requirements in terms of elicitation and operation. (The Client Acceptance Activity validates the understanding of the user against the requirements)

The middle-part of the V-model focuses on mapping the understanding of the problem into a software architecture.
The Component Integration and Test activity validates functional components against the preliminary design.

The lower level of the V-model focuses on details such as the assembly and coding of software components.
Unit Test activity validate units against their description in the detailed design.

18
Q

Why managers love waterfall models

A
  • Nice milestones
  • No need to look back (linear system)
  • Always one activity at a time
  • Easy to check progress during development: 90% coded, 20% tested

However, software development is non-linear

19
Q

Iterative vs. Incremental

A

Iterative means “re-do” or “re-work”
• Iterative development helps you to improve your product

Incremental means “to add onto something”
• Incremental development helps you improve your process

20
Q

Incremental Development

A

A strategy where the various parts of the system are developed at different times or rates and integrated as they are completed

21
Q

Iterative Development

A

A strategy in which time is set aside to revise and improve

parts of the system.

22
Q

Product iteration

A
  • Product iteration can result from incremental addition of functionality that had not been anticipated in a previous iteration
  • Product iteration can also result from restructurings (e.g. Cleanups of code smells)
23
Q

The functional model of software lifecycle contains ?

A

scenarios, user stories, use case models

24
Q

What are software projects activities?

A

Requirement analysis, Program implementation, Testing, Delivery