Paradigm and Software Engineering

Document Sample
Paradigm and Software Engineering Powered By Docstoc
					  Paradigm and Software Engineering

      Erek Göktürk (,
      M. Naci Akkøk (

Department of Informatics, University of Oslo
 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 UiO       2
 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
          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 UiO    3
 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 UiO             4
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
 Modern meaning coined by Foucault, and esp. Kuhn
May 19, 2004                   Göktürk, Akkøk; IfI UiO                5
What is ‘Paradigm’?
 Philosophically related to
          Ontology
                  “The ontology”
                  “An ontology” (AI)
          Epistemology
 Paradigmatic relationships (should be) in

May 19, 2004                       Göktürk, Akkøk; IfI UiO   6
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
 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 UiO       7
What is ‘Paradigm’?
    A fairly random sample
          Google search “software engineering paradigm”

               What does
                  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

May 19, 2004                                Göktürk, Akkøk; IfI UiO                  8
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
 „An ontology‟, for leaving room to relativism or

May 19, 2004               Göktürk, Akkøk; IfI UiO         9
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
    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
May 19, 2004              Göktürk, Akkøk; IfI UiO            10
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 UiO   11
Current Attitude Towards ‘Paradigms’
 Most of the current research regarding
          Confinement in one paradigm (normal
          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 UiO    12
Paradigm as an Actor in Software
 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?

  Can be modeled                                          Inherently
  using the other                                       incompatible

 We think differentiating properties might be found in the relation
     of paradigm and ontology, and psychology
May 19, 2004                 Göktürk, Akkøk; IfI UiO                   13
  Paradigm as an Actor in Software
                       ”REALITY”        1. CONCEPTUALIZATION                            Software:
                                                                                           an executable model,

                                        2. MODELING
                                                                                           the result of a series of
                                            ALTERNATIVE 1:
                                        MODELING and SOFTWARE
                                                                                            (mechanical and/or
                                           DEVELOPMENT as
                                          DISTINCT ACTIVITIES
                     MODEL                                        HUMAN AGENT

                     ALTERNATIVE 2:
                                        3. RE-CONCEPTUALIZATION
                                                                                            transformations of
                                                                                        What role does

                                        4. CODING
                                                                                             paradigm play in this
                    INTERPRETATION or
                                                                                             software building

  May 19, 2004                                                            Göktürk, Akkøk; IfI UiO                    14
Paradigm as an Actor in Software
 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
May 19, 2004              Göktürk, Akkøk; IfI UiO   15
Paradigm as an Actor in Software
 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 UiO      16
Paradigm as an Actor in Software
 The PL-paradigm coupling:
 What about the question of compatibility of
  paradigms, w.r.t. PL‟s relationship with a
 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 UiO     17
Paradigm as an Actor in Software
 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 UiO            18
Paradigm as an Actor in Software
 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 UiO      19
 The choice of paradigm effects the quality of the
     process and the product. Some apparent readings of
     quality parameters might be related inherently to
    What effects does the paradigm have, we don‟t know
     for sure yet. Some hypotheses are provided in this
    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.
May 19, 2004             Göktürk, Akkøk; IfI UiO       20

Shared By: