A binary component is a separately compiled program that can be used as a part of a larger program. Binary components generally conform to an accepted technology such as JavaBeans or ActiveX, and generally support a rich program interface containing properties, methods and events. Binary components are generally used in a graphical user interface (GUI) environment. There are a number of benefits to be realized by converting command‐line software into binary components. The most important of these is that GUI environments are more popular and more familiar to most people than command‐line environments. Using binary components can greatly simplify a GUI implementation, to the point where it is only slightly more complicated than a typical command‐line implementation. However there are benefits that go beyond mere convenience. Binary components have much richer interfaces than command‐line programs. Binary components are service‐oriented rather than task‐oriented. A task‐oriented program has a main routine that is devoted to accomplishing a single task. A service‐oriented component has no main routine or main function, but instead provides a variety of services to its clients. Binary components can be easily integrated with one another, which permits a design where each major feature of an application is implemented in a different component. Such a design encourages software reuse at the component level and facilitates low‐impact feature upgrades. We first delineate a design‐pattern‐based methodology for converting command‐line programs into components. We then illustrate these principles using two projects, a simulation system for digital circuits, and a data generation system for software and hardware testing. Copyright © 2005 John Wiley & Sons, Ltd.
[1]
Peter M. Maurer.
Component Level Programming
,
2003
.
[2]
Peter M. Maurer,et al.
Generating test data with enhanced context-free grammars
,
1990,
IEEE Software.
[3]
Peter M. Maurer,et al.
The design and implementation of a grammar‐based data generator
,
1992,
Softw. Pract. Exp..
[4]
Christopher G. Lasater,et al.
Design Patterns
,
2008,
Wiley Encyclopedia of Computer Science and Engineering.
[5]
Taylor L. Booth,et al.
Applying Probability Measures to Abstract Languages
,
1973,
IEEE Transactions on Computers.
[6]
Peter M. Maurer.
The Florida Hardware Design Language
,
1990,
IEEE Proceedings on Southeastcon.
[7]
José María Carazo,et al.
Command‐line interfaces can be efficiently brought to graphics: COLIMATE (the COmmand LIne MATE)
,
2002,
Softw. Pract. Exp..