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. |