Software Engineering
BCA (Sem.–4)
SOFTWARE ENGINEERING
Subject Code : UGCA1921
M.Code : 79725
Date of Examination : 17-12-22
Here are the answers to Section A (short answers in 20–30 words each) of the Software
Engineering paper:
SECTION–A
1. Define Software Engineering. List out the elements in Computer-Based System.
Software Engineering is the application of engineering principles to software
development. Elements include hardware, software, people, database, documentation, and
procedures.
2. What are the formal models used in estimation?
Formal models used in estimation include COCOMO, Putnam's model, and Function
Point Analysis, which help predict effort, time, and cost.
3. What are the models used for Architectural design?
Architectural design models include data flow architecture, layered architecture, client-
server architecture, and call-return architecture.
4. What is Cohesion?
Cohesion refers to the degree to which elements of a module belong together. Higher
cohesion indicates better module design and functionality.
5. What are the advantages and disadvantages of reuse metrics?
Advantages: Increases productivity, reduces cost.
Disadvantages: May cause compatibility issues, requires maintenance of reused
components.
6. What are the basic principles of Software Testing?
Basic principles include testing shows the presence of defects, exhaustive testing is
impossible, early testing saves cost, and defect clustering.
7. What are the states of the Requirements Elicitation Process?
States include discovery, classification, prioritization, negotiation, specification, and
validation of software requirements.
8. What are the objectives of Analysis modeling?
Objectives include understanding customer requirements, defining data and functional
behavior, and creating a basis for design.
9. What are non-functional requirements? Explain with the help of examples.
Non-functional requirements define system attributes like reliability, performance, and
security. Example: System should respond within 2 seconds.
10. Explain the concept of decision table.
A decision table is a tabular representation of conditions and actions, used for modeling
complex decision logic clearly and systematically.
Copyright 2025 @ramsharwan_kumar
Software Engineering
Here are the Section B answers (in simple language and longer format) for the Software
Engineering paper:
SECTION–B
2. What are the fundamental activities of a software process? Explain why incremental
development is better than a single delivery process.
The fundamental activities in a software process are:
Specification: Defining what the system should do.
Development: Designing and building the system.
Validation: Checking that the system meets the requirements.
Evolution: Modifying the system over time to meet changing needs.
Incremental development is better than a single delivery process because:
It allows partial systems to be delivered quickly and early.
Feedback can be gathered from users after each increment.
Problems are detected earlier.
It is flexible and reduces the risk of failure.
Maintenance becomes easier as the system evolves gradually.
3. Explain the concept of risk. Compare existing risk-driven process with the 'V-model' of
software development.
Risk in software engineering means a potential problem that may or may not happen. Risks can
affect project success, like delays, budget overruns, or poor quality.
Risk-driven process focuses on identifying and solving high-risk issues early. It allows for
changes and improvements as risks are tackled.
V-model is a linear model where each development stage has a corresponding testing phase. It is
strict and less flexible for handling risks.
Aspect Risk-driven Process V-Model
High – changes can be made Low – changes are hard to
Flexibility
anytime implement
Risk Handling Deals with high-risk early Risk is not the main focus
Copyright 2025 @ramsharwan_kumar
Software Engineering
Aspect Risk-driven Process V-Model
Feedback Continuous through iterations Limited to testing phase
Development
Iterative and adaptive Sequential and fixed
Approach
4. Discuss the architectural design. What are the different patterns used in architectural
design?
Architectural design defines the structure of a software system. It involves deciding how the
system is divided into parts, how these parts communicate, and how the system meets user needs.
Common architectural patterns include:
Layered Pattern: Divides system into layers like presentation, business logic, and data.
Client-Server Pattern: Server provides services, client requests them.
Pipe and Filter Pattern: Data passes through filters in a pipeline.
MVC (Model-View-Controller): Separates data (model), UI (view), and logic
(controller).
Repository Pattern: Central database stores data accessed by components.
Each pattern has benefits depending on the type of application being developed.
5. Differentiate between Black Box and White Box Testing. Which one of these should be
used when? Justify it.
Basis Black Box Testing White Box Testing
Focus External behavior Internal logic and structure
Tester Knowledge No need of code knowledge Requires code knowledge
Performed by Testers Developers
Test Basis Requirements and specifications Source code and logic
Tools used GUI testing tools Code analyzers and debuggers
Use Black Box Testing when validating system requirements and user functionality.
Use White Box Testing when checking code-level logic, conditions, and loops.
Both types are necessary to ensure full testing coverage.
6. Explain the role of analysis and design models in software development.
Analysis models help in understanding and capturing what the software must do. They include:
Copyright 2025 @ramsharwan_kumar
Software Engineering
Use case diagrams
Class diagrams
Sequence diagrams
They focus on requirements and functionalities.
Design models provide solutions for how the system will work. They include:
Architecture diagrams
Component diagrams
Data flow designs
They help in implementation planning.
Both models guide developers from user requirements to actual code. They improve
communication, reduce errors, and ensure well-structured software.
7. What is requirement elicitation? What are the different techniques of elicitation?
Requirement elicitation is the process of collecting requirements from stakeholders. It's the first
and most important step in software development.
Techniques include:
Interviews: Asking users about their needs.
Questionnaires: Distributing forms to gather data.
Observation: Watching users work to understand needs.
Workshops: Group discussions with stakeholders.
Prototyping: Creating a sample version of the system for feedback.
Document Analysis: Studying existing documents for useful data.
Using multiple techniques ensures more accurate and complete requirements.
8. What is data dictionary? How is it useful in data analysis?
A data dictionary is a centralized repository that stores details about data elements used in a
system. It includes data names, types, sizes, allowed values, and descriptions.
Usefulness in data analysis:
Ensures clear communication among developers.
Reduces redundancy and inconsistency.
Copyright 2025 @ramsharwan_kumar
Software Engineering
Helps in database design and validation.
Acts as a reference during coding and testing.
Improves data quality by providing standard definitions.
9. What are the key principles to be followed during architectural design?
Key principles include:
Separation of concerns: Divide system into distinct parts.
Modularity: Break down system into modules.
Reuse: Use existing components where possible.
Flexibility: Allow future changes without major redesign.
Scalability: Support system growth.
Security: Ensure data and access are protected.
Performance: Optimize response time and resource use.
These principles help create a reliable and efficient software architecture.
10. What methodology would you use for obtaining critical information from the cube of
information?
To obtain critical information from the cube of information (often referring to data warehouse
or OLAP cube), we can use:
OLAP (Online Analytical Processing) tools
Drill-down: Going into more detailed data
Roll-up: Summarizing the data
Slice and Dice: Viewing data from different angles
Pivoting: Changing the data view
Data mining: Extracting patterns and trends
These methods help decision-makers analyze large volumes of data effectively.
Copyright 2025 @ramsharwan_kumar
Software Engineering
BCA (Sem.–4)
SOFTWARE ENGINEERING
Subject Code : UGCA1921
M.Code : 79725
Date of Examination : 05-07-22
SECTION–A
1. Define Software Engineering. What are the important roles of Conventional Engineering in
software development?
Software Engineering applies engineering principles to software. Conventional engineering
roles like planning, designing, testing, and maintenance help ensure quality, cost control, and
reliability.
2. During the use of the software, the customer decides that it should be more user-friendly and
faster. Which process model best suits this situation? Why?
The Incremental or Agile model suits this as it allows frequent feedback, fast delivery, and
continuous updates based on user needs.
3. How Formal Methods are usually used?
Formal methods use mathematical techniques for specifying and verifying software, ensuring
correctness and reducing errors during early development.
4. What are Cohesion factors associated with modules?
Cohesion factors include functional, sequential, communicational, and logical relationships
among module elements that define how closely related their tasks are.
5. How do different levels of Coupling exist in software modules?
Coupling levels range from high (content, common) to low (data, message). Low coupling is
ideal as it ensures modules are more independent.
6. What are the different phases of Unified Process?
Phases: Inception, Elaboration, Construction, and Transition. These cover planning, design,
implementation, and deployment of software incrementally.
7. Define Step-Wise and Evolutionary models.
Step-wise model follows a linear sequence of phases. Evolutionary model builds software
incrementally with feedback and improvements in each cycle.
8. What are the basic components of a software process?
Components: Activities (e.g., development, validation), artifacts (code, documents), roles
(developers, testers), and tools used in software development.
9. Define Modularity.
Modularity is dividing a system into separate modules that can be developed, tested, and
maintained independently, promoting reusability and clarity.
10. Explain the concept of decision tree.
A decision tree is a graphical model representing decisions and their possible consequences,
used to support decision-making in complex scenarios.
SECTION–B
2. How the Person Model differs from one another? Explain four types of personality
process models and their uses. Also mention how personality types influence software
engineering work.
Copyright 2025 @ramsharwan_kumar
Software Engineering
Personality models describe how people behave, think, and interact. Different people have
different styles, and understanding these helps in team management.
Four personality process models:
1. Myers-Briggs Type Indicator (MBTI): Categorizes people into 16 types based on four
dimensions – e.g., Introvert vs Extrovert, Thinker vs Feeler. Useful for assigning roles.
2. DISC Model: Focuses on four traits – Dominance, Influence, Steadiness, and
Conscientiousness. Helps in understanding communication and leadership styles.
3. Big Five Model: Covers five traits – Openness, Conscientiousness, Extraversion,
Agreeableness, Neuroticism. Used to assess work behavior.
4. Keirsey Temperament Sorter: Groups people into four temperaments – Guardian,
Artisan, Idealist, and Rational. Helps in team composition.
Influence on Software Engineering:
Introverts may prefer coding and analysis.
Extroverts may excel in team communication and client meetings.
Thinkers focus on logic; Feelers may emphasize user experience.
3. (a) Briefly identify the problems and needs faced, if one tries to develop a large project
without using any software process model.
Without a software process model:
No structured planning, leading to confusion.
Requirements may not be well understood.
Testing and validation are often ignored.
Project can become unmanageable.
Higher chances of budget and time overruns.
Difficult to track progress and assign responsibilities.
Maintenance and updates become harder.
(b) What is the difference between coding and testing phase, developing test cases, and the types
of testing you are familiar with?**
Coding phase involves writing the actual program based on design documents.
Testing phase checks the correctness of the code.
Test cases are specific conditions used to verify the functionality of a program.
Types of Testing:
Unit Testing: Tests individual units or modules.
Copyright 2025 @ramsharwan_kumar
Software Engineering
Integration Testing: Tests combined modules.
System Testing: Tests the complete system.
Acceptance Testing: Done by end-users to approve the system.
Regression Testing: Checks if new changes broke existing features.
4. Write a comparison between the classical and formal methods.
Aspect Classical Methods Formal Methods
Traditional approach based on documents Uses mathematical models for
Definition
and flowcharts specification
Precision Less precise Highly precise and verifiable
Error
Errors found during testing Errors found early using proofs
Detection
Cost Low cost, easier to implement Higher cost due to expertise needed
Safety-critical systems like
Use Case Small to medium projects
aerospace
Conclusion:
Formal methods are more accurate but harder to use. Classical methods are easier but may allow
more errors.
5. What is a requirement specification? How is it used in the system design process?
Explain with a neat diagram.
Requirement Specification is a document that describes what the system should do. It includes
functional and non-functional requirements.
Uses in Design Process:
Acts as a reference for developers.
Helps in system modeling.
Guides design of database and user interface.
Ensures all stakeholder needs are met.
Diagram (Text-based description):
User Requirements → Requirement Specification → System Design →
Implementation
It forms the bridge between users and developers. A clear requirement specification ensures a
successful software product.
Copyright 2025 @ramsharwan_kumar
Software Engineering
6. What are the various approaches used to achieve and functional requirement?
Elaborate.
Functional requirements define the specific behavior or functions of a system.
Approaches to achieve them:
1. Use Case Modeling: Defines system interactions with users.
2. Data Flow Diagrams (DFD): Shows how data moves through the system.
3. Structured English: Uses plain English to describe processes.
4. Decision Tables/Trees: Helps handle complex conditions.
5. Entity-Relationship Models: Useful for database-related requirements.
Each approach helps visualize and validate the requirement clearly before implementation.
7. Why software development is not quick and cost-effective? Why is a structured
approach important in this development? Explain.
Software development isn’t always quick and cheap because:
Requirements change frequently.
Complex systems need thorough planning.
Quality assurance needs time and effort.
Skilled labor is costly.
Debugging and testing consume resources.
Structured Approach Importance:
Helps manage time and budget.
Avoids errors through clear documentation.
Improves team coordination.
Enables easier maintenance and updates.
Increases customer satisfaction through well-planned delivery.
A structured method saves time and cost in the long run by reducing mistakes.
Let me know if you'd like this in PDF or if you need answers from any other subject!
Copyright 2025 @ramsharwan_kumar
Software Engineering
BCA (Sem.–4)
SOFTWARE ENGINEERING
Subject Code : UGCA1921
M.Code : 79725
Date of Examination : 07-06-224
Here are the answers for Section A (20–30 words each) of the Software Engineering paper
shown in the latest image:
SECTION–A
1. What is SRS and why is it used?
SRS (Software Requirements Specification) is a document that defines system
requirements clearly. It is used to guide design, development, and validation.
2. What is Perspective Process Model?
It is a software development model that gives an overall view of the project, such as the
Waterfall or Spiral Model.
3. What is Object-Oriented Design?
Object-Oriented Design structures a system using classes and objects. It focuses on
reusability, encapsulation, and modularity.
4. What are the main needs for Software testing?
Software testing ensures the software works as expected, detects bugs, improves quality,
and builds user confidence.
5. How decisions can be used in Software Engineering?
Decisions guide the choice of methods, tools, and processes, and influence design,
planning, and testing strategies.
6. What do decision tables and decision models assist in?
They help in representing complex logic and conditions for decision-making in a
simplified and structured way.
7. When can the planned size of the document model be used?
It is used during project estimation to predict effort, time, and resources based on
document size.
8. Discuss one feature of the Agile Model?
Agile model supports iterative development with continuous user feedback and fast
delivery of working software.
9. What is meant by functional testing?
Functional testing checks if the software performs as per the defined functional
requirements.
10. What is Software Engineering?
Software Engineering is the application of engineering principles to software
development to ensure reliable and efficient systems.
Copyright 2025 @ramsharwan_kumar
Software Engineering
Here are the Section B answers (in simple language) for the latest Software Engineering paper:
SECTION–B
2. Why is difference between functional and non-functional requirements? Explain with an
example.
Functional Requirements describe what the system should do. They are specific functions or
features like login, payment processing, etc.
Non-Functional Requirements describe how the system performs. These include speed,
security, usability, scalability, etc.
Example:
Functional: "User must be able to reset password."
Non-Functional: "The password reset should complete within 5 seconds."
Conclusion:
Functional defines features, while non-functional defines quality and performance of those
features.
3. (a) Identify a situation in which a company is trying to build a large product. The client
is not clear about all requirements. Which model should be used? Explain.
When the client is unsure about full requirements, the Spiral Model or Incremental Model is
best.
Why?
They allow development in small parts (increments).
Each part is reviewed and improved with client feedback.
Risks are identified early in the Spiral Model.
Benefits:
Flexible to change.
Client involvement ensures better output.
Reduces chances of rework.
(b) What are the characteristics of good software? Briefly give some major attributes.**
Copyright 2025 @ramsharwan_kumar
Software Engineering
Good software should have the following attributes:
1. Correctness – Performs required functions accurately.
2. Reliability – Works without failure.
3. Efficiency – Uses resources optimally.
4. Usability – Easy to use and understand.
5. Maintainability – Easy to fix and update.
6. Portability – Works on different systems.
These qualities ensure long-term value and customer satisfaction.
4. Match the following:
Term Match
(i) SRS (4) Requirements
(ii) System Testing (1) Entire System
(iii) Software Design (3) Blueprint of S/W
(iv) Implementation (2) Coding
5. What is data flow diagram? How is it used in software engineering?
A Data Flow Diagram (DFD) is a visual representation of data movement within a system.
Uses:
Shows how data flows from input to processing and then to output.
Identifies external entities, processes, and data stores.
Helps in system analysis and design.
Makes communication between developers and users easier.
Levels of DFD:
Context Level (overview)
Level 1 and 2 (detailed breakdown)
DFDs are essential for understanding system structure and logic.
6. Discuss the concept of software cost estimation and functional size. How do you get the
estimated value?
Copyright 2025 @ramsharwan_kumar
Software Engineering
Software Cost Estimation is predicting the effort, time, and money required to build software.
Functional Size measures the system based on its features like inputs, outputs, and data files.
Estimation Methods:
Lines of Code (LOC)
Function Point Analysis (FPA)
COCOMO Model
How Estimation Works:
1. Identify functional requirements.
2. Count function points or LOC.
3. Apply a formula/model (e.g., COCOMO) to estimate time and cost.
Purpose:
Helps in budgeting, planning, and resource allocation.
7. What is software error tolerance and how is it measured? Give an example to support
your answer.
Software Error Tolerance is the ability of a system to continue functioning even after
encountering errors.
Measurement:
Measured by observing system behavior under faulty conditions.
Tools like fault injection or reliability testing help measure this.
Example: An ATM that continues operating even if a printer fails (non-critical part) shows good
error tolerance.
Benefits:
Increases system reliability.
Improves user trust and system availability.
Copyright 2025 @ramsharwan_kumar