0% found this document useful (0 votes)
50 views

Coding Big Data - Week 07 - SDLC

The document discusses the software development life cycle (SDLC). It defines SDLC as a framework that defines the steps involved in developing software, including planning, creating, testing, and deploying. It consists of common phases like requirements gathering, design, development, testing, and deployment. Popular SDLC models include waterfall, which is linear, and iterative/incremental models which evolve the software through iterations. The document provides overviews of the purpose, phases, and advantages/disadvantages of different SDLC models.

Uploaded by

muh amar
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Coding Big Data - Week 07 - SDLC

The document discusses the software development life cycle (SDLC). It defines SDLC as a framework that defines the steps involved in developing software, including planning, creating, testing, and deploying. It consists of common phases like requirements gathering, design, development, testing, and deployment. Popular SDLC models include waterfall, which is linear, and iterative/incremental models which evolve the software through iterations. The document provides overviews of the purpose, phases, and advantages/disadvantages of different SDLC models.

Uploaded by

muh amar
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

1

CODING & BIG DATA


Week 07 : Software Development Life Cycle

Created by Coding & Big Data Team


President University
2

WEEK 07
SDLC: Overview
What is? 3

Definition : https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.guru99.com/software-development-life-cycle-tutorial.html

• SDLC = Software Development Life Cycle


• SDLC
• is a framework that defines the steps involved in development of software for
delivering a high-quality product.
• is a systematic process for building software that ensures the quality of and
correctness of the software build.
• SDLC consists of
• a cycle of development: planning, creating, testing, and deploying a software
product.
• a detailed plan on how to plan, build, and maintain specific software.
What is? 4

Purpose: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.guru99.com/software-development-life-cycle-tutorial.html

• Why SDLC?
• It offers a basis for project planning, scheduling, and estimating
• Provides a framework for a standard set of activities and deliverables
• It is a mechanism for project tracking and control
• Increases visibility of project planning to all involved stakeholders of the
development process
• Increased and enhance development speed
• Improved client relations
• Helps you to decrease project risk and project management plan overhead
What is? 5

• Why SDLC?
SDLC Phases 6

Phases: https://phoenixnap.com/blog/software-development-life-cycle

Requirement gathering: Process modeling: Coding:


• FGD • UML (use case diagram, • Front end (HTML, XML
• Interview activity diagram, JavaScript, etc)
• Observation sequence diagram, etc) • Back end (Python, Java,
• Survey System Flow (DFD) C++, PHP, etc)
• Modeling/Simulation DB design (ERD) • DB (SQL Server, Oracle,
(Flow chart, UML) UI/UX design Firebase, MySQL, etc.)
WEEK 07 7

SDLC: Phases
1. Planning
Planing: https://phoenixnap.com/blog/software-development-life-cycle
https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

• What to do:
• Define the scope and purpose of the application.
• Feasibility study: calculate the labor, material cost, create timetable, create
project’s team, organize the team.
• Project’s Quality assurance and Risk management plan.
• Who’s involved:
• Project manager/leader initiate the plan.
• Get advise from seniors/experts for specific area (finance, market, IT
infrastructure, etc).
• Propose the plan to stakeholders/users and make agreement.
• Output:
• Software project plan (list of main tasks, time table, organization structure,
budget plan, etc.) and Project Contract.
2. Define Requirement
Analysis: https://phoenixnap.com/blog/software-development-life-cycle
https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

• What to do:
• Define the users role and get involved (interview, observe, FGD).
• Indentify the business process. Identify the problems/pain points.
• Create a model/prototype, do a simulation, and get approval.
• List system requirements (software, hardware, brainware)
• Who’s involved:
• Project manager/leader leads and makes sure it fits the users’ needs and the
project scope.
• System Analysts team analyse the process and create a modeling.
• Stakeholder/users provide information needed to develop the requirement
and give approval on the SRS.
• Output:
• Software Requirement Specification document.
3. Design and Prototyping
Design: https://phoenixnap.com/blog/software-development-life-cycle
https://textexpander.com/blog/7-stages-of-the-system-development-life-cycle/

• What to do:
• Define system architecture, software platform, db design, UI/UX design,
communication (networking) design, and system security design.
• Software prototyping based on the SRS document.
• Get approval from the users.
• Who’s involved:
• Project manager/leader leads and makes sure the prototype done and
approved.
• System Designer team collaborate with the System Analysts team to create
the system desingn.
• Stakeholder/users test the prototype and give approval.
• Output:
• Software design document.
4. Software Development
Implement: https://phoenixnap.com/blog/software-development-life-cycle
https://textexpander.com/blog/7-stages-of-the-system-development-life-cycle/

• What to do:
• Turn the prototype into codes.
• Unit testing phase might occurs especially after the codes of some parts/modules of the
software are implemented.
• Who’s involved:
• Project manager/leader makes sure this phase run well and on time. This phase often becomes
the longest process in the project time line.
• System developer (programmer) team implement the designs into codes.
• System tester might be involded during this phase to test some parts of the software.
• Stakeholder/users might be involved in Agile or DevOps model.
• Output:
• The software (alpha version).
5. Software Testing
Testing: https://phoenixnap.com/blog/software-development-life-cycle
https://www.guru99.com/alpha-beta-testing-demystified.html

