Title: Paradigm and Software Engineering
1Paradigm and Software Engineering
- Erek Göktürk (erek_at_ifi.uio.no),M. Naci Akkøk
(nacia_at_ifi.uio.no) - Department of Informatics, University of Oslo
2Outline
- Motivation
- What is paradigm?
- Current attitude towards paradigms
- Paradigm as an actor in software engineering
- Conclusion
3Motivation
- In SE Paradigm is heavily used
- Discussions of superiority Object-oriented
paradigm is the best ever - Discussions of suitability Object-oriented
paradigm is/isnt suitable for x y z
domain/tasks - The meaning of paradigm is overloaded and vague
- What exactly do we mean by paradigm?
- Why and how a paradigm influences the process and
product of SE?
4Motivation
- In this paper, we
- Trace the meaning back in history
- General (philosophical)
- In software engineering
- Exemplify the current vagueness in usage of the
term - Suggest a working definition for paradigm
- Discuss the current status in software
engineering (w.r.t. paradigms) - Identify some questions regarding paradigms in
software engineering, and provide some hypothesis
5What is Paradigm?
- Etymologically para- (alongside)
-deiknunai (to show) - Greek paradeigma example
- Works of Plato and Aristotle a third form of
reasoning - Induction, deduction, paradeigma (example)
- One of the constituents is more knowable
- Typical issues related to the category they
define (e.g. cheese paradigm) - Not very favorite of philosophers until late 20th
century - Modern meaning coined by Foucault, and esp. Kuhn
6What is Paradigm?
- Philosophically related to
- Ontology
- The ontology
- An ontology (AI)
- Epistemology
- Paradigmatic relationships (should be) in ontology
7What is Paradigm?
- Paradigm and computing
- Word appeared after late 60s, early 70s, esp.
after 2nd ed. of Kuhns book (1970) - The date suggests that usage was in Kuhnian sense
- Alan C. Kay (regarding new computing principles
through Smalltalk) a new Kuhnian paradigm in
the same spirit as the invention of the printing
press
8What is Paradigm?
- A fairly random sample
- Google search software engineering paradigm
- Trend (from usage)
- Method, procedure, generalization of process
(from usage) - Methodology (from usage)
- A technique, the process model (a definition)
- An approach to software design and programming (a
definition) - Usage from some papers in computing
- High level paradigm
- Programming paradigm
- Design paradigm
- Object-oriented paradigm
- Constraint satisfaction paradigm
- Probability theory is probably the best
understood paradigm in - The paradigms used for temporal reasoning
- xxx framework enables a new paradigm for Internet
services - most basic algorithmic paradigms in computational
geometry - intrusion detection paradigm
- employee-manager-salary paradigm
What does Paradigm mean?
9Current Attitude Towards Paradigms
- We propose a working definition
- A paradigm is an ontology of the world, which
necessarily includes some representational tools
and methods for an observer to build models. - An ontology, for leaving room to relativism or
perspectivism.
10Current Attitude Towards Paradigms
- Major paradigms in software engineering/design
- the procedural paradigm (emphasis on algorithm),
- the data-hiding paradigm (emphasis on data
organization), - the data-abstraction paradigm (emphasis on types
and operations), - and the object-oriented paradigm (emphasis on
commonality between types) - New approaches having potential to be regarded as
paradigms in the future - The component-based paradigm (emphasis on reuse
through integration), - the aspect-oriented paradigm,
- and the agent-oriented paradigm (emphasis on goal
orientedness)
11Current Attitude Towards Paradigms
- Causal relationship between PL and paradigm work
both ways - PL ? paradigm
- Paradigm ? PL
- New (immature) paradigm Partly based on not
having a PL counterpart
12Current Attitude Towards Paradigms
- Most of the current research regarding paradigms
- Confinement in one paradigm (normal science?)
- Representing one paradigm using another (UML and
CB) - The work done is claimed to provide an
operational definition. Is it enough? - We suggest that a theory of paradigms (in
software engineering/design) is needed.
13Paradigm as an Actor in Software Engineering
- Paradigms are panacea (cure of all pains)
- In every field
- In SE as well
- OO the latest rescuer new paradigm.
- Evidence?
- CB a deja-vu?
- What makes a paradigm different from another?
- One paradigm using anothers toolset. What does
it mean? - Comparative scale between paradigms?
- We think differentiating properties might be
found in the relation of paradigm and ontology,
and psychology
14Paradigm as an Actor in Software Engineering
- Software
- an executable model,
- the result of a series of (mechanical and/or
mental) transformations of models - What role does paradigm play in this software
building process?
15Paradigm as an Actor in Software Engineering
- From the ontology to an ontology paradigm
determines what is representable - object-oriented maps the ontology onto objects
and their type relations, - Data-abstraction onto types and operations
- Component-based onto components,
- Agent-based onto agents and communication.
- Some paradigms can be expected to fit some
tasks/domains better, but which paradigms to
which tasks/domains? How can we assess
suitableness?
16Paradigm as an Actor in Software Engineering
- What about complex tasks with different
constituents requiring different paradigms? - One answer might be by modeling one with the
other, thereby exporting the conceptualization
done by one paradigm to the other, but we dont
know the compatibility scale of paradigms! - A theory of paradigms might
- constitute of meta-paradigmatic statements
- would act as the common grounds and norms to
choose and to combine paradigms - or to show that they are not combinable
17Paradigm as an Actor in Software Engineering
- The PL-paradigm coupling
- What about the question of compatibility of
paradigms, w.r.t. PLs relationship with a
paradigm? - From a translational point of view, this means we
try to model one paradigm using another. Do we
know what effects this might have?
18Paradigm as an Actor in Software Engineering
- Human and paradigm Psychological issues
- The ones who prepare the first translation from
the ontology to an ontology, and those who
translate one model to another are only human. - Empirical/cognitive studies on understanding the
cognitive load created on the designer/model
builder, and designers/model builders cognitive
toolset should become a study area. - How such studies should be conducted is another
open question
19Paradigm as an Actor in Software Engineering
- Paradigms importance in software engineering is
parallel to choice of conceptualization and
communication language in a software engineering
project - According to the Sapir-Whorf thesis, choice of
language decides to a large degree - what we see,
- how we see and conceptualize what we see,
- and how we reason
20Conclusion
- The choice of paradigm effects the quality of the
process and the product. Some apparent readings
of quality parameters might be related inherently
to paradigms. - What effects does the paradigm have, we dont
know for sure yet. Some hypotheses are provided
in this paper. - We propose reification of paradigms into
artifacts through a theory of modeling/design
paradigms in SE covering the philosophical and
cognitive aspects. - We need an awareness about paradigm-related
issues in SE community. - Towards this direction, we shared our first
results/direction of research.