Paradigm Shifting (2013)

(Diminishing Barriers, Software Architectures)
Diego E. Malpica Chauvet et al.
okc.mx, diego-malpica@openknowledge.mx

 

There are many paradigms walking around as buzz words:
 Micro services, Reactive, Object Oriented, MVC, Responsive, Web Services, Cloud Computing...
Which paradigms should be better for you?

 


1 Introduction

In this paper we propose a method for building "Paradigm Shifting Maps" that would help to identify the paradigms that define a Solution Architecture.

2 Definitions

Lets define some concepts that may help us to identify our current paradigms and to shift between them according our goals.

2.1 Buzzword

A buzzword is a word or phrase used to impress, or an expression which is fashionable. Buzzwords often originate in jargon. Buzzwords are often neologisms[6].

2.2 Paradigm

The Oxford English Dictionary defines the basic meaning of the term paradigm as "a pattern or model, an exemplar". The historian of science Thomas Kuhn gave it its contemporary meaning when he adopted the word to refer to the set of practices that define a scientific discipline at any particular period of time. In his book The Structure of Scientific Revolutions Kuhn defines a scientific paradigm as: "universally recognized scientific achievements that, for a time, provide model problems and solutions for a community of researchers[1].

2.3 Paradigm Shifting

A paradigm shift (or revolutionary science) is, according to Thomas Kuhn, in his book The Structure of Scientific Revolutions (1962), a change in the basic assumptions, or paradigms, within the ruling theory of science.[5]

2.4 Paradigm Shifting Map

Maps has constituted a high value tool along the human history, they resume our knowledge from a defined point of view. We define Paradigm Shifting Map as the one that help us take decisions regarding witch paradigms would be better for a determined context.

3 Hands on Practice

Regardless your knowledge area you can classify your paradigms and build time lines.

With in each class of paradigms we need to find its relevant dates for each paradigm.  Each paradigm is influenced by its predecessor.  It is important to document document goals as a way to know the conditions that prevailed when a paradigm appears.

Here it is a "Paradigm Map" of  2013/04 for Information Technologies.

Figure 1

To distinguish the paradigms that are relevant we use the following color code:

Here are some examples of promising paradigms (technologies).
Presentation (GWT/Vaadin)
"The server-side development model doubles productivity by automating everything related to browser and ajax communication. Built-in themes make your application look great, data sources help you connect to the back end and the UI components make building a great user experience easy. You could say that Vaadin is a super set of GWT for business oriented applications with focus on developer productivity. [7]
Persistence (DB4O)
No time is spent on learning a separate data manipulation or query language. Unlike incumbent, string-based, non-native APIs (such as SQL, OQL, JDOQL and others) Native Queries and LINQ are 100% type-safe, 100% refactor able and 100% object-oriented, boosting developer productivity by up to 30%. [8]
Cross-cutting Concerns (AspectJ)
To integrate different tools may be difficult, object oriented tools may be complemented using aspect oriented tools to take care of cross-cutting concerns. [9]

Finally we make a thick circle using the color code with in the date that best represent the kind of paradigms for your current context. This Representative date may be the average date of the paradigms of the same kind. The following map represents the paradigm shifting that we are applying for our project "Concept framework".

Figure 2

4 Results

We have been applying the technique of paradigm shifting in our projects the must representatives ones are:

The "OODVS Framework", that was the base for obtaining a Mexico National Innovation award for Information technologies.

"Concept Framework" and "Open Knowledge Consulting Dynamic Knowledge Repository" our current leading efforts for building high value solutions.

4.1 Specific Results for the "Concept Framework" project

We manage to use one model instead of three and to avoid the principal physical and logical barriers while maintaining a good concern separation and modularization.
The numbers of specialties (languages and tools) need was significantly reduced.
The main requirements was cover and must of the effort was a first time effort (framework).

Architecture

Granted-Paradigms

Reviewed  Frameworks

Reviewed Architecture

Overall Characterization

Different Models
Different Tools
Separation of Concerns

Different Models
Same Tools
Separation of Concerns

Same Model
Same Tools
Separation of Concerns
Crosscut Concerns

Presentation

Documents
HTML(1)
Objects
JScript(2)
Object Document Mappers
JSP(3)

Objects
Java(1), Vaadin(2)

Objects
Java(1),
Vaadin(2),
Concept Framework(10),
AspectJ(4)

Application

Objects
Java(4), EJBs(5)

Objects
Java(1), Vaadin(2), DB4O(3)

Persistence

Relational Tables
SQL(5)
Object Relational Mappers
JPA(6)

Objects
Java(1),
DD4O(3)

Models Used (M)

3

3

1

Specialties Used (S)

6

3

4

Cognitive Complexity (M x S) 18 9 4
 

5 Conclusions

This method has allow us to quantify cognitive complexity in a meaningfully way that allows to take decisions with an strong positive impact int the time and cost associated with Information technology projects.

References

[1] "Paradigm" http://en.wikipedia.org/wiki/Paradigm
[2] "OODVS Framework",
https://sc.openknowledge.mx/Concept/file/byUUID/Concept:44729187349921792/OodvsFramework.html
[3] "Concept Framework",
https://sc.openknowledge.mx/Concept/file/byUUID/Concept:44728873887432704/ConceptFramework.html
[4] "Open Knowledge Consulting Dynamic Knowledge Repository",
https://sc.openknowledge.mx/Concept/file/byUUID/Concept:44728987337293824/OKC-DynamicKnowledgeRepository.html
[5] "Paradigm shifting", http://en.wikipedia.org/wiki/Paradigm_shift
[6] "Buzz Word", https://en.wikipedia.org/wiki/Buzzword
[7] "Object-Oriented Presentation Layer",
https://vaadin.com/gwt
[8] "Object-Oriented Persistence Layer", http://community.versant.com/documentation/reference/db4o-8.1/java/reference/
[9] "Aspect-Oriented Cross-cutting Concerns",
http://en.wikipedia.org/wiki/Aspect-oriented_programming
[10] "Concept Framework," ,   https://sc.openknowledge.mx/Concept/file/byUUID/Concept:44728873887432704/Concept+Framework.20200917T114713Z