Thursday, April 24, 2014

The Concept of Software Recycle

I want to put forward the idea of software recycle. Software recycle is software reuse taken to a new level, wherein the components that are outdated or written in older generation languages (of current era) are retrofitted with newer components. Multiple integration points are used to combine, create and establish collaborative functionality. In this way, we are able to take component based development to a newer level, with greatest reuse. Apart from this, Software Recycle also combines software hosting both from open source developers and commercial and independent software vendors. It thereby acts as a software catalogue for various types of users such as students, professionals and even organizations. 

Software Recycle, takes software reuse to a newer level - wherein components that were written in older languages (of the current era), but which could be useful in certain scenarios are retrofitted with newer components or functionality and then put up on a public catalogue for use. This helps in reusing a lot of functionality without requiring to rewrite a lot of it. It will essentially then be a public catalogue of software components, promoting component based development. The greatest advantage will be that it would include thoroughly tested, documented and maintainable code - which could allow to save time in development. The possible users of this site include students, professionals and organisations alike.

It could also act as a source of learning for computer science students, to understand software reuse, component based development, object oriented programming and variety of other topics. This is not only by the thousands of components on the website that are available for download, but also from legacy components that the team would have retrofitted with newer components to enable reuse.

It finally comes with an advantage of acting as a catalogue of software components that can be used both publicly or privately within an organisation. This enables a good amount of knowledge sharing in the entire organisation and also in enabling a centralized repository. 

Software Recycle is closely related to the concept of Green Software Engineering - but takes a deviation that it not only concentrates on the aspects of green processes applicable to software development but enhances them to include software re-use, retrofitting, component based development and cataloguing. It impacts directly the power consumption, resource usage, efficiency of software, effectiveness of process, utilization of development manpower - a net result that allows contribution to a green ecosystem or environment. This also proves a maturity in Software Engineering thought processes for products and contribution of Software & Programming companies as other Engineering companies to a greener society.

A software product was to be built on these ideas by my, now closed, startup called TechArmy. There is only one website in this world that I could find closely related to my idea. This is a project supported by University of Hamburg, Germany, the details of which can be found here.

From this site, I quote as below: 
"Green IT is the study and practice of designing, manufacturing, using and disposing IT related hardware products in an efficient sustainable way with minimal or even no impact on the environment."
"Green Software Engineering was the attempt to apply these "green" principles known from hardware products also on software products, software development processes and their underlying software process models."

Software Recycle can be now defined as:
Software recycle is software reuse taken to a new level, wherein the components that are outdated or written in older generation languages (of current era) are retrofitted with newer components. Such re-use that that directly impacts the power consumption, resource usage, efficiency of software, effectiveness of process, utilization of development manpower and leads to a green ecosystem or environment is termed as Software Recycle.