Software Engineering - 1
Software Engineering - 1
1
a) List the activities of spiral model.
The Spiral Model is an iterative development model that combines the iterative nature of prototyping with the systematic aspects of
the waterfall model. Its key activities are:
Planning: Defining objectives, alternatives, and constraints.
Risk Analysis: Identifying and analyzing risks.
Engineering: Designing, coding, and testing.
Evaluation: Evaluating the results and planning the next iteration.
d) Define Agility
Agility in software development refers to the ability to respond quickly to changes in requirements or the market. Agile teams are
flexible, adaptable, and efficient, allowing them to deliver high-quality software products faster.
A component is a modular part of a system with well-defined interfaces. It can be a physical hardware module or a software
module.
i) Define Pattern
A pattern is a reusable solution to a recurring software design problem. It captures the problem, the solution, and the context in
which the solution is applicable. Patterns help in designing software systems that are efficient, maintainable, and scalable.
d) Define: Dependency.
In software engineering, a dependency is a relationship between two software modules or components where one module relies on
another. This means that a change in the dependent module can potentially impact the functionality of the relying module.
Dependencies can be direct or indirect and can affect the system's complexity, maintainability, and testability.
e) What is agility?
Agility in software development refers to the ability to respond quickly to changes in requirements or the market. Agile teams are
flexible, adaptable, and efficient, allowing them to deliver high-quality software products faster. Agile methodologies prioritize
customer satisfaction, iterative development, and continuous improvement.
j) Define : prototyping.
Prototyping is a software development technique where a simplified version of a system is created to explore its design,
functionality, and user interface. Prototypes can be used to gather feedback from users, validate requirements, and identify
potential issues early in the development process.
The extend relationship in UML is used to show how one use case can extend the behavior of another use case under specific
conditions.
g) Define: Association.
An association in UML is a relationship between two or more classes that indicates a semantic connection between them. It can be a
simple relationship or a more complex one with additional information like multiplicity, direction, and role names.
e) Define abstraction.
Abstraction is the process of simplifying complex systems by focusing on the essential features while hiding unnecessary details. It
allows developers to manage complexity and create modular, reusable components.
1.4
f) List the advantages of waterfall model.
Simple and Easy to Understand: Its linear, sequential approach is straightforward.
Well-Defined Phases: Clear milestones and deliverables.
Suitable for Smaller Projects: Works well for projects with well-defined requirements.
j) Define Artifacts.
Artifacts are the tangible products of software development, such as code, design documents, test cases, and user manuals. They
are created and used throughout the software development lifecycle.
2 marks
a) What is negotiation?
Negotiation is a process of discussion and compromise between two or more parties to reach an agreement. In the context of
software engineering, negotiation is often used to resolve conflicts, prioritize requirements, allocate resources, and make decisions
that involve multiple stakeholders. Effective negotiation skills are crucial for project managers and team leaders to ensure smooth
project execution.