You are on page 1of 11

Comsats University Islamabad

Attock Campus

Software Project Management

ASSIGNMENT#1
SUBMITTED BY:
Basla Azhar
FA18-BSE-057
SUBMITTED TO:
Sir Fahad
SDLC MODELS

Table of Contents
Software Development life cycle: ................................................................................................................. 3
Waterfall Model: ........................................................................................................................................... 3
Advantages of the Waterfall Model:......................................................................................................... 4
Disadvantage of Waterfall model: ............................................................................................................ 5
V-Model: ....................................................................................................................................................... 5
Advantages of the V-Model: ..................................................................................................................... 6
Disadvantages of the V-Model:................................................................................................................. 7
Spiral Model: ................................................................................................................................................. 7
Advantages of the Spiral Model:............................................................................................................... 7
Disadvantages of the Spiral Model: .......................................................................................................... 8
Iterative Model: ............................................................................................................................................ 8
Advantages of the Iterative Model: .......................................................................................................... 9
Disadvantages of the Iterative Model: ..................................................................................................... 9
Agile Model: .................................................................................................................................................. 9
Advantages of the Agile Model: .............................................................................................................. 10
Disadvantages of the Agile Model: ......................................................................................................... 10
FYP Project:.................................................................................................................................................. 10

2
SDLC MODELS

SDLC Models
Software Development life cycle:
Software Development life cycle (SDLC) is a spiritual model used in project management that defines the
stages include in an information system development project, from an initial feasibility study to the
maintenance of the completed application.

There are different software development life cycle models specify and design, which are followed
during the software development phase. These models are also called "Software Development
Process Models." Each process model follows a series of phase unique to its type to ensure success in
the step of software development.

Here are some SDLC models:

Waterfall Model:
The waterfall model is a linear, sequential approach to the software development life cycle (SDLC) that is
popular in software engineering and product development. The waterfall model emphasizes a
logical progression of steps.

3
SDLC MODELS

The waterfall methodology is composed of following non-overlapping stages:

Requirements: Potential requirements, deadlines and guidelines for the project are analyzed and
placed into a functional specification. This stage handles the defining and planning of the project
without mentioning specific processes.

Design: A design specification document is created to outline technical design requirements such as
programming language, hardware, data sources, architecture and services.

Implementation: The source code is developed using the models, logic and requirements designated
in the prior stages. Typically, the system is designed in smaller components, or units, before being
implemented together.

Testing: This is when quality assurance, unit, system and beta tests take place to report issues that
may need to be resolved. This may cause a forced repeat of the coding stage for debugging. If the
system passes the tests, the waterfall continues forward.

Deployment: The product or application is deemed fully functional and is deployed to a live
environment.

Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely to improve,
update and enhance the final product. This could include releasing patch updates or releasing new
versions.

Advantages of the Waterfall Model:


 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.

4
SDLC MODELS

 Well understood milestones.


 Easy to arrange tasks.
 Process and results are well documented.

Disadvantage of Waterfall model:


 No working software is produced until late during the life cycle.
 In this model, the risk factor is higher, so this model is not suitable for more significant and
complex projects.
 This model cannot accept the changes in requirements during development.
 It becomes tough to go back to the phase.
 Since the testing done at a later stage, it does not allow identifying the challenges and risks in
the earlier phase, so the risk reduction strategy is difficult to prepare.

V-Model:
V-Model also referred to as the Verification and Validation Model. In this, each phase of SDLC must
complete before the next phase starts. It follows a sequential design process same as the waterfall
model. Testing of the device is planned in parallel with a corresponding stage of development.

Requirements: During this initial phase, system requirements and analysis are performed to
determine the feature set and needs of users. Just as with the same phase from the waterfall model or
other similar methods, spending enough time and creating thorough user requirement documentation is
critical during this phase, as it only occurs once. Another component unique to the V-Model is that
during each design stage, the corresponding tests are also designed to be implemented later during
the testing stages. Thus, during the requirements phase, acceptance tests are designed.

5
SDLC MODELS

System Design: Utilizing feedback and user requirement documents created during
the requirements phase, this next stage is used to generate a specification document that will outline all
technical components such as the data layers, business logic, and so on.

System Tests are also designed during this stage for later use.

Architecture Design: During this stage, specifications are drawn up that detail how the application
will link up all its various components, either internally or via outside integrations. Often this is referred
to as high-level design. Integration tests are also developed during this time.

Module Design: This phase consists of all the low-level design for the system, including detailed
specifications for how all functional, coded business logic will be implemented, such as models,
components, interfaces, and so forth. Unit tests should also be created during the module design phase.

Coding: At this point, halfway through the stages along the process, the actual coding and
implementation occur. This period should allot for as much time as is necessary to convert all previously
generated design and specification docs into a coded, functional system. This stage should be fully
complete once the testing phases begin.

Unit Testing: Now the process moves back up the far side of the V-Model with inverse testing,
starting with the unit tests developed during the module design phase. Ideally, this phase should
eliminate the vast majority of potential bugs and issues, and thus will be the lengthiest testing phase of
the project.

