Title: CSC340: Tutorial 1 Software Lifecycles
1CSC340 Tutorial 1Software Lifecycles
- TA Yuan An
- Date 900-1000am, Fri. Oct. 3, 2003
- Location BA1130
2In 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
3The 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
4Starting 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.
5Why Does an Information System Fail?
- End users perspective
- No system what system? I havent seen a
system. - Unusable
- Insufficient power
- Clients perspective
- Too expensive
- Too late
- Change of mind
- Change of requirements
- Developers perspective
- Wrong requirements
- Insufficient resources
- Incomplete requirements
- Impossible requirements
- Blame the others
6Problems 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.
7Avoiding 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.
8A General Perspective
Building computerized information Systems can be
viewed as a form of problem Solving.
9Problem 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
10The 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.
11The Breakdown of Costs
- For large software systems, involving gt10k 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 systemslt5k LOC
- Specification 10
- Decomposition 20
- Coding 20
- Optimization 15
- Testing 25
- Validation 10
- Systems analysis and design more important.
12What 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.
13What 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
14The Waterfall Life Cycle Model
15Waterfall 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
16Waterfall 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.
17TLC Deliverables
- System Engineering
- High Level Architectural Specification
- Requirements Analysis
- Requirements Specification
- Functional Specification
- Acceptance Test Specifications
Life cycle deliverables (adapted from
Sommerville, 1992).
18TLC Deliverables
- Design
- Software architecture specification
- System test specification
- Design specification
- Sub-system test specification
- Unit test specification
Life cycle deliverables (adapted from
Sommerville, 1992).
19TLC 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).
20TLC Deliverables
- Installation
- Installed System
- Maintenance
- Change requests
- Change request report
Life cycle deliverables (adapted from
Sommerville, 1992).
21Problems 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
22The Waterfall Life Cycle with Iteration
Iteration added to solve some of the problems
23Strengths 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
24PrototypingAdvantages
- 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
25Prototyping
26PrototypingProblems
- 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
27Unified 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
28(No Transcript)
29User Involvement
- Users can be involved in various ways
- As part of the development team (DSDM)
- Via a consultative approach
- In fact gathering
30Computer 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
31The Spiral Life Cycle Model