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.