0% found this document useful (0 votes)
13 views

Software Engineering Internals 1 (2)

The document provides an overview of software engineering, distinguishing it from computer science, and outlines key concepts such as software products, requirement engineering, and various software development life cycle (SDLC) models. It details the phases of SDLC, functional and non-functional requirements, and various software process activities, including requirement elicitation and validation. Additionally, it explains specific models like the Waterfall, Spiral, and V-Model, along with their advantages and disadvantages.

Uploaded by

s9738322228
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Software Engineering Internals 1 (2)

The document provides an overview of software engineering, distinguishing it from computer science, and outlines key concepts such as software products, requirement engineering, and various software development life cycle (SDLC) models. It details the phases of SDLC, functional and non-functional requirements, and various software process activities, including requirement elicitation and validation. Additionally, it explains specific models like the Waterfall, Spiral, and V-Model, along with their advantages and disadvantages.

Uploaded by

s9738322228
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Software Engineering Internals

1 2 marks
1) What is software engineering?
Software engineering is the systematic application of engineering principles to
the design, development, testing, deployment, and maintenance of software. It
aims to create reliable and efficient software systems.

2) What is the
difference between computer science and
software engineering?
o Computer Science: Focuses on theoretical concepts, algorithms,
data structures, and understanding computational systems.
o Software Engineering: Focuses on applying engineering
practices to develop practical and robust software systems,
emphasizing processes, tools, and methodologies.

3) Which are the two kinds of software products?

o Generic Products: Developed for a general market and sold


to multiple customers (e.g., Microsoft Office).
o Customized Products: Developed for a specific client’s
requirements (e.g., banking software for a specific bank).

4) What is Requirement Engineering?


Requirement engineering is the process of defining, documenting, and
maintaining the requirements for a software system. It ensures that the
software meets the needs of the stakeholders.

5) What are user requirements and system requirements?

o User Requirements: High-level statements of what the


system should do, described from the user’s perspective.
o System Requirements: Detailed specifications of system
functionalities, constraints, and design details, aimed at
developers.
6) What is SRS? Expand and Define.
o SRS (Software Requirements Specification): A document that
describes the functional and non-functional requirements of a
software system in detail. It acts as a contract between the
stakeholders and developers.

7) List the SDLC models.


o Waterfall Model
o Agile Model
o Spiral Model
o Iterative Model
o V-Model
o Big Bang Model

4 Marks
8) List and explain software process activities.
The main software process activities include:

 Requirement Analysis: Understanding what the customer needs from the


software and documenting these needs.
 Design: Planning the system architecture, modules, interfaces, and data flow.
 Implementation (Coding): Translating the design into executable code using a
programming language.
 Testing: Identifying and fixing defects to ensure the software meets requirements.
 Deployment: Delivering the software to the users and installing it in their
environment.
 Maintenance: Updating and improving the software after deployment to fix
bugs or enhance functionality.

9 )Explain waterfall model.


The Waterfall Model is a sequential SDLC approach with the following stages:

1. Requirement Gathering: Collecting all system requirements before development


begins.
2. System Design: Creating a detailed design for the system based on the
requirements.
3. Implementation: Writing code to implement the design.
4. Testing: Verifying that the software meets the requirements and fixing defects.
5. Deployment: Delivering the final product to the customer.
6. Maintenance: Managing changes and updates post-deployment.
Advantages: Simple and easy to manage.
Disadvantages: Inflexible, as changes cannot be made once a phase is
complete.
Diagram : (if needed)

10) Explain the phases of SDLC.


The Software Development Life Cycle (SDLC) phases are:

1. Requirement Analysis: Understanding user needs and documenting


functional and non- functional requirements.
2. System Design: Creating architectural designs and blueprints.
3. Implementation: Writing and integrating code.
4. Testing: Verifying and validating the software against requirements.
5. Deployment: Delivering the final product to the users.
6. Maintenance: Providing support, bug fixes, and updates post-deployment.

11) What are functional and non-functional requirements? Give


examples.
Functional Requirements

Functional requirements define specific behaviors, functions, or features that


the software system must perform. These requirements are focused on what the
system should do.

Examples:

1. Login Functionality: "The system must allow users to log in using a username and
password."
2. Search Feature: "The system should allow users to search for products by name or
category."
3. Payment Processing: "The system must process credit card payments securely."
4. Notifications: "The system must send email notifications to users for password
reset."
Non-Functional Requirements

Non-functional requirements define the quality attributes, constraints, or


system properties
that enhance the functionality. They focus on how the system performs its
tasks.
Examples:

1. Performance: "The system should load pages within 2 seconds."


2. Scalability: "The system must support up to 10,000 concurrent users."
3. Security: "The system should encrypt all sensitive data using AES-256."
4. Usability: "The system should be user-friendly and intuitive for first-time users."

Comparison
Aspect Functional Non-Functional
Requirements Requirements
Focus What the system should How the system performs the
do tasks
Example Login, search, payment Speed, security, scalability,
s features usability
Purpose Defines core functionality Enhances system quality and
usability

