Sei sulla pagina 1di 22

SOFTWARE DEVELOPMENT

ASSIGNMENT No.2
Name: Abdul Qadeer
ROLL NO: 38
RESOURCE PERSON: Sir WAHAB
====================================================

QUESTION NO:1
What is SDLC and its importance.
ANSWER:
SDLC:
SDLC or the Software Development Life Cycle is a process that
produces software with the highest quality and lowest cost in the
shortest time possible. SDLC provides a well-structured flow of
phases that help an organization to quickly produce high-quality
software which is well-tested and ready for production use.

PHASES:
The Software Development Life Cycle (SDLC) refers to a methodology
with clearly defined processes for creating high-quality software. in
detail, the SDLC methodology focuses on the following phases of
software development:

 Requirement analysis
 Planning
 Software design such as architectural design
 Software development
 Testing
 Deployment

LIFE CYCLE:

How the SDLC Works :


SDLC works by lowering the cost of software development while
simultaneously improving quality and shortening production time. SDLC
achieves these apparently divergent goals by following a plan that
removes the typical pitfalls of software development projects. That plan
starts by evaluating existing systems for deficiencies.
Next, it defines the requirements of the new system. It then creates the
software through the stages of analysis, planning, design, development,
testing, and deployment. By anticipating costly mistakes like failing to
ask the end-user or client for feedback, SLDC can eliminate redundant
rework and after-the-fact fixes.
It’s also important to know that there is a strong focus on the testing
phase. As the SDLC is a repetitive methodology, you have to ensure
code quality at every cycle. Many organizations tend to spend few
efforts on testing while a stronger focus on testing can save them a lot
of rework, time, and money. Be smart and write the right types of tests.

IMPORTANCE:
Custom Software Development is one of the most
sought-after skills in the Information Technology
industry. Consequently, the companies providing these
services are also under the spotlight in the IT market. Top
Software Development Companies (SDCR) regularly
publishes the lists of leading IT companies that are
following best practices and are providing seamless
custom products in the market. In a recent list published
by SCDR, Techliance has once again been ranked in the
prominent 37 Software Development firms that have
holistic practices in various stages of the Software
Development Life Cycle (SDLC).
Following Points will Elaborate further the importance of
software development life cycle;
o It acts as a guide to the project and meet client’s objectives.
o It helps in evaluating, scheduling and estimating deliverables.
o It provides a framework for a standard set of activities.
o It ensures correct and timely delivery to the client.
o Helps estimate cost and time.
o Includes the project activities and deliverables of each phase.
o Boosts the transparency of the entire project and the
development process.
o Enhance the speed and accuracy of development.
o Minimizes the risk potential and maintenance during any given
project.
o Its defined standard improves client relations.
==============================================

QUESTION NO:2
SDLC Models Type.
ANSWER:
SDLC MODEL:
Software development life cycle (SDLC) is a series of phases that
provide a common understanding of the software building process.
How the software will be realized and developed from the business
understanding and requirements elicitation phase to convert these
business ideas and requirements into functions and features until its
usage and operation to achieve the business needs. The good software
engineer should have enough knowledge on how to choose the SDLC
model based on the project context and the business requirements.
Therefore, it may be required to choose the right SDLC model according
to the specific concerns and requirements of the project to ensure its
success. I wrote another article on how to choose the right SDLC, you
can follow this link for more information. Moreover, to learn more
about Software Testing life cycles and SDLC phases you follow the links
highlighted here.

You can think of SDLC models as tools that you can use to better deliver
your software project. Therefore, knowing and understanding each
model and when to use it, the advantages and disadvantages of each
one are important to know which one is suitable for the project
context.

Types of Software developing life cycles (SDLC):


 Waterfall Model
 V-Shaped Model
 Evolutionary Prototyping Model
 Spiral Method (SDM)
 Iterative and Incremental Method
 Agile development
Waterfall Model:
Description:
The Waterfall Model is a linear sequential flow. In which progress is
seen as flowing steadily downwards (like a waterfall) through the
phases of software implementation. This means that any phase in the
development process begins only if the previous phase is complete. The
waterfall approach does not define the process to go back to the
previous phase to handle changes in requirement. The waterfall
approach is the earliest approach and most widely known that was
used for software development.

The Usage:

Projects which not focus on changing the requirements, for example, projects initiated from a

