quick review understanding requirements software...

38
Agenda Quick Review Understanding requirements Software Process 1 CSE 5324, Summer 2017, Ali Sharifara

Upload: others

Post on 19-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Agenda

• Quick Review

• Understanding requirements

• Software Process

1CSE 5324, Summer 2017, Ali Sharifara

Page 2: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Quick Review

• What is unique about software?

• What is software process?

2CSE 5324, Summer 2017, Ali Sharifara

Page 3: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The Software Process

CSE 5324, Summer 2017

Page 4: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Outline

• A Generic Process Model

• The Waterfall Model

• The Spiral Model

• The Unified Process Model

• Process Assessment and Improvement

4CSE 5324, Summer 2017, Ali Sharifara

Page 5: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

A Generic Process Model

• A framework activity is

populated by a set of

actions

• Each action is defined

by a task set

– Tasks, work products,

quality measures, and

milestones

5CSE 5324, Summer 2017, Ali Sharifara

Page 6: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

How to Define a Framework

Activity

• Depends on the nature of the project

• Consider the communication activity

– Example 1: For a small project, the only necessary

action can be a phone conversation

– Example 2: For a more complex project, the

actions may include inception, elicitation,

elaboration, negotiation, specification and

validation.

6CSE 5324, Summer 2017, Ali Sharifara

Page 7: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

How to Identify a Task Set

• Also depends on the nature of the project

• Consider the elicitation or requirements gathering action

7CSE 5324, Summer 2017, Ali Sharifara

Example 1

• Make a list of stakeholders

• Invite all stakeholders to an

informal meeting

• Ask each stakeholder to make

a list

• Discuss requirements and

build a final list

• Prioritize requirements

• Note areas of uncertainty

Example 2

• Make a list of stakeholders

• Interview each stakeholder

• Build a preliminary list

• Schedule a series of facilitated

meetings

• Conduct meetings

• Produce informal user

scenarios as part of each

meeting

• …

Page 8: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The Waterfall Model

8CSE 5324, Summer 2017, Ali Sharifara

The different stages are performed in a linear fashion. (A sequential approach

to software development)

Page 9: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The Waterfall Model

• Advantages:

– The model is simple and easy to understand

– The model works well for small projects where requirements are very well

understood.

– It is easy to manage due to the rigidity of the model – each phase has

specific deliverables and a review process.

– Phases are processed and completed one at a time. Phases do not overlap.

• Disadvantages:

– Software delivered very late, and may delay discovery of serious errors.

– Difficult to make changes.

– Limited interaction with the user, only in the requirements stage and in the

deployment stage.

– Testing only performed at the end of the process.

– Failures/problems detected during testing can be very costly to fix.

– Emphasize completing a phase before going to the next one.

– High amounts of risk and uncertainty.

9CSE 5324, Summer 2017, Ali Sharifara

Page 10: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Why Not Waterfall?

10CSE 5324, Summer 2017, Ali Sharifara

This diagram is about features.

Almost 65% of the waterfall-

specified features were of little or

no value

A working model is not

available until late in the

project time space. Thus,

a major error may be

undetected until the very

late in the project, which

can be disastrous.

Page 11: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The V Model

11CSE 5324, Summer 2017, Ali Sharifara

This model is also known as Verification and Validation model

Page 12: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The V Model

• Testing is emphasized in this model.

• Test plan is developed during each phase prior to

implementation.

– Test plans should not be made only at the end of a project.

• Advantages:

– Higher chance of success over the waterfall model due to

the early development of test plans.

– Proactive defect tracking – that is defects are found at early

stage.

• Disadvantages:

– Very rigid and least flexible. (like the waterfall model)

– Fundamentally the same as the waterfall model.

12CSE 5324, Summer 2017, Ali Sharifara

Page 13: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The Spiral Model

13CSE 5324, Summer 2017, Ali Sharifara

Building progressively

more complete

versions.

Each cycle consists of four

phases: Planning, Risk

Analysis, Engineering and

Evaluation.

Each time when crossing

the horizontal line, the

customer is involved to

review the progress.

Each phase begins with

a design goal and ends

with the client reviewing

the progress.

Page 14: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The Spiral Model (2)

• Each phase is ended with a review by

concerned people

• Good for large and mission critical projects,

but risk analysis is critical and depends on

highly specific expertise

• Strong approval and documentation control.

