Software Development Knowledge Management System Using Web Portal

Software Development Knowledge Management System Using Web Portal

Copyright: © 2021 |Pages: 27
DOI: 10.4018/978-1-7998-6792-0.ch005
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 global software development team requires to exchange information. This chapter 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. A business scenario is used to present some functionalities of the framework.
Chapter Preview
Top

Introduction

Software system development has transitioned from a predominantly solo activity of designing standalone development activities to a mainly 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. 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 (Pal, 2019). Software is an essential value-adding component of most consumer products (e.g., mobile phones, digital music systems, automobile). 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 business. Hence, there is an increasing requirement for applying strict engineering discipline to the development of software systems.

Consequently, software products, like any engineering products, must be verified against their requirements throughout the development process. Different software development process models (e.g., Waterfall, Spiral) 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 (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 are 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. In this way, it also includes requirements analysis, technical development, project management, quality assurance, and customer support activities. 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 of requirements for a software system. It is about discovering what the users need the system to do for them. It is worth noting that incomplete requirements and lack of user involvement are the two fundamental causes of software development project failure. These issues are related to the failure of inappropriate requirement gathering engagement.

One can define a requirement as “a specification of what should be implemented”. There are mainly 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. Requirements are the basis of all software systems. They are a statement of what the software system should do and not how it should do it.

In requirement elicitation process, building different analysis models is also essential to understand the system under development. Unified modelling language (UML) supports this multiple viewed modelling technique by providing different types of diagrams (e.g., analysis class diagram, use case diagram, sequence diagram) for realization of appropriate requirements. There may be many different stakeholders for a given software development system: many users, maintenance engineers, system support staff, sales engineers, and other relevant works. Requirement engineering is about eliciting and prioritizing the requirements these users have for the system. It is a process of negotiation as there are often conflicting requirements that must be balanced.

Complete Chapter List

Search this Book:
Reset