next up previous
Next: References

Aspect-Oriented Software/HardwareBeans

A common desire in design of almost any sort (except, perhaps, where innovation is of prime concern) is reuse of earlier development work. Reusing existing components, at all levels of granularity, pays off the additional composition complexity with significantly higher productively. It is therefore of no surprise that component reuse plays a central role in hardware and software design.

Indeed, a plethora of component reuse technology and techniques exist today both in hardware and in software design. However, to the best of our knowledge there are few if any attempts to relate between the two component technologies in both disciplines. Moreover, there seems to be a mutual misunderstanding of the nature of this technology.

In the hardware discipline, component technology has been successfully in use for some time. This success has been a source of envy to software designers, raising question such as: ``Why isn't software more like hardware?'' Hardware-like software integrated-circuits  [McI68], for example, have been suggested over a decade ago as a potential solution to the expected software crisis  [Cox86]. In fact, software engineering textbooks (falsely) cite hardware component reuse as working so well, that ``component reuse is not regarded any more a central issue, since it is so obvious and widely practiced." But so far there has been little success applying this approach in reusing existing software.

This situation is somewhat remedied by the recent emergence of component-based programming , which is the hot topic in software development today. There are already several competing software component architectures. The major commercially available include: CORBA which is promoted by the Object Management Group (OMG); COM, DCOM, and ActiveX (OLE), all of which were developed in Microsoft; and JavaBeans which are promoted by Sun Microsystems and JavaSoft.

In the software discipline, components are a step forward from object-oriented programming. While object-oriented in itself did not succeed to deliver the expectations of meeting the reuse needs, the advances made in object-oriented analysis, design, and programming languages provide a profound basis for components to grow.

Ironically, such a seamless process is missing in hardware component design and use. The hardware component design process often employs low level software technology and manual translations. It is here where hardware can learn a lesson from software, and possibly apply some of the advanced object-oriented techniques, such as, aspect-oriented, adaptive, and subject-oriented programming (AOP, AP, and SOP [HO93]), adopted for hardware usage, as well as component-software techniques, such as visual builders and the JavaBeans API.

Joint research with MIRIAM LEESER, Electrical and Computer Engineering Dept., College of Engineering, and KARL LIEBERHERR College of Computer Science, Northeastern University, Boston, Massachusetts 02115-5000. Email: {mel@ece,lieber@ccs,lorenz@ccs}.neu.edu

David H. Lorenz
College of Computer Science,
Northeastern University,
Boston, Massachusetts 02115-5000.
Email: lorenz@ccs.neu.edu



 
next up previous
Next: References
David H. Lorenz
5/8/1999