Unanticipated Software Evolution

Shared by: HC120831154037
Categories
Tags
-
Stats
views:
3
posted:
8/31/2012
language:
simple
pages:
51
Document Sample
scope of work template
							Unanticipated Software
Evolution (USE)
   Course of Software Engineering II



             Stefania Ciarlo
Plan of the talk
  Software Evolution
     How software system can change
     Strategies for change
     Unanticipated changes
     Ways to deal with change
  The staged model of software lifecycle
  Post deployment evolution
     The Taylor Project


                                           2
Software Evolution                          1/2
  Is the process of software change, most often
  change in software requirements

  Software changeability (evolvability) is one of
  the essential properties of software

  Evolvable software can handle unanticipated
  changes

                                                    3
Software Evolution                       2/2
  Goals for research: make software changes
  EASY, SAFE and INEXPENSIVE

  Incorporate new and unexpected
  requirements quickly and easy

  Provide hooks for future evolution


                                              4
How software systems can
change
  Classification of software systems in terms of
  how they may change and how likely they are
  to change

     S-systems
     P-systems
     E-systems
                    [M.M.Lehman 1980]

                                                   5
S-systems
                              Real world
  Systems that are formally
  defined and derivable        Problem
  from a specification

                              Reqts spec
  Unlikely to change

                                System


                              Information


                                            6
P-systems                             Real world

  System that are based on an          Problem
  abstraction of a problem rather
  than a completely defined
  specification                       Abstraction

 Ex: play chess: program may be       Reqts spec
 completely defined in terms of the
 rules of chess
                                        System
  Subject to incremental change

                                      Information
                                                    7
                                  Real world
E-systems
                                         Problem
 Systems that are embedded
 in the real world and change
 as the world changes                   Abstraction

 The system has become a                Reqts spec
 part of the world it models
 Ex: air-traffic control, stock
 control..                                System

 Subject to constant
 change                                 Information

                                                      8
Strategies for change                           1/3
  Anticipate changes
  Build the software in such a way that the changes
  will be localized inside components
    Parametrization

    Localize change within one class




  When a change is localized within a
  component, it is easier, safe and inexpensive


                                                      9
Strategies for change                        2/3
  Not all changes in the software can be
  anticipated

    70% of the requirements were predicted in
    advance and the remaining requirements were
    discovered during development

  Changes during software maintenance are
  even less accurately predicted

                                                  10
Strategies for change                      3/3
  Current software trend is the development of
  ever increasing complexity and heterogeneity
  and this will make accurate prediction of
  change even harder

  These application will be exposed to many
  unanticipated changes during their lifetime

  Better support for unanticipated changes
  is an important research goal
                                                 11
Unanticipated Changes
                      New   hardware
  Technological       New   operating system
                      New   software configurations
                      New   standards

                      New   domains
  Sociological        New   business practices
                      New   process and regulations
                      New   users

 Examples of unexpected changes: company mergers, Euro

                                                       12
Why are they unanticipated?
 Impossibility to state how all these factor will co-
 evolve over time

 Impossibility to anticipate all uses to which a
 piece of software will be put in the future and in
 what contexts will be used

 As people use software, and as their businesses,
 domains and available technologies change, they
 find different uses for the software and they
 impose new requirements on it
                                                  13
Ways to deal with change
  Software maintenance
 The general process of changing a system once it has
 been delivered

  Architectural transformation
 Modifying the system architecture to a distributed
 configuration

  Software re-engineering
  Improving the system structure to reduce the cost of
  future maintenance
                                                      14
Software Maintenance
  IEEE definition
 “The process of modifying a software system
  or component after delivery to correct faults,
  improve performance or other attributes, or
  adapt to a changed environment”

  Key techniques
     Configuration management and change control
     Requirement traceability and impact analysis


                                                     15
The staged model of the
software lifecycle                               1/2
  Conceived by
     Keith H. Bennett : member of the Research
      Institute for Software Evolution, University of
      Durham, UK
     Václav T.Rajlich : Professor at Department of
      Computer Science, Wayne State University, Detroit
  Related paper was published in July 2000 by
  IEEE Computer
  Unlike the conventional view of the software
  lifecycle it looks the software lifecycle from
  the perspective of software evolution
                                                      19
The staged model of software
lifecycle                  2/2
        Initial development
                                          evolution changes
      first running version

                    Evolution
                                          servicing patches
           loss of evolvability

                              Servicing
               servicing discontinued
                                  Phase-out
                          switch-off
                                     Close-down               20
Post deployment evolution 1/4
  The application has been developed

  We have to adapt it to new requirements

  Particular attention to dynamic adaptation
  (modify components while they are active)



                                               26
