While software design has been the solution to many common repetitive tasks, software designs itself it not easy to automate. A paper by Alam, Kienzle, and Mussbacher (2013) proposes a new framework which they refer to as Concern-Oriented Software Design (COSD) in order to further the idea of automating aspects of software and application design itself by breaking down software design into units of reuse. The recycling of methods in software design has been an idea for half a century, with the idea that all that has already been determined in software design should become an artifact which provides for ease in the creation of further software.
A concern refers to different structures and models which could provide the same function and the interface which allows for customization to the specific task at hand. A critical function of such a system is choosing the best from a variety of given possible solutions. The developer uses different interfaces to control the customization of solutions based on descriptive and other factors like the high level goal of an application. This allows for best choices give a set of alternatives as well as the custom design aspects that are also recycled after being chosen for the design. Dependencies of the concerns and the how they are incorporated into a final software design are monitored by the COSD for compatibility.
Concerns encompass Reusable Aspect Models (RAM) to show how the software designs in operating. While some aspects of software, such as a unit of functional code, is easy to reuse there are others that are not so easy to recycle, such as frameworks which limited the process flow and interaction of an application. The use of one usually negates the use of others. By using “RAM weavers” it is possible to integrate concerns and frameworks.
The authors believe they have found an approach which may result in a resolution to the long sought for method to recycle software design and automate the creation of software at a higher scale that revolutionizes software engineering.
This particular publication was chosen because it was very recent, and it offered a novel paradigm in software and application design. It was an approach which attempted to builds on philosophies of scaling up and automation in order to achieve greater automation of process for software engineering, greatly reducing the effort involved. This is used in many disciplines in technology and it also reflects a wider movement to capitalize on what already exists. This can be seen in the recycling of paper, plastic and metal as well as in the collaborative economy where platforms such as Craigslist, EBay, ride sharing and accommodation sharing allows for new value from existing commodities. There is a zeitgeist for recycling and its association with sustainability and wise use of energy.
This approach using concerns as the priority in the COSD would have the capacity to facilitate better software design and more quickly, but without continuous improvement built into the design it is unlikely to keep pace with technological development in software engineering and this would limit its application in a short period of time. The article did not make clear how continuous improvement of the COSD system might occur. Also, there is no feedback mechanism to evaluate and improve outcomes. If this further problem of keeping the COSD current could be easily resolved then this would represent the revolution in the creative application of new innovations and technology, however it may also reduce the need for software engineers, who may be reduced to designing systems to create systems given that anyone would be supported in designing software without any technical knowledge.
- Alam, O., Kienzle, J., & Mussbacher, G. (2013). Concern-oriented software design. In Model-Driven Engineering Languages and Systems (pp. 604-621). Springer Berlin Heidelberg. Retrieved from: http://www.researchgate.net/profile/Omar_Alam/publication/265510850_Concern-Oriented_Software_Design/links/5410e93d0cf2df04e75d69e6.pdf