POM L4 Flashcards Preview

POM > POM L4 > Flashcards

Flashcards in POM L4 Deck (24):

Inherent Problems with Software Development

• 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


Software Life Cycle (SLC, 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.


Methodology issues

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


Key questions for which software methodologies usually provide guidance

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


Where do we need Models?

- Communication (provides a common vocabulary)
- Analysis/Design : (enables reasoning about the future system)
- Archival (for sorting the design and rationale of an existing system)


Pros and Cons of Modelling

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

- Models can become complex


Models that support Communication (also called conceptual models)

- 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


Models that support Analysis and Design
(also called specification models)

- 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


Managerial Challenges of Modeling

• 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


Typical Software Life Cycle Questions

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



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


Modeling a Software Lifecycle

- Functional (Scenarios, user stories, use case model)

- Structural (object identification, class diagrams)

- Dynamic (sequence diagrams, statechart and activity diagrams)


Activity Diagram for the Life Cycle

Software development goes through a linear progression of states:
1) problem definition activity
2) software development activity
3) system operation activity.


Two Major Views of the Software Life Cycle

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

- Entity-centered (SLC is creation of deliverables)


Waterfall Model

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.



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.


Why 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


Iterative vs. Incremental

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.


Product iteration

- 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)


The functional model of software lifecycle contains ?

scenarios, user stories, use case models


What are software projects activities?

Requirement analysis, Program implementation, Testing, Delivery