Skip to content

Latest commit

 

History

History
165 lines (113 loc) · 8.98 KB

File metadata and controls

165 lines (113 loc) · 8.98 KB

Software Engineering — Viva Questions

← Back to Index

A collection of commonly asked viva questions organized by experiment, with concise answers for quick revision.


Experiment 1 — Identifying Requirements from Problem Statements
# Question Answer
1 What is a requirement in software engineering? A requirement is a statement of what the system must do or how it must perform. It describes the system's expected behavior and constraints.
2 Differentiate functional and non-functional requirements. Functional requirements describe system features/functions (login, search). Non-functional requirements describe quality aspects like speed, reliability, and security.
3 What is a feasibility study? A feasibility study evaluates whether a proposed project is technically, economically, and operationally viable before beginning development.
4 Name two tools used for requirement gathering. Interviews, questionnaires, use case modeling, and prototyping are common requirement gathering tools.

Experiment 2 — Modeling UML Use Case Diagrams
# Question Answer
1 What is an actor in a use case diagram? An actor is any entity outside the system that interacts with it — a human user, another system, or a hardware device.
2 What is the difference between include and extend? <<include>> means a use case always triggers another (mandatory). <<extend>> means a use case optionally extends another under certain conditions.
3 What is a system boundary? A rectangle enclosing all use cases, representing the scope and limits of the system being modeled.
4 Can one actor have multiple use cases? Yes, a single actor can interact with multiple use cases depending on their role in the system.

Experiment 3 — E-R Modeling from Problem Statements
# Question Answer
1 What is the difference between an entity and an attribute? An entity is a real-world object (e.g., Student), while an attribute is a property of that entity (e.g., Name, RollNo).
2 What is a weak entity? A weak entity cannot be uniquely identified by its own attributes alone and depends on a strong entity. Example: Dependent depends on Employee.
3 Explain cardinality with an example. Cardinality defines how many instances of one entity relate to another. Example: One Department has Many Employees → 1:N.
4 What is a composite attribute? A composite attribute can be divided into smaller sub-parts. Example: Address → Street, City, Pincode.

Experiment 4 — Activity & State Chart Modeling
# Question Answer
1 What is the difference between an activity diagram and a flowchart? Both show flow of control, but activity diagrams support parallel flows (fork/join), swimlanes for multiple actors, and are part of UML. Flowcharts are simpler and not UML-standard.
2 What is a guard condition in a state chart? A Boolean expression in square brackets on a transition arrow. The transition occurs only if the condition evaluates to true.
3 What is a swimlane in an activity diagram? A swimlane divides an activity diagram into sections, each representing a different actor or component responsible for that set of activities.
4 Define a state in state chart modeling. A state represents a specific condition or situation of an object at a particular point in time during its life cycle.

Experiment 5 — Class, Collaboration & Sequence Diagrams
# Question Answer
1 What is the difference between aggregation and composition? In aggregation, the child can exist independently (e.g., Student–Course). In composition, the child cannot exist without the parent (e.g., House–Room).
2 What is a lifeline in a sequence diagram? A vertical dashed line representing an object's existence and participation during an interaction over time.
3 How does a sequence diagram differ from a collaboration diagram? Sequence diagrams emphasize time ordering (top to bottom). Collaboration diagrams emphasize structural relationships with numbered messages.
4 What does multiplicity mean in a class diagram? Multiplicity defines how many instances of one class relate to another. Example: 1..* means one or more.

Experiment 6 — Identifying Domain Classes
# Question Answer
1 What is domain analysis? The process of understanding the problem domain by identifying main concepts, objects, and relationships in the real-world context of the system.
2 What are CRC cards? Class-Responsibility-Collaboration cards define a class's name, responsibilities (what it knows/does), and collaborators (other classes it interacts with).
3 How do you filter candidate classes? Remove nouns that are attributes of another class, redundant synonyms, vague terms, implementation details, or objects outside the system scope.
4 What is the difference between an analysis class and a design class? An analysis class represents a real-world concept from requirements. A design class includes implementation details like data types, visibility, and patterns.

Experiment 7 — Modeling Data Flow Diagrams
# Question Answer
1 What is a DFD and why is it used? A DFD shows how data flows through a system — its processes, stores, and external entities. Used for documentation, analysis, and design.
2 What is balancing in DFD? Data flows entering/leaving a process in the parent DFD must match those in its child (expanded) DFD, ensuring consistency across levels.
3 What is the difference between DFD and flowchart? DFD shows the flow of data between processes and stores. A flowchart shows the sequence of logic/control steps in an algorithm.
4 Can a data store have a data flow directly to another data store? No. Data cannot flow directly between stores — it must pass through a process.

Experiment 8 — Designing a Test Suite
# Question Answer
1 What is the difference between verification and validation? Verification: "Are we building the product right?" (process check). Validation: "Are we building the right product?" (requirements check).
2 What is Boundary Value Analysis? A black-box technique that tests values at the boundaries of input ranges (min, max, just inside, just outside), since errors tend to occur at boundaries.
3 What is test coverage? A measure of the percentage of code (statements, branches, paths) exercised by the test suite. Higher coverage = more thorough testing.
4 What is regression testing? Re-executing previously passed test cases after code changes to ensure new changes have not broken existing functionality.

Experiment 9 — Test Coverage Metrics & Structural Complexity
# Question Answer
1 What is McCabe's Cyclomatic Complexity? A measure of the number of linearly independent paths through source code. Formula: V(G) = E - N + 2P.
2 What does a high cyclomatic complexity indicate? Complex, hard-to-test code with many branches (V(G) > 10). Suggests refactoring or simplification.
3 What is statement coverage? The percentage of executable statements in source code that are executed by the test suite.
4 Why is path coverage considered the strongest criterion? It requires every possible path through a program to be executed at least once — the most thorough but also the most expensive criterion.

Experiment 10 — Estimation of Project Metrics
# Question Answer
1 What are the three modes in COCOMO? Organic (small, simple), Semi-detached (medium, mixed experience), and Embedded (complex, tight constraints like real-time systems).
2 What is a Function Point? A unit measuring business functionality delivered to the user, independent of the programming language or technology used.
3 What is the limitation of LOC as a metric? LOC is language-dependent, doesn't reflect complexity or quality, and can be inflated by verbose coding style.
4 How is team size estimated using COCOMO? Team Size = Effort (Person-Months) / Duration (Months) — gives the average number of people needed concurrently.