BIT302 · TU past paper
Software Engineering 2081 question paper
The complete TU 2081 exam paper for Software Engineering (BIT302), all 12 questions with solved model answers written to the mark scheme.
Tap a question to open its answer.
- 110 marksPrototyping process modelHideAnswer
Explain process model for software prototype development with a neat diagram focusing on its different stages.[10]
The Prototyping Model is a software development process model in which a working prototype (an early, partial version of the system) is built quickly, evaluated by the user, and refined iteratively based on feedback until the final syste...
- 210 marksArchitecture patterns and their importanceHideAnswer
Why architecture patterns are important? Explain Model-View-Controller, layered and repository architecture.[10]
Architecture patterns are important for the following reasons: 1. Reusability: They provide proven, reusable solutions to commonly occurring design problems, saving time and effort. 2. Common Vocabulary: They establish a shared language ...
- 310 marksUnit testingHideAnswer
Explain key activities performed during Unit testing, component testing and system testing.[10]
Note: The following answer is based on standard software engineering principles (Sommerville, Pressman) as no specific curriculum notes were provided. --- Unit testing focuses on testing individual program units or modules in isolation. ...
- 45 marksSoftware configuration management processHideAnswer
Explain the process of software configuration management. [5]
Software Configuration Management (SCM) is a set of activities designed to control change throughout the software development lifecycle. It identifies, organizes, and controls modifications to software to maximize productivity and minimi...
- 55 marksSoftware review processHideAnswer
Explain software review process. [5]
A software review is a systematic examination of software artifacts (requirements, design, code, test plans, etc.) by qualified personnel to identify defects, verify compliance with standards, and improve overall software quality before ...
- 65 marksFactors affecting software pricingHideAnswer
Describe different factors affecting software pricing. [5]
Note: No specific reference notes were found for this topic. The following answer is based on standard Software Engineering curriculum as taught in BSc CSIT programs. --- Software pricing is the process of determining the cost at which a...
- 75 marksSequence diagramsHideAnswer
Draw sequence diagram for online food ordering system where the user can choose foods of various restaurants and pay online. The system also provides discount of 10% if the total amount paid is more than Rs. 3000. The user if cancels the order within 30 minutes will be approved else the paid amount will not be refunded. [5]
Participant Role ------ User Initiates order, payment, and cancellation WebSystem Front-end interface / controller RestaurantDB Stores restaurant and food item data OrderSystem Manages order creation and processing PaymentGateway Handles...
- 85 marksRequirements engineering processHideAnswer
Briefly explain requirement engineering process. [5]
Definition: Requirement Engineering (RE) is a systematic process of defining, documenting, and maintaining the requirements for a software system. It acts as a bridge between the customer's needs and the software development team. --- - ...
- 95 marksAgile principles and practicesHideAnswer
What are the basic principles of agile methods? Explain. [5]
Note: The reference notes did not contain this topic directly. The following answer is based on standard software engineering curriculum as taught in BSc CSIT programs, consistent with Sommerville's Software Engineering textbook. --- Agi...
- 105 marksSoftware quality characteristicsHideAnswer
List various attributes of good software and explain them. [5]
--- Good software must deliver the required functionality and performance to the user and must be maintainable, dependable, efficient, and acceptable. --- - Software must be written so that it can evolve to meet changing needs of custome...
- 115 marksModel-driven architecture and transformatiHideAnswer
Describe Model-driven architecture. What type of abstract system models are produced by it? [5]
Model-Driven Architecture (MDA) is a software design and development approach proposed by the Object Management Group (OMG) that focuses on creating models of a system at different levels of abstraction, and then transforming those model...
- 125 marksTest-driven development approachHideAnswer
Write short notes on: a) open-source development b) Test driven development [5]
Short Notes
a) Open-Source Development
Open-source development is a software development model where the source code is made publicly available for anyone to view, use, modify, and distribute. It follows a collaborative, community-driven approach.
Key Characteristics:
- Public Repository: Source code is hosted on platforms like GitHub, GitLab, or SourceForge, accessible to everyone.
- Community Collaboration: Developers worldwide contribute bug fixes, new features, and improvements through pull requests and patches.
- Transparency: All changes, discussions, and decisions are visible to the public.
- Licensing: Governed by licenses such as GNU GPL, MIT, or Apache, which define terms of use and redistribution.
- Peer Review: Code is reviewed by multiple contributors, improving quality and security.
Examples:
Linux, Apache, Mozilla Firefox, Python.
Advantages:
- Reduces development cost
- Faster bug detection and fixing
- Encourages innovation and reuse
Disadvantages:
- Lack of formal support
- Inconsistent documentation
- Security risks if code is misused
b) Test-Driven Development (TDD)
Test-Driven Development (TDD) is a software development practice where tests are written before the actual code. It follows a short, repetitive development cycle.
The TDD Cycle (Red-Green-Refactor):
Step Description Red Write a test that fails (since code does not exist yet) Green Write the minimum code necessary to pass the test Refactor Clean and improve the code without changing its behavior Key Principles:
- No production code is written unless there is a failing test to justify it.
- Tests act as living documentation of the system.
- Encourages simple, modular, and loosely coupled design.
Process Flow:
Write Failing Test --> Write Code to Pass Test --> Refactor --> RepeatAdvantages:
- Early detection of defects
- Improved code quality and design
- Provides a safety net for future changes (regression testing)
- Better requirement understanding before coding
Disadvantages:
- Requires discipline and practice
- Initial development may be slower
- Difficult to apply for complex UI or legacy systems
Example:
Before writing a function
add(a, b), a developer first writes:assert add(2, 3) == 5 # Test written firstThen implements the function to make the test pass.