csc340: tutorial 1 software lifecycles ta: yuan an date: 9:00-10:00am, fri. oct. 3, 2003 location:...

31
CSC340: Tutorial 1 Software Lifecycles TA: Yuan An Date: 9:00-10:00am, Fri. Oct. 3, 2003 Location: BA1130

Upload: jose-downard

Post on 15-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

CSC340: Tutorial 1Software Lifecycles

TA: Yuan An

Date: 9:00-10:00am, Fri. Oct. 3, 2003

Location: BA1130

In This Tutorial:

The stages in the waterfall life cycle About prototyping and incremental life

cycles The importance of project management How users may be involved in a project The role of CASE tools in systems

development

The Development Lifecycle

Starting an information system• Reasons for development of an information

system• Why does an information system fail?

Project Lifecycle• Waterfall life cycle model• Waterfall life cycle with iteration• Prototyping• Evaluation of prototyping

Starting an Information Systems

• Many reasons for development of information systems:– Problem driven: competition, crisis…– Change-driven: new needs, growth, change in

business, change in environment…– Opportunity-driven: new technology…– Part of previous plan…– ….

• But failure does happen.

Why Does an Information System Fail?

• End user’s perspective:– No system: “what system? I haven’t seen a system.”– Unusable– Insufficient power

• Client’s perspective:– Too expensive– Too late– Change of mind– Change of requirements

• Developer’s perspective:

– Wrong requirements– Insufficient resources– Incomplete requirements– Impossible requirements– Blame the others

Problems Causing Failures

• Quality problems:– The wrong problem is addressed.– Wider influence are neglected.– Analysis is carried out incorrectly.– Project undertaken for the wrong reasons.

• Process problems:– Requirements drift.– External events change the environment.– Implementation is not feasible.– Poor project management.

Avoiding the Problems

• We need to adopt strategies and procedures that will minimize the occurrence of the problems.

• There is no such thing as a ‘right’ or a ‘wrong’ strategy or procedure which produces a quality system.

• One major source of difficulty is the inherent complexity of software development.

A General PerspectiveBuilding computerized information Systems can be viewed as a form of problemSolving.

Problem Solving Model

• Main phases are– Data gathering– Problem redefinition

– Finding ideas– Finding solutions

– Implementation

These focus on understanding what the problem is about

Concerned with understanding more about the nature of the problem and possible solutions

The Development Life Cycle

• The information systems development process is a partially ordered collection of actions, carried out by one or more developers, testers, users, or other information systems in order to accomplish a task.

• The development life cycle is a process by which a information system is developed, tested, installed and maintained throughout its useful history.

• The concept of lifecycle is a useful project management tool. A lifecycle consists of phases, each of which is a process.

The Breakdown of Costs• For large software systems, involving >10k lines of code, the

breakdown of costs between different phases is as follows:– Requirements Analysis 5%– Design 10%– Programming-in-the-small 15%– Integration 10%– Maintenance and Evolution 60%

• Small software systems<5k LOC– Specification 10%– Decomposition 20%– Coding 20%– Optimization 15%– Testing 25%– Validation 10%

• Systems analysis and design more important.

What is Described by a Life Cycle?

• The lifecycle describes the temporal, causal and I/O relationships between different lifecycle phases.

• The lifecycle concept includes the concept of feedback (returning to a previous phase) as well as moving forward to the next phase.

• In the past, the lifecycle concept was applied to the management of complex systems that had some sort of physical hardware as their end product, e.g., missiles, communication networks, spacecraft, etc.

What Does a Life Cycle Consist of?

• A series steps through which the product progresses.

• A life cycle specifies:– The various phases of the process.– The order in which they are carried out.– The guidance for project management.

• Next: The Waterfall Life Cycle…

The Waterfall Life Cycle Model

Waterfall Life Cycle

• The traditional life cycle (TLC) for information systems development is also known as the waterfall life cycle model– So called because of the difficulty of returning to an

earlier phase

• The model shown here is one of several more or less equivalent alternatives– Typical deliverables are shown for each phase

Waterfall Model (cont’)• Consists of a set of phases that a project progresses through

in a sequential order. • Each phase must be completed before the project can progress

to the next phase. • At the end of each phase is some form of gateway, usually a

formal review where that decision is made. • There is no overlap between phases. • Straight forward, simple to understand and use. • Deliverables are frozen at the end of each phase and serve as

the baseline for the following phases. • You do not see the software until the end of the project (big

bang software development). • Changes are not supposed to happen or are limited or are

tightly controlled.

TLC Deliverables

• System Engineering– High Level Architectural Specification

• Requirements Analysis – Requirements Specification– Functional Specification– Acceptance Test Specifications

Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables

• Design– Software architecture specification– System test specification– Design specification– Sub-system test specification– Unit test specification

Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables

• Construction– Program code

• Testing– Unit test report– Sub-system test report– System test report– Acceptance test report– Completed system

Life cycle deliverables (adapted from Sommerville, 1992).

TLC Deliverables

• Installation– Installed System

• Maintenance– Change requests– Change request report

Life cycle deliverables (adapted from Sommerville, 1992).

Problems with TLC

• Real projects rarely follow such a simple sequential life cycle

• Iterations are almost inevitable

• Time elapses between system engineering and the final installation

• The design is unresponsive to business changes during the project

The Waterfall Life Cycle with Iteration

Iteration added to solvesome of the problems

Strengths of TLC

• Tasks in phases may be assigned to specialized teams

• Project progress evaluated at the end of each phase

• Manage projects with high levels of risks

• Next: Prototyping

Prototyping—Advantages

• Early demonstrations of system functionality help identify any misunderstandings between developer and client

• Client requirements that have been missed are identified

• Difficulties in the interface can be identified• The feasibility and usefulness of the system can

be tested, even though, by its very nature, the prototype is incomplete

Prototyping

Initial analysis

Define objectives

Specify

Construct Evaluate Prototyping completed

Prototyping—Problems

• The client may perceive the prototype as part of the final system

• The prototype may divert attention from functional to solely interface issues

• Prototyping requires significant user involvement

• Managing the prototyping life cycle requires careful decision making

Unified Software Development Process

• Captures many elements of best practice• Main phases

– Inception is concerned with determining the scope and purpose of the project

– Elaboration focuses requirements capture and determining the structure of the system

– Construction's main aim is to build the software system

– Transition deals with product installation and rollout

Size of square relative to time spent on workflow

Inception

Elaboration

Construction

Transition

Project Phases

1

2

3

4

5

6

7

8

9

10

Iterations within each phase

Requirements Analysis Design Implementation Test

Workflows

User Involvement

• Users can be involved in various ways– As part of the development team (DSDM)– Via a consultative approach– In fact gathering

Computer Aided Software Engineering

• CASE tools typically provide a range of features including– checks for syntactic correctness– repository support– checks for consistency and completeness– navigation to linked diagrams– layering– requirements tracing– report generation– system simulation– performance analysis– code generation

The Spiral Life Cycle Model