Presentation on theme: "Paradigm and Software Engineering Erek Göktürk M. Naci Akkøk Department of Informatics,"— Presentation transcript:
Paradigm and Software Engineering Erek Göktürk M. Naci Akkøk Department of Informatics, University of Oslo
May 19, 2004 Göktürk, Akkøk; IfI UiO2 Outline Motivation What is ‘paradigm’? Current attitude towards ‘paradigms’ Paradigm as an actor in software engineering Conclusion
May 19, 2004 Göktürk, Akkøk; IfI UiO3 Motivation In SE ‘Paradigm’ is heavily used: Discussions of superiority “Object-oriented paradigm is the best ever …” Discussions of suitability “Object-oriented paradigm is/isn’t 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?
May 19, 2004 Göktürk, Akkøk; IfI UiO4 Motivation 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
May 19, 2004 Göktürk, Akkøk; IfI UiO5 What 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 20 th century Modern meaning coined by Foucault, and esp. Kuhn
May 19, 2004 Göktürk, Akkøk; IfI UiO6 What is ‘Paradigm’? Philosophically related to Ontology “The ontology” “An ontology” (AI) Epistemology Paradigmatic relationships (should be) in ontology
May 19, 2004 Göktürk, Akkøk; IfI UiO7 What is ‘Paradigm’? Paradigm and computing Word appeared after late 60s, early 70s, esp. after 2 nd ed. of Kuhn’s 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”
May 19, 2004 Göktürk, Akkøk; IfI UiO8 What 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?
May 19, 2004 Göktürk, Akkøk; IfI UiO9 Current 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.
May 19, 2004 Göktürk, Akkøk; IfI UiO10 Current 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)
May 19, 2004 Göktürk, Akkøk; IfI UiO11 Current 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
May 19, 2004 Göktürk, Akkøk; IfI UiO12 Current 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.
May 19, 2004 Göktürk, Akkøk; IfI UiO13 Paradigm 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 another’s 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 Can be modeled using the other Inherently incompatible
May 19, 2004 Göktürk, Akkøk; IfI UiO14 Paradigm 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?
May 19, 2004 Göktürk, Akkøk; IfI UiO15 Paradigm 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?
May 19, 2004 Göktürk, Akkøk; IfI UiO16 Paradigm 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 don’t 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
May 19, 2004 Göktürk, Akkøk; IfI UiO17 Paradigm as an Actor in Software Engineering The PL-paradigm coupling: What about the question of compatibility of paradigms, w.r.t. PL’s 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?
May 19, 2004 Göktürk, Akkøk; IfI UiO18 Paradigm 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 designer’s/model builder’s cognitive toolset should become a study area. How such studies should be conducted is another open question
May 19, 2004 Göktürk, Akkøk; IfI UiO19 Paradigm as an Actor in Software Engineering Paradigm’s 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
May 19, 2004 Göktürk, Akkøk; IfI UiO20 Conclusion 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 don’t 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.