SlideShare a Scribd company logo
1 of 10
Download to read offline
2. Software Development Life Cycle and System Development
                                    Methodologies


Introduction: In the lesson 01, we discussed why we need Software Systems and what the
main characteristics Software System should have. In this lesson we will discuss about the
how we can develop software systems and methodologies we can adhere when we
developing software systems.

  Lesson Outcomes:

  After completing this lesson you should be able to

      •     Explain the software development life‐cycle.

      •     Using suitable examples, explain the waterfall method.

      •     Identify and describe the main limitations in water fall method.

      •     Explain the role iterative waterfall method and how it differs from waterfall method.

      •     Define the object oriented analysis and design methodology.



2.1 Software Development Life Cycle (SDLC)

Systems Development Life Cycle (SDLC) is a software development process, although it is
also a process that independent of software or other information technology
considerations, i.e. SDLC is independent of the technology we are using, such as Java, C,
.Net, C#, client‐server application , web application etc. It is used by a systems analyst to
develop Software System, including requirements gathering, requirements validation,
requirement analysis, system design, implementation, and maintenance.

An SDLC should result in a high quality system that meets customer expectations, within
time and cost estimates, and is cheap to maintain and cost‐effective to enhance. SDLC is a
systematic approach to problem solving and is composed of several phases. The general
phases in SDLC are:

          a) Planning

          b) Analysis

          c) Design
d) Development

     e) Testing

     f) Deployment

     g) Maintenance

Let’s analyze each of these phases one by one, in terms of activities carried out in each
phase:

2.1.1 Planning

Before starting the system development process, we need to establish proper plan by

     •       Defining the system to be developed – System should be clearly understand
             and chosen based on the critical functionalities should be provided by the
             system. For example, in Inventory Control System, critical functions Material
             Request Notes, Receipt Notes, Stock Balance Notes, etc. and non‐ critical
             functions are functions update customer types, item types, customer
             information, etc.

     •       The project scope – Based on the high of level of system requirements, project
             scope should be clearly estimated. Based on the project scope we can also
             estimate the project duration, such as its one year, two years, etc. It is not good
             practice to promise to give a project in six months where it is not possible to give
             in six months.

     •       Developing the project plan – Project development plan should contain all the
             details of the tasks to be implemented, who will complete them and when they
             will complete it.

     •       Managing and monitoring the project plan – This allows the organization to
             stay on track, creating project milestones and feature creeps which allow you to
             add to the initial plan

         2.1.2 Analyze

         The users and the Analyst work together to collect comprehend and logically
         formalize requirements by

         •    Gathering customer requirements
System analyst collaborates with users to get the requirements clearly. System
     analyst may conduct interviews from selected employees from the
     organization representing each knowledge level managerial structure.

•   Analyzing the requirements

    Identified requirements are prioritized and put in a requirements definition
    document.

    The following diagram (figure 1) shows the main inputs to analyze phase and the
    main output of the analyze phase




                  Figure 1:‐ Inputs and Outputs of the Analyze Phase.

2.1.3 Design

This is the phase where we started to design our system, based on the customer
requirements:

•   Designing the technical architecture

    System architecture should be design based on the identified requirements, and
    the hardware, software should be chosen that will be best suited to the customer
    requirements.

•   Designing the systems model

    Here we should design all the modules of the system including GUI screen and
    databases designing.

•   Write the test Cases

    Test cases should be written to check the functionalities of the system according
    to the system requirements.
Following diagram (figure 2) shows the main inputs and outputs of the design
phase:




                   Figure 2:‐ Inputs and Outputs of the Design Phase

2.1.4   Development

In the development phase, the designed system will now be implemented by

•   Building the technical architecture

    If technical materials are needed such as Oracle, VB, Eclipse, etc, those will be
    purchased if necessary and then will be configured to start the implementation.

•   Building the database and programs

    Systems will be developed or implemented by the system developers.

2.1.5   Testing

The implemented system will be tested by the quality assurance team according to
the test cases written in the analyze phase.

2.1.6 Deployment

