risk: developing software is a risky business l complex systems l break new ground l rarely work in...

42
Risk: Developing Software is a Risky business complex systems break new ground rarely work in totally familiar environment mistakes occur Most new software fails to achieve viability

Post on 21-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Risk: Developing Software is a Risky business

complex systems break new ground rarely work in totally familiar environment mistakes occur Most new software fails to achieve viability

Risk Reduction

What if we had reusable components? What benefits might be achieved?

Advantages of reusable components.

dealing with proven components

known characteristics no development time "error-free"

Software Acquisition

Should we buy software or write it ourselves?

Make-buy decision

Software Acquisition: Make or Buy

a) purchase off-the-shelf software

b) modify or customize off-the-shelf software

c) design custom-built software

The decision is really based on COST!

1) Will the delivery date of "off-the-shelf" software be sooner than that for internally developed software?

2) Will the cost of acquisition plus the cost of customization be less than the cost of developing the software internally?

3) Will the cost of outside support be less than the cost of internal support?

Software DevelopmentTakes a long time.

The longer a product remains in development, the greater the risk of – discouragement or boredom on part of team– disillusionment on the part of management

Risks -- What risks?

So what if the system doesn't work quite the way we

planned?

What could happen?

Remember we are building Software Systems for

Customers! Software consists of the computer programs

and associated documentation required to develop, operate, and maintain the programs.

A customer is a person, or persons, who pay for the system and usually decide the requirements

Remember we are building Software Systems for

Customers!A system is an association of interdependent

devices, people, rules, and/or procedures organized to form an integral whole to achieve a common purpose.– General Motors is a "system" for making and

selling cars. – A college is a "system" organized to provide

students with a post-secondary education.

Problems in SE are

immensely complex understanding the problem can be very

difficult often difficult to understand the nature of

the problem

Definition

Development

Maintenance

Project - Three stages:

1) Requirements -- Definition

2) Implementation -- Development

3) Final -- Verification, Release and

Maintenance

Project - Stage OneStage 1 = Phase 1

Software Requirements Specification (SRS)

Requirements -- Definition "bounded description of the scope of [the]

software effort" The purpose of software planning is to

provide a initial indication of a project viability

Project - Stage Two Implementation -- Development

1) Design = Phase II- concentrates on design, description of architectural

and data design

- modular structure is developed

- interfaces are defined

2) Implementation = Phase III- coding -- directly traceable to a detailed design

description

- documentation

Project - Stage Three

Final -- Verification, Release and Maintenance Testing Find and correct the maximum number of

errors before shipment Maintains software throughout its useful life

Where are we now: Requirements Analysis

Phase IDetermining a System’s Requirements is

the process of establishing the services

the system should provide and the

constraints under which it must

operate.

Software Requirements Specification(SRS) -- Phase I

In other words.... We are being asked to identify the problem the customer wishes to have solved. It including the qualities and tasks the the solution needs to perform.

It is generated using customer-supplied information

How do we gather data to determine a Project’s

Requirements?

Observation - Watch Interview - Listen Research - Learn

Observation: Watch, Who, Where, Why?

Watch the way it is done: Go to the customer’s site, spend time in the users real-world environment!

Who does the job? Where is it done? Why is it done in this particular way?Learn everything you can about the way the

process is done. At this stage it doesn’t matter if it is done by hand or by computer.

Interview

Determine who are the project’s stakeholders!

Talk to customers Talk to users Talk to other stakeholders

Research

Study documentation provided by the customer.

Collect materials generated by the existing system, even if such materials are paper-and-pencil versions

Examine the input and output currently generated

What is a General Requirement?

A requirement is a statement (specification) of what a system must do !

The things about the system users can observe.

The “goal” of the system. Written in English (natural language)

What is an SRS?

"Architecture" of the system

Characteristics of “good” requirements.

1. They are precise, with no room for misinterpretation by users or implementers.

2. They specify just what the system must do, NOT how to do it.

3. They show conceptual integrity (Each requirement interacts well with the others).

“Good” requirements

Could it be argued that the requirements are the user

interface?

Constraints or Nonfunctional Requirements

A constraint is a limitation on possible implementations of the system.

A constraint does not contribute to the functionality of the system.For example:

- particular language required by customer

- particular algorithm for one part of the system

- particular format for temporary data storage

Constraints

In designers best interests to negotiate away constraints since they limit implementation freedom.

However, since the customer is paying for the product, they normally get to impose constraints if they really want them.

Implementation Detail

Any property of the system that should NOT be visible to users

Analysis/Definition Phase

Accuracy and completeness are the primary characteristics of good analysis.

This is the plan!

Project Plan Must Be Complete!

Missing information represents errors by omission!

Checklists help Select clear-cut, rational,

measurable goals for the product and process

Software Requirements Specification

The SRS: Is NOTNOT a designdesign document.

– Design focuses on how the problem will be solved!

– The SRS focuses of WHAT IS the problem?

Should set out what the system should do without specifying how it should be done.

One-to-one mapping from software requirements document onto the final system design.

Software Requirements Specifications --

This is a reference tool!

Software Requirements Specification (SRS)

Identifying need is the starting point in the evolution of a computer based system.

Analyst assists the customer in defining the goals of the system (product)– What information will be produced?– What information is to be provided?– What functions and performances are required?

Software Requirements Specification (SRS)

Distinguishes between Customer "needs" --

AND

Customer's "wants" --

Research and ObservationHow do we get what we need to create the

Software Planning Document? Obtain copies of ALL operating documents Assess existing documents Assess current procedures Focus on identifying visible Observe current procedures Cross “fertilization”

The Interview Process not everything spoken is the truth sometimes people lie or forget facts most often they speak from their

own ignorance or point of view interview many people to balanced

information evaluate what you are hearing watch body language

The Interview Process

Provide feedback What is it I heard? What do I understand? Rephrase critical information Ask the same question in a slightly

different way, do you get the same response?

The Interview Process

Put person you are interviewing at ease.

Avoid or Reduce interruptions. Focus attention

The Interview Process

Meeting of minds: – review as you go along

Note taking? What happens after?

What happens after the interview?

Immediately write down interview results. Research show that even in a life-and-death

situations:

50% of what took place is forgotten within 30 minutes.

Follow-up Memo

The Interview Process: Follow-up Memo

Thank You Summarizing discussion Identify additional questions