Lecture 6

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 26

BBA – SPRING 2022

COMPUTER AND
ANALYTICS
INTRODUCTION TO
SOFTWARE
DEVELOPMENT
WEEK 6
SOFTWARE DEVELOPMENT
LIFE CYCLE (SDLC)
• A FRAMEWORK TO BE FOLLOWED BY
ORGANIZATIONS FOR DESIGNING AND
DEVELOPING HIGH QUALITY SOFTWARE
APPLICATIONS.
• THE PROCESS OF SOFTWARE DEVELOPMENT IS
DIVIDED INTO PHASES, WHEREAS SOME SPECIFIC
TASKS NEED TO BE ACHIEVED AT EVERY PHASE.
PHASES OF SDLC

PLANNING DEFINING DESIGNING BUILDING TESTING DEPLOYME


NT
PLANNING PHASE

• THE PRIME FOCUS OF THIS PHASE IS TO GATHER THE


ESSENTIAL REQUIREMENTS FROM THE CUSTOMER.
• THIS INFORMATION GETS COLLECTED BY THE BUSINESS
ANALYST FROM THEIR TARGET CUSTOMER(S) AND PLANS
THE BRS (BUSINESS REQUIREMENT SPECIFICATION) FOR
THE DEVELOPMENT OF THE PRODUCT. 
• SOME POPULAR QUESTIONS THAT THIS MEETING PICKS UP
ARE:
• WHO WILL USE THE PRODUCT?
• WHAT MUST BE THE OUTPUT DATA BY THE PRODUCT?
DEFINING PHASE

• WHEN THE BRS DOCUMENTATION IS DONE, THERE ARE


ANOTHER SET OF EMPLOYEES LIKE HUMAN RESOURCE
(HR), FINANCE ANALYST, ARCHITECT, A BUSINESS ANALYST
AS WELL AS PROJECT MANAGER WILL SIT JOINTLY DISCUSS
AS WELL AS ANALYZE HOW TO PROCEED AND WHETHER IT
IS FEASIBLE AND POSSIBLE IN THE ALLOTTED BUDGET?
• DOCUMENTATION IS MADE, WHICH IS THE SRS (SOFTWARE
REQUIREMENT SPECIFICATION) DOCUMENT, WHICH
CONTAINS A DETAILED EXPLANATION OF PRODUCT
REQUIREMENTS, RIGHT FROM DESIGN TO DEVELOPMENT.
DESIGNING
PHASE
•  THIS PHASE PORTRAYS A
BLUEPRINT OF THE
PRODUCT, WHICH HELPS
TO SPECIFY THE
HARDWARE AND
REQUIREMENTS OF YOUR
SYSTEM AS WELL AS
ASSIST IN CRAFTING A
SIGNIFICANT
ARCHITECTURE OF YOUR
SYSTEM.
BUILDING PHASE

• THIS PHASE DEALS WITH THE DEVELOPERS TO START WRITING THE CODE OR
PREPARE FOR THE ENGINEERING SO THAT A PROTOTYPE OF THE PRODUCT CAN
BE CREATED USING SOME SPECIFIC TOOLS AND TECHNIQUES.
• THIS IS CONSIDERED THE LONGEST PHASE OF SDLC.
TESTING PHASE

• AS YOUR PRODUCT IS PREPARED FOR DEPLOYMENT, IT NEEDS A


