Web Service in Knowledge Management for Global Software Development

Web Service in Knowledge Management for Global Software Development

Copyright: © 2023 |Pages: 22
DOI: 10.4018/978-1-7998-9220-5.ch041
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Software development is a knowledge-intensive practice. Software development teams rely on human resources and systematic approaches to share knowledge on system design. This collaborative knowledge sharing and preserving mechanism is known as “knowledge management” in software industries. In the software development process, coordination of system design functionalities requires knowledge-sharing infrastructure within the team members. Semantic web service computing (SWSC) provides opportunities and value-added service capabilities that the global software development team requires to exchange information. This article describes the features of an ontology-based web portal framework, called CKIA (collaborative knowledge integration architecture), for integrating distributed knowledge in a global software development project. The CKIA framework uses a hybrid knowledge-based system consisting of structural case-based reasoning (S-CBR), rule-based reasoning (RBR), and an ontology-based concept similarity assessment mechanism. Finally, a business scenario demonstrates some of the system's functionalities.
Chapter Preview
Top

Introduction

Software system development has transitioned from a solo activity of designing standalone development activities to a distributed and collaborative production that needs a team-based software developer's contribution. Many software project staff now contribute to multiple projects. Due to this work practice, project boundaries blur, not just in terms of their work and how they design and develop software but also their communication channels and knowledge management practice. This way, software development is a knowledge-intensive practice. For example, people work in software development teams to bundle the man-powers and use the systematic approach to share system design knowledge. This collaborative knowledge sharing mechanism is known as 'knowledge management’ in software industries.

Modern software systems play a vital role in shaping significant social challenges (Jansen et al., 2009) (Pal, 2019). Software is an essential value-adding component of most consumer products (e.g., mobile phones, digital music systems, automobiles). Moreover, software systems are also heavily used in the aerospace industry, industrial business process automation, and control systems (Pal, 2020) (Pal & Karakostas, 2020). In these software applications, malfunction or error can cause loss of life or injury, and error-free software is crucial to the safety and wellbeing of people and businesses. Hence, there is an increasing requirement for applying strict engineering discipline to the development of software systems (Pal, 2021a) (Pal, 2021b); and requirements are context sensitive in which the system need-to-be operate (Sawyer et al., 2010) (Sharp et el., 1999).

Consequently, software products must be verified against their requirements throughout the development process like any engineering product. Different software development process models (e.g., Waterfall, Spiral, V-Model) have evolved over the decades to accommodate challenges in software development practice. This way, software development process models play a crucial role to provide a systematic and organized approach to software development (Sommerville, 2019). According to Kevin Roebuck (2012), a traditional Software Development Life Cycle (SDLC) provides the framework for planning and controlling the development or modification of software products, along with the methodologies and process models used for software development.

The design and development of software is a complex process consisting of many interdependent activities that involve many stages such as inception, initial design, detailed design and development, implementation and testing, operation, maintenance, and retirement. This includes requirements analysis, technical development, project management, quality assurance, and customer support activities. In addition, requirement analysis has always been with any human act of design, so it may seem strange that they have been singled out for study in computer science and created a subject area known as requirement engineering.

Requirement engineering is a term used to describe the business processes involved in eliciting, documenting, and maintaining requirements for a software system. It is about discovering what the users need the system to do for them. For example, one can define a requirement as “a specification of what should be implemented”. There are two types of requirements: (i) functional requirements – what behaviour the system should offer; and (ii) non-functional requirements – a specific property related to quality assurance, time, or cost of development related issues. They are a statement of what the software system should do and not how it should.

Key Terms in this Chapter

Semantic Web service: The advantages of integrating and coordinating supply chain business partners’ information service applications, which are loosely distributed among participants with a wide range of hardware and software capabilities, are immensely important issue from operation of global supply chain. Web service is an information technology-based solution for system interoperability; and in this technology business services are described in a standard web service description language (WSDL). Establishing the compatibility of services is an important prerequisite to service provision in web service operation. Web service has embraced the concepts of enriching distributed information systems with machine-understandable semantic metadata (known as ontology); and these new breed of web services are known as semantic web service. In this way, semantic web service provides a common framework for web-based services, which allows data to be shared and reuse across application, enterprise, and extended community boundaries.

Ontology: Information sharing among supply chain business partners using information system is an important enabler for supply chain management. There are different types of data to be shared across supply chain, namely – order, demand, inventory, shipment, and customer service. Consequently, information about these issues needs to be shared in order to achieve efficiency and effectiveness in supply chain management. In this way, information-sharing activities require that human and/or machine agents agree on common and explicit business-related concepts (the shared conceptualizations among hardware/software agents, customers, and service providers) are known as explicit ontologies; and these help to exchange data and derived knowledge out of the data to achieve collaborative goals of business operations.

Case-Based Reasoning: Case-based reasoning (CBR) is one of the useful mechanisms for both modeling human reasoning and building intelligent software application systems. The basic principle of case-based reasoning systems is that of solving problems by adapting the solution of similar problems solved in the past. A CBR system consists of a case base , which is the set of all cases that are known to the system. The case base can be thought of as a specific kind of knowledge base that contains only cases. When a new case is presented to the system, it checks the case base for similar cases that are most relevant to the case in hand, in a selection process . If a similar case is found, then the system retrieves that particular case and attempts to modify it (if necessary) to produce a potential solution for the new case. The process is known as adaption .

Software Development Knowledge Management: As software development is an abstract engineering discipline, knowledge management is essential. When developing software, a high degree of coordination and management of distributed knowledge become vital tasks.

Rule-Based Reasoning: In conventional rule-based reasoning, both common sense knowledge and domain specific domain expertise are represented in the forms of plausible rules (e.g., IF < precondition (s)> THEN < conclusion (s)>). For example, an instance of a particular rule: IF {( Sam has a driving license ) AND ( Sam is drunk ) AND ( Sam is driving a logistic distribution track ) AND ( Sam is stopped by police )} THEN {( Sam’s driving license will be revoked by the transport authority )}. Moreover, rule-based reasoning requires an exact match on the precondition(s) to predict the conclusion(s). This is very restrictive, as real-world situations are often fuzzy and do not match exactly with rule preconditions. Thus, there are some extensions to the basic approach that can accommodate partial degrees of matching in rule preconditions.

Description Logic: Knowledge-based software system relies on its stored knowledge and decision-making mechanisms. At the time of knowledge-based system design and development stages, software engineers use different knowledge representation techniques; and one of the techniques is symbolic logic-based representation. Different symbolic logic representation is used for knowledge presentation purpose. Description Logics (DLs) are a family of knowledge representation languages that can be used to represent the knowledge of an application domain in a structured way.

Complete Chapter List

Search this Book:
Reset