2081

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.

Past Papers2082208120802079

Tap a question to open its answer.

  1. 110 marksPrototyping process modelAnswer

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

  2. 210 marksArchitecture patterns and their importanceAnswer

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

  3. 310 marksUnit testingAnswer

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

  4. 45 marksSoftware configuration management processAnswer

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

  5. 55 marksSoftware review processAnswer

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

  6. 65 marksFactors affecting software pricingAnswer

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

  7. 75 marksSequence diagramsAnswer

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

  8. 85 marksRequirements engineering processAnswer

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

  9. 95 marksAgile principles and practicesAnswer

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

  10. 105 marksSoftware quality characteristicsAnswer

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

  11. 115 marksModel-driven architecture and transformatiAnswer

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

  12. 125 marksTest-driven development approachAnswer

    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):

    StepDescription
    RedWrite a test that fails (since code does not exist yet)
    GreenWrite the minimum code necessary to pass the test
    RefactorClean 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 --> Repeat
    

    Advantages:

    • 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 first
    

    Then implements the function to make the test pass.