• Additional Functionality can be added at a

later date.

• Software is produced early in the software life

cycle.

14CSE 5324, Summer 2017, Ali Sharifara

Page 15: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Risk and Risk Management plan

• Risks are situations or possible events that may cause a project

to fail to meet its goals.

• Risk management plan : Enumerates the risks and prioritizes

them in degree of importance, measured by a combination of

the impact and probability of each.

• For each risk, the plan also includes a mitigation strategy to deal

with the risk. For example, if the risk is that a particular technology

may not be ready, we could build an appropriate prototype

implementation in an early spiral cycle to evaluate the technology.

– Project cost overruns,

– Changed requirements,

– Technological advancement,

– Loss of key personnel,

– Competition from others

– Delay of hardware

15CSE 5324, Summer 2017, Ali Sharifara

Page 16: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The UP Model

16CSE 5324, Summer 2017, Ali Sharifara

Page 17: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The UP Phases

• Inception: Approximate vision, business case,

scope, vague estimates

• Elaboration: Refined vision, identification of all

the major requirements, resolution of high risks,

the core architecture (or baseline design), and

more realistic estimates

• Construction: Iterative implementation of the

remaining lower risk and easier elements

• Transition: beta tests, user documents, ready for

deployment (support, sales, etc)

17CSE 5324, Summer 2017, Ali Sharifara

Page 18: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The UP Phases (2)

18CSE 5324, Summer 2017, Ali Sharifara

Page 19: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The UP Phases (3)

19CSE 5324, Summer 2017, Ali Sharifara

Page 20: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

The UP Model (2)

• Iterative and Evolutionary: Each phase is

divided into a series of time-boxed iterations.

• Use Case Driven: Each iteration takes a set

of use cases from requirements all the way

down.

• Architecture Centric: Architecture drives the

exploration of all aspects of the system

• Risk Focused: High risk tasks are addressed

early in the project lifecycle

20CSE 5324, Summer 2017, Ali Sharifara

Page 21: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Iterative and Evolutionary

21CSE 5324, Summer 2017, Ali Sharifara

Page 22: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

UP Work Products

22CSE 5324, Summer 2017, Ali Sharifara

Page 23: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Feedback and Adaptation

• Feedback from early development to refine

requirements

• Feedback from tests and developers to refine

designs or models

• Feedback from early progress to refine

schedules and estimates

• Feedback from client and marketplace to re-

prioritize features

23CSE 5324, Summer 2017, Ali Sharifara

Page 24: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Feedback and Adaptation (2)

24CSE 5324, Summer 2017, Ali Sharifara

Page 25: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Elaboration Phase in Detail

• Use Case Analysis

– Find and understand 80% of architecturally

significant use cases and actors

– Prototype User Interfaces

– Prioritize Use Cases within the Use Case Model

– Detail the architecturally significant Use Cases

(write and review them)

• Prepare Domain Model of architecturally significant

classes, and identify their responsibilities and central

interfaces (View of Participating Classes)

25CSE 5324, Summer 2017, Ali Sharifara

Page 26: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Use Case Analysis

• What is a Use Case?

– A sequence of actions a system performs that

yields a valuable result for a particular actor.

• What is an Actor?

– Anything that needs to interact with the system. It

can be a person or another (external) system

• Use Cases describe scenarios that describe the

interaction between users of the system and the

system itself.

• Use Cases describe WHAT the system will do, but

never HOW it will be done.

26CSE 5324, Summer 2017, Ali Sharifara

Page 27: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Use Case Analysis cont.

• A use case is a flow of events in the system,

including interaction with actors

• It is initiated by an actor

• Each use case has a name

• Each use case has a termination condition

• Graphical Notation: An oval with the name of the use

case

27CSE 5324, Summer 2017, Ali Sharifara

ReportEmergency

Name of Use Case

Actors: Description of Actors involved in use case)

Entry condition: “This use case starts when…”

Flow of Events: Free form, informal natural language

Exit condition: “This use cases terminates when…”

Exceptions: Describe what happens if things go wrong

Special Requirements: NFR, Constraints

Page 28: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

What’s in a Use Case?

• Define the start state and any preconditions that accompany it

• Define when the Use Case starts

• Define the order of activity in the Main Flow of Events

• Define any Alternative Flows of Events

• Define any Exceptional Flows of Events

