Methodologies and Lifecycles

advertisement
David Patel
Appendix A - Methodologies and Lifecycles
Academic Objective 1 – Methodologies and Lifecycles
A1 Analysis of the Methodology and Lifecycle to be Used
A1.1 Introduction .............................................................................................. 1
A1.2 Waterfall Development Model.................................................................. 2
Advantages ...................................................................................................... 2
Disadvantages ................................................................................................. 3
A1.3 Prototyping .............................................................................................. 3
Advantages ...................................................................................................... 4
Disadvantages ................................................................................................. 4
A1.4 Prototyping Advances .............................................................................. 5
A1.4.1 Spiral Development Process ................................................................ 5
Advantages ...................................................................................................... 6
Disadvantages ................................................................................................. 6
A1.4.2 Incremental Development ..................................................................... 6
Advantages ...................................................................................................... 7
Disadvantages ................................................................................................. 7
A1.4.3 Iterative Development Process ............................................................. 7
Advantages ...................................................................................................... 8
Disadvantages ................................................................................................. 8
A1.4.4: Rapid Application Development ........................................................... 8
Advantages ...................................................................................................... 9
Disadvantages ................................................................................................. 9
A1.4.5: Dynamic Systems Development Method (DSDM) ............................. 10
Advantages .................................................................................................... 12
Disadvantages ............................................................................................... 13
A1.5 Structured Systems Analysis and Design Method (SSADM) ................. 13
Advantages .................................................................................................... 15
Disadvantages ............................................................................................... 16
A1.6 Conclusions ........................................................................................... 16
A1.1 Introduction
This section will analyse the different methodologies and lifecycles available
in developing an information system. A methodology is defined as “…a
system of ways of doing things especially regular and orderly procedures”1.
This section discusses in depth the various merits and downfalls of different
development strategies. Such strategies include that of Rapid Application
Development, Prototyping, The Spiral Model, Dynamic Systems Development
and Tom Gilb’s Incremental Development. There are also a number of other
methodologies available such as Jackson Systems Development (JSD) and
Effective Systems and Human Implementation of Computer based System
(ETHICS). However, the objective is to evaluate those methodologies
available to the developer, which are more suited to database applications, in
order to select the most appropriate one for this projects development.
1
“Introduction to Methodologies and SSADM”
-1-
David Patel
Appendix A - Methodologies and Lifecycles
A1.2 Waterfall Development Model
Also referred to as the Systems Development Life Cycle Model (SDLC).
The focus of the waterfall model is to ensure that the internal architecture is
well structured, to meet basic quality criteria and is described as “an approach
to developing an information system… that is characterised by a linear
sequence of steps that progress from start to finish without revisiting any
previous step”2.
The five common stages comprise (illustrated in figure 1.1):
1. Analysis
Here the system requirements are gathered and defined. Any existing
systems can also be evaluated and any inefficiency can be highlighted.
2. Design
A design specification is derived from requirements analysis, where
plans are made concerning physical construction, hardware, operating
systems, programming, communications and security issues.
3. Build
Using the design specification, the system is developed and
components built. Additionally, the system will also be tested and user
training will occur.
4. Implement
The system is installed and implemented. This can be through either a
gradual phased process or through a more cost effective launch of the
complete system.
5. Operation and Maintenance
For a system to remain effective it must be constantly monitored and
evaluated. Regular maintenance will ensure the integrity of the
system.
Fig. 1.1: Waterfall Development Model3
Analysis
Design
Build
Implement
Operation and Maintenance
Advantages
 Easy to understand
 Quality built-in throughout
 Configuration management
 Clear and defined stages
 Forced to do analysis and design first
2
3
http://searchvb.techtarget.com/0,,sid8_gci755068,00.html
Adapted from “Software Process Models”
-2-
David Patel
Appendix A - Methodologies and Lifecycles
Disadvantages
 Time between agreeing requirements and delivery of final product
 Risk in confirming customer requirements and user-interface, as there
is no revision
 Based on paper
A1.3 Prototyping
Prototyping has been described as a primary “…aid to building the right
software by the simple process of having more than one go at it and learning
from the mistakes” (Tate, 1995). So the prime focus of prototyping is to
ensure that both users and developers understand system requirements
through requirements elicitation and validation, whereby users experiment
with prototypes and consequently any errors or requirement omissions are
revealed to developers. This can be conducted with all project deliverables,
such as:
 Specifications
 Models
 Code
 Interfaces