12) Explain the steps in requirement elicitation and analysis


process.
1. Requirement Gathering: Collecting inputs from stakeholders through interviews,
surveys, and brainstorming.
2. Requirement Documentation: Writing down all collected requirements in a clear
and structured manner.
3. Requirement Validation: Ensuring requirements are correct, complete, and
achievable.
4. Requirement Prioritization: Ranking requirements based on their importance and
feasibility.
5. Requirement Modeling: Representing requirements using diagrams or
prototypes to better understand and analyze them.

13) Explain incremental development model.


The incremental development model divides the system into small parts called
increments.

 Process:
1. Develop the first increment with basic functionality.
2. Deliver and gather feedback from users.
3. Add more functionality in subsequent increments.
 Advantages:
o Early delivery of working software.
o Allows feedback and adjustments during development.
 Disadvantages:
o Requires effective planning and integration.

14) Define requirement validation. Explain various


checks that should be included in requirement validation.
Requirement Validation: The process of ensuring that the documented
requirements meet user needs and are feasible.
Checks included in requirement validation:

 Completeness: Are all requirements covered?


 Consistency: Are there any conflicting requirements?
 Feasibility: Can the requirements be implemented within given constraints?
 Clarity: Are the requirements clear and unambiguous?
 Traceability: Can each requirement be traced to its origin?
 Testability: Can the requirement be verified through testing?

10 Marks

15) Explain Boehm’s Spiral Model


Boehm’s Spiral Model is a risk-driven software development model that
combines iterative development with systematic risk assessment. It was
introduced by Barry Boehm and is widely used in complex and large-scale
projects.

Key Features:

 Risk Analysis: Focuses on identifying and mitigating risks at each iteration (or
spiral).
 Iterative Development: The project is developed in incremental phases, with
each phase building on the previous one.
 User Feedback: Involves continuous stakeholder interaction and validation at
the end of each spiral.

Phases in Each Spiral:

1. Objective Setting: Identify goals, constraints, and risks for that particular iteration.
2. Risk Assessment: Analyze risks and develop strategies to mitigate them.
3. Development and Testing: Implement the product increment and test it.
4. Review and Planning: Evaluate the results and decide whether to proceed to the
next spiral.

Advantages:

 Risk is managed effectively.


 Accommodates changes during the development process.
 Early delivery of prototypes ensures stakeholder involvement and feedback.
Disadvantages:

 Complex and costly to implement.


 Requires highly skilled professionals for risk assessment.
Diagram

16) Explain Requirement Management Planning and


Requirement Change Management
Requirement Management Planning:

This involves defining processes and policies for handling requirements


throughout the project lifecycle.

Steps in Requirement Management Planning:

1. Requirement Identification: Assign unique IDs to each requirement for tracking.


2. Documentation: Define formats and templates for documenting requirements.
3. Requirement Prioritization: Rank requirements based on their importance and
feasibility.
4. Requirement Traceability: Establish links between requirements and design,
development, and testing artifacts.
5. Review and Approval: Define processes for stakeholder review and formal
approval of requirements.

Importance:

 Ensures all stakeholders are aligned on the scope.


 Reduces misunderstandings and rework.
Requirement Change Management:

This focuses on managing changes to requirements after they have been


initially documented.

Steps in Requirement Change Management:

1. Change Request: Submit a formal request for change, including the reason and
impact.
2. Impact Analysis: Evaluate how the change will affect cost, schedule, and quality.
3. Approval or Rejection: Obtain stakeholder approval for implementing the change.
4. Update Requirements: Modify the requirement documents and communicate
the changes to the team.
5. Version Control: Maintain versions of requirement documents to track changes
over time.

Importance:

 Helps manage scope creep.


 Ensures that changes are handled systematically and do not disrupt project
progress.

17) Explain V-Model of SDLC


The V-Model (Verification and Validation Model) is a development
methodology that emphasizes a structured relationship between development
stages (on the left side of the "V") and corresponding testing stages (on the
right side of the "V").

Key Features:

 Sequential Process: Each development phase is paired with a corresponding


testing phase.
 Validation and Verification: Ensures both product correctness and meeting user
expectations.

Phases in V-Model:

1. Requirement Analysis ↔ Acceptance Testing: Requirements are defined and


later tested for correctness.
2. System Design ↔ System Testing: High-level design is created and tested for
system-wide functionality.
3. Architectural Design ↔ Integration Testing: Design components are tested for
interaction.
4. Module Design ↔ Unit Testing: Individual modules are designed and tested for
functionality.
5. Coding: The actual implementation of the system.

Advantages:

 Clear and structured approach.


 Emphasizes early testing, reducing defects in later stages.
 Easy to manage and implement for smaller projects.
Disadvantages:

 Inflexible to changes during development.


 Not suitable for complex or iterative projects.

Diagram (if they ask diagram)

You might also like