Have Software Components finally arrived



Introduction

In April 2013 Dr Dobbs editorial piece summoned a long held vision for software components and reuse. It proclaimed :

“After 40 years in the desert of incompatibility and limited reuse, we have crossed the river Jordan.”

It was a romantic notion and it provides a sign post for a vision about software components that stretches back to 1968.

1968 Software Engineering NATO Conference

Components became part of the software engineering discipline in the very first Software Engineering conference in 1968. Sponsored by NATO, the conference brought together the leading researchers at the time.

In a presentation provided by M. D. McIlroy, titled,  “Mass Produced Software Components”, McIlory set out the fundamental principles by which a industry based on the production of software components could be founded.


“My thesis is that the software industry is weakly founded, and that
one aspect of this weakness is the absence of a software components
subindustry.  We have enough experience to perceive the outline of such a
subindustry.  I intend to elaborate this outline a little, but I suspect
that the very name `software components' has probably already conjured up
for you an idea of how the industry could operate.  I shall also argue that
a components industry could be immensely useful, and suggest why it hasn't
materialized.  Finally I shall raise the question of starting up a `pilot
plant' for software components.” Source

Mcllory envisioned a “Components Factory” building software components on a similar basis as the manufacture of hardware components.

This vision was remarkable given the time and the infancy of the software industry in 1968. It has taken until the 21st century to begin to see how such a vision may become a reality.


Recent Advances

As noted in the Dr Dobbs article a key advance has been the widespread use of “web services” or as often termed “services”. These services supported by a API have been instrumental in Mobile and Web based applications.

Today numerous organisations from Google, Microsoft and many others provide services to application developers in their quest for the next “big app”, often these services are free or at little cost.

Services are causing a fundamental shift in thinking about how applications can be built. The foundation of services has been the provision of data, however recently computation has moved to services through the availability of cloud based algorithms  An entire industry has grown around cloud based API’s, Apigee being a notable example.

Such advances have brought dangers as applications are increasingly relying on a set of reusable components from numerous software “manufacturers”.  A recent example of this problem has been the “Superfish” vulnerability which was based on a commercial software component created by a company called Komodia. The software component is used widely and was heavily marketed by Komodia as an easy way to solve a complex problem.

The Future

The rise of components and services within application development open up questions around how software components can be successfully and safely integrated into the software engineering process.

There is no question that M. D. McIlroy original vision is a worthy goal, but it remains to be seen how the widespread manufacture of software components can be done in a manner that supports application development.

Comments

Popular posts from this blog

Vaadin - GRID Component

Connecting a Vaadin SQL Container to a Combo Box

Web Cam and Vaadin