There are two distinct forms of prototyping (illustrated in figure 1.2):
1. Evolutionary
Also known as exploratory, production, or operational prototyping,
where real data is utilised producing real outputs. Evolutionary
approaches use the same target language as the prototyping
language, so that the components can be developed and refined
further after testing. Each new prototype forms a functional part of the
final delivered system. Development would start with well-understood
requirements.
2. Revolutionary
Also known as rapid, throwaway, or non-operational prototyping where
the objective is to ensure that system requirements are understood
through mock-ups or models. A revolutionary approach usually uses a
different language to the target language, as the components are
discarded once problems are identified. Thereby, reducing risk by
experimentation and exploration before implementation into the final
language. Development would start with poorly understood
requirements.
Fig. 1.2: Distinguishing Outputs of the Two Approaches4
Evolutionary
Prototyping
Delivered System
Revolutionary
Prototyping
Executable Prototype
& System Specification
Outline Requirements
4
Adapted from Ian Somerville, 2000
-3-
David Patel
Appendix A - Methodologies and Lifecycles
Advantages
 Speedy Delivery
Development time is greatly reduced as several phases can be
conducted simultaneously and an operational prototype can be
produced in weeks rather than months, alleviating waiting times usually
associated with the software process to provide a functional system.
 Accurate System
Due to the active user participation during design and development,
along with constant constructive feedback, it is nigh on impossible to
produce a system which does not meet requirements.
 Reduces Risk and Cost
Again, due to active user involvement, errors are detected early on. It
has been reported by Gremillion and Pybern (1988) “… that total
systems development costs by the prototype approach are usually less
than twenty-five percent of the costs with the traditional approach”.
 Satisfies Users
As users are more involved they are more likely to commit to the
system and its implementation if they can foresee a system emerging,
which meet their specific requirements.
 Omits Communication Problems
Communication errors usually associated with other system
development methodologies are omitted as users can point out
discrepancies easier with a working system rather than a paper-based
system, ensuring that there are no misunderstandings.
Disadvantages
 Final System Does Not Evolve
As there are no end of stage reviews it may be difficult to contain the
scope of the project and a final system may not emerge even after
several attempts. Therefore good project management practice here is
essential to avoid delays and meet deadline requirements.
 Inadequate Documentation
As the main emphasis is on producing prototypes, system
documentation maybe neglected and is often missing or incomplete.
 System Integrity
Again, if too much focus is placed on prototype production, other
system features such as backup, recovery, performance and security
maybe become neglected.
-4-
David Patel
Appendix A - Methodologies and Lifecycles
A1.4 Prototyping Advances
Prototyping principals have been developed further and now have modern
descendants in the form of RAD, DSDM, and Incremental Development,
which all provide their own principals and concepts for how prototyping can be
conducted effectively. The remainder of this section will explore these
options.
A1.4.1 Spiral Development Process
Barry Boehm originally devised the spiral model in 1998 (see figure 1.3), and
it’s based on an evolutionary prototyping approach coupled with the linear
approach of the waterfall method (also referred to as the Evolutionary Spiral
Process Model [ESP]).
Each turn covers the same sequence of tasks:
 Plan next phase
Next phase of the spiral is planned defining project information such as
time and resources available.
 Determine objectives, alternatives and constraints
Additional objectives for a specific phase are determined.
 Evaluate alternative solutions and resolve risks
Risks are identified and alternate solutions may be sought to mitigate
risk.
 Develop and verify next-level product
Products are developed utilising any available methodologies.
 Evaluation of results
Software is evaluated and user feedback is sought.
Fig. 1.3: The Spiral Development Model5
5
Determine objectives, alternatives
and constraints
Evaluate alternatives, identify
and resolve risks
Plan next phase
Develop and verify next level
product
Kathrin, M., 2002
-5-
David Patel
Appendix A - Methodologies and Lifecycles
As process path spirals outwards, each outward movement will accumulate
costs. The main distinction between with the spiral and other methodologies
is that “… risks are explicitly assessed and resolved throughout the process”6,
this enables risks to be highlighted and resolved before committing to an
erroneous system. At the end of each revolution decisions are made as to
whether it is still viable and practical to continue with the project. The spiral
approach is typically used where there is a large final system and there are
unclear or vague requirements.
Advantages
 Focus is on risk elements, ensuring high development risk is avoided,
