Download - Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0
![Page 1: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/1.jpg)
Georg HeegObjektorientierte SystemeBaroper Str. 33744227 DortmundGermanyTel: +49-231-97599-0Fax: +49-231-97599-20
Email: [email protected]://www.heeg.de
Georg Heeg AGObjektorientierte Systeme
Riedtlistr. 88006 ZurichSwitzerland
Tel: +41-1-356 3311Fax: +41-1-356 3312
Georg HeegObjektorientierte Systeme
Mühlenstr. 1906366 Köthen
GermanyTel: +49-3496-214 328Fax: +49-3496-214 712
![Page 2: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/2.jpg)
Georg Heeg
Porting and Gardening VisualWorks Applications to 5i
ESUG
Essen, 31 August 2001
![Page 3: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/3.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 4: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/4.jpg)
About Us...
• Founded 1987, headquarter in Dortmund,since 1996 in Zurich, since 1999 in Koethen/Anhalt
• Consulting- and training company in Smalltalk• Hotline support, maintenance, bug-fixes for VisualWorks
and visual Smalltalk• VM-laboratory for VisualWorks• Porting service of old VisualWorks applications to 5i• Technology-partner of
Corporate Mission: Make Sophisticated Projectsa Success for the Customer!
![Page 5: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/5.jpg)
VM-Laboratory for VisualWorks
• Since 1987 VM source code licensee of Xerox PARC, ParcPlace Systems, ParcPlace-Digitalk, ObjectShare, Cincom– PCS-Cadmus (MUNIX)– Atari Mega ST– OS/2– Sinix Z – SNI RM 200 - 600 Reliant Unix– MIPS-ABI– SGI Irix– RS/6000 AIX Power2 and Power PC– Compaq Tru64 Unix– Power-Mac – Mac OS X (in preparation)
![Page 6: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/6.jpg)
Georg Heeg in Koethen
• Since 1999 in the Johann Sebastian Bach city• Qualified computer scientists in Saxony-
Anhalt• Hot specialty:
– Porting of VisualWorks applications to 5i– Enhancement of code quality of ported applications
• Customers in– Frankfurt/Main– Zurich– Munich– ...– I.e. no local customers
![Page 7: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/7.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 8: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/8.jpg)
22 Months Experience Porting to 5i
![Page 9: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/9.jpg)
Goal
• A manageable application– Embedded in VisualWorks 5i concepts– Embedded in StORE– Ready for the next years
![Page 10: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/10.jpg)
The Main Steps Are
• Investigate the structure of the existing application
• Propose a set of name spaces • Investigate system changes • Reorganize application• Test the port
![Page 11: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/11.jpg)
Other Activities
• Gardening– Cut off dry branches – Pull weeds
• Specific activities to move from Envy to StORE
![Page 12: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/12.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 13: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/13.jpg)
New Concepts in VisualWorks 5i
• Name Spaces • Shared Variables• Reference Bindings• StORE• XML• Runtime Packager• Microsoft SQL-Server/PostgresSQL• Parcel-Format• Byte-Codes
![Page 14: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/14.jpg)
Example for a Name Space
Smalltalk defineNameSpace: #ENVYprivate: falseimports: '
private Smalltalk.*'
category: 'For ENVY'
![Page 15: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/15.jpg)
Template to Define Name Spaces
Smalltalk.Heeg defineNameSpace: #NameOfPoolprivate: falseimports: '
OtherNameSpace.*private Smalltalk.*'
category: #'As yet unclassified'
![Page 16: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/16.jpg)
Old and New Class Definitions
Magnitude subclass: #DateinstanceVariableNames:
'day year 'classVariableNames:
'DaysInMonthFirstDayOfMonthMonthNamesSecondsInDayWeekDayNames '
poolDictionaries: ''category:
'Magnitude-General'
Date classinstanceVariableNames: ''
Smalltalk.CoredefineClass: #Datesuperclass: #{Core.Magnitude}indexedType: #noneprivate: falseinstanceVariableNames:
'day year 'classInstanceVariableNames: ''imports: ''category: 'Magnitude-General'
Core.DatedefineSharedVariable:
#DaysInMonthprivate: falseconstant: falsecategory: 'As yet unclassified'initializer: nil
![Page 17: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/17.jpg)
Template to Define Classes
Smalltalk.Heeg defineClass: #NameOfClasssuperclass: #{NameOfSuperclass}indexedType: #objectsprivate: falseinstanceVariableNames: 'instVarName1 instVarName2'classInstanceVariableNames: ''imports: ''category: #'As yet unclassified'
![Page 18: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/18.jpg)
Template to Define Shared Variables
Heeg.ExampleClass defineSharedVariable: #NameOfBindingprivate: falseconstant: falsecategory: 'OOP'initializer: 'Array new: 5'
![Page 19: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/19.jpg)
Name-Spaces
Object Collection
KeyedCollectionGeneralNameSpace
NameSpaceNameSpaceOfClass
![Page 20: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/20.jpg)
References
Object ()GeneralBindingReference
BindingReference NameSpaceImport
GeneralNameSpaceImport SpecificNameSpaceImport
QualifiedName LiteralBindingReference
![Page 21: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/21.jpg)
Creating a Reference
#{Core.Integer} (LiteralBindingReference pathString:
'Core.Integer') method: thisContext method(LiteralBindingReference simpleName: #Integer)
method: thisContext method
BindingReference simpleName: #Integer in: CoreBindingReference pathString: 'Core.Integer'
![Page 22: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/22.jpg)
Bindings
Object ()Magnitude ()
LookupKey ('key')
VariableBinding ('value' 'usage' 'category')
InitializedVariableBinding ('method')
![Page 23: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/23.jpg)
Using a Reference
#{Core.Integer} binding#{Core.Integer} value#{Heeg.TestClass.MyStatic} binding value: 27#{Heeg.TestClass.MyStatic} isDefined#{Heeg.TestClass.MyStatic} bindingOrNil#{Heeg.TestClass.MyStatic} valueOrDo: [nil]#{Heeg.MyGlobal} ifDefinedDo: ['Hurra'] elseDo:
['Ooo']
![Page 24: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/24.jpg)
StORE
• StORE organizes Smalltalk sources in– Bundles and– Packages
• StORE stores versions of bundles and packages in Oracle, SQL-Server, PostgresSQL
• StORE is an optimistic team tool
![Page 25: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/25.jpg)
![Page 26: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/26.jpg)
Pundles (Bundles und Packages)
ObjectStore.DBObject
Store.DBRecordStore.Record
Store.PundleStore.BundleStore.Package
![Page 27: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/27.jpg)
Store.Pundle
• blessingLevel• commentID• propertiesID• properties• commentStr
![Page 28: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/28.jpg)
Store.Bundle
• contents
![Page 29: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/29.jpg)
![Page 30: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/30.jpg)
Store.Package
• namespaces• classes• metaclasses• methods• binFile• data
![Page 31: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/31.jpg)
![Page 32: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/32.jpg)
Versions of a Bundle
![Page 33: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/33.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 34: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/34.jpg)
Consequences for theSoftware Development Process
• Name spaces allow a clear scope of names• Bundles and packages allow organization and
overview over the sources of a system and other applications
![Page 35: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/35.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 36: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/36.jpg)
Migration process
• Check old application• Build customer specific 5i base• Test• Port applications• Test
![Page 37: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/37.jpg)
Check old application
• Formal check of old application• Partitioning of old application
![Page 38: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/38.jpg)
Formal check of old application
• Consistency checks (Undeclared)• Standard metrics (SmallLint)
![Page 39: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/39.jpg)
Partitioning of Old Application
• Changed system methods• Additional methods in system classes• Shrink wrap components • Modules • Determine a sequence of modules
![Page 40: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/40.jpg)
Build Customer Specific 5i Base
• Preparation of VisualWorks 5i base image• Defining the name tree • Critical investigation of system changes • Integration of system changes into 5i
base image• Test the system
![Page 41: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/41.jpg)
Preparation of VisualWorks 5i Base Image
• Start with VisualWorks 5i.3 distribution• Load parcel StORE for Oracle (or another database)• Prepare database according to description
– Require help from your company’s DBA
• Load parcels DLLCC and LensRuntime– These are weak prerequisites for BOSS which is a prerequisite
for StORE
• Move all definitions from As yet unclassified to a new package called Base NameSpaces and Statics– Move As yet unclassified out of bundle VisualWorks Base – Put Base NameSpaces and Statics into bundle VisualWorks
Base
![Page 42: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/42.jpg)
Pubishing the base
• Log in the database as “special” user like BaseSystem• Publish everything (no need for binary) with blessing
level “Released”– Bundle Base VisualWorks– Bundle StoreBase– All other packages
• Load all other parcels you need for the base– UIPainter requires almost all of Advanced Tools
• Publish them, possibly binary, with blessing level “Released”
• Save the image and use it as your base for any further development
![Page 43: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/43.jpg)
Name Space Registration
• Company name space under Root.Smalltalk– Registration in
http://www.cincomsmalltalk.com:8080/CincomSmalltalkWiki/VW+NameSpace+Reservations
![Page 44: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/44.jpg)
Name-Spaces for Example Project
Smalltalk
•Company Registered Top Level domain
–Base Common classes for the company
–Tools Common tools for the company
–Project1 Top domain for Project1
•Base Common classes for the project
•Import Import specific classes
•Client –Base Common classes for all clients –Client1 Client 1 specific classes –Client2 Client 2 specific classes
•Server Server specific classes
![Page 45: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/45.jpg)
Imports
Smalltalk
•Company Registered Top Level domain
–Base Common classes for the company
–Tools Common tools for the company
–Project1 Top domain for Project1
•Base Common classes for the project
•Import Import specific classes
•Client –Base Common classes for all clients –Client1 Client 1 specific classes –Client2 Client 2 specific classes
•Server Server specific classes
![Page 46: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/46.jpg)
Test Name Spaces and Imports
Smalltalk
•Company
–Base Common classes for the company
•Tests Private name space for tests
–Tools Common tools for the company
•Tests Private name space for tests
–Project1
…
•XProgramming
•SUnit SUnit classes
![Page 47: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/47.jpg)
Critical Investigation of System Changes
• Process– FileOut all classes of the old base image– Remove all methods with same code as new image– Compare the others class by class, method by
method to a new image
• Decisions1. Not needed2. Can be taken3. All callers need to be changed4. Has to be adapted
• Use GH Change List
![Page 48: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/48.jpg)
Build an image with all changes needed
• Cover all system changes• Move changes needed for a specific
applications into that application– Was almost impossible with Envy
• Build a new base image• Test it
– Write unit tests– Use the image for standard work
• Organize what you have done in packages and bundles
• Publish everything (possibly binary)• Save the image as new corporate base
![Page 49: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/49.jpg)
PackageApp 1
PackageApp 2
Package 3
PackageApp 4
Porting Applications to 5i StORE
App1App
2App3App
4
DatabaseFilesystem
as Parcel
![Page 50: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/50.jpg)
Observe and Weed
• Observe the process of reading .st files with the change list– Weed out what is not needed– Cut dry branches
• Rename• Move to appropriate name spaces• Move into appropriate parcels and
packages
![Page 51: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/51.jpg)
Tests
• Test• Test• Test• Use
– SUnit– WinRunner– …
• Try the system
![Page 52: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/52.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 53: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/53.jpg)
GH-Tools
• GH-ChangeList (enhanced Change List)– Load directly into Name Spaces– Load directly into Parcels und Packages– Create Name Spaces, Parcels and Packages– Substitute global names– Find suspicious methods
• GH-UndeclaredBrowser– Show methods referencing a VariableBinding in
name space Undeclared– Easy finding of defining name spaces– Easy adding of fully qualified names
![Page 54: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/54.jpg)
GH Change List
![Page 55: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/55.jpg)
Substitutor
![Page 56: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/56.jpg)
![Page 57: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/57.jpg)
Suspicious Expressions
Smalltalk at: #MyGlobal ifAbsent: [nil]should be replaced by:
#{Heeg.MyGlobal} valueOrDo: [nil]
Smalltalk at: #MyGlobal put: nilshould be replaced by :
Smalltalk.Heeg defineSharedVariable: #MyGlobal
private: falseconstant: falsecategory: ‘Heeg Globals‘initializer: nil
![Page 58: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/58.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 59: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/59.jpg)
Specific Activities to Move From Envy to Store
• StORE bridge or .st files?– Bridge advantages
• Automatic transfer of application structures• Best suited from ENVY 5i to StORE
– Can‘t use the Store Bridge• For system changes• Coming from VisualWorks 2.5.x
– Better not to use the bridge• If you feel you should observe the methods and
classes coming in
![Page 60: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/60.jpg)
Additional Observations
• Moving classes to the right name spaces can be done after loading
• Often Envy based applications use Envy specific methods– Make sure you treat these methods like
system changes
![Page 61: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/61.jpg)
Contents
• Georg Heeg - the company• Porting goals• What’s new in 5i?• Consequences for the development
process• Migration process• Tools for the port• Coming from Envy• A new development process
![Page 62: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/62.jpg)
Blessing-Level Meaning Is set by
Broken This component contains errors which were Projecttesterdetected in a test.
Work in Progress Developer saves her/his work to the data b ase Developer but the component has known defects.
Development „Normal“ state for a component in development. Developer
Integration Ready Compoment is ready from the developers point of , Developer of the component, view. Highest level a developer can set. Unit tests have been run successfully.
Integrated MergeTool has integrated this component. MergeTool
Merged This component is the result of a merge process Merge-Tool
Tested All Tests by Project tester were successful. Project tester
Internal Release Test version for the user Project Manager
Released Version is in production. Project Management
Patch Solves a production problem. Step outside the Supportteam normal development process, is only applied to Released Software!
Blessing Levels
![Page 63: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/63.jpg)
EntwicklungsabteilungEntwicklungsabteilung
Blessing Level Process
Integrated
Tested
Internal Release
Released
Test D
Beteiligte Entwickler
Error Report
(+)(+)
(-)(-)User DepartmentUser Department
(-)(-) (+)(+)
PLPL
Production
IntegratorIntegrator
Work in Progress
(-)(-) (+)(+)
ER.
Broken
Test C
Test A
Publish and/or set blessing level
Only change blassing level
IntegrationReady
Merged
Development
![Page 64: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/64.jpg)
Discussion
![Page 66: Georg Heeg Objektorientierte Systeme Baroper Str. 337 44227 Dortmund Germany Tel: +49-231-97599-0](https://reader036.vdokument.com/reader036/viewer/2022062315/568153ed550346895dc1ed06/html5/thumbnails/66.jpg)
Georg HeegObjektorientierte SystemeBaroper Str. 33744227 DortmundGermanyTel: +49-231-97599-0Fax: +49-231-97599-20
Email: [email protected]://www.heeg.de
Georg Heeg AGObjektorientierte Systeme
Riedtlistr. 88006 ZurichSwitzerland
Tel: +41-1-356 3311Fax: +41-1-356 3312
Georg HeegObjektorientierte Systeme
Mühlenstr. 1906366 Köthen
GermanyTel: +49-3496-214 328Fax: +49-3496-214 712