Once the quality assurance team ensures the system is error free, then system will
be deployed at the client side. At this stage, if necessary only, training will be
provided to end‐users to make them familiarize to new system.
2.1.7 Maintenance

        Once the system is deployed, in order to keep the system up to date with the
        customer requirements, changes will also be implemented when it is necessary.

Activity 2.1

Consider, you are asked to computerized current manual system of a Library. What are the main
activities, you will carry out under each of the phases in SDLC?

    •     Planning

               o    Identify the critical functionalities in Library System, such as lending and returning
                    processes, prepare Project Plan, including the critical tasks, developers attached to
                    each task with timelines and define the scope of the project

    •     Analyze

               o    Identify critical functionalities and document all the identified functionalities, such as
                    member registration, calculate calculating taxes and other expenses, etc.

    •     Design

               o    Design the main functionalities, modules of the system such as, Lending Process,
                    Return Process, Book Maintenance Process, etc.

    •     Development ‐ developed identified modules and functionalities.

    •     Testing ‐ Testing the system using test cases

    •     Deploy – Deploy the system in client side, and provide training to the library staff.

    •     Maintenance – Keep monitoring the system process, and do changes when it is necessary.



 Question: Why software development life cycle is important for the development
 of software?

 SDLC can be taken as a framework that guides us through the development of Software
 Systems. Since software can be very difficult and complex, we need the SDLC as a
 framework to guide the development to make it more systematic and efficient.

 We will be able to tell how long it will take to complete the project, to test and deploy.
 Not only that, we will have an easier time debugging and finding flaws in the software
 program or make enhancement to it.
2.2 Software Development Life Cycle Models

   Nowadays, Software Systems are so big and complex that teams of architects,
   analysts, programmers, testers and users must work together to create the millions
   of lines of code. To manage this number of SDLC models have been created,
   waterfall, iterative waterfall, spiral, incremental, etc are some of those.