providing opportunities to abandon those projects early.
 Lots of reworking and testing ensures an adequate final system.
Disadvantages
 May be difficult to estimate cost and project closure times.
 Small projects will incur relatively high costs.
 Correct users must be involved in risk evaluation and testing
processes, otherwise information gained is deemed meaningless.
 Revolutionary prototype features may not be able to be converted into
final implementation language.
A1.4.2 Incremental Development
Tom Gilb devised incremental development to be used as a strategy for
making progress in small steps to get early tangible results by combining
elements from the traditional waterfall model and an iterative prototyping
approach. Indeed, the approach may be used in conjunction with an iterative
approach. Firstly, the linear sequence of the waterfall model is applied until
increment one arrives; this process is then repeated until the next increment
of the software is delivered, these processes can be conducted in parallel
(see diagram 4). To help achieve this the problem would have to be
partitioned into several sub-problems so they can be developed in turn. It is
general practice to prioritise requirements, and those high priority
requirements are usually incorporated into initial increments. As each
partition becomes complete it is tested and integrated with other partitions.
Although system requirements are fixed for each increment, the system can
be evaluated at each stage to determine future partitions, which permits
constant evolution of requirements. However, it is important that the project
has milestones (critical dates for completion of major components), with
timeboxes within it that clearly allocate resources.
6
Sommerville, I., 2000
-6-
David Patel
Appendix A - Methodologies and Lifecycles
Fig. 1.4: Incremental Development Process7
Define system
requirements
Design system
architecture
Specify system
increment
Build system
increment
Validate
increment
Validate system
Integrate
increment
NO
Deliver final
system
System
complete?
YES
Advantages
 Delivers tangible results towards the final system with each increment.
 Permits parallel development.
 Lower risk of project failure compared with other approaches.
 High priority requirements are usually delivered first, this guarantees
extensive testing of those vital requirements.
Disadvantages
 Early increments may not be flexible enough to add increments or
requirements; consequently the system architecture may need a
complete overhaul.
 In some instances it may be impossible to devise comprehensive
system requirements.
A1.4.3 Iterative Development Process
Some authors on occasion use the terms iterative and incremental
interchangeably, however, “…they are distinct independent development
strategies”8. Whilst incremental development focuses on developing a new
system, in contrast, the purpose of iterative development is to allow reworking
of part of a system to remove mistakes or to make improvements based on
user feedback. After each iteration, an evaluation of the result and planning
to improve the correctness of the system and the quality of design would need
to occur. The number of iterations that would need to occur could be
uncertain depending on how much of the system would need to be corrected,
it may therefore be difficult to define an end to the project.
7
8
Adapted from Sommerville, I., 2000
Kavanagh, M., 1998
-7-
David Patel
Appendix A - Methodologies and Lifecycles
Fig. 1.5: Iterative Development Cycle9
Plan and Elaborate
Build
Development Cycle
1
Refine Plan
Synchronise
Artifacts
Deploy
Development Cycle
2
Analyse
...
Design
Build
Test
Advantages
 Any misapprehensions and inconsistencies in requirements are usually
discovered early, so reaction times are quicker, improving overall
quality.
 Each iteration is closely monitored and progression is tangible after
each.
Disadvantages
 May be difficult to determine the end of a project lifecycle.
 Open to abuse, developers may provide substandard prototypes as