PRIOR TESTING ENVIRONMENT BY THE TEST ENGINEERS TO
CHECK FOR BUGS AND RUN-TIME ERRORS, AND THEY CHECK IN
THIS PHASE WHETHER THE FUNCTIONALITY OF THE PRODUCT IS
WORKING AS PER THE REQUIREMENT OR NOT.
• THE BUGS OR DEFECTS WHICH ARE ENCOUNTERED IN THE TEST
PHASE ARE REPORTED TO THE DEVELOPERS, WHO FIX THE BUG
AND REVERT TO THE TEST ENGINEERS FOR FURTHER TESTING.
• THIS IS AN ITERATIVE PROCESS THAT CONTINUES UNTIL YOUR
APPLICATION IS FREE FROM BUGS AND DEFECTS AND WORKS
STABLY.
DEPLOYMENT
PHASE
• ONCE YOUR PROTOTYPE
OR PRODUCT IS
DEVELOPED, TESTED, AND
COMPLETELY IN WORKING
FORM AS PER THE
REQUIREMENT, AND THEN
IT IS INSTALLED OR
DEPLOYED IN THE
CUSTOMER'S WORKPLACE
OR SYSTEM FOR THEIR
USE.
MAINTENANCE PHASE
• WHEN YOUR CUSTOMER(S) BEGIN USING YOUR PRODUCT AND
ENCOUNTER WITH SOME ISSUES WHICH THEY WANT TO FIX
FROM TIME TO TIME.
• THE DEVELOPER FIXES THE ISSUE, AND SOFTWARE TESTERS TEST
THE PRODUCT AND HAND IT OVER THE BACK TO THE CUSTOMER.
• THIS IS AN ADDITIONAL PHASE, AND IN MANY CASES, THIS
PHASE DOES NOT COME UNDER THE COUNT OF SDLC.
TYPES OF MAINTENANCE
1. CORRECTIVE MAINTENANCE: CORRECTIVE MAINTENANCE IS
WHERE THE MAINTENANCE IS DONE TO FIX THE ERRORS.
2. PERFECTIVE MAINTENANCE: PERFECTIVE MAINTENANCE IS DONE
WHERE THE MAINTENANCE IS DONE TO INCREASE THE EFFICIENCY
OF ANY SYSTEM ACCORDING TO CUSTOMER'S REQUIREMENT.
3. ADAPTIVE MAINTENANCE: ADAPTIVE MAINTENANCE IS
TYPICALLY NECESSARY FOR PORTING YOUR APPLICATION TO A NEW
WORK ENVIRONMENT OR PORTING FROM ONE TYPE OF OS TO
ANOTHER.
SDLC MODELS

• SDLC HAS DIFFERENT


MODELS DESIGNED WHICH
HAVE THEIR ADVANTAGES
AND DISADVANTAGES.
• SOME PROMINENT MODELS:
• WATERFALL MODEL
• SPIRAL MODEL
• PROTOTYPE MODEL
• ITERATIVE MODEL
• V-MODEL
• AGILE MODEL
WATERFALL
MODEL
• THE MODEL WAS PIONEERED IN THE
YEAR 1970 BY WINSTON ROYCE.
• THE CLASSICAL WATERFALL MODEL
WHICH IS ALSO KNOWN AS THE
LINEAR-SEQUENTIAL LIFE CYCLE
MODEL IS AN ESSENTIAL SOFTWARE
DEVELOPMENT MODEL WHICH CAN
BE UNDERSTANDABLE FROM THE
STRUCTURE ITSELF.
• SUITABLE FOR PROJECT WHERE
REQUIREMENTS ARE CLEARLY
DEFINED
SPIRAL
MODEL
• SPIRAL MODEL IS A BLEND OF
BOTH ITERATIVE DEVELOPMENT
METHOD AS WELL AS SEQUENTIAL
IMPROVEMENT MODEL.
• THE EXACT NUMBER OF PHASES
FOR DEVELOPING A PRODUCT
VARIED BASED ON SOME
CONSTRAINTS AND BY PROJECT
MANAGER WHICH CALCULATES
THE PROJECT RISKS.
• THE RADIUS IN SPIRAL USUALLY
SHOWS THE EXPENSES OR COST
NEEDED FOR PROJECT
DEVELOPMENT.
• METHODOLOGY THAT IS TREATED AS A MODEL FOR
SOFTWARE DEVELOPMENT WHERE A PROTOTYPE - WHICH IS A
PREMATURE APPROXIMATED SAMPLE OF THE FINAL
PRODUCT, IS CONSTRUCTED AND THEN TESTED.
• AFTER THAT REWORK IS DONE ON THAT UNFINISHED
PRODUCT AS PER REQUIREMENT IN ANTICIPATION OF
PROTOTYPI BUILDING A SUITABLE PROTOTYPE THAT IS, AT LAST, ATTAIN
AFTER THE ENTIRE SOFTWARE IS D
NG MODEL • IT IS A USEFUL MODEL FOR THOSE WHOSE PROJECT
REQUIREMENT IS NOT FULLY KNOWN OR THERE IS A
CONSTANT UPDATE REQUIRED BASED ON CUSTOMER
SATISFACTION. DEVELOPED AND THEN IT IS DELIVERED TO
THE CUSTOMER. CUSTOMER OPINION UNTIL THE FINAL ONE
GETS ACCEPTED. IT PROVIDES AN IMPROVED WAY WHICH
CAN SAVE TIME AND EFFORT.
1. RAPID THROWAWAY PROTOTYPING: IN THIS
METHOD, DEVELOPERS CAN EXPLORE THE IDEAS
AS WELL AS GET PROPER CUSTOMER FEEDBACK.

PROTOTYPI HERE, THE PROTOTYPE NEED NOT BE A FINAL


