Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Component-based software engineering

From Wikipedia, the free encyclopedia
Engineering focused on building software from reusable components

Component-based software engineering (CBSE), also calledcomponent-based development (CBD), is a style ofsoftware engineering that aims to construct asoftware system fromcomponents that areloosely coupled andreusable. This emphasizes theseparation of concerns among components.[1][2]

To find the right level of component granularity,software architects have to continuously iterate their component designs withdevelopers. Architects need to take into accountuser requirements, responsibilities, andarchitectural characteristics.[3]

Overview

[edit]

CBSE grew out of earlier paradigms such asstructured programming andobject-oriented programming, but it places greater emphasis on building software by assembling and integrating pre-existing components. Unlikeobjects, which typically encapsulate both data and behavior, components are higher-level constructs that provide well-defined interfaces and can be deployed independently.[4]

Component orientation underlies many modernsoftware frameworks andarchitectural styles, includingservice-oriented architecture (SOA),microservices, and widely usedfrontend frameworks such asReact,Angular, andVue.

Considerations

[edit]
An example of two components inUML: Checkout processes a customer's order, which requires the other one to bill the credit card.

For large-scale systems developed by large teams, a disciplinedculture and process is required to achieve the benefits of CBSE.[5]Third-party components are often utilized in large systems, raising issues ofintegration,licensing, andsoftware quality.

The system can be designed visually with theUnified Modeling Language (UML). Eachcomponent is shown as a rectangle, and aninterface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface. This graphical representation helps clarify the relationships and dependencies between components.

Component-based usability testing is applied when components interact directly with theend user, ensuring both functionality and user experience are preserved when components are reused or replaced.

Applications

[edit]

CBSE principles are used across multiple domains:

Challenges

[edit]

While component-based development improvesmaintainability and reusability, it introduces challenges such as:

See also

[edit]

References

[edit]
  1. ^George T. Heineman, William T. Councill (2001).Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley Professional, Reading 2001ISBN 0-201-70485-4
  2. ^Clemens Szyperski, Dominik Gruntz, Stephan Murer (2002).Component Software: Beyond Object-Oriented Programming. 2nd ed. ACM Press - Pearson Educational, London 2002ISBN 0-201-74572-0
  3. ^Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020.ISBN 978-1492043454.
  4. ^Crnkovic, Ivica (2001). "Component-based Software Engineering – New Paradigm of Software Development".Software Focus.2 (3):127–133.doi:10.1002/swf.49.
  5. ^Douglas C. Schmidt."Why Software Reuse has Failed and How to Make It Work for You". Retrieved14 May 2024.
  6. ^"Bitloops – Generating React Components from Design Systems".Bitloops.com. Retrieved25 August 2025.
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
Imperative
Structured
Object-oriented
(comparison,list)
Declarative
Functional
(comparison)
Dataflow
Logic
Domain-
specific
language

(DSL)
Concurrent,
distributed,
parallel
Metaprogramming
Separation
of concerns
National
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Component-based_software_engineering&oldid=1322311992"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp