Software Engineering

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

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”).

Requirement engineering process?


It is a four-step process, which includes:
• Feasibility Study
• Requirement Gathering
• Software Requirement Specification
• Software Requirement Validation

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.

Here’s an explanation of each software development model in simple terms for


a 5-mark exam answer:

1. Waterfall Model:

The Waterfall Model is a linear, sequential approach to software development.


In this model, each phase (like planning, design, development, testing, etc.) is
completed one after the other. Once you finish one phase, you move to the next
without going back. It’s like a waterfall: the process flows in one direction, and
you can’t go back to previous steps easily. This model is useful when the
requirements are well understood from the start and won’t change much.

2. Iterative Model:

The Iterative Model involves repeating the development process in cycles or


iterations. Each iteration is like a mini-project where parts of the software are
designed, developed, and tested. At the end of each iteration, you have a
working version of the software, and based on feedback, the next iteration is
improved. This model is good for projects where the full scope isn’t clear at the
start and can evolve over time.
3. Incremental 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:

The V Model is an extension of the Waterfall Model. It emphasizes verification


and validation at each stage. For every development phase (like design or
coding), there’s a corresponding testing phase (like unit testing, integration
testing, etc.). The model is shaped like a “V,” with development on one side and
testing on the other. It’s suitable for projects where requirements are clear and
stable.

5. Agile Model:

The Agile Model is a flexible and adaptive approach to software development.


It focuses on delivering small, functional parts of the software quickly, allowing
for frequent updates and improvements. Agile involves constant collaboration
between developers and customers, making it ideal for projects with changing
requirements. Development happens in short cycles (called sprints), and after
each sprint, a working version of the software is delivered.

6. Scrum Model:

Scrum is a specific implementation of the Agile Model. It uses fixed-length


iterations called sprints, which typically last 2-4 weeks. A Scrum team works on
a set of prioritized tasks, called the product backlog, during each sprint. At the
end of each sprint, the team holds a review meeting to assess progress and plan
the next steps. Scrum promotes daily stand-up meetings, where team members
share progress and obstacles.

7. Evolutionary Model:

The Evolutionary Model is an iterative process where software is developed in


stages, and each version is an improvement over the previous one. The goal is
to release a basic version quickly and then improve and expand it based on user
feedback and changing requirements. This model allows flexibility and ensures
that the software can evolve over time.

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.

You might also like