SE-2m

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

1. What is Software Engineering (SE)?

Software Engineering is a disciplined approach to designing, developing,


maintaining, and managing large-scale software systems.
It applies engineering principles to create reliable and efficient software by
following systematic methodologies.

2. Why is it important to study Software Engineering?


Studying software engineering is crucial because it ensures the development
of high-quality, maintainable software that meets user needs.
It helps avoid issues like delays, cost overruns, and poor-quality products,
improving efficiency in project management and software design.

3. What is the role of a software developer in a software project?


A software developer is responsible for writing, testing, and maintaining code
to create functional software applications.
They work with designers, testers, and project managers to build software
based on user requirements, ensuring its functionality and performance.

4. Describe six software process models and provide examples of where each can be
applied.
● Waterfall Model - Suitable for small, well-understood projects.
● V-Model - Useful in projects requiring rigorous testing.
● Spiral Model - Best for large, complex projects with high uncertainty.
● Incremental Model - Used for projects needing quick delivery.
● Agile Model - Ideal for projects with changing requirements.
● Iterative Model - Useful when requirements are unclear at the start.

5. What is Extreme Programming (XP), and how does it compare to Scrum?


Both are Agile methodologies and emphasize flexibility.

Extreme Programming (XP):


● XP focuses on technical practices like pair programming and continuous
feedback.
● XP emphasizes engineering techniques
Scrum:
● Scrum manages work in iterative sprints.
● Scrum focuses more on project management.

6. Explain the concept of Continuous Development and Continuous Delivery (CI/CD).


In the Incremental model, Continuous Development (CI) integrates small code
changes regularly, ensuring they are tested and merged frequently.
Continuous Delivery (CD) automates the release process, ensuring the
software is always in a deployable state after each increment.
7. What are functional and non - functional requirements in software engineering?
Functional requirements define the specific behaviors, tasks, and functions
that a software system must perform, such as features, data processing, and user
interactions.
Non-functional requirements specify how the system performs tasks, focusing
on qualities like performance, security, scalability, usability, and reliability.

8. What are Agile methodologies, and how do they differ from traditional software
development models?
Agile methodologies focus on iterative development, customer collaboration,
and adaptability to change. Traditional models, like Waterfall, follow a linear, rigid
approach.
Agile offers flexibility, while traditional models are more structured and
plan-driven.

9. What is Requirements Engineering, and why is the process of requirements


elucidation important?
Requirements Engineering involves gathering, documenting, and validating
software requirements.
Requirements elucidation clarifies user needs, ensuring that the development
team understands and delivers the correct functionalities, avoiding
misunderstandings and costly redesigns.

10.Why is a feasibility study important in software engineering?


A feasibility study assesses technical, financial, and operational viability
before starting a project. It helps determine if the project is achievable within the
constraints, minimizing risks and ensuring efficient resource allocation.

11.What are the different types of Agile methodologies?


Agile methodologies include
● Scrum
● Extreme Programming (XP)
● Kanban
● Lean and
● Feature-Driven Development (FDD).
Each has unique practices but shares core Agile values like adaptability,
collaboration, and iterative progress.
12.Who are the members involved in a software engineering project, and what are
their roles?
Key members include
● Software developers,
● Project managers,
● Testers,
● Designers,
● Business analysts, and
● Stakeholders.
Each plays a role in coding, managing, testing, designing, and ensuring the
project meets business and user requirements.

You might also like