That said, just as when performing unit testing with other development models, unit tests cannot (or
should not) cover every possible issue that can occur in the system, so the less granular testing phases
to follow should fill in these gaps.

Integration Testing: Testing devised during the architecture design phase are executed here,
ensuring that the system functions across all components and third-party integrations.

System Testing: The tests created during system design are next executed, largely focusing on
performance and regression testing.

Acceptance Testing: Lastly, acceptance testing is the process of implementing all tests created
during the initial requirements phase and should ensure that the system is functional in a live
environment with actual data, ready for deployment.

Advantages of the V-Model:


 This is a highly-disciplined model and Phases are completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Simple and easy to understand and use.

6
SDLC MODELS

 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a
review process.

Disadvantages of the V-Model:


 High 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.
 Once an application is in the testing stage, it is difficult to go back and change a functionality.
 No working software is produced until late during the life cycle.

Spiral Model:
Spiral model – is SDLC model, which combines architecture and prototyping by stages. It is a
combination of the Iterative and Waterfall SDLC models with the significant accent on the risk analysis.
The main issue of the spiral model – is defining the right moment to make a step into the next stage. The
preliminary set time frames are recommended as the solution to this issue. The shift to the next stage is
done according to the plan, even if the work on the previous stage isn’t done yet. The plan is introduced
basing on the statistical data, received during the previous projects even from the personal developer’s
experience.

Advantages of the Spiral Model:


 Changing requirements can be accommodated.
 Allows extensive use of prototypes.
 Requirements can be captured more accurately.

7
SDLC MODELS

 Users see the system early.


 Development can be divided into smaller parts and the risky parts can be developed earlier
which helps in better risk management.

Disadvantages of the Spiral Model:


 Management is more complex.
 End of the project may not be known early.
 Not suitable for small or low risk projects and could be expensive for small projects.
 Process is complex
 Spiral may go on indefinitely.
 Large number of intermediate stages requires excessive documentation.

Iterative Model:
Iterative process starts with a simple implementation of a subset of the software requirements and
iteratively enhances the evolving versions until the full system is implemented. At each iteration, design
modifications are made and new functional capabilities are added. The basic idea behind this method is
to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).

Iterative and Incremental development is a combination of both iterative design or iterative method and
incremental build model for development. "During software development, more than one iteration of
8
SDLC MODELS

the software development cycle may be in progress at the same time." This process may be described as
an "evolutionary acquisition" or "incremental build" approach."

In this incremental model, the whole requirement is divided into various builds. During each iteration,
the development module goes through the requirements, design, implementation and testing phases.
Each subsequent release of the module adds function to the previous release. The process continues till
the complete system is ready as per the requirement.

Advantages of the Iterative Model:


 Some working functionality can be developed quickly and early in the life cycle.
 Results are obtained early and periodically.
 Parallel development can be planned.
 Progress can be measured.
 Easier to manage risk - High risk part is done first.
 With every increment, operational product is delivered.
 Risk analysis is better.
 It supports changing requirements.

Disadvantages of the Iterative Model:


 More resources may be required.
 More management attention is required.
 Not suitable for smaller projects.
 Management complexity is more.
 Highly skilled resources are required for risk analysis.
 Projects progress is highly dependent upon the risk analysis phase.

Agile Model:
Agile SDLC model is a combination of iterative and incremental process models with focus on process
adaptability and customer satisfaction by rapid delivery of working software product. Agile Methods
break the product into small incremental builds. These builds are provided in iterations. Each iteration
typically lasts from about one to three weeks. Every iteration involves cross functional teams working
simultaneously on various areas like:

 Planning
 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing.

9
SDLC MODELS

At the end of the iteration, a working product is displayed to the customer and important stakeholders.

The Agile thought process had started early in the software development and started becoming popular
with time due to its flexibility and adaptability.

Advantages of the Agile Model:


 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Enables concurrent development and delivery within an overall planned context.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.

Disadvantages of the Agile Model:


 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 An overall plan, an agile leader and agile PM practice is a must without which it will not work.
 There is a very high individual dependency, since there is minimum documentation generated.
 Transfer of technology to new team members may be quite challenging due to lack of
documentation.

FYP Project:

Let’s learn with flutter


We will develops android application which will help children to learn the names of different objects.
This app will also the extract the text form image and pronounce it. So that children can learn the
pronunciation of different words.
10
SDLC MODELS

Model we use in our fyp: Agile Model

Reason: We will develop this application and our supervisor and evaluator will check it’s working.
They will ask us how we have developed the different modules of this application. After this we will
defend it. Then it is possible that they can suggest us some changes which can improve the functionality
of our application.

To make late changes in our project we will use agile model. On the bases of supervisor and evaluator
opinion we will make some changes.

In real agile approach we allow stockholder or user to suggest some changes. Here instead of user we
will ask supervisor and evaluator.

11

You might also like