2.3 Waterfall Model

   The waterfall model is a sequential software development model in which
   development is seen as flowing steadily downwards (like a waterfall) through the
   phases of requirements analysis, design, implementation, testing, integration, and
   maintenance. (Source: http://en.wikipedia.org/)

   In waterfall model, each phase produce the output required for the next phase in
   mutually exclusive (non‐overlapping).

   The structure of the waterfall model can be viewed as follows, see figure 3.

     Requirement Analysis


              Design


                       Implementation

                              Testing


                                    Integration

                                             Maintenance

                                   Figure 3:‐ Waterfall Model



   To follow the waterfall model, we should proceeds from one phase to the next in
   purely sequential manner.

   For example, we need to complete requirement analysis phase to move to the design
   phase. (In requirement analysis phase, we will identify the all the customer
   requirements, and also will be able to prioritize the requirements based on their
   criticality).
In the design phase we will design our system accordance to the customer
   requirements. When the design is fully completed, an implementation of that design
   is made by developers.

   Towards the later stages of this implementation phase, disparate software
   components produced by different teams are integrated. After the implementation
   and integration phases are complete, the software product is tested and debugged;
   any faults introduced in earlier phases are removed here. Then the software product
   is installed, and later maintained to introduce new functionality and remove bugs.

   As you see, the waterfall model maintains that one should move to a phase only
   when its’ preceding phase is completed and perfected. Phases of development in the
   waterfall model are discrete, and there is no jumping back and forth or overlap
   between them.

    Therefore since there no jumping back and forth options in Waterfall methods,
   following limitations are in the waterfall method:

          Mutual exclusivity of phases results in poor use of human resources, since
          developers must wait for designers, etc.

          Unidirectional motion between phases is inadequate since it does not allow
          changes to be made to documents/code created in earlier phases.

    To overcome these limitations, Iterative waterfall method was introduced.

2.4 Iterative Waterfall Model

   Iterative waterfall model is a revised model of the waterfall model, where phases
   can be revisited several times to correct mistakes or problems identified in
   subsequent phases.

   The following diagram (Figure 4) shows the structure of the Iterative waterfall
   method
                                          Requirement
   Figure 4:‐ Iterative waterfall Model

                                                 Design

                                                        Implementation

                                                              Testing

                                                                    Integration

                                                                            Maintenance
Activity 2.2

  Identify activities that can not be overcome using waterfall method but Iterative waterfall method

      •    If requirements are not being captured well, then this error will reflect the entire process of
           waterfall method, even error is identified at the design phase or any other phases. But if we
           use Iterative waterfall method, when the error is identified, we can jump back to the relevant
           phase and correct the error and continue.

      •    Even we identified coding error in testing phase, we can not jump back and correct the error in
           waterfall model but in iterative waterfall model.




Note: As you see, system development life cycle (SDLC) models divide the life of an
information system into two stages, i.e. system development (Requirement Analysis, Design,
Implementation, Testing and Integration phases) and system operation and support
(Maintenance phase).

Following figure, (figure 5) illustrates the two life cycle stages of SDLC models


                                                Conversion


                     Life Cycle Stage                                                Life Cycle Stage



                  System development              Lifetime of a                  System operation and
                                                  System                               support


                 Using system development
                        methodology                                             Using information Technology




                                                    Obsolescence


                                        Figure 5:‐ A System Life Cycle

          (When system cycle from development to operation and support, a construction
          must take place. At some points, obsolescence occurs when system cycle from
          operation and support to system development)

          Question: What is a systems development methodology?
A systems development methodology is a very formal and precise system
   development process that defines a set of activities, methods, best practices,
   deliverables, and automated tools for system developers and project managers to
   use to develop software systems. (Source: Whitten, J.L and et.al, Systems Analysis
   and Design Methods, (5th Edition), McGraw‐Hill, pp 78‐79)

   As such, we use system development methodologies to cover activities in system
   development stages. Object oriented Analysis and Design methodology is an
   example for such as system development methodology.

2.5 Object Oriented Analysis and Design methodology (OOAD methodology)

   Object Oriented Analysis and Design methodology completely based on object
   oriented modeling. In object oriented modeling system is analyzed in terms of
   objects and their relationships.

   During the system analysis phase, object modeling will be done as a technique for
   defining business requirements for a new system. The approach of using object
   modeling during system analysis phase is called object oriented analysis. In the
   design phase, object oriented techniques will be used to design a new system. The
   approach of using object oriented techniques for designing a system is referred to as
   object oriented designing. In the implementation phase, object oriented
   programming will be used to implement designed system and the implemented
   system will be tested by using test cases. In this course, we are mainly focus on
   object oriented analysis and designing.


  Activity 2.3

  How SDLC differs from Systems Development Methodologies?

  SDLC represent the entire life cycle of the system software, Systems Development
  Methodologies cover the system development stage (analysis, design, implementation, testing,
  integration) of the SDLC.
Summery:

 In this lesson we define what Software Development Life Cycle (SDLC) is, we analyzed the main phases
in SDLC with their activities. Then we discuss about the SDLC models, such as waterfall, and iterative
waterfall model. We evaluate how iterative waterfall model can be used to overcome the issues in
waterfall model.

We divided the SDLC model into main two stages, system development, system operation and support.
We identify the role of system development methodologies in SDLC. Object Oriented Systems Analysis
and Design methodology is an example of such a system development methodology, where systems will
be analyzed and designed in terms of Objects and their relationships.

In the next lesson, we will discuss about Object Oriented Concepts.

More Related Content

What's hot

Software development planning and essentials
Software development planning and essentialsSoftware development planning and essentials
Software development planning and essentialsRajesh P
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riportDilip Prajapati
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riportDilip Prajapati
 
Employee Management System
Employee Management SystemEmployee Management System
Employee Management Systemvivek shah
 
SYNOPSIS ON BANK MANAGEMENT SYSTEM
SYNOPSIS ON BANK MANAGEMENT SYSTEMSYNOPSIS ON BANK MANAGEMENT SYSTEM
SYNOPSIS ON BANK MANAGEMENT SYSTEMNitish Xavier Tirkey
 
Registration System for Training Program in STC
Registration System for Training Program in STCRegistration System for Training Program in STC
Registration System for Training Program in STCalraee
 
Medical Store Management System Software Engineering 1
Medical Store Management System Software Engineering 1Medical Store Management System Software Engineering 1
Medical Store Management System Software Engineering 1hani2253
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using umlDhiraj Shetty
 
Employee Tracking System
Employee Tracking SystemEmployee Tracking System
Employee Tracking SystemKiran Girase
 
A Software Engineering Project on Cyber cafe management
A Software Engineering Project on Cyber cafe managementA Software Engineering Project on Cyber cafe management
A Software Engineering Project on Cyber cafe managementsvrohith 9
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationVishal Singh
 
Medical Store Management System Software Engineering Project
Medical Store Management System Software Engineering ProjectMedical Store Management System Software Engineering Project
Medical Store Management System Software Engineering Projecthani2253
 
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9iCUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9iAkash Gupta
 
Event management system
Event management systemEvent management system
Event management systemD Yogendra Rao
 
Employee Management System
Employee Management SystemEmployee Management System
Employee Management SystemAnjali Agrawal
 
Pharmacy Management System1
Pharmacy Management System1Pharmacy Management System1
Pharmacy Management System1Nuwan Lansakara
 
Governing software process improvements in globally distributed product devel...
Governing software process improvements in globally distributed product devel...Governing software process improvements in globally distributed product devel...
Governing software process improvements in globally distributed product devel...Shakas Technologies
 
Furniture shop management system project report
Furniture shop management system project reportFurniture shop management system project report
Furniture shop management system project reportMaiwandTechnologix
 
Foodies- An e-Food inventory Management Portal
Foodies- An e-Food inventory Management PortalFoodies- An e-Food inventory Management Portal
Foodies- An e-Food inventory Management PortalLJ PROJECTS
 

What's hot (20)

Software development planning and essentials
Software development planning and essentialsSoftware development planning and essentials
Software development planning and essentials
 
Goal setting
Goal settingGoal setting
Goal setting
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Employee Management System
Employee Management SystemEmployee Management System
Employee Management System
 
SYNOPSIS ON BANK MANAGEMENT SYSTEM
SYNOPSIS ON BANK MANAGEMENT SYSTEMSYNOPSIS ON BANK MANAGEMENT SYSTEM
SYNOPSIS ON BANK MANAGEMENT SYSTEM
 
Registration System for Training Program in STC
Registration System for Training Program in STCRegistration System for Training Program in STC
Registration System for Training Program in STC
 
Medical Store Management System Software Engineering 1
Medical Store Management System Software Engineering 1Medical Store Management System Software Engineering 1
Medical Store Management System Software Engineering 1
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using uml
 
Employee Tracking System
Employee Tracking SystemEmployee Tracking System
Employee Tracking System
 
A Software Engineering Project on Cyber cafe management
A Software Engineering Project on Cyber cafe managementA Software Engineering Project on Cyber cafe management
A Software Engineering Project on Cyber cafe management
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Medical Store Management System Software Engineering Project
Medical Store Management System Software Engineering ProjectMedical Store Management System Software Engineering Project
Medical Store Management System Software Engineering Project
 
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9iCUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
CUSTOMER CARE ADMINISTRATION-developer-2000 and oracle 9i
 
Event management system
Event management systemEvent management system
Event management system
 
Employee Management System
Employee Management SystemEmployee Management System
Employee Management System
 
Pharmacy Management System1
Pharmacy Management System1Pharmacy Management System1
Pharmacy Management System1
 
Governing software process improvements in globally distributed product devel...
Governing software process improvements in globally distributed product devel...Governing software process improvements in globally distributed product devel...
Governing software process improvements in globally distributed product devel...
 
Furniture shop management system project report
Furniture shop management system project reportFurniture shop management system project report
Furniture shop management system project report
 
Foodies- An e-Food inventory Management Portal
Foodies- An e-Food inventory Management PortalFoodies- An e-Food inventory Management Portal
Foodies- An e-Food inventory Management Portal
 

Viewers also liked

My last summer
My last summerMy last summer
My last summernujaen
 
グレブナー基底輪読会 #1 ―準備体操の巻―
グレブナー基底輪読会 #1 ―準備体操の巻―グレブナー基底輪読会 #1 ―準備体操の巻―
グレブナー基底輪読会 #1 ―準備体操の巻―Yutaka Nagahata
 
Акира Ивата - Water front city
Акира Ивата  - Water front city Акира Ивата  - Water front city
Акира Ивата - Water front city Anna Odintsova
 
Рикардо Марини - Пленарное заседание
Рикардо Марини - Пленарное заседаниеРикардо Марини - Пленарное заседание
Рикардо Марини - Пленарное заседаниеAnna Odintsova
 
Television
TelevisionTelevision
Televisionnujaen
 
第二回北大クラスタリングセミナー 永幡
第二回北大クラスタリングセミナー 永幡第二回北大クラスタリングセミナー 永幡
第二回北大クラスタリングセミナー 永幡Yutaka Nagahata
 
Татьяна Прокофьева - Kazan Urban Forum
Татьяна Прокофьева - Kazan Urban ForumТатьяна Прокофьева - Kazan Urban Forum
Татьяна Прокофьева - Kazan Urban ForumAnna Odintsova
 
Process of effective service provision
Process of effective service  provisionProcess of effective service  provision
Process of effective service provisionEssay Lounge
 
Мария Леонтьева - Парки и общественные пространства в РТ
Мария Леонтьева - Парки и общественные пространства в РТМария Леонтьева - Парки и общественные пространства в РТ
Мария Леонтьева - Парки и общественные пространства в РТAnna Odintsova
 
北大クラスタリング・セミナー6
北大クラスタリング・セミナー6北大クラスタリング・セミナー6
北大クラスタリング・セミナー6Yutaka Nagahata
 
Sop 001-001test
Sop 001-001testSop 001-001test
Sop 001-001testmartinkcl
 
Apostila mecânica dos solos i usp
Apostila mecânica dos solos i   uspApostila mecânica dos solos i   usp
Apostila mecânica dos solos i uspFellipe Lousada
 
Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Babu Kanikicharla (K Y Babu Setty)
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesNesrine Shokry
 
Methodologies of Software Engineering
Methodologies of Software EngineeringMethodologies of Software Engineering
Methodologies of Software EngineeringKaya Ota
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMNana Sarpong
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development MethodologiesDevon Ravihansa
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 

Viewers also liked (20)

My last summer
My last summerMy last summer
My last summer
 
Resume
ResumeResume
Resume
 
グレブナー基底輪読会 #1 ―準備体操の巻―
グレブナー基底輪読会 #1 ―準備体操の巻―グレブナー基底輪読会 #1 ―準備体操の巻―
グレブナー基底輪読会 #1 ―準備体操の巻―
 
Акира Ивата - Water front city
Акира Ивата  - Water front city Акира Ивата  - Water front city
Акира Ивата - Water front city
 
Juz 01
Juz 01Juz 01
Juz 01
 
Рикардо Марини - Пленарное заседание
Рикардо Марини - Пленарное заседаниеРикардо Марини - Пленарное заседание
Рикардо Марини - Пленарное заседание
 
Television
TelevisionTelevision
Television
 
第二回北大クラスタリングセミナー 永幡
第二回北大クラスタリングセミナー 永幡第二回北大クラスタリングセミナー 永幡
第二回北大クラスタリングセミナー 永幡
 
Татьяна Прокофьева - Kazan Urban Forum
Татьяна Прокофьева - Kazan Urban ForumТатьяна Прокофьева - Kazan Urban Forum
Татьяна Прокофьева - Kazan Urban Forum
 
Process of effective service provision
Process of effective service  provisionProcess of effective service  provision
Process of effective service provision
 
Мария Леонтьева - Парки и общественные пространства в РТ
Мария Леонтьева - Парки и общественные пространства в РТМария Леонтьева - Парки и общественные пространства в РТ
Мария Леонтьева - Парки и общественные пространства в РТ
 
北大クラスタリング・セミナー6
北大クラスタリング・セミナー6北大クラスタリング・セミナー6
北大クラスタリング・セミナー6
 
Sop 001-001test
Sop 001-001testSop 001-001test
Sop 001-001test
 
Apostila mecânica dos solos i usp
Apostila mecânica dos solos i   uspApostila mecânica dos solos i   usp
Apostila mecânica dos solos i usp
 
Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....Software System Development Methodologies, tools, design and life cycle by K....
Software System Development Methodologies, tools, design and life cycle by K....
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Methodologies of Software Engineering
Methodologies of Software EngineeringMethodologies of Software Engineering
Methodologies of Software Engineering
 
Software Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADMSoftware Development Methodologies-HSM, SSADM
Software Development Methodologies-HSM, SSADM
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 

Similar to Lesson 02.2

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Software development life cycle.
Software development life cycle.Software development life cycle.
Software development life cycle.RishavChandel1
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)Simran Kaur
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles poonam bora
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleKanav Sood
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineeringArun Nair
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3Azhar Shaik
 
