0% found this document useful (0 votes)
21 views39 pages

SE-Layered Approach SDLC

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views39 pages

SE-Layered Approach SDLC

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Software Engineering

-A Layered Technology
Software Engineering-A Layered Technology

● Software engineering is a fully layered technology, to develop software we need to go from


one layer to another

● All the layers are connected and each layer demands the fulfillment of the previous layer.
Benefits of Software Engineering as a Layered Technology

Since software demands are getting more complex, the layered approach offers some important

advantages and benefits:

● Better decision-making. The decisions outlined in each layer provide a structure for the

whole project, unifying collaboration and problem-solving.

● Early error detection. The layered approach lends itself to identifying and solving errors

early in the project.

● Ease of configuration and maintenance. Helpful feedback, timely testing, and constant

communication help to make the end project easy to configure and maintain.
Layer 1 — Tools

The first layer involves choosing the semi-automated and automated tools that will become the

framework for the project.

Some examples may include:

● Choosing Microsoft Publisher for web design

● Using Selenium for testing across platforms

● Using an integrated development environment (IDE) for building apps


Layer 2 — Method

The second layer establishes the methods of developing the software. This includes any technical

knowledge and resources required for development. Some tasks include choosing methods for:

● Communication

● Analysis

● Modeling

● Program construction

● Testing and support


Layer 3 — Process
Layer three focuses on the framework that needs to be established to deliver software effectively. This
layer can be broken down into five sub-layers:

● Communication. Various facts of communication are needed at this point, and in fact, they are
critical to success. First, communication with the client is required to understand the needs,

demands, criteria, and parameters of the project. Team communication disseminates this knowledge

so that everyone is on the same page. Ongoing communication prevents misunderstanding and wasted

man-hours.
● Planning. This sub-layer involves making a map or blueprint to break down the process of development
and document goals, milestones, and plans.
● Modeling. For this part of the process, developers create a model so the client can visualize the
finished product.
● Construction. This sub-layer refers to the actual coding and testing of the product.
● Deployment. This differs from modeling. Rather than just providing the client with a model, the
team delivers an actual version of the software for testing, evaluation, and feedback
Layer 4 — A Quality Focus
At this point, the software is developed and refined to a point, but

it is critical to apply quality control to the finished product.

Besides testing the end product to ensure that it meets the

client’s specifications, it also needs real-world testing to

determine how efficient, usable, and reusable it will be, and it

needs to explore how many resource maintenance will require. If it

is replacing an older software or platform, quality control will

ensure the new software will meet the needs.


Basics of Life Cycle
Software Development Life-Cycle (SDLC)

➔ Proper planning and execution are the key components of a successful software development process.
➔ The entire software development process includes 6 stages.

➔ Bíi⭲gs "⭲dcísťa⭲di⭲g amo⭲g ťcam abo"ť


wkc⭲ a ⭲
dwkať ťo do.

➔ mo⭲iťoí ťkc píogícss or ťkc píojccť


Inputs are taken from the customer, the sales department, market surveys and domain experts in the industry.
➔ All the requirements for the target software are specified.
➔ These requirements get approval from the customers, market analysts, and
stakeholders.
➔ This DDS is assessed by market analysts
and stakeholders.
➔ The most practical and logical design is chosen for
the development.
Compilsís and
dsbuggsís
SDLC Models

Following are the most important and popular SDLC models followed in the industry −

● Waterfall Model
● Iterative Model
● Spiral Model
● V-Model
● Big Bang Model

Other related methodologies are:


Agile Model, RAD Model, Rapid Application Development and Prototyping Models.
WATERFALL MODEL
CLASSIC WATERFALL MODEL

● Waterfall Model is a classical software


development methodology that was first
introduced by Winston W. Royce in 1970.

● It is a linear and sequential approach


● Basic software development life cycle model.
● It is very simple but idealistic.
● Earlier this model was very popular but nowadays
it is not used.
● But it is very important because all the other
software development life cycle models are based
on the classical waterfall model.
WHY WATERFALL MODEL?

● Used in the context of large, complex projects.


● Useful in situations where the project requirements
are well-defined and the project goals are clear.
● Often used for large-scale projects with long
timelines.

● It is characterized by a structured, sequential