they can always improve upon it in future iterations.
A1.4.4 Rapid Application Development
Rapid Application Development (RAD) responds to the continuous changing
requirements of a business in such a competitive world and it aims to deliver
systems more rapidly, indeed its main objective is “…speeding up the
development process”10. It achieves this through a collection of tools,
techniques and methodologies, which actively involves user participation in
development of a system in the form of Joint Application Development (JAD)
workshops. JAD identifies important users early on and will involve group
meetings (with users, stakeholders and developers) to analyse existing
systems, collect data and identify new system requirements and solutions. It
uses an evolutionary timebox approach rather than a traditional lifecycle
approach. A timebox has been defined as a “…period during which work on
that particular aspect of the system will be carried out”11. The timeframe is not
subjective to change, rather functional requirements are prioritised within the
timebox and less essential features may have to wait to be included and built
into future iterations. However, RAD has been criticised for being a fairly
unstructured approach and there is no commonly defined framework for its
completion.
9
Hunger, M., 2000
Avison and Fitzgerald (1995)
11
Dashwood, P.E.C. (2001), “Shoot The Rapids, Avoid The Waterfall”
10
-8-
David Patel
Appendix A - Methodologies and Lifecycles
There are four main phases in RAD:
1. Requirements Planning
During this phase requirements are defined either through JRP (Joint
Requirements Planning) workshops, or through JAD workshops. The
distinction between these workshops is somewhat blurred and many
organisations now opt to combine the two, however it is vital that the
correct users are selected to attend these workshops so that informed
decisions and progress can be achieved.
2. User Design
Again, JAD workshops are utilised in determining user design issues.
For example, in the case of a database program, issues such as user
interfaces, system processes, data entry methods, screen dialogues,
and reports required can be defined. These will be confirmed through
diagrams from CASE tools, prototyping techniques, and a repository is
formed.
3. Construction
This phase follows on from user designs and functional prototypes are
produced with detailed design and code generation. Here prototypes
are developed, put into operation and then further refined and modified
if necessary through a series of iterations using a timeboxing approach.
4. Cutover
During this phase the new system will be phased-in in a parallel
manner (alongside the old system), whilst users endure final training
and testing ensuring system adequacy, eventually leading to the old
systems demise.
Advantages
 Evolutionary Timebox Approach
This means speedier delivery of the system in relation to other
approaches. In fact RAD aims to produce “…75 per cent of system
functionality… in the first 90 day timebox”12. Consequently applications
go into production and emerge sooner than with other approaches and
due to the nature of constant refinement and re-evaluation, all functions
are guaranteed to be accurate.
 Forces Teamwork and Satisfies Users
RAD forces the interaction of both users and stakeholders, and as is
the case with prototyping methods users feel more involved and they
are more likely to commit to the system.
Disadvantages
 Training, Time and Intensity
Both developers and users will need to be trained in RAD techniques
and tools otherwise the approach cannot be adopted. RAD takes up a
higher percentage of users time compared with other approaches and
there is also a danger to both developers and users of exhausting
themselves due to the high intensity nature of workshops and stringent
timeboxing methods.
12
Avison and Fitzgerald, 1995
-9-
David Patel


Appendix A - Methodologies and Lifecycles
May Lack 100% Functionality
All required functions may not be built in, unlike traditional approaches
where developers endeavour to ensure that all requirements are met,
whilst RAD prioritises essential functions over desired functions.
Open to Abuse
If initial design is not quite right, there may be a tendency for users to
just accept it and build upon it, rather than going back through a
lengthy process of initial redesign. Developers may also have this trait.
A1.4.5 Dynamic Systems Development Method (DSDM)
As stated in the above section, RAD is an unstructured approach and there is
no clearly defined framework for its completion. To overcome this, in January
1994 “…a group of RAD users and suppliers have formed a consortium to
define standards and a framework for RAD called Dynamic Systems
Development Method (DSDM)” (Avison and Fitzgerald, 1995). DSDM has
also been described as providing “… a framework of controls for building and
maintaining systems that meet tight time constraints and provide a recipe for
repeatable success”13.
As is the case with RAD, DSDM also utilises a highly user participative
approach which uses Joint Application Development workshops. Using
traditional development methods, functionality requirements are usually
defined and fixed early on in a project and the time needed and the resources
required are variable, however with DSDM the time and resources are fixed
and the functionality requirements of a system are allowed to change.
Although traditional methods normally include timeboxes, again DSDM uses a
unique approach of breaking these down even further, assisted through
prioritisation. Each timebox is fixed and will have a set of requirements that
will need to be met within it. These functionality requirements are allowed to
be variable as they are prioritised using MoSCoW Rules:
“Must Haves fundamental to the projects success
o
Should Haves important but the projects success does not rely on these
Could Haves can easily be left out without impacting on the project
o
Won't Have this time round can be left out this time and done at a later date”14
This ensures the likelihood of projects being completed on time. In fact
DSDM includes a unique 80/20 rule whereby it aims to deliver 80% of
functionality within 20% of the time (compared with other methodologies).
Many methodologies are designed to support only particular CASE tools,
however, DSDM is designed to use a multiplicity of development tools, and
can support “…object-oriented or structured analysis and design approaches”,
(Stapleton, 1998). A project team would usually consist of six members,
including:
 Project manager
 Senior programmer
 Junior programmer
 Ambassador user (represents entire user community)
