You are on page 1of 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