---
title: "Application framework versus component reuse"
subject: "Software Engineering"
chapter: 5
key: "semester_5/software_engineering:framework-vs-component-reuse"
source: https://www.bctengineer.com/q/semester_5/software_engineering/framework-vs-component-reuse
site: BCT Engineering
---

# Application framework versus component reuse

Software Engineering · Chapter 5: Software Reuse

- Asked in: 2069 Chaitra, 4 marks; year not given, 4 marks
- Answer checked by Claude Sonnet 5.5 on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/framework-vs-component-reuse
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-5

## Question

Provide a brief comparison of application framework versus component reuse.

## Short answer

Application frameworks reuse a design and architecture through white-box extension with inversion of control, requiring knowledge of internals. Component reuse composes independent black-box components through interfaces, with application code controlling flow and needing only interface specs. Frameworks are large and tied to their architecture; components are smaller, replaceable, and follow standards like EJB or .NET.

## Answer

An **application framework** is a reusable sub-system design made of a collection of abstract and concrete classes and the interfaces between them. An application is built by **extending** the framework (adding subclasses and filling in "hot spots"). **Component reuse** means building an application by **composing** independent, ready-made components that are used through their published interfaces.

| Point | Application framework | Component reuse |
|---|---|---|
| What is reused | A design plus code: a skeleton of a whole application or sub-system | Individual, self-contained components |
| Granularity | Large | Small to medium |
| Reuse style | **White-box**: extended by subclassing and overriding methods | **Black-box**: used only through interfaces |
| Control flow | **Inversion of control**: framework calls the application code ("don't call us, we'll call you") | Application code calls the components |
| Knowledge needed | Must understand the framework's internal design; steep learning curve | Need to know only the interface specification |
| Independence | Tied to the framework's language and architecture | Independent and replaceable; deployed separately |
| Standards | Defined by the framework itself | Component models such as EJB, .NET, CORBA CCM |
| Examples | MVC frameworks (Spring MVC, Django), GUI frameworks, Java Swing | Payment gateway component, report generator component, ActiveX/.NET controls |

**In short:** frameworks reuse a **design and architecture** and are customised from inside; components reuse **implemented services** and are plugged together from outside. They are often combined, e.g. a web application built on a framework that also uses third-party components.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. How is an application framework reused?
   A. Only through its interface, as a black box
   B. By extending it with subclasses (white-box)
   C. By compiling it into hardware
   D. By generating code from a description
   Answer: B. Frameworks are extended by subclassing and overriding at hot spots. (Key point: Reuse style)

2. Which is inversion of control?
   A. Application calls the components
   B. Components call each other randomly
   C. The framework calls the application code
   D. The OS calls the framework only
   Answer: C. In a framework, it calls your code (don't call us, we'll call you). (Key point: Inversion of control)

3. What must a developer know to use a component?
   A. The framework's internal design
   B. The component's source code
   C. The generator's language
   D. Only the interface specification
   Answer: D. Components are black boxes used through published interfaces. (Key point: Knowledge needed)

## Related in Software Engineering

- [Reuse framework versus program generator](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Aframework-vs-generator) — Software Engineering, chapter 5
- [Distributed object versus multiprocessor architecture](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Adistributed-object-vs-multiprocessor) — Software Engineering, chapter 3
- [General OS versus real-time OS](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Ageneral-os-vs-rtos) — Software Engineering, chapter 4

## Related in other subjects

- [Web application framework, advantages, MVC](https://www.bctengineer.com/question.md?key=semester_7%2Fweb_technology%3Aweb-app-framework-mvc) — Web Technology, chapter 5
- [Series versus parallel circuit comparison](https://www.bctengineer.com/question.md?key=semester_1%2Fbasic_electrical_engineering%3Aseries-parallel-comparison-table) — Basic Electrical Engineering, chapter 1
- [CMS and difference from web framework](https://www.bctengineer.com/question.md?key=semester_7%2Fweb_technology%3Acms-vs-framework) — Web Technology, chapter 5
- [CFL versus filament bulb economic comparison](https://www.bctengineer.com/question.md?key=semester_6%2Fengineering_economics%3Acfl-vs-filament-bulb) — Engineering Economics, chapter 4
