Jump to content

Component-based software engineering: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
link
better use of schmidt ref
Line 1: Line 1:
{{Short description|Engineering focused on building software from reusable components}}
{{Short description|Engineering focused on building software from reusable components}}


'''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 [[software component|components]] that are loosely-[[Coupling (computer programming)|coupled]] and [[Reusability|reusable]]. This emphasizes the [[separation of concerns]] among components.<ref>{{cite web |author=[[Douglas C. Schmidt]] |title=Why Software Reuse has Failed and How to Make It Work for You |url=http://www.dre.vanderbilt.edu/~schmidt/reuse-lessons.html}}</ref><ref>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}}</ref><ref>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}}</ref>
'''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 [[software component|components]] that are loosely-[[Coupling (computer programming)|coupled]] and [[Reusability|reusable]]. This emphasizes the [[separation of concerns]] among components.<ref>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}}</ref><ref>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}}</ref>


==Development==
====
[[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.]]


For large-scale systems developed by large teams, a disciplined culture and process is required to achieve the benefits of CBSE.<ref>{{cite web |author=[[Douglas C. Schmidt]] |title=Why Software Reuse has Failed and How to Make It Work for You |url=http://www.dre.vanderbilt.edu/~schmidt/reuse-lessons.html |access-date=14 May 2024}}</ref> [[Third-party software component|Third-party components]] are often utilized in large systems.
The system can be designed visually with the [[Unified Modeling Language]] (UML). Each [[software component|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 [[software component|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 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]].
[[Third-party software component|Third-party components]] are often utilized in large systems.


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

Revision as of 19:29, 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]

Considerations

An example of two components in UML: 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 disciplined culture and process is required to achieve the benefits of CBSE.[3] Third-party components are often utilized in large systems.

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 framework can be used to build components.[4][5] Notable examples are Enterprise JavaBeans, the Component Object Model, the .NET Framework, and CORBA.

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

References

  1. ^ 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
  2. ^ 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
  3. ^ Douglas C. Schmidt. "Why Software Reuse has Failed and How to Make It Work for You". Retrieved 14 May 2024.
  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.