UPI Study › Courses › Software Engineering › Free lessons › Lesson 2.6 Free with a free account
Constructing Software from Reusable Components (CBSE)
Software Engineering · Chapter 2: Iterative, Incremental, and Specialized Process ModelsSection 2.6 · lesson 16 of 1037 min · free with a free account
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of Software Engineering.
Lesson complete
Earn the 3 college credits for Software Engineering
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Formal Techniques in Software Engineering: Concepts and Practice →← Assembling Systems: Integration and Configuration ApproachesNext lesson: Formal Techniques in Software Engineering: Concepts and Practice →
In this lesson
Component-based software engineering: 5 activities, and the trade-offs of reuse.
- Define component-based software engineering, and the problem it solves
- Describe the 5 CBSE activities in order
- Distinguish qualifying a component from adapting one
- Weigh the benefits of reuse against its risks
Transcript
Everything said in the video, section by section (855 words). Read along, or search it.
Iterative, Incremental, and Specialized Process Models
Building from Reusable Components
Most systems need things that countless other systems have already built. This section covers component-based software engineering, or C B S E, a process model for building systems from reusable pieces. Its five activities, the difference between qualifying and adapting a component, and the real trade-offs of reuse.
Why Rebuild What Exists?
Solved Problems, Solved Once
A team building a new system rarely needs to write a brand new way of handling logins, processing card payments, or showing a calendar. Reliable, well-tested pieces that solve exactly these problems already exist. Writing them again, from nothing, spends time and budget on a problem that has effectively already been solved. Component-based software engineering turns that observation into a process. A system is built largely by identifying existing, reusable components, and assembling them into the larger whole. A component here is a self-contained, independently deployable unit of functionality, with a defined interface. A team can acquire it, test it, and plug it in, without needing to understand or rewrite its internal code.
Where the Effort Goes
Not the End of Custom Code
C B S E does not eliminate custom development. Most real systems still need original code, for whatever makes them unique. What changes is where a team spends its effort. Instead of building everything, including parts that other systems have already solved, effort concentrates on assembling proven components correctly. And on building only the parts that are genuinely new.
Figure 2.6(a)
The 5 CBSE Activities
C B S E is organized around five recurring activities. Identify candidate components. Qualify them. Adapt them. Compose them into the system. And update the repository. It is drawn as a cycle for a reason. A component adapted or newly built on one project often becomes a candidate for reuse on the next. The dashed path, from updating the repository back to identifying candidates, is what makes C B S E a genuine cycle, rather than a one-time shortcut.
Activities 1 and 2
Identify, Then Qualify
The process begins by identifying candidates. The team searches for existing components that might satisfy part of the system's requirements, in the organization's own library, or from outside sources. This produces a pool of candidates, not a final decision. Each candidate is then qualified, evaluated against the system's real needs. Does its functionality genuinely match what is required? Is its interface compatible with the rest of the system? Does it meet expectations for performance and reliability? Suppose a team adopts a component without qualifying it, and it later behaves differently under real conditions. That is exactly what qualification exists to catch, before any component is relied upon.
Activities 3 to 5
Adapt, Compose, Update
A qualified component rarely fits perfectly without any changes. Adaptation covers the modifications, or the wrapping code, needed to make it work in this specific system, without altering what it fundamentally does. Composition then integrates the components into the system's architecture. This is where separate pieces start operating together, as one working system. Finally, components that were newly built, adapted, or simply proven useful are added back to the organization's repository. That makes them easier for future projects to find, and reuse. Notice the difference between the two middle words. Qualifying checks whether a candidate fits. Adapting is the work of making a qualified candidate actually fit.
Figure 2.6(b)
The Pool Narrows
A realistic pool of candidates narrows considerably on the way to a finished system. Identification produces a broad pool. During qualification, some are rejected, for the wrong functionality, an incompatible interface, or weak reliability. Some of the survivors still need adaptation before they can be used. So far fewer components end up in the finished system than the team started out considering.
Table 2.6
Every Benefit Has a Trade-Off
Building from reusable components is not a free win. It trades one set of risks for another. Development is faster, because proven functionality does not need rebuilding. But time must be spent qualifying candidates instead. Components have usually been used and tested elsewhere. But a track record does not guarantee they behave identically in a new context. Effort concentrates on what is unique to the system. But the system now depends on components it does not fully control, or fully understand. And imperfect fit is expected, because adaptation handles it. But adapted components can drift from their original, well-tested behavior. None of these trade-offs cancels the benefit. Each one complicates it, and is worth planning for.
Key Terms
The Vocabulary of This Section
Let's lock in the key terms. Component-based software engineering builds a system largely by assembling existing, reusable components. A component is a self-contained, independently deployable unit of functionality, with a defined interface. Qualification checks whether a candidate genuinely fits. Adaptation modifies or wraps it so that it does. Composition integrates the components into the system's overall architecture. And a component repository is the shared library that later projects search for candidates.
Key Takeaways
What to Carry Forward
To pull this together. C B S E builds a system largely by assembling existing, reusable components, rather than writing everything from scratch. Its five activities, identify, qualify, adapt, compose, and update the repository, form a repeating cycle across projects. Qualification checks whether a candidate fits. Adaptation is the work of making it fit. The pool of candidates narrows considerably by the time a system is composed. And reuse trades benefits like speed and prior testing for risks like external dependency and imperfect fit. Both sides are part of using the model well.
About Software Engineering at UPI Study
Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.
Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take Software Engineering with UPI Study
Where the credit goes
Universities that work with NCCRS
Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.
FAQ
Questions students ask us
About Constructing Software from Reusable Components (CBSE)
What is component-based software engineering (CBSE)?
What are the five activities of CBSE?
What is the difference between qualifying and adapting a component?
What are the risks of building software from reusable components?
About the Software Engineering course
How many college credits is Software Engineering?
How much does Software Engineering cost and what is included?
Which universities accept UPI Study credits?
How long does Software Engineering take?
How are the exams done?
How do my credits reach my college?
Ready for the full course? Earn 3 credits in Software Engineering.
103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.
3 credits · NCCRSEnroll →