request for proposals (RFPs), the customer has a very clear documented requirements.
Advantages and Disadvantages:
Advantages Disadvantages

 Assumes that the requirements of a


 Easy to explain to the users. system can be frozen.
 Structures approach.  Very difficult to go back to any stage
 Stages and activities are well defined. after it finished.
 Helps to plan and schedule the project.  A little flexibility and adjusting scope
 Verification at each stage ensures early difficult and expensive.
detection of errors/misunderstanding.  Costly and required more time, in
 Each phase has specific deliverables. addition to the detailed plan.

V-Shaped Model
Description:
It is an extension of the waterfall model, Instead of moving down in a
linear way, the process steps are bent upwards after the
implementation and coding phase, to form the typical V shape. The
major difference between the V-shaped model and waterfall model is
the early test planning in the V-shaped model.
The Usage:
 Software requirements clearly defined and known
 Software development technologies and tools are well-known

Advantages and Disadvantages


Advantages Disadvantages

 Simple and easy to use  Very inflexible, like the waterfall


 Each phase has specific model.
deliverables.  Adjusting scope is difficult and
 Higher chance of success over the expensive.
waterfall model due to the  The software is developed during
development of test plans early the implementation phase, so no
on during the life cycle. early prototypes of the software
 Works well for where are produced.
requirements are easily  The model doesn’t provide a clear
understood. path for problems found during
 Verification and validation of the testing phases.
product in the early stages of  Costly and required more time, in
product development. addition to a detailed plan

Prototyping Model
Description:
It refers to the activity of creating prototypes of software applications,
for example, incomplete versions of the software program being
developed. It is an activity that can occur in software development and
It used to visualize some component of the software to limit the gap of
misunderstanding the customer requirements by the development
team. This also will reduce the iterations may occur in the waterfall
approach and hard to be implemented due to the inflexibility of the
waterfall approach. So, when the final prototype is developed, the
requirement is considered to be frozen.

TYPES OF PROTOTYPING:
It has some types, such as:

 Throwaway prototyping: Prototypes that are eventually


discarded rather than becoming a part of the finally delivered
software

 Evolutionary prototyping: prototypes that evolve into the


final system through an iterative incorporation of user
feedback.
 Incremental prototyping: The final product is built as
separate prototypes. In the end, the separate prototypes are
merged in an overall design.
 Extreme prototyping: used in web applications mainly.
Basically, it breaks down web development into three phases,
each one based on the preceding one. The first phase is a static
prototype that consists mainly of HTML pages. In the second
phase, the screens are programmed and fully functional using a
simulated services layer. In the third phase, the services are
implemented

The usage:
 This process can be used with any software developing life cycle
model. While this shall be chosen when you are developing a
system has user interactions. So, if the system does not have
user interactions, such as a system does some calculations shall
not have prototypes.

Advantages and Disadvantages:

Advantages Disadvantages

 Insufficient analysis. User


confusion of prototype and
finished system.
 Reduced time and costs, but this can  Developer misunderstanding
be a disadvantage if the developer of user objectives.
loses time in developing the  Excessive development time of
prototypes. the prototype.
 Improved and increased user  It is costly to implement the
involvement. prototypes
Spiral Model (SDM)
Description:
It is combining elements of both design and prototyping-in-stages, in an
effort to combine advantages of top-down and bottom-up concepts.
This model of development combines the features of the prototyping
model and the waterfall model. The spiral model is favored for large,
expensive, and complicated projects. This model uses many of the
same phases as the waterfall model, in essentially the same order,
separated by planning, risk assessment, and the building of prototypes
and simulations.
The usage:
It is used in the large applications and systems which built-in small
phases or segments.

Advantages and Disadvantages


Advantages Disadvantages

 Estimates (i.e. budget, schedule, etc.)  High cost and time to


become more realistic as work progressed reach the final product.
because important issues are discovered  Needs special skills to
earlier. evaluate the risks and
 Early involvement of developers. assumptions.
 Manages risks and develops the system into  Highly customized
phases. limiting re-usability

Iterative and Incremental Model


Description
It is developed to overcome the weaknesses of the waterfall model. It
starts with an initial planning and ends with deployment with the cyclic
interactions in between. The basic idea behind this method is to
develop a system through repeated cycles (iterative) and in smaller
portions at a time (incremental), allowing software developers to take
advantage of what was learned during the development of earlier parts
or versions of the system. It can consist of mini waterfalls or mini V-
Shaped model
The usage:
It is used in shrink-wrap application and large system which built-in
small phases or segments. Also, can be used in a system has separated
components, for example, ERP system. Which we can start with the
budget module as a first iteration and then we can start with the
inventory module and so forth.

