Lecture 4: Software Lifecycle Flashcards

1
Q

Definition SW Lifecycle

A
  • Software life cycle (also called software process)
    • Set of activities and their relationships to each other to support the development of a software system
  • Software life cycle model:
    • 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
2
Q

Where do we need Models?

A

Models support three different types of activities:

  • Communication: The model provides a common vocabulary. An informal model is often used to communicate an idea
  • Analysis/Design: Models enable developers to reason about the future system
  • Archival: Compact representation for storing the design and rationale of an existing system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How much Modeling? Advantage Problem

A
  • Advantages of modeling:
    • Modeling enables developers to deal with complexity
    • Modeling makes implicit knowledge about the system explicit
    • Modeling formalizes knowledge so that a number of participants can share it
  • Problem with modeling:
    • If one is not careful, models can become as complex as the system being modeled.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Models that support Communication

A
  • Also called communication models (conceptual models)
  • Most often used in the early phases of a project and during informal communications
    • The model does not have to be consistent or complete
    • The notation does not even have to be used correctly
  • The model is used only to communicate an idea to a person
    • If the idea is understood, the model has served its purpose
  • Informal models are our preferred way to support communication
  • Communication Media:
    • • A Whiteboard, a mockup, or even a napkin design.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Models that support Analysis and Design

A
  • Also called specification models
  • The model provides a representation that enables developers to reason about the system
  • The model is used to communicate the idea to a tool
    • The model needs to be made consistent and complete
    • The notation must be correct so the model can be entered into a CASE tool
  • UML is our preferred notation for models to models that support analysis and design.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Managerial Challenges of Modeling

A
  • Formalizing knowledge is expensive
    • Takes time and effort from developers
      • Antipattern: Analysis Paralysis
    • Requires validation and consensus
  • Models introduce redundancy
    • If the system is changed, the models must be changed
    • If several models depict the same aspects of the system, all of them must be updated
    • If one model becomes out of sync, it loses its value
  • Models become complex
    • As the model complexity becomes similar to the complexity of the system, the benefit of having a model is reduced significantly.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
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
8
Q

Tailoring

A
  • • There is no “one size fits all” software lifecycle model that works for all possible software engineering projects
  • Tailoring: 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
9
Q

Modeling a Software Lifecycle

A

We can use the same modeling techniques we use for software development:

  • Functional model of a Software Lifecycle
    • Scenarios, user stories
    • Use case model
  • Structural model of a Software Lifecycle
    • Object identification
    • Class diagrams
  • Dynamic model of a Software Lifecycle
    • Sequence diagrams, statechart and activity diagrams
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Functional Model of a simple Life Cycle

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

Activity Diagram for the Life Cycle

A

Software development goes through a linear progression of states called problem definition activity, software development activity and system operation activity.

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

Two Major Views of the Software Life Cycle

A
  • Activity-centered view of a software life cycle
    • Software development consists of a set of development activities
  • Entity-centered view of a software life cycle
    • Software development consists of the creation of a set of deliverables.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Process Groups, Processes, Activities and Tasks

A
  • Process Group: Consists of a set of processes
  • Process: Consists of activities
  • Activity: Consists of sub activities (phases, steps,…) and tasks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Process Groups exapmle

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

Waterfall Model (Royce 1970)

A
  • An activity-centered life cycle model that prescribes a sequential execution of activities
    • 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
  • The key feature of the model is the verification activity (called “verification step” by Royse) at the end of each activity that ensures that the activity does not introduce unwanted or deletes mandatory requirements
  • The model provides a simplistic view of software development that measures progress by the number of tasks that have been completed.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Waterfall model example

A

• Required by the U.S. Department of Defense for all software contractors in the 1980-90’s

• Software development activities:
• System Requirements Analysis/Design

• Software Requirements Analysis
• Preliminary Design and Detailed Design • Coding and CSU testing
• CSC Integration and Testing
• CSCI Testing
• System integration and Testing.

17
Q

V-Model

A
  • The horizontal object flow denotes the information flow between activities of same abstraction level
    • Of course, the layout of the activities has no semantics in UML
  • 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

Properties of Waterfall-based Models

A
  • Managers love waterfall models
    • 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
    • While a design is being developed, problems with requirements are identified
    • While a program is being coded, design and requirement problems are found
    • While a program is tested, coding errors, design errors and requirement errors are found.
19
Q

Definition: 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
  • Incremental development:
    • A strategy where the various parts of the system are developed at different times or rates and integrated as they are completed
  • Iterative development:
    • A strategy in which time is set aside to revise and improve parts of the system.
20
Q

Increments can cause iterations

A
  • Product iteration can result from incremental addition of functionality that had not been anticipated in a previous iteration
    • Example: If you do a functional baseline that runs through subsystems A and B and then you do another functional baseline that runs through A and C, in a lot of cases you’ll have to do at least some rework on A
  • This is why it’s good to anticipate requirements to a certain degree to mitigate the level of disruption
  • Product iteration can also result from restructurings
    • Examples: Cleanups of code smells, introduction of refactored solutions in antipatterns, introduction of new technology, architectural redesign.
21
Q

Which of the following statements are correct?

Select one or more:

a. The project manager must be involved in problem definition
b. The project manager must be involved system development activities
c. A functional model of a software life cycle includes class and sequence diagram
d. Testing and implementation can be done in parallel

A

b,d

22
Q

What are software projects activities?
Select one or more:
a. Requirement analysis
b. Testing
c. Merging source control’s branches
d. Program implementation
e. Delivery

f. Model design maintenance

A

a,b,d,e

23
Q

The functional model of software lifecycle contains

Select one or more:

a. scenarios
b. user stories
c. class diagrams
d. use case models
e. state charts
f. sequence diagrams

A

a,b,d

24
Q

Tailoring includes

Select one or more:

a. defining the order the activities take place in
b. reviewing the contract of the project
c. forming teams of programmers with different backgrounds
d. adjusting a lifecycle model to fit a project
e. removing activities not needed in the project

A

a,d,e

25
Q

Which of the following statements are correct?

Select one or more:

a. Whiteboard drawing is a specification model
b. Client Review is a communication mechanism
c. Napkin Design is a communication model
d. Email is a communication mechanism
e. Meeting is a communication event
f. An object model is a specification model

A

c,d,e,f

26
Q

A communication model is
Select one or more:
a. used to pass information to a tool
b. used to perform testing
c. must be complete and fully consistent
d. used during the early phases

A

d

27
Q
A