Unit3 System Approaches f2
Unit3 System Approaches f2
System Approaches- System Development Life Cycle (SDLC), Prototyping, End User
Development, Waterfall and Spiral method
1. SDLC
1.1 Introduction:
The requirement is the first stage in the SDLC process. It is conducted by the
senior team members with inputs from all the stakeholders and domain experts in
the industry. Planning for the quality assurance requirements and recognition of
the risks involved is also done at this stage.
This stage gives a clearer picture of the scope of the entire project and the
anticipated issues, opportunities, and directives which triggered the project.
Once the requirement analysis phase is completed the next step is to define and
document software needs. This process conducted with the help of 'Software
Requirement Specification' document also known as 'SRS' document. It includes
everything which should be designed and developed during the project life cycle.
Phase 3: Design:
In this third phase, the system and software design documents are prepared as
per the requirement specification document. This helps define overall system
architecture.
This design phase serves as input for the next phase of the model.
Low-Level Design(LLD)
Phase 4: Coding:
Once the system design phase is over, the next phase is coding. In this phase,
developers start build the entire system by writing code using the chosen
programming language. In the coding phase, tasks are divided into units or
modules and assigned to the various developers. It is the longest phase of the
Software Development Life Cycle process.
Phase 5: Testing:
During this phase, Quality Assurance and testing team may find some
bugs/defects which they communicate to developers. The development team
fixes the bug and send back to QA for a re-test. This process continues until
the software is bug-free, stable, and working according to the business needs
of that system.
Phase 6: Installation/Deployment:
Once the software testing phase is over and no bugs or errors left in the system
then the final deployment process starts. Based on the feedback given by the
project manager, the final software is released and checked for deployment
issues if any.
Phase 7: Maintenance:
Once the system is deployed, and customers start using the developed system,
following 3 activities occur
Bug fixing - bugs are reported because of some scenarios which are not
tested at all
Upgrade - Upgrading the application to the newer versions of the
Software
Enhancement - Adding some new features into the existing software
2. Waterfall Model: Its is one of the popular SDLC Model
2.1 Introduction
Waterfall Model is a sequential model that divides software development into
different phases. Each phase is designed for performing specific activity during SDLC
phase. It was introduced in 1970 by Winston Royce.
Waterfall model is the pioneer of the SDLC processes. In fact, it was the first model
which was widely used in the software industry. It is divided into phases and output of
one phase becomes the input of the next phase. It is mandatory for a phase to be
completed before the next phase starts. In short, there is no overlapping in the
Waterfall model.
In “The Waterfall” approach, the whole process of software development is divided
into separate phases. The outcome of one phase acts as the input for the next phase
sequentially. This means that any phase in the development process begins only if the
previous phase is complete. The waterfall model is a sequential design process in
which progress is seen as flowing steadily downwards (like a waterfall) through the
phases of Conception, Initiation, Analysis, Design, Construction, Testing,
Production/Implementation, and Maintenance.
S.N
Phase Activities Performed Deliverables
o
2 System Design 1. As per the requirements, create the design HLD ( High Level
2. Capture the hardware / software requirements. Design document)
3. Document the designs
LLD (Low level
design document)
4 System Testing 1. Integrate the unit tested code and test it to make Test cases
sure if it works as expected. 2. Perform all the Test reports
testing activities (Functional and non functional) Defect reports
to make sure that the system meets the Updated matrices.
requirements.
3. In case of any anomaly, report it.
4. Track your progress on testing through tools
like traceability metrics, ALM
5. Report your testing activities.
Advantages Dis-Advantages
Before the next phase of Error can be fixed only during the
development, each phase must be phase
completed
3. Prototyping Model
3.1 Introduction
A prototyping model starts with requirement analysis. In this phase, the requirements
of the system are defined in detail. During the process, the users of the system are
interviewed to know what their expectation from the system is.
The second phase is a preliminary design or a quick design. In this stage, a simple
design of the system is created. However, it is not a complete design. It gives a brief
idea of the system to the user. The quick design helps in developing the prototype.
In this phase, an actual prototype is designed based on the information gathered from
quick design. It is a small working model of the required system.
In this stage, the proposed system is presented to the client for an initial evaluation. It
helps to find out the strength and weakness of the working model. Comment and
suggestion are collected from the customer and provided to the developer.
Step 5: Refining prototype
If the user is not happy with the current prototype, you need to refine the prototype
according to the user's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met. Once
the user is satisfied with the developed prototype, a final system is developed based
on the approved final prototype.
Once the final system is developed based on the final prototype, it is thoroughly tested
and deployed to production. The system undergoes routine maintenance for
minimizing downtime and prevent large-scale failures.
4. Spiral Model
4.1. Introduction
Spiral Model is a combination of a waterfall model and iterative model. Each phase in spiral
model begins with a design goal and ends with the client reviewing the progress. The spiral
model was first mentioned by Barry Boehm in his 1986 paper.
The development team in Spiral-SDLC model starts with a small set of requirement and goes
through each development phase for those set of requirements. The software engineering
team adds functionality for the additional requirement in every-increasing spirals until the
application is ready for the production phase.
Activities which are performed in the spiral model phases are shown below:
Phase
Activities performed Deliverables / Output
Name
Risk Requirements are studied and brain storming Document which highlights all
Analysis sessions are done to identify the potential the risks and its mitigation plans.
risks
Evaluation Customers evaluate the software and provide Features implemented document
their feedback and approval
Different colours represent different spiral or iteration. For first iteration, represented in
brown colour, all the 4 activities (Planning, risk analysis, engineering and evaluation) are
performed. After the evaluation phase is over for the first iteration (spiral), second iteration
(spiral) starts.The second iteration, which is represented in orange colour, here again all the 4
activities (Planning, risk analysis, engineering and evaluation) are performed. In a similar
way, third iteration is done shown in blue colour and so on the process continues.
4.4 Advantages and Disadvantages of Spiral Model
Advantages Disadvantages
Cost estimation becomes easy as the It works best for large projects only
prototype building is done in small also demands risk assessment
fragments expertise
End-user development (EUD) helps to solve this problem. EUD is "a set of methods,
techniques and tools that allow users of software systems, who are acting as non-
professional software developers, at some point to create, modify, or extend a
software artifact" (Lieberman et al 2006). In particular, EUD enables end users to
design or customize the user interface and functionality of software. This is valuable
because end users know their own context and needs better than anybody else, and
they often have real-time awareness of shifts in their respective domains. Through
EUD, end users can tune software to fit their requirements more closely than would
be possible without EUD.