[SKP's Novel Concept #02] The Concept of Software Recycle
Philosophy of Software/Internet Engineering - They May Go On To Be Future Concepts in Everyday Software Engineering, Cyber Security, Information Engineering on the Internet.
Join the DZone community and get the full member experience.Join For Free
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 a 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 and 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 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.
Working Copy of the Paper - Computer Society of India Communications, Volume 39, Issue 5
Published at DZone with permission of Sumith Puri, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.