Advantages and Disadvantages


Advantages Disadvantages

 Produces business value  Requires heavy documentation.


early in the development  Follows a defined set of processes.
lifecycle.  Defines increments based on function
 Better use of scarce and feature dependencies.
resources through proper  Requires more customer involvement
increment definition.
 Can accommodate some
change requests between
increments. than the linear approaches.
 More focused on customer  Partitioning the functions and features
value than the linear might be problematic.
approaches.  Integration between the iterations can be
 We can detect project an issue if it is not considered during the
issues and changes earlier. development and project planning.

Agile Model
Description:
It is based on iterative and incremental development, where
requirements and solutions evolve through collaboration between
cross-functional teams.

Scrum Agile Model


The usage:
It can be used with any type of the project, but it needs more
engagement from the customer and to be interactive. Also, we can use
it when the customer needs to have some functional requirement
ready in less than three weeks and the requirements are not clear
enough. This will enable more valuable and workable piece for software
early which also increase the customer satisfaction.

Advantages and Disadvantages:


Advantages Disadvantages

 Scalability.
 Decrease the time required to avail  The ability and collaboration
some system features. of the customer to express
 Face to face communication and user needs.
continuous inputs from customer  Documentation is done at
representative leaves no space for later stages.
guesswork.  Reduce the usability of
 The end result is the high-quality components.
software in the least possible time  Needs special skills for the
duration and satisfied customer. team.

Here is a consolidated presentation to illustrate most of the


popular software development models.

=========================================================

QUESTION NO:3
Explain Water Fall Model.
ANSWER:
The Waterfall Model was the first Process Model to be introduced. It is
also referred to as a linear-sequential life cycle model. It is very simple
to understand and use. In a waterfall model, each phase must be
completed before the next phase can begin and there is no
overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for
software development.
The waterfall Model illustrates the software development process in a
linear sequential flow. This means that any phase in the development
process begins only if the previous phase is complete. In this waterfall
model, the phases do not overlap.

Waterfall Model - Design


Waterfall approach was first SDLC Model to be used widely in Software
Engineering to ensure success of the project. In "The Waterfall"
approach, the whole process of software development is divided into
separate phases. In this Waterfall model, typically, the outcome of one
phase acts as the input for the next phase sequentially.
The following illustration is a representation of the different phases of
the Waterfall Model.
The sequential phases in Waterfall model are −
Different Phases of Waterfall Model in Software Engineering
Different phases Activities performed in each stage

Requirement  During this phase, detailed requirements of the


Gathering stage software system to be developed are gathered from
client

Design Stage  Plan the programming language, for


Example Java, PHP, .net
 or database like Oracle, MySQL, etc.
 Or other high-level technical details of the project

Built Stage  After design stage, it is built stage, that is nothing but
coding the software

Test Stage  In this phase, you test the software to verify that it is
built as per the specifications given by the client.

Deployment stage  Deploy the application in the respective environment

Maintenance stage  Once your system is ready to use, you may later require
change the code as per customer request

All these phases are cascaded to each other in which progress is seen
as flowing steadily downwards (like a waterfall) through the phases.
The next phase is started only after the defined set of goals are
achieved for previous phase and it is signed off, so the name "Waterfall
Model". In this model, phases do not overlap.

Waterfall Model – Application:


Every software developed is different and requires a suitable SDLC
approach to be followed based on the internal and external factors.
Some situations where the use of Waterfall model is most appropriate
are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to
support the product.
 The project is short.
 Requirements are not changing frequently.
 Application is not complicated and big.

Waterfall Model – Advantages:


The advantages of waterfall development are that it allows for
departmentalization and control. A schedule can be set with deadlines
for each stage of development and a product can proceed through the
development process model phases one by one.
Development moves from concept, through design, implementation,
testing, installation, troubleshooting, and ends up at operation and
maintenance. Each phase of development proceeds in strict order.
Some of the major advantages of the Waterfall Model are as follows −
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each
phase has specific deliverables and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are
very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

Waterfall Model – Disadvantages:


The disadvantage of waterfall development is that it does not allow
much reflection or revision. Once an application is in the testing stage,
it is very difficult to go back and change something that was not well-
documented or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as follows −
 No working software is produced until late during the life
cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented
projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a
moderate to high risk of changing. So, risk and uncertainty
is high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.
 Integration is done as a "big-bang. at the very end, which
doesn't allow identifying any technological or business
bottleneck or challenges early.
===============================================

-:END:-

Potrebbero piacerti anche