• 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.
• 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.