2. Introduction
There are many paradigms walking around as buzzwords most of them may
be resumed in what is known as a “Solution Architecture”.
●
●
Which paradigms would you peek?
Which cost benefit trade-offs you may need to do in order to meet some
quality criteria?
In this “Webinar” we propose a technique for building a “Paradigm Shifting
Map” that would help us to identify the mayor paradigms that define a
Solution Architecture.
3. Paradigms walking as Buzzwords
3 Tier Architecture Functional Programming
Workflows
Object Oriented
Document Oriented
Aspect Oriented
Cloud
Tiers
Hierarchical Database
Event Oriented
Service Oriented
Relational Data Base
MVP
MVVM
NoSQL
Patterns
MVC
Multi-core
4. Definitions 1/2
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].
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].
5. Definitions 2/2
Paradigm Shifting
A paradigm shift (or revolutionary science) is, according to Thomas Kuhn, in
his influential book The Structure of Scientific Revolutions (1962), a change in
the basic assumptions, or paradigms, within the ruling theory of science.[5]
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 a map that's helps us to take decisions regarding which paradigms
may be better for the accomplishment of our goals.
6.
7. Hands on Practice 1/4
•
•
Regardless our knowledge area our first task is to classify your paradigms
and build time lines within each classification
Each paradigm is influenced by its predecessors so its important to make a
general description that document its goals as a way to know the conditions
that prevailed when a paradigm appears.
8.
9. Hands on Practice 2/4
The next step is to further detail our classification for this we are going to
distinguish the paradigms that are relevant for our context. We will make
the distinction by a color code.
●
●
●
●
New and promising, not everything is good just for being new, one of
the first criteria for selection at least for a first filter may be to find the new
ones that are promising in other words the ones that has stated (may be in
an informal way) that they may reduce costs, complexity or increase
efficiency.
Selected these are the ones that are feasible considering our capacities,
resources, and restrictions.
Old and Valid, old is not a synonymous of obsolete proven technologies
are always of high value, however you will always need to review if they
are a good choice for your current context.
Granted Obsolete this are the ones that we have taken with out reviewing
its implications in the current context, a decision out of context can lead us
any way.
10. Hands on Practice 3/4
Here there are some examples for New and promising paradigms.
●
●
●
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 backend and the UI components make
building a great user experience easy. You could say that Vaadin is a superset 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% refactorable and 100%
object-oriented, boosting developer productivity by up to 30%. [8]
Cross-cutting (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]
11.
12. Hands on Practice 4/4
•
Finally we will make thick circle using the color code with in the date that
best represent for you the class. This Representative date may be the
average date of the paradigms of the same kind. The following map is an
example of the “Paradigm Shifting Map” that we made for our project
"Concept framework".
13. Results
The following slides shows the results of applying the “Paradigm Shifting
Map” in our project “Concept Framework”
14. Results
Architecture with
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)/
DBO(3)/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)/DB4O(3)
Models
3
3
1
Specialities
6
3
4
Complexity
18
9
4
15.
16. Conclusions
•
•
•
As simple at it seems the “Paradigm Shifting Maps“ has proven to be of
high value for us to help us shifting our paradigms according our goals.
For the project “Concept Framework”. We manage to use one model
(Object Oriented) instead of three (Document, Object and Relational) that
helps us reduce the complexity.
The numbers of specialities (languages and tools) needed was
significantly reduced from 6 to 4.