UNIT-II
SOFTWARE DEVELOPMENT
BY
P.LAXMI
• Software is a collection of integrated programs.
• Engineering is the use of scientific and practical knowledge to create,
plan, design, build, maintain and enhance systems.
• The terms software and engineering combine to form the term software
engineering.
DEFINITION: Software engineering is an engineering branch related to the
process of analyzing user needs and then building a software product
using well-defined scientific principles, techniques and procedures.
• A software project is made up of series of phases that comprise the
following:
– Requirements gathering
– Planning
– Design
– Development or coding
– Testing
– Deployment and maintenance
The phases represent the process of developing software, which is
called the software development life cycle(SDLC).
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
• SDLC is a systematic process used by software development
organization to build a software that ensures the quality an
correctness of the software developed.
• Requirement gathering:
– This gives clear picture of scope of the entire project.
– The requirements are documented in the form of Software
Requirements Specification(SRS) document where it acts as a
bridge between the customer and product developers.
– Usually handled by senior members of the team.
• Planning:
– Purpose is to come up with the schedule, scope and resource
requirements for development and release of product.
– Performed using SRS which contains all product requirements
that must be created and developed during project life cycle.
• Design:
– Purpose is to figure out how to satisfy requirements as per
SRS.
– It defines all architectural models of the product.
– Design is usually of 2 types
• High-level design: It describes overall description /
architecture of the application.
• Low-level design: It provides a detailed description of each
module.
• Development or coding:
– Design document created in design phase acts as blueprint for
actual coding.
– This phase comprises coding the programs in chosen
programming language.
– It produces software that meets the requirements.
• Testing:
– When a software product is ready, the testing team starts testing its
functionality as per requirements document.
– Testing is the process of using the software product to verify that it
works according to the customer’s requirements.
– By testing the organization can identify and remove as many
defects as possible before shipping it out.
• Deployment and maintenance:
– Users receive the product after testing and starts using it in their
environment.
– While using they may observe discrepancies between the actual
behaviour of the product and what they had been told in the
requirement document.
– This should be corrected.
– After the product is released to the customer, maintenance is
carried out.
SDLS MODELS
• SDLC models is a conceptual framework that describes all of the
project’s activities from planning to maintenance.
• There are several models connected to this process, each with
different set of tasks and activities
• These models are also known as software development process
models.
Waterfall Model
• The waterfall model, sometimes called the classic life cycle,
suggests a systematic sequential approach to software
development that begins with customer specification of
requirements and progresses through planning, modeling,
construction, and deployment.
• Context: Used when requirements are reasonably well
understood.
• Advantage:
– It can serve as a useful process model in situations where
requirements are fixed and work is to proceed to complete in a
linear manner.
• The problems that are sometimes encountered when the waterfall
model is applied are:
• Real projects rarely follow the sequential flow that the model
proposes. Although the linear model can accommodate iteration, it
does so indirectly. As a result, changes can cause confusion as the
project team proceeds.
• It is often difficult for the customer to state all requirements
explicitly. The waterfall model requires this and has difficulty
accommodating the natural uncertainty that exist at the beginning of
many projects.
• The customer must have patience. A working version of the programs
will not be available until late in the project time-span. If a major
blunder is undetected then it can be disastrous until the program is
reviewed.

Elements of computer science engineering

  • 1.
  • 2.
    • Software isa collection of integrated programs. • Engineering is the use of scientific and practical knowledge to create, plan, design, build, maintain and enhance systems. • The terms software and engineering combine to form the term software engineering. DEFINITION: Software engineering is an engineering branch related to the process of analyzing user needs and then building a software product using well-defined scientific principles, techniques and procedures. • A software project is made up of series of phases that comprise the following: – Requirements gathering – Planning – Design – Development or coding – Testing – Deployment and maintenance
  • 3.
    The phases representthe process of developing software, which is called the software development life cycle(SDLC).
  • 4.
    SOFTWARE DEVELOPMENT LIFECYCLE(SDLC) • SDLC is a systematic process used by software development organization to build a software that ensures the quality an correctness of the software developed. • Requirement gathering: – This gives clear picture of scope of the entire project. – The requirements are documented in the form of Software Requirements Specification(SRS) document where it acts as a bridge between the customer and product developers. – Usually handled by senior members of the team. • Planning: – Purpose is to come up with the schedule, scope and resource requirements for development and release of product. – Performed using SRS which contains all product requirements that must be created and developed during project life cycle.
  • 5.
    • Design: – Purposeis to figure out how to satisfy requirements as per SRS. – It defines all architectural models of the product. – Design is usually of 2 types • High-level design: It describes overall description / architecture of the application. • Low-level design: It provides a detailed description of each module. • Development or coding: – Design document created in design phase acts as blueprint for actual coding. – This phase comprises coding the programs in chosen programming language. – It produces software that meets the requirements.
  • 6.
    • Testing: – Whena software product is ready, the testing team starts testing its functionality as per requirements document. – Testing is the process of using the software product to verify that it works according to the customer’s requirements. – By testing the organization can identify and remove as many defects as possible before shipping it out. • Deployment and maintenance: – Users receive the product after testing and starts using it in their environment. – While using they may observe discrepancies between the actual behaviour of the product and what they had been told in the requirement document. – This should be corrected. – After the product is released to the customer, maintenance is carried out.
  • 7.
    SDLS MODELS • SDLCmodels is a conceptual framework that describes all of the project’s activities from planning to maintenance. • There are several models connected to this process, each with different set of tasks and activities • These models are also known as software development process models.
  • 8.
  • 9.
    • The waterfallmodel, sometimes called the classic life cycle, suggests a systematic sequential approach to software development that begins with customer specification of requirements and progresses through planning, modeling, construction, and deployment. • Context: Used when requirements are reasonably well understood. • Advantage: – It can serve as a useful process model in situations where requirements are fixed and work is to proceed to complete in a linear manner.
  • 10.
    • The problemsthat are sometimes encountered when the waterfall model is applied are: • Real projects rarely follow the sequential flow that the model proposes. Although the linear model can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the project team proceeds. • It is often difficult for the customer to state all requirements explicitly. The waterfall model requires this and has difficulty accommodating the natural uncertainty that exist at the beginning of many projects. • The customer must have patience. A working version of the programs will not be available until late in the project time-span. If a major blunder is undetected then it can be disastrous until the program is reviewed.