Academic journal article International Journal of Electronic Commerce Studies

Iot-Enabled Knowledge Sharing-Based Collaborative Software Maintenance Design Approach

Academic journal article International Journal of Electronic Commerce Studies

Iot-Enabled Knowledge Sharing-Based Collaborative Software Maintenance Design Approach

Article excerpt

ABSTRACT

Modifying corrective programming code according to requirements modifications so that the modifications work with existing code is a challenge for software maintenance design, because it is difficult to understand the meaning of existing code. This refers to both software specifications and business implications associated with modifying a software system. The lack of a knowledge-based collaborative environment is one of the prominent problems in software maintenance design. This paper presents the IoT-enabled knowledge sharing architecture using combination and internalization for collaborative software maintenance design to derive a collaborative software design procedure from the problem-solving systematic methods TRIZ, AHP and Maturity Index on Reliability (MIR). Next, we illustrate three elements of the proposed approach in more detail: combination using MIR, collaborative tagging decision-making using AHP, and internalization of problem-solving using TRIZ. Finally, a case study and evaluation are presented to demonstrate a practical application of the proposed approach.

Keywords: Collaborative Software Maintenance Design, Knowledge Sharing, TRIZ, Agent-based, Internet of Things

1. INTRODUCTION

Software development means the creation of a new software system based on the software development life cycle. One could argue that software development quality and productivity suffers from requirements modification, however these requirements are even more difficult to fulfill during software maintenance design. For example, issues such as application domain, system architecture, programming language and software development environment, etc. all affect the ability of the software development team to remain true to evolving system requirement, especially as the software system undergoing maintenance ages over time.

Modifying corrective programming code according to requirements modifications while ensuring compatibility with existing programming code is a challenge for software maintenance design, because it is difficult to understand the meaning of existing programming code. Thus, software maintenance design is recognized as the most costly and lengthiest process in a typical software development life cycle1. This refers to both software specification and the business problems associated with modifying a software system because of correcting problems or adapting it to a changed software or hardware environment. So, software maintenance design is a knowledge intensive process that involves designing a specialized knowledge-based software solution for a specific business problem.

Lack of knowledge is one of the prominent problems in software maintenance. To address this problem, we adapted a knowledge sharing methodology to the specific knowledge needs associated with software maintenance. As some surveys show, knowledge management is one of the central topics in management research2. The ability to acquire knowledge in the software maintenance design process depends on how easily knowledge can be accumulated and shared3. Knowledge sharing is important for companies to be able to acquire knowledge. Software product companies are embracing the practice of knowledge sharing within virtually all phases of the software life cycle. Integration of technical knowledge with business application domain knowledge is crucial to high quality software maintenance.

Knowledge-based software development is widely discussed in several software engineering publications4, 5, 6, but current practice also increases the knowledge needed to achieve or surpass software quality goals. Few articles discuss both the knowledge sharing and software architecture of software maintenance design, including the interactions of individual software components and the coordination among related modules in a software development life cycle.

Software architecture describes the overall organization of a software system in terms of the inter-relationships of its internal modules and data elements7. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.