Tribhuwan University

Institute of Science and Technology

2080

Bachelor Level / Third Year / Fifth Semester / Science

Bachelors in Information Technology (BIT302)

(Software Engineering)

Full Marks: 60

Pass Marks: 24

Time: 3 Hours

Candidates are required to give their answers in their own words as for as practicable.

The figures in the margin indicate full marks.

Section A

Long Answers Questions

Attempt any TWO questions.
[2*10=20]
1.
Explain incremental delivery approach to software development with a neat diagram.[10]

Incremental Delivery Approach to Software Development

Incremental Delivery is a software development approach where the system is designed, implemented, and delivered in increments (parts), with each increment providing a portion of the required functionality, allowing users to use the system progressively.


Definition

In the incremental delivery model, the complete system requirements are defined at the beginning, but the system is built and delivered in small, usable pieces called increments. Each increment adds new functionality to the previously delivered increments. The highest-priority requirements are addressed in the early increments.


Key Characteristics

  • The system requirements are prioritized before development begins
  • Higher-priority requirements are included in earlier increments
  • Once an increment is delivered, its requirements are frozen (no changes allowed)
  • Each increment is a fully functional, tested, and usable piece of software
  • Users can start using the system after the first increment is delivered
  • Later increments build upon and integrate with earlier ones

How It Works (Steps)

  • a. Define outline requirements — Gather all system requirements initially
  • b. Assign requirements to increments — Prioritize and divide functionality into increments
  • c. Design system architecture — Create an overall architecture that accommodates all increments
  • d. Develop system increment — Build the current increment
  • e. Validate increment — Test and verify the increment works correctly
  • f. Integrate increment — Merge with previously delivered increments
  • g. Validate system — Test the whole integrated system
  • h. Deploy increment — Deliver to the customer for use
  • i. If system is not complete, repeat from step (d) for the next increment
  • j. Final system is delivered when all increments are complete

Diagram

Incremental Delivery Approach to Software Development


Advantages

  • Early delivery of partial functionality to the customer
  • Reduced risk — high-priority functions are delivered and tested first
  • Customer feedback is received early and can influence later increments
  • Easier testing and debugging since each increment is small
  • Lower risk of overall project failure

Disadvantages

  • Requires good planning and proper requirement prioritization upfront
  • System architecture must be defined early to support all future increments
  • Difficult to identify common facilities needed by all increments
  • Requirements for later increments are frozen, reducing flexibility

Example

A word processing software can be delivered incrementally:

  • Increment 1: Basic file management + text editing
  • Increment 2: Spell check + grammar check
  • Increment 3: Advanced formatting + page layout
  • Increment 4: Mail merge + macros

Conclusion

The incremental delivery approach combines the benefits of planned development with early customer feedback. It reduces risk by delivering the most critical features first, making it highly suitable for large systems where getting the full system early is not feasible.

2.
Explain different architectural views. What are the fundamental questions that needs to be answered when designing a system architecture?[10]
3.
What do you understand by algorithmic cost modeling? Explain COCOMO estimation models.[10]
Section B

Short Answers Questions

Attempt any Eight questions.
[8*5=40]
4.
Briefly explain fundamental activities related to project management. [5]
5.
Draw use case diagram for online voting system where the students can vote for their favorite teachers based on their performance. The teachers will be notified by the system about their status based on their votes. The system will generate the class routine by selecting teachers with respect to their votes. The routine will be sent to director, admin department, teachers, students and parents. [5]
6.
Explain different requirements elicitation techniques. [5]
7.
Differentiate between black box testing and white box testing. [5]
8.
Highlight on different issues that play a key role in affecting different types of software. [5]
9.
Explain the need of Model-driven architecture transformations and how is it carried out? [5]
10.
Write short notes on: a. Agile software development b. Context model [5]
11.
Explain program inspection process. [5]
12.
What is version management? How is it carried Out? [5]