1 / 20

Paradigm and Software Engineering

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.

shaw
Download Presentation

Paradigm and Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Outline • Motivation • What is ‘paradigm’? • Current attitude towards ‘paradigms’ • Paradigm as an actor in software engineering • Conclusion Göktürk, Akkøk; IfI UiO

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

More Related