• Define any Post Conditions and the end state

• Mention any design issues as an appendix

• Accompanying diagrams: State, Activity, Sequence Diagrams

• View of Participating Objects (relevant Analysis Model Classes)

• Logical View: A View of the Actors involved with this Use Case,

and any Use Cases used or extended by this Use Case

28CSE 5324, Summer 2017, Ali Sharifara

Page 29: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Use Cases Describe Function not Form

• Use Cases describe WHAT the system will do, but never HOW

it will be done.

• Use Cases are Analysis Products, not Design Products.

29CSE 5324, Summer 2017, Ali Sharifara

Page 30: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Use Cases Describe Function, not Form

• Use Cases describe WHAT the system should do,

but never HOW it will be done

• Use cases are Analysis products, not design

products

30CSE 5324, Summer 2017, Ali Sharifara

Page 31: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Example – Use case

31CSE 5324, Summer 2017, Ali Sharifara

Page 32: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Benefits of Use Cases

• Use cases are the primary vehicle for requirements

capture in UP

• Use cases are described using the language of the

customer

• Use cases provide an easily-understood

communication mechanism

• When requirements are traced, they make it difficult

for requirements to fall through the cracks

• Use cases provide a concise summary of what the

system should do at an abstract (low modification

cost) level.

32CSE 5324, Summer 2017, Ali Sharifara

Page 33: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Use Case Associations

• A use case model consists of use cases and use

case associations

– A use case association is a relationship between use cases

• Important types of use case associations: Include,

Extends, Generalization

– Include

• A use case uses another use case (“functional decomposition”)

– Extends

• A use case extends another use case

– Generalization

• An abstract use case has different specializations

33CSE 5324, Summer 2017, Ali Sharifara

Page 34: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Heuristics: How do I find use cases?

• Select a narrow vertical slice of the system

• Discuss it in detail with the user to understand the

user’s preferred style of interaction

• Define the scope of the system.

• Discuss the scope with the user

• Use illustrative prototypes as visual support

• Find out what the user does

34CSE 5324, Summer 2017, Ali Sharifara

Page 35: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Analysis Model

• In Analysis, we analyze and refine the requirements described

in the Use Cases in order to achieve a more precise view of the

requirements, without being overwhelmed with the details

• Again, the Analysis Model is still focusing on WHAT we’re going

to do, not HOW we’re going to do it (Design Model). But what

we’re going to do is drawn from the point of view of the

developer, not from the point of view of the customer

• Whereas Use Cases are described in the language of the

customer, the Analysis Model is described in the language of

the developer:

– Boundary Classes

– Entity Classes

– Control Classes

35CSE 5324, Summer 2017, Ali Sharifara

Page 36: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Process Assessment and

Improvement

• To ensure that a software process meets a

set of basic process criteria

– SCAMPI (Standard CMMI Assessment Method for

Process Improvement)

– CBA IPI (CMM-Based Appraisal for Internal

Process Improvement)

– SPICE (ISO/IEC 15504, Software Process

Improvement and Capability Determination)

– ISO 9001:2000 for Software (A generic standard

for quality improvement)

36CSE 5324, Summer 2017, Ali Sharifara

Page 37: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

CMMI

• Level 1, Initial: Process unpredictable, poorly

controlled, and reactive

• Level 2, Managed: Process characterized for

projects and is often reactive

• Level 3, Defined: Process characterized for

the organization and is proactive

• Level 4, Quantitatively Managed: Process

measured and controlled

• Level 5, Optimizing: Focus on continuous

process improvement

37CSE 5324, Summer 2017, Ali Sharifara

Page 38: Quick Review Understanding requirements Software Processheracleia.uta.edu/~sharifara/5324/2_process.pdfImprovement •To ensure that a software process meets a set of basic process

Summary

• In the waterfall model the different stages are performed in a

linear fashion (sequential)

– Suitable for small projects

• The spiral model is similar to the incremental model, with more

emphasis placed on risk analysis.

• V-model is also known as Verification and Validation model and

testing is emphasized in this model.

• UP is an Iterative and evolutionary model.

– Each phase is divided into a series of time-boxed iterations.

• Use case is a sequence of actions a system performs that yields

a valuable result for a particular actor.

• Actor is Anything that needs to interact with the system. It can

be a person or another (external) system.

38CSE 5324, Summer 2017, Ali Sharifara