approach to project management and software
development.
FEATURES OF WATERFALL MODEL:
● Sequential Approach: each phase of the project is completed before
moving on to the next one.
● Document-Driven: relies heavily on documentation to ensure that the
project is well-defined and the project team is working towards a clear
set of goals.
● Quality Control: places a high emphasis on quality control and testing at
each phase of the project
● Rigorous Planning: involves a rigorous planning process, where the
project scope, timelines, and deliverables are carefully defined and
monitored throughout the project lifecycle.
PHASES OF WATERFALL MODEL
1. FEASIBILITY STUDY

Goals:
● Financially and technically feasible to
develop the software.
● Understanding the problem and then
determining the various possible
strategies.
● Arrived Solutions analysed:
Benefits
Drawbacks
● Best solution is chosen.
2. REQUIREMENT ANALYSIS AND SPECIFICATIONS

● Requirement Specification:
○ Analyzed requirements are documented in a
software requirement specification (SRS)
document.
○ SRS document serves as a contract
between the development team and
customers.
○ Any future dispute between the customers
and the developers can be settled by
examining the SRS document.
3. DESIGN

Goals:
● Convert SRS to format that can be coded.
● Includes high-level and detailed design of
software architecture.
● A Software Design Document is used to
document all of this effort (SDD)
4. CODING AND UNIT TESTING:

Goals:
● Software design translated to source code.
● Each design module is coded
● Unit testing, check each module working.
5. INTEGRATION AND SYSTEM TESTING

Goals:
● Integration of various modules
incrementally in numerous steps.
● Ater integration it is tested.
● Three kinds of testing:
○ Alpha testing
○ Beta testing
○ Acceptance testing
6. MAINTENANCE
Goals:
● Most important phase of a software life cycle.
● The effort spent on maintenance is 60% of the total
effort spent to develop a full software.
● There are basically three types of maintenance.
○ Corrective Maintenance: carried out to
correct errors that were not discovered
during the product development phase
○ Perfective Maintenance: enhance the
functionalities of the system on customer
request.
○ Adaptive Maintenance: required for
porting the software to work in a new
environment such as working on a new
computer platform or with a new operating
system.
ADVANTAGES:

● Easy to Understand: very simple and easy to understand.


● Individual Processing: Phases model are processed one at a time.
● Properly Defined: each stage in the model is clearly defined.
● Clear Milestones: very clear and well-understood milestones.
● Properly Documented: Processes, actions, and results are very well documented.
● Reinforces Good Habits: reinforces good habits like define-before-design and
design-before-code.
● Working: works well for smaller projects and projects where requirements are well
understood.
DISADVANTAGES:

● No Feedback Path
● Difficult to accommodate Change Requests
● No overlapping of phases
● Limited Stakeholder Involvement
● Lengthy Development Cycle
● Not Suitable for Complex Projects
APPLICATION OF CLASSIC WATERFALL MODEL:

● Large-scale Software Development Projects


● Government and Defense Projects
● Projects with well-defined Requirements
● Projects with Stable Requirements
ITERATIVE WATERFALL MODEL
Feedback paths provided for every phase.
Planning Phase:
Proper planning is done by the team, which helps them in mapping out the
specifications documents, establish software or hardware requirements and
generally prepare for the upcoming stages of the cycle.

Design Phase:

The design of the software gives an overview of the software to the


developers. All the requirements are transformed into a structural manner
which now makes it easier for the developers to implement.
Implementation Phase:
The most important phase of the model. Here, the actual implementation and
coding process is executed. All planning, specification, and design documents
up to this point are coded and implemented into this initial iteration of the
project.
Testing Phase:

Testing is initiated in the cycle to identify and locate any potential bugs or
issues that may have been in the software.

Evaluation Phase:

The entire team along with the client, examine the status of the project and
validate whether it is as per the suggested requirements.
Advantages

● Feedback Path
● Cost-Effective - It is highly cost effective to change the plan or
requirements.
● Well-organised - Team can work more on developing rather than
documentation.
● Risk Reduction - Early Identification of risks.
● Higher-quality end product.
● Gaining Customer Satisfaction.
Disadvantages

● It is applicable only to large and bulky software development projects.

● Design issues may arise

● Project progress is highly dependent upon the risk analysis phase.

● Highly skilled resources are required for risk analysis.


Thank you!

You might also like