Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
5 views8 pages

Software Engineering

Software engineering is the process of designing, developing, testing, and maintaining software with the aim of creating reliable, maintainable, and efficient systems. It follows a structured framework known as the Software Development Life Cycle (SDLC), which includes phases such as project planning, requirements analysis, system design, development, testing, implementation, and maintenance. Various software process models, like Waterfall, Agile, and Spiral, guide the development process, while testing strategies ensure the software meets both design specifications and user needs.

Uploaded by

hellowpbasket
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)
5 views8 pages

Software Engineering

Software engineering is the process of designing, developing, testing, and maintaining software with the aim of creating reliable, maintainable, and efficient systems. It follows a structured framework known as the Software Development Life Cycle (SDLC), which includes phases such as project planning, requirements analysis, system design, development, testing, implementation, and maintenance. Various software process models, like Waterfall, Agile, and Spiral, guide the development process, while testing strategies ensure the software meets both design specifications and user needs.

Uploaded by

hellowpbasket
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/ 8

Software engineering

1. What is software engineering?

It is the process of designing, developing, testing, and


maintaining software using engineering principles.

Aim:

Build correct and reliable software.

Software should be maintainable, scalable, and


efficient.

Reduce the cost and time of development.

User friendly

SDLC is a structured framework that defines


the phases involved in developing
information systems, from initial feasibility
study through maintenance of the completed
system.

Project Planning: Defining project scope,


objectives, timeline and resource
requirements.

Software engineering 1
Requirements Analysis: Gathering and
documenting detailed system requirements
from stakeholders.

System Design: Creating technical


specifications, system architecture, and
interface designs.
Development: Actual coding and building of
the system based on design specifications.

Testing: Systematic testing to ensure system


quality and requirement fulfillment.

Implementation: System deployment, data


migration, and user training.

Maintenance and Support: Ongoing system


updates, bug fixes, and technical support.

Process Iteration

Repeating steps in the software development cycle to


improve the software.

Common in Agile and iterative models.

Common Types of Software Process Models:

1. Waterfall Model

Software engineering 2
Like a linear staircase – one step at a time.

Steps: Project planning → Requirements analysis →


System design → Development → Testing →
Implementation → Maintenance

No going back to previous steps.

⁣Good for: Simple, well-understood projects

Not good for: Projects where requirements may change

3. Agile Model

1. Work is done in small parts (sprints) — each sprint lasts


1–4 weeks and delivers a working part of the software.

2. The client gives feedback after every sprint so changes


and improvements can be made quickly.

3. Very flexible and adaptive — Changes in requirements


are easily handled during the project.

4. The team communicates daily — with short meetings


(scrums) to stay updated and solve problems fast.

4. V-Model (Validation and Verification Model)

An extended version of Waterfall, where each


development stage has a matching testing phase.

V shape: Left side = development, right side = testing

Software engineering 3
Good for: High-quality, reliable software like in healthcare
or aviation

5. Spiral Model

Combines features of Waterfall and Prototyping.

Software is developed in loops (spirals) with added


features in each loop.

Focuses on risk analysis in each loop.

Best for: Large, complex, high-risk projects

6. Incremental and Iterative model

Iterative model: focuses on improving the same system


repeatedly until it's refined.

builds the complete system step by step by


Incremental model:

adding one part at a time.

7. Prototyping Model

Build a quick sample (prototype) → show it to users →


improve based on feedback

The final system is built after the prototype is approved.

Useful when requirements are not clear at the start

Verification and validation

Software engineering 4
: checks if the software meets the design
Verification

specifications and is done during development phases.


Validation : checks if the software meets user needs and is
done during testing and after development.

Software Testing Models


Black-box testing : Tests the software based on inputs and expected outputs,
without knowing internal code. It focuses on what the software should do.

: Tests internal logic and code paths; testers know the


White-box testing

program structure. It focuses on how the software works inside.

Basis path testing : A white-box method that tests all possible paths through the
program at least once.

Control structure testing : Checks loops, branches, and conditions in code.

Object-oriented testing : Focuses on testing classes, methods, and object


interactions.

Software Testing Strategies


Strategic approach: Organizes testing efforts in phases aligned with
development.

Unit testing: Tests individual components or functions for correctness.

Integration testing: Tests combined parts to check they work together properly.

Validation testing: Ensures the software meets requirements and user


expectations.

System testing: Tests the whole system as a complete product.

Uses tools to run tests automatically, saving time and


Test automation:

improving accuracy.

SRS – Software Requirements Specification

Software engineering 5
SRS (Software Requirements Specification) is a written
agreement between the client and developers about what
the software should do.

It includes both functional and non-functional


requirements.

It acts as a blueprint for development and helps avoid


misunderstandings.

It also forms the basis for testing and validation of the


final product.

SRC (Software Requirement Collection)

It is the process of gathering all the needs and expectations


from users and stakeholders before starting software
development.

Software design

Software design is the step after requirement collection


(SRC) where the process of planning how a software system
will work is done before actually building it.

1. Architectural Design – This focuses on the overall structure


of the software system and how different parts or modules

of the software will connect and work together.

2. Detailed Design – This focuses on the internal details of


each module, like data structures and algorithms.

Coupling and Cohesion

Software engineering 6
Cohesion means how closely related and focused the
functions within a single module are.

→ High cohesion = a module does one job well.


Coupling means how dependent one module is on another.

→ Low coupling = modules work independently.


Goal in software design:

→ Aim for high cohesion and low coupling for better


maintainability and flexibility.

What is DFD?
DFD stands for Data Flow Diagram.

It is a graphical representation that shows how data moves through a


system.

It helps visualize the flow of information and processes in the system


clearly.

Key Components of DFD:


1. Processes: Activities or functions where data is processed or transformed.

2. Data Flows: Arrows showing the direction of data movement between


processes, data stores, and external entities.

3. Data Stores: Places where data is stored within the system (like databases
or files).

4. External Entities: Sources or destinations of data outside the system (like


users or other systems).

Purpose of DFD:
To understand how data enters, moves through, and leaves the system.

To help identify what processes exist and how they interact with data.

Software engineering 7
To simplify complex systems by breaking them down visually.

Used mainly during the analysis phase of software development.

Levels of DFD:
Level 0 (Context Diagram): Shows the entire system as one process with
external entities.

Level 1: Breaks down the main process into sub-processes.

Level 2 and beyond: Further detail sub-processes for deeper


understanding.

Software engineering 8

You might also like