13
14
Saber Consulting
DSDM Consortium, 1997
- 10 -
David Patel
Appendix A - Methodologies and Lifecycles
The DSDM lifecycle consists of five stages (see figure 1.6):
1. Feasibility Study
The suitability of the application for using a DSDM approach is
determined using a suitability filter of seven questions which takes
weeks as opposed to months in other methods.
2. Business Study
Here the scope of the project is defined along with business and
technical specifications, these are baselined and prioritised using
Moscow rules. Again, this stage is relatively quick and should take no
longer than a month.
3. Functional Model Iteration
Focuses on delivering prototypes which refine the high priority
functional and informational needs, with a view to testing what has
been produced for integration to occur into the final system through a
series of increments. Therefore the system must be robust enough to
conform with any non-functional requirements such as performance
and reliability.
4. Design and Build Iteration
Once a functional model is complete the focus then shifts on providing
a solution which can be safely delivered to and tested by end users,
this will also include as many non-essential features time permits.
5. Implementation
This aims to deliver the latest increment solution to the intended
audience. Users who have not been involved in testing procedures will
need to undergo training. Any functions or requirements, which have
not been catered for, may mean a return to the business study,
functional model iteration, and design and build iteration phases.
(All phases are undertaken using the unique timeboxing approach)
- 11 -
David Patel
Appendix A - Methodologies and Lifecycles
Fig. 1.6: DSDM Development Framework15
Advantages
The DSDM consortium bases its fundamental successes on the nine key
principals of software development, and these can all be considered
advantages of DSDM:
1. Active user involvement is imperative.
Users educated in DSDM, ensures users are more likely to commit to
the system, training costs are also reduced.
2. DSDM teams must be empowered to make decisions.
No decisions have to be verified, making the development process
more efficient.
3. The focus is on frequent delivery of products.
Visual and speedy progress.
4. Business suitability is the essential criterion for acceptance of
deliverables.
Meets business goals and objectives too.
5. Iterative and incremental development is necessary to converge
on an accurate business solution.
Initial design constantly improved.
6. All changes during development are reversible.
No need to stick with unsatisfactory design.
7. Requirements are baselined at a high level.
Ensures most important requirements are met.
8. Testing is integrated throughout the lifecycle.
Ensures integrity of system.
9. A collaborative approach between all stakeholders is vital.
Ensures all aims are catered for.
15
www.dsdm.org
- 12 -
David Patel
Appendix A - Methodologies and Lifecycles
Disadvantages
Is costly to implement, as DSDM requires both developers and users to be
trained to employ it effectively, therefore it may not be suitable for small
organisations or one-off projects.
A1.5 Structured Systems Analysis and Design Method (SSADM)
SSADM was first introduced in 1981 as a result of the collaboration between
the Central Computing and Telecommunications Agency (CCTA) and UK
based consultants Learmonth and Burchett Management Systems (LBMS),
with the latest version SSADM 4+, released in 1995. SSADM has previously
been used in a number of government applications.
SSADM as the title suggests, is a method per se, and should not be confused
with methodology. It only forms part of a methodology when its tools and
techniques are used in conjunction with traditional methods such as the
waterfall approach, due to the fact that SSADM “…excludes the steps which
involve the construction, testing and implementation of the software”16.
To oversee project management SSADM is also used in conjunction with a
technique known as PRINCE (PRojects IN Controlled Environment).
SSADM also considers the importance of the user role due to its user-oriented
approach, and they are involved throughout the process through workbenches
(similar to JAD workshops). Additionally, the approach is data-driven, is
highly structured, with very detailed rules and guidelines, which must be
adhered to. The whole process is clearly documented throughout with the
emphasis on data modelling and the database. Data modelling is achieved
through three key techniques which all view the system from three different
angles which can be cross-referenced to check consistency:
1. Logical Data Modelling
The data requirements of the system are defined and documented in
terms of which data should be stored and manipulated in a system.
This is represented by the LDS (Logical Data Structure, traditionally
referred to as an Entity-Relationship Diagram/Model in other methods),
which contains data entities and items, and the relationships between
them.
2. Data Flow Modelling
The informational flow of data around the system is represented by
Data Flow Diagrams (DFDs), which concerns the input/output
processes and activities of how information is allowed to be
manipulated, and finally where the information flows to and where it will
be stored. This gives a clear visual representation of functionality,
opposed to data attributes (as implied by the title), and is also
supported by textual descriptions, which form the “…basis for program
specification”17.
3. Entity Event Modelling
A process whereby business events that cause entity changes are
modelled and documented through Entity Life Histories which shows
how each entity is allowed to change, what causes change, and when
it can change. For instance, a client entity can change if they moved
16
17
“Structured Systems Analysis and Design Method (SSADM)” [online]
www.cee.hw.ac.uk/ism/msc7/week6/ssadm/ssadm.doc
- 13 -
David Patel
Appendix A - Methodologies and Lifecycles
address, or could be deleted if the client were to move their business
elsewhere.
SSADM consists of five main stages, or modules that are in turn broken down
into stages, steps and tasks:
1. Feasibility Study
A single stage process involves high-level analysis of business to
determine projects technical, operational, and financial feasibility.
(DFD and LDS conducted here).
2. Requirements Analysis
A two-stage process whereby stage 1 investigates the current
environment, and stage two investigates a series of business options
available for the required system (Business System Options), the
requirements from stage 1 are evaluated and their implications and
benefits derived, additionally includes non-functional requirements
(cost, time). (More detailed DFDs and LDS produced in these two
stages).
3. Requirements Specification
Again a one-stage process where system requirements are determined
developed, verified, and DFDs, LDS are finalised and ELHs
constructed, forming the basis for the final two modules.
4. Logical System Specification
Comprises of two stages, Technical System Options (TSO) such as
cost, facilities (development environment/applications), performance,
and support expected from supplier are determined. Stage two,
Logical Design defines the logical exchange of data, specifically,
update processing and system dialogues.
5. Physical Design
Single stage process which combines both the logical and technical
system specifications to enable the physical design of the system to be
formulated. This will include producing physical screen designs and
program specifications.
Figure 1.7 shows the modules and stages of SSADM along with the outputs
and lifecycle stage.
- 14 -
David Patel
Appendix A - Methodologies and Lifecycles
Fig. 1.7: The Structure of SSADM18
Advantages
 SSADM is a user-oriented approach, involving users throughout,
