Software Engineering
Software Engineering
Software Engineering
What is software?
Software is a set of programs or instructions that tell a computer or device how
to perform specific tasks. It helps the hardware work by guiding it to do things
like running applications, processing data, or connecting to the internet.
Software objects?
In software engineering, software objects are instances of classes in object-
oriented programming. They represent real-world entities and contain both data
(attributes) and behaviors (methods) that define their characteristics and
actions. For example, a “Car” class could have attributes like color and model,
and methods like drive and stop.
Software engineering?
Software engineering is the practice of creating and maintaining software by
using a structured approach. It involves planning, designing, building, testing,
and improving software to make sure it works well and meets users’ needs. It’s
like following a set of steps to build a strong, useful, and reliable computer
program.
Software requirements?
The software requirements are descriptions of features and functionalities of the
target system. Requirements convey the expectations of users from the
software product. The requirements can be obvious or hidden, known or
unknown, expected or unexpected from the client’s point of view.
Requirement Engineering?
• The process to gather the software requirements from the client, analyze,
and document them is known as requirement engineering.
• The goal of requirement engineering is to develop and maintain a
sophisticated and descriptive System Requirements Specification
document.
There are two main types:
1. Functional Requirements: These describe the specific functions or
features the software must have (e.g., “The system must allow users to log
in”).
2. Non-Functional Requirements: These define how the software should
perform, such as speed, security, and reliability (e.g., “The system should
load within 3 seconds”).
Qualities of SRS?
Correct, Unambiguous, Complete, Consistent, Ranked for importance and/or
stability, Verifiable, Modifiable, Traceable.
Requirement management?
A requirement is a defined capability to which the results of certain work (in this
case, software development) should meet. It is a continuous process throughout
the lifecycle of a product, and requirements can be generated by many
stakeholders, including: customers, partners, sales, support, management,
engineering, operations, and of course, product management. When
requirements are being properly curated and managed, there is clear and
consistent communication between the product team and engineering
members, and any needed changes are broadly shared with all stakeholders.
1. Waterfall Model:
2. Iterative Model:
The Incremental Model is similar to the Iterative Model but focuses on adding
pieces or increments to the software. The system is developed in small parts
(increments), and after each part is completed, it’s added to the previous one.
This way, the software is built gradually, and each increment can be tested and
used. This approach allows for delivering a working product sooner, even if it’s
not complete.
4. V Model:
5. Agile Model:
6. Scrum Model:
7. Evolutionary Model:
8. Spiral Model:
The Spiral Model combines elements of both the Waterfall and Iterative
Models. It emphasizes risk analysis and continuous refinement of the software
through repeated cycles or “spirals.” In each cycle, the project is planned,
designed, tested, and evaluated. The Spiral Model is useful for complex projects
where there are a lot of unknowns and high risks. It allows for feedback and
adjustments at every step, reducing the chance of failure.