21UCAE65 Software Testing.pdf(MTNC)(BCA)
21UCAE65 Software Testing.pdf(MTNC)(BCA)21UCAE65 Software Testing.pdf(MTNC)(BCA)
21UCAE65 Software Testing.pdf(MTNC)(BCA)ssuser7f90ae
 
SDLC models testing
SDLC models testingSDLC models testing
SDLC models testingJadavsejal
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelAmr E. Mohamed
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1Badar Waseer
 
System Development
System  DevelopmentSystem  Development
System DevelopmentSharad Patel
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
Software engineering
Software engineeringSoftware engineering
Software engineeringnidhi5388
 
SDLC presentation-1.pptx
SDLC presentation-1.pptxSDLC presentation-1.pptx
SDLC presentation-1.pptxEvelynChinnu
 

Similar to Lesson 02.2 (20)

Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
تحليل النظم
تحليل النظمتحليل النظم
تحليل النظم
 
Software development life cycle.
Software development life cycle.Software development life cycle.
Software development life cycle.
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
4 sdlc
4 sdlc4 sdlc
4 sdlc
 
21UCAE65 Software Testing.pdf(MTNC)(BCA)
21UCAE65 Software Testing.pdf(MTNC)(BCA)21UCAE65 Software Testing.pdf(MTNC)(BCA)
21UCAE65 Software Testing.pdf(MTNC)(BCA)
 