Post deployment evolution 2/4
Known approaches can be classified according to
  The time when adaptation is performed
     Compile-time(Static)
     Load-time
     Run-time (Dynamic)
  Their ability to adapt whole component types or
  individual component instances
     Global
     Selective

                                               27
Post deployment evolution 3/4
  The applied techniques
     Code-modification-based
      Its essence is the replacement of an existing
      class by a new version of that class
      Is applicable at compile-time or at load-time
      but has only limited application at run-time
      because in a running system the instances of the
      class to be replaced already exist and are being
      used


                                                         28
Post deployment evolution 4/4
     Wrapper-based
      When active components can neither be directly
      modified nor unloaded from a running system, we
      are faced with the problem to change their
      behaviour solely by adding more components

      This leads us to the use of wrappers. A wrapper is
      interposed between a component and each of its
      clients that should perceive some new behaviour

      Enables unanticipated dynamic selected
      adaptation
                                                        29
The TAILOR Project                       1/4
  Developed at University of Bonn, Germany

  Goal: conceive and implements programming
  languages and runtime systems that allow for
  unanticipated software evolution

  Enables unanticipated adaptation of Object-
  Oriented Systems

                                                30
The TAILOR Project                          2/4
Gives special attention to

 1. Applicability to black-box components
    How can be software          Delegation
    changed when there is
    no access to its source
    code?
 2. Applicability at run time
    How can programs be            Dynamic
    changed without                Object
    stopping them?                 Replacement
                                                 31
The TAILOR Project                             3/4
3. Independent extensibility
 How can changes to software be
 developed indipendently and use
                                     No general answer
 jointly, without having to          to this question
 anticipate the joint use of these
 changes?




                                                    32
The TAILOR Project                                         4/4
Main subprojects that provide relevant input to it:

  Darwin: Unanticipated Object-based Inheritance
  Developed by Günter Kniesel, University of Bonn, since 1998


  Gilgul: Transmigration of Object Identity
  Developed by Pascal Costanza, University of Bonn, 2001


  JMangler: Load Time Adaption of Java Class Files,
  Developed by Günter Kniesel, Pascal Costanza, Michael
  Austermann, 2001

                                                                33
The Darwin Project
Current result of the project are:

  The Darwin Model is an object model that
  extends traditional class-based object-
  oriented systems by type-safe object based
  inheritance( also known as delegation)

  The Lava language extends Java with type-
  safe static and dynamic delegation according
  to the Darwin Model
                                                 34
Delegation                                  1/4
  Originally introduced by Henry Lieberman in
  1986

  Is the definition of objects that delegates part
  of their behaviour to other objects


  Enables unanticipated, dynamic, wrapper-
  based component adaptation

                                                 35
Delegation                                   2/4
                          Original

                                delegation
       Client
                         Adapted

  As shown in the figure, a particular client can
  be adapted to new requirements by
  interposing a delegating wrapper object
  between the client and the component
                                                    36
Delegation                                  3/4
May be

  Static       The “parent” object is initialized
  at run-time but never exchanged afterwards

  Dynamic      Allows also later exchange of
  parent objects



                                                    37
Delegation                                        4/4
  Is a very powerfull version of inheritance

  Limitation: Atomic object replacement
  problem
  i.e. there is no way to determine all references to one
  object and replace them all in one atomic operation

  It needs to be supplemented with another
  technique: Transmigration of Object Identity

                                                        38
Gilgul
  Is a compatible extension of Java

  It introduces a new view on the concept of
  object-identity

  It allows for dynamic object
  replacement by simultaneously rerouting a
  set of references as an atomic operation

                                               40
Object Identity
  Usually combines the notions of reference
  and comparison

  In this approach these two notion are strictly
  separated into
     References, which are never compared
     Comparands, which are never used as references

  We can manipulate them indipendently

                                                       41
Dynamic Object Replacement
                         1/2
  Redirect a set of incoming references of the
  old component to its new version

  Problems
     It’s hard to ensure consistency of these
      redirections
     This task can be carried on only if it is possible to
      completely determine the set of references on
      target


                                                              42
Dynamic Object Replacement
                         2/2

  Solution: Introduce a programming language
  feature that facilitates it

  The Gilgul programming language with the
  reference assignment operation #= provides
  a direct solution to the problem ( see later..)



                                                    43
Gilgul’s model                            1/2
  Object references point to an entry in an
  object table which holds referents that
  represent the actual objects

  To able to compare objects each one is
  supplemented with an attribute that stores a
  so-called comparand



                                                 44
