Project title: Defense Software Component Grid
Project period: June 1, 2006 ~ May 31, 2014
Software reuse can be defined as the use of existing software or software knowledge to construct new software. Software reuse paradigm is for improving software productivity, efficiency, quality, maintainability and reliability, and for reducing cost, development time and complexity. Especially, in the military software domain, to ensure the reliability of mission-critical software systems, it is essential to effectively reuse software assets that are proven to be reliable and have been successfully used for other software development projects.
However, achieving effective software reuse is still hard in practice. We have conducted surveys with software developers in the Korea defense domain and identified three practical problems in software reuse. The first problem is that it is hard to check the availability of reusable software assets that are needed for software development. The second problem is that it is hard to make the decision of choosing the most appropriate assets for the project. The third problem is the lack of reuse-related knowledge that is necessary to solve the problems in reusing software assets.
In this project, to solve these problems, we are developing a software-reuse environment, called Component Grid, for the military domain, where software developers in various application areas can easily and effectively share and use reusable software assets. Using the Component Grid environment, not only the components themselves, but also the relevant artifacts and knowledge for reusing them effectively can be systematically managed and shared.
[Component Grid Layers]
[Component Grid Architecture]
The main research issues of the Component Grid project include the followings:
Ontology-based Software Description & Component Search
We are developing an ontology-based artifact description model that is for representing essential properties of common software artifacts. We have developed an artifacts classification mechanism for common component-based development (CBD) processes. These processes are commonly used in the Korean defense software domain. By using the description model and the artifact classification mechanism, artifacts can be semantically described and searched based on a certain set of requirements. A prototype tool has been developed for developers to effectively find and reuse artifacts developed in different processes and projects. This tool enables developers to find appropriate components and related artifacts that meet the early requirements of a software development project. The reuse process can be systematically guided and supported in the life cycle of software development.
[Ontology-based Artifact Description Model]
Supporting Interaction between Developers for Software Reuse by Using Social Networks
We have conducted some field studies in military software developing units, and found that cooperation between developers is the key to identify what to reuse for software development projects. Therefore, if reusable software assets are shared effectively by having better communication between developers, it would assist developers to solve the problems caused by the difficulty of searching appropriate software assets for their projects.
Sharing knowledge among developers by collaboration is getting more popular in open source software environments. An analysis shows that communities are playing a significant role in sharing knowledge by collaboration in open source environment. Therefore, to form a community for improving software reuse, it is essential to connect other developers who might be able to provide the best assistance in reusing a certain software asset. In this project, we defined the social network aspects (similarity, familiarity, favorability, and accessibility) and the factors that are related to software reuse. In addition, we have developed a mechanism to recommend developers with an efficient social community to share essential knowledge about reusing software assets.
[A prototype of the social-network-based community recommendation system]
A Collaborative Software Reuse Framework
We are developing a collaborative software reuse framework that can reduce developers’ burden and facilitate participations of them to make reusable assets more sharable, reliable, and evolvable. To accomplish our research goal, we partially borrowed Wiki concepts because of many advantages of Wiki in collaborative environments. Wikis can facilitate participations of developers in enriching and refining knowledge for software reuse, and collectively build the repository of reliable software assets. In addition, Wikis provide easy ways of managing reuse-related knowledge.
[Structure of Asset Wiki page for Software Reuse]
The example shown in the above figure is the descriptions about the software components that are for “Data communication with other systems” in the defense domain. The structure of the Wiki page consists of two sections: the asset description and the reuse-related knowledge about the asset. The asset description section is for describing the core features and characteristics of the component such as the functionalities and the role of the component, the classification of the component, important constraints to consider to use the component, the interfaces of the component, the version information, and the appropriate operational environments for the component.
We are expecting that our Wiki-based software reuse framework can help developers to easily find appropriate reusable assets and reuse them effectively by accessing useful descriptions and knowledge about reusing the assets. Using our framework, developers can store and share the essential knowledge about reusing software assets in a collaborative manner by taking part in editing the contents of the Component Grid Wiki pages.
Sangbok Shin, Hyungmin Koo, and In-Young Ko, “A Mission Situation Oriented Dynamic Service Composition Framework”, In Proceedings of 2013 Korea Conference on Software Engineering (KCSE 2013), Vol. 15 No. 1, January 30 – February 1, 2013, Phoenix Park, Korea.
Dae-Hee Han, Hyungmin Koo, and In-Young Ko. “A Survey on Web 2.0 Based Software Engineering”, Journal of Korea Information Science Society: Software and Applications, Vol. 39, No. 9, pp. 714-722, September 2012.
Daehee Han, Hyung-Min Koo, and In-Young Ko, “A Survey on Applications of Web 2.0 Technologies for Software Engineering”, In Proceedings of 2012 Korea Conference on Software Engineering (KCSE 2012), Vol. 14 No. 1, February 8-10, 2012, Phoenix Park, Korea.
Suntae Choi, Hyungmin Koo, In-Young Ko, “A Social Network-based Method for Finding Reusable Software Assets”, Journal of Korea Information Science Society: Software and Applications, Vol. 38, No. 8, pp. 207-216, August 2011.
Sun-Tae Choi, Hyung-Min Koo, and In-Young Ko, “A Social-Network-based Method to Search Reusable Software Assets”, In Proceedings of 2011 Korea Conference on Software Engineering (KCSE 2011), Vol. 13 No. 1, February 9-11, 2011, Phoenix Park, Korea.
Hyung-Min Koo, In-Young Ko, “A Collaborative Software Reuse Framework: Reducing the Burden and Drawing Contributions of Developers”, in Proceeding of the Doctoral Symposium at the 2010 Asia Pacific Software Engineering Conference (APSEC2010), Sydney, Australia, November 30 – December 3, 2010.
Sun-Tae Choi, Hyung-Min Koo, In-Young Ko, “Social-Network-based Community Recommendation Framework for Increasing Software Reusability”, in Proceedings of the Triangle Symposium on Advanced ICT 2010 (TriSAI 2010), Beijing, China, October 25-27, 2010.
Suntae Choi, Hyungmin Koo, In-Young Ko, “Social Network-based Community Recommendation Framework for Increase Software Reusability”, Journal of Software Engineering Society, Volume 23, Number 2, pp. 75-84, June, 2010.
Hyung-Min Koo, Hye-Kyung Cho, Sun-Tae Choi, In-Young Ko, “A Web 2.0-based Environment for Improving Reusability of Software Assets in Defense Domain”, Journal of Software Engineering Society, Volume 22, Number 1, March, 2009.
Hye-Kyeong Jo, In-Young Ko, Hyuck-Rae Kim, “A Guideline for Generating Reference Architecture Based on Feature Models”, in Proceedings of the Triangle Symposium on Advanced ICT 2008 (TriSAI 2008), Daejeon, Korea, October 6-9, 2008.
Hyung-Min Koo, Seung-Yeol Seo, Francisco Rojas, and In-Young Ko, “Requirements Analysis and Design of Distributed Repositories for Collaborative Development and Sharing of Components”, In Proceedings of 2008 Korea Software Engineering Joint Workshop (KSEJW-2008), Je-ju island, 17th~18th, July, 2008.
Junki Lee, Hye-Kyeong Cho, In-Young Ko, “A Method for Requirement Traceability for Reuse of Artifacts Using Requirement-Ontology-based Semantic Tagging”, Journal of Korea Information Science Society: Software and Applications, Vol. 35, No. 6, pp. 357-365, June 2008
Hye-Kyeong Jo, In-Young Ko, “An Ontology-based Model for Supporting Inter-process Artifact Sharing in Component-based Software Development”, Computer and Information Science, Series: Studies in Computational Intelligence, Vol. 131, April 2008, Springer, Germany, ISBN 978-3-540-79187-4.
Junki Lee, Hye-Kyeong Cho, In-Young Ko, “A Method for Requirement Traceability for Reuse of Artifacts Using Requirement-Ontology-based Semantic Tagging”, In Proceedings of the 34th KIISE (Korean Institute of Information Scientists and Engineers) Fall Conference, October 26-27, 2007.
Hye-Kyeong Cho, In-Young Ko, Junki Lee, Sungjin Park, “An Artifact-sharing Method across Multiple Component-based Military Software Development Processes”, In Proceedings of the 34th KIISE (Korean Institute of Information Scientists and Engineers) Fall Conference, October 26-27, 2007, Busan Univ., Busan, Korea.
In-Young Ko, Hye-Kyeong Cho, Ho-Jin Choi, Soo-Dong Kim, Seung-Jin Park, “Design of a Defense-Software Component-Grid Environment”, Communications of the Korea Information Science Society, Vol. 25, No. 9, pp. 5-17, September 2007.
Semantic Tagging Server for Supporting Reuse of Software Artifact, and Methods Thereof, Korea Patent No. 10-1104739-0000, January 4, 2012