ONE, AND SO IT CAN BE FURTHER ITERATED TO
NG MODEL - DEVELOP NEW VERSIONS OF THE FINAL PRODUCT.
TYPES 2. EVOLUTIONARY PROTOTYPING: HERE YOUR
DEVELOPED PROTOTYPE WILL PRIMARILY BE
INCREMENTED FOR REFINING ON THE
FOUNDATION OF
PROTOTYPING MODEL - PHASES

Requirement Design Stage Build the Initial Review of the Iteration and
Identification Prototype Prototype Enhancement of
Prototype
AGILE MODEL

• THE AGILE SOFTWARE


DEVELOPMENT MODEL WAS
MAINLY INTENDED FOR
HELPING DEVELOPERS BUILD A
PROJECT WHICH CAN ADAPT TO
TRANSFORMING REQUESTS
QUICKLY.
• AGILITY CAN BE ACHIEVED BY
CORRECTING THE
PROGRESSION TO THE PROJECT
BY ELIMINATING ACTIVITIES
WHICH MAY NOT BE CRUCIAL
FOR THAT SPECIFIC PROJECT.
AGILE MODEL - VARIANTS

Feature-
driven Crystal Atern Scrum
development

Extreme
Unified Lean
programming
process development
(XP)
IN-HOUSE SOFTWARE DEVELOPMENT VS
OUTSOURCING

1 2
In-house software development Outsourcing involves working
involves using the skills of your with a third-party provider with
internal team to create your specialist skills to develop your
software. project quickly and efficiently.
IN-HOUSE SOFTWARE DEVELOPMENT

PROS CONS
• LONG-TERM PRODUCT DEVELOPMENT • TIME-CONSUMING PROCESS
• ALIGNED INTERESTS • TECHNICAL EXPERTISE
• COMPANY‘S CULTURE FIT • LIMITED FUNDS TO HIRE A TALENT
• SHORTER TURNAROUND TIME • SIDE COSTS
• ALIGNMENT WITH THE COMPANY‘S • OVERLOAD OF IN-HOUSE IT
STANDARDS RESOURCES
OUTSOURCING

PROS CONS
• A FAST APPROACH TO HIRING HIGH- • QUALITY CONTROL
QUALITY DEVELOPERS
• COLLABORATION
• FLEXIBILITY
• LOGISTICAL CHALLENGES
• SCALABILITY
• COMMITMENT TO THE PROJECT
• SHORT TERM COMMITMENT
• SECURITY AND CONFIDENTIALITY
• REDUCED COSTS
• OFF THE SHELF SOFTWARE ARE STANDARDIZED
SOFTWARE APPLICATIONS THAT ARE MASS-PRODUCED,
AVAILABLE TO THE GENERAL PUBLIC, AND FIT FOR
IMMEDIATE USE.
• THEY ARE DESIGNED FOR A BROAD RANGE OF
CUSTOMERS, OFFERING A COMPREHENSIVE SET OF
FEATURES TO STREAMLINE OPERATIONS.
• EXAMPLES:

COMMERCI • PRODUCTIVITY: MS EXCEL, MS WORD, GOOGLE


SHEETS, GOOGLE PRESENTATION
AL OFF THE • OPERATING SYSTEM: MICROSOFT WINDOWS, UBUNTU

SHELF LINUX, MAC OS


• GAMES: PUBG, ANGRY BIRDS
(COTS) • ANTIVIRUS: KESPERSKY, NORTON ANTIVIRUS

SOFTWARES • MULTIMEDIA: VLC PLAYER, MS MEDIA PLAYER


COTS – KEY ATTRIBUTES

Cost-Effective – especially in Convenience in terms of Customization through add-


the initial stages guiding material and ons or source code in case of
documentation opensource softwares
• SOFTWARE AS A SERVICE (SAAS) IS A SOFTWARE DISTRIBUTION
MODEL IN WHICH A CLOUD PROVIDER HOSTS APPLICATIONS AND
MAKES THEM AVAILABLE TO END USERS OVER THE INTERNET.

SOFTWAR • SAAS REMOVES THE NEED FOR ORGANIZATIONS TO INSTALL AND


RUN APPLICATIONS ON THEIR OWN COMPUTERS OR IN THEIR OWN

E AS A
DATA CENTERS. THIS ELIMINATES THE EXPENSE OF HARDWARE
ACQUISITION, PROVISIONING AND MAINTENANCE, AS WELL AS
SOFTWARE LICENSING, INSTALLATION AND SUPPORT.

SERVICE • OTHER ADVANTAGE:


• FLEXIBLE PAYMENTS
(SAAS) • SCALABLE USAGE
• AUTOMATIC UPDATES
• ACCESSIBILITY AND PERSISTENCE
• CUSTOMIZATION

You might also like