SDLC
SDLC
System Design
Development
Testing
Maintenance
and
Implementation
Waterfall Model
1. Requirement Analysis and Definition: it is the first
step of water fall model. In this stage, the developer
should identify the actual requirements of the given
problem are analyzed and prioritized as per the
requirements of the problem. Finally these
requirements are stated as problem statement.
2. System Design: In this stage the system design
process partition the requirements to either
hardware and software systems. It Establish overall
system architecture. System Design involves
Identifying and Describing the fundamental software
system abstractions and their relationship
Water fall Model contd..
3. Implementation and Unit testing : During this stage the
system Design is realize as a set of programs or Program
unit testing involves verifying that each unit meets its
specification.
4. Integration and System Testing: The individual program
units or program are integrated and tested as complete
system to ensure that the software requirements have
been met. After Testing the software is delivered to the
customers.
5. Operation and Maintenance: The system is installed to the
desire location. The maintenance involves the correcting
errors which were not discovered in earlier stage of the life
cycle, Improve the Implementation of the system Units and
enhancing the system’s service as new requirement as
discovered
Water fall Model contd…
• Advantage
1. It is simple model and suitable for small size project.
2. It is Less Expensive.
• Disadvantage
1. It has no backtrack Mechanism.
2. It is not suitable for large size project.
3. It has lack of proper Documentation.
Prototype Model
• This is a iterative model of system Development which
is more appropriate for developing new system where
there is no clear idea of requirements, inputs and
outputs. Using prototyping, the programmers can built
early version of the system. These system are then
continuously modifies until the user is satisfy.
Prototyping is especially helpful in the situation where
there will be heavy user interaction with the system,
where the needed output is uncertain, and in some
decision support application where the logic is hard to
determine in advance. The developer interview the
user and designs an initial system using a data base
management system. The user works with the
Prototype and suggests the changes. This process
repeats until the user or developer satisfied
Prototype Model
Identify User Needs
Develop a Prototype
No
Prototype Acceptable
Ye
s
Use the Prototype
Prototype Model
1. Identify The User Needs: The System analyst
Interviews the user to obtain an idea of what is
required from the system.
2. Develop a Prototype: The system analyst working
with other information specialist, users one or more
prototyping tools to develop a prototype.
3. Determine If Prototype is acceptable: The analyst
educate the user in prototype use and provides an
opportunity from becoming familiar with the system.
The user advice the system analyst whether the
prototype is acceptable. If so, then the next step,
that is step 4is taken, else the prototype revised to
step 1,2,3 with better understanding of the user
requirements or needs.
Prototype Model
4. Use the Prototype: Finally in this step, The
Prototype becomes the operational System.
This approach is possible only when the prototyping
tools enables the prototype to contain all the
essential elements of the new system.
Prototype Model contd..
• Advantages
1. Communication between the system analyst and the user
are improve.
2. The expert can do a better job of determining User’s
need.
3. The user play a more active role in the system
Development.
4. The expert and the user spend less time and effort in
developing the system.
5. Implementation is much easier because the user knows
what to expect.
6. A system is Developed through Operational prototyping is
capable of easy adaptation.
• Disadvantage:
1. Because of the iterative nature of prototyping, there
is not definite deliverable or completion deadline.
2. Code inefficiencies may be drawback in terms of
functionality .
3. The computer-human Interface provided by certain
prototyping tools may not reflect good design
technique.
Spiral Model
• In this Model, process is represented as a spiral rather
than as a sequential of activities with backtracking.
Each loop in the spiral represent a phase in the
progress. It has no fixed phase such as specification
or design loop in the spiral are chosen depending on
what is required. Risk are explicitly accessed and
resolved throughout t and the process. Each loop in
the spiral represents a phase of software process.
Thus, The innermost loop might be concerned with
system feasibility, the next loop with system
requirement definition and analysis, the next loop
with system design and so on.
Spiral Model contd..
Spiral Model Contd..
1. Planning: The Project is reviewed and a decision made
whether to continue, plan are drawn up for the next
phase of the project.
2. Risk Analysis: for each of the identified project risks, a
detailed analysis carried out. Steps are taken to reduce
the risk. For example if there is a risk that the
requirement are inappropriate, a prototype system may
be developed.
3. Engineering or execution or development: After risk
evaluation, a development model for the system is
chosen. e.g. if user interface risk are dominant, an
appropriate development model might be evolutionary
prototyping. If safety risk are the main consideration,
Development based on formal transformation may be the
most appropriate and so on. The waterfall model may be
the most appropriate development model if the main
identified risk is sub-system integration.
Spiral Model Contd..
4. User Evaluation: Specific Objectives for the
phase of the project are defined by the
evaluation of users. Constrains on the process
and the product are identified. And a detailed
management plan is drawn up.
Spiral Model Contd..
• Advantage:
1. It Emphasize risks, which are often ignored.
2. It Emphasize quality.
3. It Emphasize risk reduction technique, like prototypes buy
vs build, etc.
4. It provides check points for considering project
cancellation.
5. It is effective for regular updating the system.
• Disadvantage:
1. Full scale risk analysis requires training, skill, and
considerable expenses, so it may appropriate only for
large project.
2. The model is relatively on test.
Agile Model
• The meaning of Agile is swift or versatile. “Agile process model"
refers to a software development approach based on iterative
development.
• Agile methods break tasks into smaller iterations, or parts do not
directly involve long term planning.
• The project scope and requirements are laid down at the
beginning of the development process.
• Plans regarding the number of iterations, the duration and the
scope of each iteration are clearly defined in advance.
• Each iteration is considered as a short time "frame" in the Agile
process model, which typically lasts from one to four weeks.
• The division of the entire project into smaller parts helps to
minimize the project risk and to reduce the overall project delivery
time requirements.
• Each iteration involves a team working through a full software
development life cycle including planning, requirements analysis,
design, coding, and testing before a working product is
demonstrated to the client.
Agile Model contd..
• The time to complete iteration is known as a Time
Box.
• Time-box refers to the maximum amount of time
needed to deliver iteration to customers.
• So, the end date for iteration does not change.
Though the development team can decide to
reduce the delivered functionality during a
Time-box if necessary to deliver it on time.
• The central principle of the Agile model is the
delivery of an increment to the customer after each
Time-box.
Steps Involve in Agile Model
• Planning
• Requirement Analysis
• Design
• Coding/Building
• Unit testing
• Acceptance testing
Figure
Principles of Agile model:
• To establish close contact with the customer during
development and to gain a clear understanding of
various requirements, each Agile project usually
includes a customer representative on the team.
• At the end of each iteration stakeholders and the
customer representative review, the progress made
and re-evaluate the requirements.
• Agile model relies on working software deployment
rather than comprehensive documentation.
• Frequent delivery of incremental versions of the
software to the customer representative in intervals of
few weeks.
• Requirement change requests from the customer are
encouraged and efficiently incorporated.
Principles of Agile model:
• It emphasizes on having efficient team members and
enhancing communications among them is given more
importance.
• It is realized that enhanced communication among the
development team members can be achieved through
face-to-face communication rather than through the
exchange of formal documents.
• It is recommended that the development team size should
be kept small (5 to 9 people) to help the team members
meaningfully engage in face-to-face communication and
have collaborative work environment.
• Agile development process usually deploy Pair
Programming. In Pair programming, two programmers work
together at one work-station. One does coding while the
other reviews the code as it is typed in. The two
programmers
Advantage and Disadvantage of Agile
Advantages:
• Working through Pair programming produce well written
compact programs which has fewer errors as compared to
programmers working alone.
• It reduces total development time of the whole project.
• Customer representatives get the idea of updated software
products after each iteration. So, it is easy for him to change
any requirement if needed.
Disadvantages:
• Due to lack of formal documents, it creates confusion and
important decisions taken during different phases can be
misinterpreted at any time by different team members.
• Due to the absence of proper documentation, when the
project completes and the developers are assigned to
another project, maintenance of the developed project can
become a problem.
Documentation
• Documentation is not a separate stage, it requires
through out the stage. It consist the written
description and procedures about the software. It
consist the detail description about the software
requirement specification, feasibility study, software
designing report, description about input and output
and process mechanism, source code comments,
manuals, guides and effective help des. Moreover the
documentation should describe everything you have
done so far. It consist the limitationof the software;
demo to describe how to run the softwareand he
minimum requirements in order to run it smoothly.
Importance of Documentation
• It is easy to remember the program logic and
instruction for the programmer during
programming.
• Helps to solve the best way solution.
• For the future reference to maintenance and
modify.
• Effective and easy use for the user.
Why documentation needed?
• It is a mean of transfer of knowledge and detail
about description of the system.
• Helps to corporate audits and other requirements
of the Organization.
• Needed for it infrastructure management and
maintenance.
• Needed for migration to new software platform.
Internal Documentation
• It is used by the system analyst and the
programmer during development process. It is
very useful for the development period and also
useful in future for the modification and
maintenance the system.
Examples for External
Documentation
• SRC(system requirements specification) repors
contents the detail description about the actual
requirements and the feasibility description about
total benefits for the organization with effective
solution of right problem.
• Software Design Report consist of logical as well as
physical design report.it consist the different tools and
technique use to solve the problems.
• Source code and Comments of the software itself a
part of the documents for the programmer and
comments are also used in programs. It also include
documentation for testing and verification and
maintenance.
External Documentation
• It is used by user during running time of software.
It includes the detail description in terms of
manuals, guide and help files. It mainly deals with
how to effective use of software.
Decision Table
• A Decision table allows us to identify the exact
course of action for given conditions. Decision
table provides unambiguous decisions, leading to
a good program design. A decision table generally
consist of two part : Condition and action.
Decision table preferred when one of the large
numbers of action is to be selected. The action
Selected Depend up on a large number of
conditions. For example: To find the maximum of
among 3 different numbers using Decision Table.
Condition Decision table example
A>B F F T T
B>C F T F F
A is Maximum X X X T
Actions
B is Maximum X T X X
C is Maximum T X X X
Decision Tree
T A is Max
T
(A>B>C)
B is Max
(B>C)
B OR C is Max
F
F C is Max
Pseudo code
• Pseudo code is a kind of algorithm for solving a problem.
• the instruction of pseudo code are written by using English
phrase and mathematical expressions.
• It has no specific rules for writing instructions but are closer
to high level language instructions.
• Designer should have basic knowledge about high level
language instructions before writing pseudo codes.it is
independent of programming languages.
2. Data flow Diagram: The data flow diagram shows more detailed
data flow of the system. A single process of the context diagram is
divided into sub process and shows the data flow in details. It also
describes the data store facility and controlling mechanism too. We
include all the entities and data flows that appeal in the context
diagram of the system
Apply for Collect
Membership application
Member’s Database
Accept or reject
Applicant Verify
Issue Issue
membership membership
Study/T
Teacher
Student each
Faculty Subject
Class
Percentage