Describing each of the stages of a systems development lifecycle including different examples and comparisons. This was produced for Unit 11 Cambridge Technical Level 3 IT.
2. Feasibility study
Financial aspects – cost/benefit analysis (benefits of creating the system
compared with the amount of £ it will need)
Business aspects – assessing operational impacts and the resources
within the organisation (how the business will be affected and if new
equipment, staff or structures will be needed).
Technical aspects – what the technological requirements of the new
system would be and if this would need to be implemented or if it
already exists.
Outcomes – should be determined whether the information system can
be developed successfully within constraints.
3. Requirements analysis
Investigation into how the information and processes are currently gathered
and performed against what is needed by clients and end users of a new
system.
Analysis of the information and decision made about the final requirements
that will be presented to the end user. They should be sensible, achievable and
affordable, and identify those that are essential and those not possible due to
constraints.
Once all necessary changes made and agreed, they will be signed off.
A plan or structure should be in place to monitor these throughout the life
cycle of the information system.
4. System design
Processes, inputs, outputs and data are identified and designed.
- e.g. data flow diagrams
Virtualisation can be used to consider:
- The capacity required to store the data needed
- The performance of the system and how fast it should respond at
appropriate times
- The throughput of the system, so considering how many transactions it
will need to deal with in a set period of time.
The completed design is presented to the client and any changes are
discussed.
5. Software development
After the client has agreed to the design, a solution can be created.
The agreed design and the functional and non-functional requirements
are followed during this development.
6. Testing of the software
Testing takes place not just after the software is complete, but also
during it’s development so that drawbacks can be identified and
improved.
This can be done with unit testing or integration testing.
7. Systems testing
It is tested against the functional and non-functional requirements of
the business set out in the requirements analysis, to make sure it has
met the agreed requirements.
It is then tested by or with the target users as part of the acceptance
testing.
The client can suggest amendments or accept the software, ready for
implementation.
8. Implementation
Pilot – the system is implemented in one element, section or part of the
business and thoroughly tested before being implemented in a second area so
that problems are corrected before it moves forward.
Phased – part of the system is implemented throughout the business. When
this is successful and problems have been corrected, a second part comes in.
Direct – the whole system is implemented in every part of the business at the
same time.
Parallel – the new system is implemented alongside the old system until any
problems have been removed.
9. Different lifecycles examples
Linear – Follow stages in a series of steps, moving through
the stages one at a time in a set order.
Evolutionary – Builds upon what has been created
previously, an iterative process until a final solution is
developed.
Agile – System is worked on, changed and improved in an
iterative process; does not follow designated lifecycle stages,
but adapts to the situation.
10. Linear
Waterfall model
Stages are followed in order
An allowance to move back to the previous stage if needed
When developer is ready to continue, phases followed in
order again.
11. Evolutionary
Iterative
One part of the system is worked on following lifecycle
stages
Stages repeated with additional elements added in each
repeated cycle.
12. Agile
Agile unified process
Uses modelling and test driven development to produce the system
Follows four stages:
1. Inception – like requirements analysis phase but looks at an initial design for the system
2. Elaboration – developers work on producing the foundations of the system
3. Construction – developers work on developing the software
4. Transition – system is tested and implemented.
Software developed as models
The smaller versions build upon the previous ones and are implemented in stages.
13. Comparing and contrasting
Linear Evolutionary Agile
Stages followed in
order
Yes Yes No
Iterative No Yes Yes
Uses modelling No No Yes
Go back on
previous stage
Yes Yes Yes
14. Situations
Linear lifecycles (such as the waterfall model) are likely to be used in projects
initiated from a request for proposals and the customer has clear documented
requirements. This is because it can help to plan and schedule the project.
Evolutionary lifecycles (such as iterative) are used in large systems in which small
phases or segments are built in. This is because the developers can start off with a
budget module and move on to more advanced ones later.
Agile models can be used when the customer needs to have a functional
requirement ready in a short time frame and their requirements are unclear. This is
because it allows for more workable pieces of software to be created early on.
Editor's Notes
There are a number of different development cycles that may be used to create an information system, but these phases are the ones used most commonly, whether this be formally or informally.
This is always the first step, as it determines if it is possible to create a system. It should consider:
Once an information system has been determined to be feasible, the requirements need to be gathered and agreed by the business and potential end users. This would be done by:
Once the requirements analysis has been agreed with the client, the information system can be designed.
This is when the software development can begin.
The software must be tested throughout the entire creation process.
But once it has passed these tests, it still needs to be tested against the system.
When it is deemed to be completed, it can finally be implemented into the business; how this is done will vary depending on the environments but could be any of these methods:
The components of the system’s development can be followed in a variety of different lifecycles. These are grouped into 3 different types:
An example of a linear development lifecycle is
An example of an evolutionary development is
An example of an agile lifecycle is
These 3 types have some similarities and differences which I have displayed in this table.
There are a huge amount of situations in which these lifecycles could be used, but these are some general examples of where they would be used and why.