An Agent and Pattern-Oriented Approach to Data Visualization

An Agent and Pattern-Oriented Approach to Data Visualization

Chung-Yeung Pang, Severin K. Y. Pang
Copyright: © 2023 |Pages: 23
DOI: 10.4018/978-1-7998-9220-5.ch074
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

In order to analyze and visualize big data with a large variety of data, we need an agile and flexible software system. Following the traditional standard programming paradigm, such a system cannot easily be built. This article introduces a programming approach that combines generic programming, pattern-oriented programming, and agent-oriented programming. Reflection techniques that allow components and patterns to change their behavior depending on the data context are also presented. The main motivation of aspect-oriented programming, the separation of concerns, is also discussed. This approach provides guidelines for building flexible, extensible, and maintainable software systems. However, a paradigm shift in programming is required, which is also presented in this article.
Chapter Preview
Top

Introduction

The standard style of software development is to analyze the problem, develop a design to solve the underlying problem, and implement the design into an application. As a result, the application is strongly tied to the problem to be solved. With new requirements, the application must be extended to solve the new problem. This way of software development is fine in many cases. However, applications built in this style may not work well when dealing with big data, which contains a wide variety of data types and structures.

In order to be able to handle a large amount of data, the software system must be flexible and agile. This chapter uses an example to show that following traditional standard programming would result in rigid and complex software components. An approach is presented that combines generic programming, pattern-oriented programming, and agent-oriented programming to build flexible and agile software systems. The approach is used to build a data visualization system that can handle a large variety of data. The visualization system is part of a web and mobile geography application. This application has to process thousands of physical and human geography topics with hundreds of data sources from the internet. The focus of this chapter is the general technical approach to building a flexible, scalable, and agile visualization system that can handle this amount of data. Code segments are used for illustration. The programming language used in the presentation is Dart with the Flutter framework. Flutter is a new product from Google and is widely used for web and mobile app development. The Dart language is similar to Javascript. Anyone with programming skills in C, C++, Java or Javascript can easily follow the code segments.

In this chapter, techniques are presented on how software components and patterns can change their behavior depending on the data context through reflection. The main motivation of aspect-oriented programming, the separation of concerns, is also discussed. In order to be able to pursue this approach, a paradigm shift in programming is required. This shift is also presented in this chapter.

The content of this chapter first deals with the background. This is followed by a section on generic programming, a section on patterns and frameworks, and a section on data, context, and agents. At the end, a conclusion is drawn, along with a section on the consequences and applicability of the development approach and a section on future research and direction.

Background

This section provides background information about the programming paradigm and the agile development process, the agent, and big data.

Key Terms in this Chapter

Software component: A software unit of functionality that manages a single abstraction.

Aspect-Oriented Programming: Aspect-oriented programming is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns.

JSON (JavaScript Object Notation): An open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data type.

Pattern-Oriented Programming: Pattern-oriented programming is a programming approach to identify the problem to be solved and to look for the pattern that provides the solution to the problem in the given context.

Software Crisis: A term used in the early days when software projects were notoriously behind schedule and over budget and maintenance costs were exploding.

Agent-Oriented Programming: Agent-oriented programming (AOP) is a programming paradigm where the construction of the software is centered on the concept of software agents.

Agile Software Development Process: An evolutionary and iterative approach to software development with focuses on adaptation to changes.

Big Data: Big data is a field that treats ways to analyze, systematically extract information from, or otherwise deal with data sets that are too large or complex to be dealt with by traditional data-processing application software.

Pattern: Pattern is defined as the solution to a problem in a specific context.

Complete Chapter List

Search this Book:
Reset