ensuring requirements are met, and are of higher quality (due to
constant review).
 Unique cross-referencing of techniques again ensures all requirements
are met and ensures system integrity as it exposes fundamental design
flaws.
 May utilise any available CASE tools, not just those designed
specifically for SSADM.
18
“The Stages of SSADM”
- 15 -
David Patel
Appendix A - Methodologies and Lifecycles
Disadvantages
 Development process is expensive and exhaustive; therefore it is vital
to ensure that enough funds, human resources, and time are available,
making it unsuitable for projects of a small nature.
A1.6 Conclusions
From analysing the various methodologies available it clearly emerges that
there is no one conquering methodology or lifecycle to ensure the success of
systems development. Each method has its associated strengths and
weaknesses. Although the methodologies are distinct and have distinguishing
features, the methods remain relatively similar in structure and all have an
element of re-evaluation (with the exception of the waterfall approach). There
are patterns of work tasks and procedures which are identical (perhaps using
different terminology) and some techniques can be used in conjunction with
one another (for instance SDLC and SSADM). This insinuates that perhaps
the tools and techniques from SSADM could also for instance, be combined
with a prototyping approach, indeed there is no reason to suggest why not.
Therefore in order to select the most appropriate methodology that best suits
the product, its advisable to be selective on certain aspects and adjust each
one. An amalgamation of tools and techniques from the various methods can
be bought together to form a new development approach that best fits the
product.
Shaftesbury Junior School require the input of results of national tests, which
take place in January, however some requirements are still vague, although it
has already been acknowledged that it is a small system. Therefore, I would
suggest an iterative and incremental approach, as this will deliver an early
version, with only parts of the functionality they require at that time. This will
also help to reduce risks and provide tangible results. Tools and techniques
will also be utilised from other methodologies such as SDLC, SSADM,
Prototyping and RAD.
- 16 -
Download