SDLC models testing
SDLC models testingSDLC models testing
SDLC models testing
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle Model
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
System Development
System  DevelopmentSystem  Development
System Development
 
Pawan111
Pawan111Pawan111
Pawan111
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SDLC presentation-1.pptx
SDLC presentation-1.pptxSDLC presentation-1.pptx
SDLC presentation-1.pptx
 

Lesson 02.2

  • 1. 2. Software Development Life Cycle and System Development Methodologies Introduction: In the lesson 01, we discussed why we need Software Systems and what the main characteristics Software System should have. In this lesson we will discuss about the how we can develop software systems and methodologies we can adhere when we developing software systems. Lesson Outcomes: After completing this lesson you should be able to • Explain the software development life‐cycle. • Using suitable examples, explain the waterfall method. • Identify and describe the main limitations in water fall method. • Explain the role iterative waterfall method and how it differs from waterfall method. • Define the object oriented analysis and design methodology. 2.1 Software Development Life Cycle (SDLC) Systems Development Life Cycle (SDLC) is a software development process, although it is also a process that independent of software or other information technology considerations, i.e. SDLC is independent of the technology we are using, such as Java, C, .Net, C#, client‐server application , web application etc. It is used by a systems analyst to develop Software System, including requirements gathering, requirements validation, requirement analysis, system design, implementation, and maintenance. An SDLC should result in a high quality system that meets customer expectations, within time and cost estimates, and is cheap to maintain and cost‐effective to enhance. SDLC is a systematic approach to problem solving and is composed of several phases. The general phases in SDLC are: a) Planning b) Analysis c) Design
  • 2. d) Development e) Testing f) Deployment g) Maintenance Let’s analyze each of these phases one by one, in terms of activities carried out in each phase: 2.1.1 Planning Before starting the system development process, we need to establish proper plan by • Defining the system to be developed – System should be clearly understand and chosen based on the critical functionalities should be provided by the system. For example, in Inventory Control System, critical functions Material Request Notes, Receipt Notes, Stock Balance Notes, etc. and non‐ critical functions are functions update customer types, item types, customer information, etc. • The project scope – Based on the high of level of system requirements, project scope should be clearly estimated. Based on the project scope we can also estimate the project duration, such as its one year, two years, etc. It is not good practice to promise to give a project in six months where it is not possible to give in six months. • Developing the project plan – Project development plan should contain all the details of the tasks to be implemented, who will complete them and when they will complete it. • Managing and monitoring the project plan – This allows the organization to stay on track, creating project milestones and feature creeps which allow you to add to the initial plan 2.1.2 Analyze The users and the Analyst work together to collect comprehend and logically formalize requirements by • Gathering customer requirements
  • 3. System analyst collaborates with users to get the requirements clearly. System analyst may conduct interviews from selected employees from the organization representing each knowledge level managerial structure. • Analyzing the requirements Identified requirements are prioritized and put in a requirements definition document. The following diagram (figure 1) shows the main inputs to analyze phase and the main output of the analyze phase Figure 1:‐ Inputs and Outputs of the Analyze Phase. 2.1.3 Design This is the phase where we started to design our system, based on the customer requirements: • Designing the technical architecture System architecture should be design based on the identified requirements, and the hardware, software should be chosen that will be best suited to the customer requirements. • Designing the systems model Here we should design all the modules of the system including GUI screen and databases designing. • Write the test Cases Test cases should be written to check the functionalities of the system according to the system requirements.
  • 4. Following diagram (figure 2) shows the main inputs and outputs of the design phase: Figure 2:‐ Inputs and Outputs of the Design Phase 2.1.4 Development In the development phase, the designed system will now be implemented by • Building the technical architecture If technical materials are needed such as Oracle, VB, Eclipse, etc, those will be purchased if necessary and then will be configured to start the implementation. • Building the database and programs Systems will be developed or implemented by the system developers. 2.1.5 Testing The implemented system will be tested by the quality assurance team according to the test cases written in the analyze phase. 2.1.6 Deployment Once the quality assurance team ensures the system is error free, then system will be deployed at the client side. At this stage, if necessary only, training will be provided to end‐users to make them familiarize to new system.
  • 5. 2.1.7 Maintenance Once the system is deployed, in order to keep the system up to date with the customer requirements, changes will also be implemented when it is necessary. Activity 2.1 Consider, you are asked to computerized current manual system of a Library. What are the main activities, you will carry out under each of the phases in SDLC? • Planning o Identify the critical functionalities in Library System, such as lending and returning processes, prepare Project Plan, including the critical tasks, developers attached to each task with timelines and define the scope of the project • Analyze o Identify critical functionalities and document all the identified functionalities, such as member registration, calculate calculating taxes and other expenses, etc. • Design o Design the main functionalities, modules of the system such as, Lending Process, Return Process, Book Maintenance Process, etc. • Development ‐ developed identified modules and functionalities. • Testing ‐ Testing the system using test cases • Deploy – Deploy the system in client side, and provide training to the library staff. • Maintenance – Keep monitoring the system process, and do changes when it is necessary. Question: Why software development life cycle is important for the development of software? SDLC can be taken as a framework that guides us through the development of Software Systems. Since software can be very difficult and complex, we need the SDLC as a framework to guide the development to make it more systematic and efficient. We will be able to tell how long it will take to complete the project, to test and deploy. Not only that, we will have an easier time debugging and finding flaws in the software program or make enhancement to it.
  • 6. 2.2 Software Development Life Cycle Models Nowadays, Software Systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of code. To manage this number of SDLC models have been created, waterfall, iterative waterfall, spiral, incremental, etc are some of those. 2.3 Waterfall Model The waterfall model is a sequential software development model in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing, integration, and maintenance. (Source: http://en.wikipedia.org/) In waterfall model, each phase produce the output required for the next phase in mutually exclusive (non‐overlapping). The structure of the waterfall model can be viewed as follows, see figure 3. Requirement Analysis Design Implementation Testing Integration Maintenance Figure 3:‐ Waterfall Model To follow the waterfall model, we should proceeds from one phase to the next in purely sequential manner. For example, we need to complete requirement analysis phase to move to the design phase. (In requirement analysis phase, we will identify the all the customer requirements, and also will be able to prioritize the requirements based on their criticality).
  • 7. In the design phase we will design our system accordance to the customer requirements. When the design is fully completed, an implementation of that design is made by developers. Towards the later stages of this implementation phase, disparate software components produced by different teams are integrated. After the implementation and integration phases are complete, the software product is tested and debugged; any faults introduced in earlier phases are removed here. Then the software product is installed, and later maintained to introduce new functionality and remove bugs. As you see, the waterfall model maintains that one should move to a phase only when its’ preceding phase is completed and perfected. Phases of development in the waterfall model are discrete, and there is no jumping back and forth or overlap between them. Therefore since there no jumping back and forth options in Waterfall methods, following limitations are in the waterfall method: Mutual exclusivity of phases results in poor use of human resources, since developers must wait for designers, etc. Unidirectional motion between phases is inadequate since it does not allow changes to be made to documents/code created in earlier phases. To overcome these limitations, Iterative waterfall method was introduced. 2.4 Iterative Waterfall Model Iterative waterfall model is a revised model of the waterfall model, where phases can be revisited several times to correct mistakes or problems identified in subsequent phases. The following diagram (Figure 4) shows the structure of the Iterative waterfall method Requirement Figure 4:‐ Iterative waterfall Model Design Implementation Testing Integration Maintenance
  • 8. Activity 2.2 Identify activities that can not be overcome using waterfall method but Iterative waterfall method • If requirements are not being captured well, then this error will reflect the entire process of waterfall method, even error is identified at the design phase or any other phases. But if we use Iterative waterfall method, when the error is identified, we can jump back to the relevant phase and correct the error and continue. • Even we identified coding error in testing phase, we can not jump back and correct the error in waterfall model but in iterative waterfall model. Note: As you see, system development life cycle (SDLC) models divide the life of an information system into two stages, i.e. system development (Requirement Analysis, Design, Implementation, Testing and Integration phases) and system operation and support (Maintenance phase). Following figure, (figure 5) illustrates the two life cycle stages of SDLC models Conversion Life Cycle Stage Life Cycle Stage System development Lifetime of a System operation and System support Using system development methodology Using information Technology Obsolescence Figure 5:‐ A System Life Cycle (When system cycle from development to operation and support, a construction must take place. At some points, obsolescence occurs when system cycle from operation and support to system development) Question: What is a systems development methodology?
  • 9. A systems development methodology is a very formal and precise system development process that defines a set of activities, methods, best practices, deliverables, and automated tools for system developers and project managers to use to develop software systems. (Source: Whitten, J.L and et.al, Systems Analysis and Design Methods, (5th Edition), McGraw‐Hill, pp 78‐79) As such, we use system development methodologies to cover activities in system development stages. Object oriented Analysis and Design methodology is an example for such as system development methodology. 2.5 Object Oriented Analysis and Design methodology (OOAD methodology) Object Oriented Analysis and Design methodology completely based on object oriented modeling. In object oriented modeling system is analyzed in terms of objects and their relationships. During the system analysis phase, object modeling will be done as a technique for defining business requirements for a new system. The approach of using object modeling during system analysis phase is called object oriented analysis. In the design phase, object oriented techniques will be used to design a new system. The approach of using object oriented techniques for designing a system is referred to as object oriented designing. In the implementation phase, object oriented programming will be used to implement designed system and the implemented system will be tested by using test cases. In this course, we are mainly focus on object oriented analysis and designing. Activity 2.3 How SDLC differs from Systems Development Methodologies? SDLC represent the entire life cycle of the system software, Systems Development Methodologies cover the system development stage (analysis, design, implementation, testing, integration) of the SDLC.
  • 10. Summery: In this lesson we define what Software Development Life Cycle (SDLC) is, we analyzed the main phases in SDLC with their activities. Then we discuss about the SDLC models, such as waterfall, and iterative waterfall model. We evaluate how iterative waterfall model can be used to overcome the issues in waterfall model. We divided the SDLC model into main two stages, system development, system operation and support. We identify the role of system development methodologies in SDLC. Object Oriented Systems Analysis and Design methodology is an example of such a system development methodology, where systems will be analyzed and designed in terms of Objects and their relationships. In the next lesson, we will discuss about Object Oriented Concepts.