Gilgul’s model                           2/2
     references   referents




                          Objects with
           object table   comparands       45
Comparand Assignment
Comparison of Objects means the comparison of their
comparands


          a


          b



        a.comparand = b.comparand
                                                      46
Reference Assignment                         1/3
  Is introduced to enable the replacement of
  objects

  It can be applied to class and interface




                                               47
Reference Assignment                     2/3
            Old
            Object   The expression a#=b lets
                     the referent of a refer to
                     the object b without
 a                   changing any references
                     This means that all other
                     variables wich holds the
 b                   same reference as a refer
                     to the object b, too
           New
           Object



                                              48
Reference Assignment               3/3
           Old
           Object      Result of a #= b

 a


 b

              New
              Object


                                          49
Gilgul’s results
  Currently a compiler and runtime systems for
  Gilgul is being developed at the University of
  Bonn




                                                   50
JMangler                                   1/2
  Is a Framework disegnated for transformation
  of compiled Java classes during load-time

  Enables adaptation resulting from
  unanticipated changes of requirements to be
  applied to third party libraries and black-box
  components whose source code is unavailable



                                               51
JMangler                                  2/2
  Allows a wide range of code and interface
  transformations

  Supports multiple transformation on multiple
  classes

  100% pure Java

  Freely available
                                                 52
Why class file transformation?
  Third-party libraries are usually only deployed
  in binary formats

  Only class files transformations can capture
  the entire application




                                                 53
Why load-time transformation?
  JavaClass files are loaded dinamically when
  they are needed
  There is no way to determine, before
  runtime, which class files are used by our
  application
  The only point where it is possible to
  determine all classes that are actually used by
  a program and adapt them as needed is the
  dynamic class loading process
                                                54
JMangler’s structure                            1/2
                                Transformer Components
   Java Class Files




     Class Loader
                      Transformation    Composition
        System
                         Manager         Algorithm

   Execution Engine

  Java Platform            JMangler-Framework


                                                      55
References                                                 1/3
 Software Evolution
     Anthony Finkelstein, Maintenance and Evolution
      http://www.cs.ucl.ac.uk/staff/A.Finkelstein/advmsc/16.pdf
     Václav T. Rajlich, Software Evolution: A Road Map,
      International Conference on Software Maintenance
      2001
      http://www.computer.org/proceedings/icsm/1189/11890006
      .pdf
     William Harrison, Harold Ossher, Peri Tarr,
      Software Engineering Tools and Environments: A
      Road Map, 2000
     http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/fi
      nalossher.pdf
                                                                  60
References                                                 2/3
  Staged Model of software lifecycle
     Keith H. Bennett, Václav T. Rajlich, The staged
      model of the software lifecycle: A new perspective
      on software evolution, IEEE Computer, July 2000
      http://www.cs.wayne.edu/~vip/publications/Evo15.pdf
     Keith H. Bennett, Václav T. Rajlich, Software
      Maintenance and Evolution
      http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/present/ben
      nettpres.pdf



                                                                 61
References                                                 3/3
  Post Deployment Evolution
     The Tailor project
      http://www.javalab.cs.uni-bonn.de/research/tailor/
     Günter Kniesel, Type-Safe Delegation for Run-Time
      Component Adaptation, ECOOP 99 conference
      paper
      http://javalab.cs.uni-
      bonn.de/data2/papers/darwin/dca.ecoop99-revised.pdf
     Pascal Costanza, Transmigration of Object Identity:
      The Programming Language GILGUL, 2001
      http://www.informatik.uni-bonn.de/~costanza/
      gilgul_OOPSLA_poster.pdf


                                                             62
Future event
  First International Workshop on Unanticipated
  Software Evolution
  Held in conjuction with ECOOP 2002 ,
  June 10-14th 2002 in Malaga, Spain
 http://informatik.uni-bonn.de/˜gk/use2002




                                              63
The End




      Unanticipated Software Evolution   64

						
Related docs
Other docs by HC120831154037
Lunch / Dinner
Views: 2  |  Downloads: 0
University of Waterloo
Views: 0  |  Downloads: 0
bac reglementation generale
Views: 2  |  Downloads: 0
Midlands Classic
Views: 0  |  Downloads: 0
Chapter30 classiccase
Views: 2  |  Downloads: 0
PIRELLI FERRARI formula classic � Race 5
Views: 3  |  Downloads: 0
Pitti Immagine Filati n
Views: 4  |  Downloads: 0
la r�action
Views: 1  |  Downloads: 0
catering menu
Views: 0  |  Downloads: 0
Non Campus e
Views: 1  |  Downloads: 0