Jump to content

Component-based software engineering: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
add Dev section (moved from component article)
link
Line 6: Line 6:
[[File:Component-based Software Engineering (CBSE) - example 1.svg|thumb|180px|An example of two components in [[Unified Modeling Language|UML]]: Checkout processes a customer's order, which requires the other one to bill the credit card.]]
[[File:Component-based Software Engineering (CBSE) - example 1.svg|thumb|180px|An example of two components in [[Unified Modeling Language|UML]]: Checkout processes a customer's order, which requires the other one to bill the credit card.]]


The system can be designed visually with the [[Unified Modeling Language]] (UML). Each component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface.
The system can be designed visually with the [[Unified Modeling Language]] (UML). Each component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface.


A component framework can be used to build components.<ref name="crnkovic2011tse">{{cite journal | last1 = Crnkovic | first1 = I. | last2 = Sentilles | first2 = S. | last3 = Vulgarakis | first3 = A. | last4 = Chaudron | first4 = M. R. V. | year = 2011| title = A Classification Framework for Software Component Models | journal = IEEE Transactions on Software Engineering | volume = 37 | issue = 5| pages = 593–615 | doi = 10.1109/TSE.2010.83 | s2cid = 15449138 }} </ref><ref>{{Cite journal|last1=Lau|first1=Kung-Kiu|last2=Wang|first2=Zheng|date=2007|title=Software Component Models|journal=IEEE Transactions on Software Engineering|volume=33|issue=10|pages=709–724|doi=10.1109/TSE.2007.70726|issn=0098-5589}}</ref> Notable examples are [[Enterprise JavaBeans]], the [[Component Object Model]], the [[.NET Framework]], and [[Common Object Request Broker Architecture|CORBA]].
A component framework can be used to build components.<ref name="crnkovic2011tse">{{cite journal | last1 = Crnkovic | first1 = I. | last2 = Sentilles | first2 = S. | last3 = Vulgarakis | first3 = A. | last4 = Chaudron | first4 = M. R. V. | year = 2011| title = A Classification Framework for Software Component Models | journal = IEEE Transactions on Software Engineering | volume = 37 | issue = 5| pages = 593–615 | doi = 10.1109/TSE.2010.83 | s2cid = 15449138 }} </ref><ref>{{Cite journal|last1=Lau|first1=Kung-Kiu|last2=Wang|first2=Zheng|date=2007|title=Software Component Models|journal=IEEE Transactions on Software Engineering|volume=33|issue=10|pages=709–724|doi=10.1109/TSE.2007.70726|issn=0098-5589}}</ref> Notable examples are [[Enterprise JavaBeans]], the [[Component Object Model]], the [[.NET Framework]], and [[Common Object Request Broker Architecture|CORBA]].

Revision as of 00:08, 14 May 2024

Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to construct a software system from components that are loosely-coupled and reusable. This emphasizes the separation of concerns among components.[1][2][3]

Development

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

The system can be designed visually with the Unified Modeling Language (UML). Each component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface.

A component framework can be used to build components.[4][5] Notable examples are Enterprise JavaBeans, the Component Object Model, the .NET Framework, and CORBA.

Third-party components are often utilized in large systems.

Component-based usability testing is for components that interact with the end user.

References

  1. ^ Douglas C. Schmidt. "Why Software Reuse has Failed and How to Make It Work for You".
  2. ^ George T. Heineman, William T. Councill (2001). Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley Professional, Reading 2001 ISBN 0-201-70485-4
  3. ^ Clemens Szyperski, Dominik Gruntz, Stephan Murer (2002). Component Software: Beyond Object-Oriented Programming. 2nd ed. ACM Press - Pearson Educational, London 2002 ISBN 0-201-74572-0
  4. ^ Crnkovic, I.; Sentilles, S.; Vulgarakis, A.; Chaudron, M. R. V. (2011). "A Classification Framework for Software Component Models". IEEE Transactions on Software Engineering. 37 (5): 593–615. doi:10.1109/TSE.2010.83. S2CID 15449138.
  5. ^ Lau, Kung-Kiu; Wang, Zheng (2007). "Software Component Models". IEEE Transactions on Software Engineering. 33 (10): 709–724. doi:10.1109/TSE.2007.70726. ISSN 0098-5589.