System Development
Classical Problem-solving approachStudy and understand the problem, its context, and its impact.Define the requirements that must be meet by any solution.Identify candidate solutions that fulfill the requirements and select the “best” solution.Design and/or implement the chosen solution.Observe and evaluate the solution’s impact, and refine the solution accordingly.
SDLC SDLC stands for System Development Life Cycle.A System Development Life Cycle is simply a series of  orderly, interrelated activities leading to the successful completion  of a set of programs.The periods of time during which these activities take place  are called phases.The different phases of System Development Life Cycle areDefinition,  Analysis, Design, Coding, Testing, System Installation / Acceptance
Preliminary SurveySystemAnalysisSystemRunningSYSTEMDEVELOPMENTLIFECYCLESystemDesignSystemInstallationSystemDevelopmentSystemTestingSystem Development Life Cycle
SDLCPreliminary  Survey:Key question: What is the problem?Initial investigations are done.Output is statement specifying the scope and objective of the problem.Feasibility Study:Feasibility  study is a test for system proposal according to its workability, impact on organization, ability to meet user needs & effective use of resources.Key questions are: What are the demonstrable needs? Is the problem worth solving?Cost & Benefits are estimated.
SDLCAnalysis:Analysis is a detailed study of various operations performed by a system and their relationships within and outside of the system.Key questions are: what must be done to solve the problem?The tools used are Data flow diagrams, interviews, on-site questions and observations After this phase, the analyst has the clear understanding of what is to be done.The output of this phase is logical modelof the system.
SDLCDesign:Most creative and challenging phase.Key questions are: How the problem will be solved? What is the system flow? Does user approve the system?This stage specifies technical specification, program construction and testing.The format of output is decided. Accordingly, input is decided and files are designed.All details are documented and evaluated by management.The output consists of procedural flowcharts, file layouts and report layouts.The projected cost is compared with actual cost.
SDLCImplementation:Less creative phase.Performs activities like testing, user training, site preparation, network installation etc.User acceptance is tested.Extensive user training is given if required.During testing, diagnostic procedures are used to locate and correct errors.
SDLCPost-implementation & Maintenance:The user staff is adjusted to changes due to software.Because of aging process, periodic maintenance of hardware and software is required.Due to maintenance activity, standards of new system is maintained.
SDLCProject termination:A system project may be dropped at any time because of some unavoidable conditions.Projects are dropped because of following conditions:changing objectives and requirements.Benefits of software are not sufficient.Sudden change in user’s budget or increased design cost.Exceeding the time schedule.
Waterfall ModelAlso named as classic life cycle
Waterfall ModelSuggests a systematic, sequential approach to software development.Oldest paradigm. Consists of phases like AnalysisDesignCode GenerationTestingSupport: Software will undergo change after it is delivered to the customer. Change will occur because errors or enhancements.
Waterfall ModelAdvantages:Helps project management, documentationComplex systems are well-defined and structuredEncourages a discipline of modellingDisadvantages:The requirements must be completely specified before programming begins.Rather inflexibleImpossible to deal with changes
Iterative Approach
Incremental modelThe incremental model combines elements of the linear sequential model with the iterative approach.
Incremental modelIncremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable “increment” of the software.E.g. Word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more  sophisticated editing.When an incremental model is used, the first increment is often a core product.In core product basic requirements are addressed, but many advanced features remain undelivered.
Incremental modelThe core product is used by the customer.As a result of use, a plan is developed for the next increment. More modifications are performed to better meet the needs of the customer.This process is repeated following the delivery of each increment, until the complete product is produced.Advantage:Incremental development is particularly useful when staffing is unavailable for a complete implementation.
Incremental modelAdvantage:Early increments can be implemented with fewer people.increments can be planned to manage technical risksThe incremental model delivers software in small but usable pieces, called “increments.” In general, each increment builds on those that  have already been delivered.
Spiral Model
Spiral ModelAn evolutionary software process model.It combines the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.Software is developed in a series of incremental releases.During early iterations, the release may be a paper model or prototype. During later iterations, more complete versions of the engineered system are produced.The phases are called task regions.
Spiral ModelCustomer communication— tasks required to establish effective communication between developer and customer.Planning—tasks required to define resources, timelines, and other project related information.Risk analysis—tasks required to assess both technical and management risks.Engineering—tasks required to build one or more representations of the application.
Spiral ModelConstruction and release—tasks required to construct, test, install, and provide user support (e.g., documentation and training).Customer evaluation—tasks required to obtain customer feedback.Each pass through the planning region results in adjustments to the project plan. Cost and schedule are adjusted based on feedback derived from customer evaluation.The spiral model can be adapted to apply throughout the life of the computer software.
Spiral ModelAdvantages:A realistic approach to the development of large-scale systems and software. Because software evolves as the process progresses, the developer and customer better understand and react to risks at each evolutionary level.It demands a direct consideration of technical risks at all stages of the project.Disadvantage:It may be difficult to convince customers.The Schedule may not be completed due to iterative nature.
RAD Model
RAD ModelIt is an incremental model with short development cycle.It is a high speed adaptation of waterfall model.It follows concept of component based construction approach.If requirements are well understood and project scope is limited, development is possible within 60-90 days.Each major module is handled by separate RAD team.All modules are integrated after completion.
RAD ModelActivities:CommunicationPlanningModelingBusiness modelingData modelingProcess modelingConstructionDeployment
RAD ModelDisadvantages:1. Large number of human resources2. If decomposition is not proper then project may fail.3. The project may fail if technical risks are high.
Concurrent Model
Concurrent ModelThe activities of software development will undergo all stages.The activities lie in any one of the state at any time.All activities may exist concurrently.This process model is applicable to all types of software development.This model provides an accurate picture of current state of a project.
Unified Process
Unified ProcessThis model is use case driven, architecture centric, iterative and incremental.
During inception phase, fundamental business requirements are described through use cases.

System Development

  • 1.
  • 2.
    Classical Problem-solving approachStudyand understand the problem, its context, and its impact.Define the requirements that must be meet by any solution.Identify candidate solutions that fulfill the requirements and select the “best” solution.Design and/or implement the chosen solution.Observe and evaluate the solution’s impact, and refine the solution accordingly.
  • 3.
    SDLC SDLC standsfor System Development Life Cycle.A System Development Life Cycle is simply a series of orderly, interrelated activities leading to the successful completion of a set of programs.The periods of time during which these activities take place are called phases.The different phases of System Development Life Cycle areDefinition, Analysis, Design, Coding, Testing, System Installation / Acceptance
  • 4.
  • 5.
    SDLCPreliminary Survey:Keyquestion: What is the problem?Initial investigations are done.Output is statement specifying the scope and objective of the problem.Feasibility Study:Feasibility study is a test for system proposal according to its workability, impact on organization, ability to meet user needs & effective use of resources.Key questions are: What are the demonstrable needs? Is the problem worth solving?Cost & Benefits are estimated.
  • 6.
    SDLCAnalysis:Analysis is adetailed study of various operations performed by a system and their relationships within and outside of the system.Key questions are: what must be done to solve the problem?The tools used are Data flow diagrams, interviews, on-site questions and observations After this phase, the analyst has the clear understanding of what is to be done.The output of this phase is logical modelof the system.
  • 7.
    SDLCDesign:Most creative andchallenging phase.Key questions are: How the problem will be solved? What is the system flow? Does user approve the system?This stage specifies technical specification, program construction and testing.The format of output is decided. Accordingly, input is decided and files are designed.All details are documented and evaluated by management.The output consists of procedural flowcharts, file layouts and report layouts.The projected cost is compared with actual cost.
  • 8.
    SDLCImplementation:Less creative phase.Performsactivities like testing, user training, site preparation, network installation etc.User acceptance is tested.Extensive user training is given if required.During testing, diagnostic procedures are used to locate and correct errors.
  • 9.
    SDLCPost-implementation & Maintenance:Theuser staff is adjusted to changes due to software.Because of aging process, periodic maintenance of hardware and software is required.Due to maintenance activity, standards of new system is maintained.
  • 10.
    SDLCProject termination:A systemproject may be dropped at any time because of some unavoidable conditions.Projects are dropped because of following conditions:changing objectives and requirements.Benefits of software are not sufficient.Sudden change in user’s budget or increased design cost.Exceeding the time schedule.
  • 11.
    Waterfall ModelAlso namedas classic life cycle
  • 12.
    Waterfall ModelSuggests asystematic, sequential approach to software development.Oldest paradigm. Consists of phases like AnalysisDesignCode GenerationTestingSupport: Software will undergo change after it is delivered to the customer. Change will occur because errors or enhancements.
  • 13.
    Waterfall ModelAdvantages:Helps projectmanagement, documentationComplex systems are well-defined and structuredEncourages a discipline of modellingDisadvantages:The requirements must be completely specified before programming begins.Rather inflexibleImpossible to deal with changes
  • 14.
  • 15.
    Incremental modelThe incrementalmodel combines elements of the linear sequential model with the iterative approach.
  • 16.
    Incremental modelIncremental modelapplies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable “increment” of the software.E.g. Word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more sophisticated editing.When an incremental model is used, the first increment is often a core product.In core product basic requirements are addressed, but many advanced features remain undelivered.
  • 17.
    Incremental modelThe coreproduct is used by the customer.As a result of use, a plan is developed for the next increment. More modifications are performed to better meet the needs of the customer.This process is repeated following the delivery of each increment, until the complete product is produced.Advantage:Incremental development is particularly useful when staffing is unavailable for a complete implementation.
  • 18.
    Incremental modelAdvantage:Early incrementscan be implemented with fewer people.increments can be planned to manage technical risksThe incremental model delivers software in small but usable pieces, called “increments.” In general, each increment builds on those that have already been delivered.
  • 19.
  • 20.
    Spiral ModelAn evolutionarysoftware process model.It combines the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.Software is developed in a series of incremental releases.During early iterations, the release may be a paper model or prototype. During later iterations, more complete versions of the engineered system are produced.The phases are called task regions.
  • 21.
    Spiral ModelCustomer communication—tasks required to establish effective communication between developer and customer.Planning—tasks required to define resources, timelines, and other project related information.Risk analysis—tasks required to assess both technical and management risks.Engineering—tasks required to build one or more representations of the application.
  • 22.
    Spiral ModelConstruction andrelease—tasks required to construct, test, install, and provide user support (e.g., documentation and training).Customer evaluation—tasks required to obtain customer feedback.Each pass through the planning region results in adjustments to the project plan. Cost and schedule are adjusted based on feedback derived from customer evaluation.The spiral model can be adapted to apply throughout the life of the computer software.
  • 23.
    Spiral ModelAdvantages:A realisticapproach to the development of large-scale systems and software. Because software evolves as the process progresses, the developer and customer better understand and react to risks at each evolutionary level.It demands a direct consideration of technical risks at all stages of the project.Disadvantage:It may be difficult to convince customers.The Schedule may not be completed due to iterative nature.
  • 24.
  • 25.
    RAD ModelIt isan incremental model with short development cycle.It is a high speed adaptation of waterfall model.It follows concept of component based construction approach.If requirements are well understood and project scope is limited, development is possible within 60-90 days.Each major module is handled by separate RAD team.All modules are integrated after completion.
  • 26.
  • 27.
    RAD ModelDisadvantages:1. Largenumber of human resources2. If decomposition is not proper then project may fail.3. The project may fail if technical risks are high.
  • 28.
  • 29.
    Concurrent ModelThe activitiesof software development will undergo all stages.The activities lie in any one of the state at any time.All activities may exist concurrently.This process model is applicable to all types of software development.This model provides an accurate picture of current state of a project.
  • 30.
  • 31.
    Unified ProcessThis modelis use case driven, architecture centric, iterative and incremental.
  • 32.
    During inception phase,fundamental business requirements are described through use cases.