• What to do:
• Put the codes into testing phase (unit testing, integration testing, system testing). Provide the
developers different prespective from the tester.
• Implement internal (alpha) testing. Involed user representatives in this process.
• Bring the software into beta testing to some limited end users in a real business process
situation.
• Conduct User Acceptance Test.
• Who’s involved:
• Project manager/leader makes sure the testing process run well especialy during the UAT.
• System testers test and give feedback to the developer team or system designer.
• Stakeholder/users involvement is significant during this phase. They test the software, give
feedback, and give approval.
• Output:
• Software testing document, UAT document
6. Deployment
Deployment: https://phoenixnap.com/blog/software-development-life-cycle
https://textexpander.com/blog/7-stages-of-the-system-development-life-cycle/

• What to do:
• Deployment preparation (serves, networking, system integrations, other supporting
softwares)
• Deploy the software and make it available to users (go live).
• Conduct training to users.
• Who’s involved:
• Project manager/leader makes sure the software deployed including the other supporting
components.
• Developer teams in collaboration with supporting units to install the software and integrate
to all the components.
• Stakeholder/users get trained and prepared to use the software.
• Output:
• Software Go Live, Installment document, manual book, user guide book
7. Operation and Maintenance
Maintenance: https://phoenixnap.com/blog/software-development-life-cycle
https://textexpander.com/blog/7-stages-of-the-system-development-life-cycle/

• What to do:
• Ready for users support. Not all users will use the software properly even when they are
trainned to use it.
• Find bugs and fix them.
• Back up the data regularly.
• Maintaine the server, network, and update the softwares reqularly.

• Who’s involved:
• Project manager/leader encourages the users to utilize the
software and minimizes the users’ complains.
• Developer teams in collaboration with system designer and
other supporting unit must be ready for bug fixing,
software updates, and regular backups.
• Output:
• Software updates, regular backups
WEEK 07
SDLC: Models
Waterfall
Waterfall: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm

• Key points:
• The first (traditional) SDLC model.
• A linear-sequential life cycle. Each phase must be completed before the next step.
• Advantage:
• Simple and can be easily understood. All
the phases are implemeneted step by step.
• Easlily managed when each step is
delivered properly.
• Disadvantage:
• Time consuming. Require a long duration,
thus it is suitable only for a long term
project.
• Less flexible. Must based on certain and
clear requirements. Any changes may lead
to over time and over budget.
Iterative
Interative: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.tutorialspoint.com/sdlc/sdlc_iterative_model.htm

• Key points:
• Start with small (limited) requirements. The software then iteratively evolves. It is enhanced
until all the requirements completed.
• In incremental model, the whole requirements can be devided into small set of requirements.
There might be serveral pararelled small project to implement the requirements.

• Advantage:
• Faster. Get the result available in shorter time.
• Easy to maintain and easy to manage the risk.
• Disadvantage:
• More resources required. More attention
required.
• System integration and architecture issues.
V-Model
V-Model: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.tutorialspoint.com/sdlc/sdlc_v_model.htm
• Key points:
• Verification and Validation model. Both run at the same time, hand in hand.
• In each phase there is a verification testing (started from requirement analysis) to review all
the requirements.
• Validation testings are conducted to comply the verified requirements.
• Similar to waterfall except that the testing occurs in every phase.
• Advantage:
• Simple model and easy to understand.
• Good for small project with fixed requirement.
• Disadvantage:
• Less flexible. Hard to handle when there are
requirement changes during the mid of the
project.
• Time consuming especially during the
verification process.
Agile
Agile: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm

• Key points:
• Adaptability and customer satisfaction focus.
• Adaptive approach is used rather than following the project constraints.
• Customer (user) interaction is the backbone (critical). Agile team and customers
collaborate in Agile Environment.
• Advantage:
• The most realistic approach in software
development (modern apporach).
• Flexible to adapt to the changes.
• New features can be added easily.
• Disadvantage:
• Lack of documentation.
• Require well experienced and high skilled
resources. Team commitment is critical.
• No customer involvement = project failure.
Rapid Application Development
RAD: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc/
https://www.tutorialspoint.com/sdlc/sdlc_rad_model.htm

• Key points:
• Based on prototype and iterative model without specific planning. Create the software as
prototype and deliver to users in short duration of time (rapid).
• Focus on gathering requirements through workshops or FGD.
• Software is developed based on the approved prototypes.

• Advantage:
• Flexible to requirement changes. Encourage
customer feedback.
• Faster. Reduce development time.
• Increase reusability of components.

• Disadvantage:
• Suitable only for modularized software.
• Required high skilled developers and designers.
• Require Automated Code generating tools
NEXT WEEK
Prepared for the Mid Exam

You might also like