370 likes | 902 Views
Paradigm and Software Engineering. Erek G öktürk ( erek@ifi.uio.no ) , M. Naci Akk øk ( nacia@ifi.uio.no ) Department of Informatics, University of Oslo. Outline. Motivation What is ‘paradigm’? Current attitude towards ‘paradigms’ Paradigm as an actor in software engineering Conclusion.
E N D
Paradigm and Software Engineering Erek Göktürk (erek@ifi.uio.no),M. Naci Akkøk(nacia@ifi.uio.no) Department of Informatics, University of Oslo
Outline • Motivation • What is ‘paradigm’? • Current attitude towards ‘paradigms’ • Paradigm as an actor in software engineering • Conclusion Göktürk, Akkøk; IfI UiO
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? Göktürk, Akkøk; IfI UiO
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 Göktürk, Akkøk; IfI UiO
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 20th century • Modern meaning coined by Foucault, and esp. Kuhn Göktürk, Akkøk; IfI UiO
What is ‘Paradigm’? • Philosophically related to • Ontology • “The ontology” • “An ontology” (AI) • Epistemology • Paradigmatic relationships (should be) in ontology Göktürk, Akkøk; IfI UiO
What is ‘Paradigm’? • Paradigm and computing • Word appeared after late 60s, early 70s, esp. after 2nd 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” Göktürk, Akkøk; IfI UiO
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? Göktürk, Akkøk; IfI UiO
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. Göktürk, Akkøk; IfI UiO
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) Göktürk, Akkøk; IfI UiO
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 Göktürk, Akkøk; IfI UiO
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. Göktürk, Akkøk; IfI UiO
Can be modeled using the other Inherently incompatible 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 Göktürk, Akkøk; IfI UiO
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? Göktürk, Akkøk; IfI UiO
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? Göktürk, Akkøk; IfI UiO
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 Göktürk, Akkøk; IfI UiO
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? Göktürk, Akkøk; IfI UiO
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 Göktürk, Akkøk; IfI UiO
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 Göktürk, Akkøk; IfI UiO
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. Göktürk, Akkøk; IfI UiO