![Page 1: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/1.jpg)
Sanierung grosser !Software Systeme!Sibylle Peter, Dr. Dieter Holz!Canoo Engineering AG!Basel, Switzerland!
![Page 2: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/2.jpg)
www.canoo.com 2
Sibylle Peter Dieter Holz
![Page 3: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/3.jpg)
www.canoo.com
Inhalt
๏ Einführung
๏ Die Fallstudie: Investionsberatung für Kundenberater
๏ Die Sanierung
๏ Wie wir arbeiten
๏ Wie wird ein Sanierungsprojekt ein Erfolg?
![Page 4: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/4.jpg)
Einführung
![Page 5: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/5.jpg)
www.canoo.com
Sanierungsprojekte
![Page 6: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/6.jpg)
www.canoo.com
Sanierungsprojekte
6
![Page 7: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/7.jpg)
www.canoo.com
Definition (Martin Fowler, Refactoring, pg. 53):
Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
Refactor (verb): To restructure software by applying a series of refactorings without changing it‘s observable behavior
Sanierung durch Refactoring
![Page 8: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/8.jpg)
www.canoo.com 8
![Page 9: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/9.jpg)
www.canoo.com
Software Entropie
9
![Page 10: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/10.jpg)
www.canoo.com
Software Entropie
10
![Page 11: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/11.jpg)
www.canoo.com
Software Entropie
11
![Page 12: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/12.jpg)
Die Fallstudie
![Page 13: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/13.jpg)
www.canoo.com
![Page 14: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/14.jpg)
www.canoo.com
Facts
๏ Produktiv und erfolgreich seit 2004
๏ Kontinuierlich weiterentwickelt
๏ 320 JSP Dateien, 1800 Klassen
๏ Ca 70. funktionale Tests
๏ Wenig Unit Tests
๏ Wenig Dokumentation
๏ Hohe Fluktation, hohe Kosten, Change Requests können nicht mehr implementiert werden.
![Page 15: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/15.jpg)
Start: Erste Analyse
15
![Page 16: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/16.jpg)
www.canoo.com
Abhängigkeiten
16
![Page 17: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/17.jpg)
www.canoo.com
Objekttypen
17
Action
Java Beans
JSP
ServiceInvoker
Service
Worker
Controller Helper
Mapper
Container
HttpServlet
BusinessObject
HttpServlet
![Page 18: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/18.jpg)
www.canoo.com
Masterplan
18
Action
Java Beans
JSP
Container
HttpServlet
BusinessObject
Facade TransferObject
HttpServlet
Util
Service Mapper
![Page 19: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/19.jpg)
www.canoo.com
Masterplan
19
Java Beans
Service Mapper
Validator
Facade TransferObject
Action
JSP HttpServlet
Formatter
Aggregating Facade
![Page 20: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/20.jpg)
Refactoring Teil 1
20
![Page 21: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/21.jpg)
www.canoo.com
Ziel: Neues Service Layer
21
![Page 22: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/22.jpg)
www.canoo.com
1. Schritt Strukturierung in Fassaden
22
![Page 23: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/23.jpg)
www.canoo.com
2. Schritt: Einführung von Transfer Objekten (TO)
23
Presentation!Layer!
transfer objects!
JSP Java Bean Action HttpRequest
BusinessObject Converter
TransferObject
Facade
Service
Service!Layer!
![Page 24: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/24.jpg)
www.canoo.com 24
public class User extends CoreObject { private String id; private Employee userIdentity; private RoleBUManager m_roleBUManager = new RoleBUManager(); private boolean isAllowed = false; private String eMailTask; private Timestamp mutTimestamp; private String mutId;
public final class UserTO { private final String fId; private final String fEamCode; private final String fBuCode; private final String fDepartment;
![Page 25: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/25.jpg)
www.canoo.com 25
Presentation!Layer!JSP Java Bean Action HttpRequest
BusinessObject Converter
TransferObject Service!Layer!
ServiceObject
EJB Proxy
simple!
complex!
1:1!
1:n! Mapper
![Page 26: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/26.jpg)
www.canoo.com 26
Presentation!Layer!JSP Java Bean Action HttpRequest
BusinessObject Converter
TransferObject Service!Layer!
ServiceObject
EJB Proxy
simple!
complex!
structural logic m:n!
1:1! Mapper
![Page 27: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/27.jpg)
www.canoo.com
Validierung
27
public final class AARefCurrencyTO { ... public AARefCurrencyTO(UID<AARefCurrencyTO2> uid, String eamCode, final BigDecimal manual, BUCode buCode, MutSeqNr mutSeqNr, BigDecimal sortOrder, Long language, String name) { // Preconditions: if (uid == null) throw new IllegalArgumentException(...); ... if (language > 4) throw new IllegalArgumentException(...);
// Assignments: this.uid = uid; ... }
![Page 28: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/28.jpg)
www.canoo.com
Fassaden Interface
28
public static FrontpageText getFrontpageText (CriteriaToGetFrontpageText criteria)
throws CoreException
public CriteriaToGetFrontpageText(String buCode, User user, int entryFrom)
public static FrontpageTextTO getFrontpageText (String buCode, UserTO user)
throws CoreException
![Page 29: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/29.jpg)
www.canoo.com
3. Schritt: Neues Service Layer
29
inTO! outTO!
Service!
![Page 30: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/30.jpg)
www.canoo.com
Service Interface und AbstractService
30
public interface IService<TOI, TOO> { public TOO execute(TOI toi) throws CoreException; }
public abstract class AbstractService<TOI, SOI, SOO, TOO> implements IService<TOI, TOO> { public final TOO execute(final TOI toi)
throws CoreException { if (toi == null) { throw new IllegalArgumentException(“'toi' must not
be null"); } SOI soi = mapInput(toi); SOO soo = innerExecute(soi); return mapOutput(soo); }
protected abstract SOI mapInput(TOI toi); protected abstract SOO innerExecute(SOI soi)
throws CoreException; protected abstract TOO mapOutput(SOO soo); }
![Page 31: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/31.jpg)
www.canoo.com
Aggregierende Service Klassen
31
inTO! outTO!
Services!
inTO A! outTO A!
Service A!
Service!
inTO B! outTO B!
Service B!
![Page 32: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/32.jpg)
www.canoo.com
4. Schritt: Einführung von Basis Typen
32
// Usage example: BUCode buCode = BUCode.getFlyweight("0012");
![Page 33: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/33.jpg)
www.canoo.com
Fassaden Interface
33
public static FrontpageTextTO getFrontpageText(BUCode buCode, EAMCode eamCode, UserTO user) throws CoreException
public static FrontpageTextTO getFrontpageText(String buCode, String eamCode, UserTO user) throws CoreException
![Page 34: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/34.jpg)
www.canoo.com
Resultat nach Teil 1
34
34
Old Presentationlayer
Converter
New Servicelayer Architecture!
Design Guidelines for - Services
- TransferObjects - Basetypes
New Feature:!
RiskAnalyzer!
Change Request:!CoSa!
![Page 35: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/35.jpg)
Refactoring von Komponenten
![Page 36: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/36.jpg)
www.canoo.com
Current State
36
New Servicelayer Architecture!
New Business Layer
Old Presentationlayer
Converter Presentation Layer
Domain Layer
Refactored Components New Features
Old GUI Framework
![Page 37: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/37.jpg)
www.canoo.com
Domain Model Adapters
37
public class MonitoredHoldingDO extends AbstractHoldingDO implements IMonitoredHoldingDO {
public MonitoredHoldingDO(final Holding holding) { super(holding); }
@Override protected BOInfo getBOInfo() { return new BOInfo(getHolding().getWorkingTIS(), getAssetsFromHolding (), getSafekeepingAccountsFromHolding()); }
private ImmutableMap<Integer, Asset> getAssetsFromHolding() { return HoldingDOBuilderUtil.getTisIncludedAssetsFromHolding
(getHolding(), getHolding().getWorkingTIS()); } … }
![Page 38: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/38.jpg)
www.canoo.com
Komponente Load Partner
38
![Page 39: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/39.jpg)
www.canoo.com 39
Vorgehen
๏ Code aufräumen ‣ IDE Vorschläge umsetzen (Remove unused code etc)
๏ Überschaubare Einheiten erstellen ‣ Mit Extract Method Refactoring Methoden herausziehen ‣ Abhängigkeiten zu Attributen entfernen (static methods) ‣ Move Refactoring benutzen, um diese Methoden in einer Hilfklasse
zwischenzulagern
![Page 40: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/40.jpg)
www.canoo.com 40
Vorgehen
๏ Analyse der neuen Einheiten und Design gemäss der Zielarchitektur
๏ Akzeptanz Tests definieren und mit BBD Frameworks implementieren
![Page 41: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/41.jpg)
www.canoo.com
Akzeptanztest
41
scenario "DictionaryService can find the word 'Griffon'", { given "an instance of DictionaryService is available", { service = new DictionaryService() }
when "the word 'Griffon' is used as parameter", { result = service.findDefinition('Griffon') }
then "the definition should be found", { assert result == "Grails inspired desktop application development platform.” } }
![Page 42: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/42.jpg)
www.canoo.com
Akzeptanztest mit EasyB
42
![Page 43: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/43.jpg)
www.canoo.com 43
Vorgehen
๏ Refactoring ‣ Wenn noch nötig, Mikado Methode anwenden
๏ Messen der Code Qualität
![Page 44: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/44.jpg)
www.canoo.com
Sonar Dashboard
44
![Page 45: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/45.jpg)
Voraussetzungen für erfolgreiche Sanierungsprojekte?
![Page 46: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/46.jpg)
www.canoo.com
Wie wir arbeiten
Daily standup meeting!
Regular workshops with the customer‘s lead engineer!
Retrospective in regular
intervalls!
Lightweigth, but intensive testing process with test
team
Monthly meeting with the project manager of the
customer
Weekly reporting with the lead engineer and
architect of the customer
![Page 47: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/47.jpg)
www.canoo.com
Team
Experienced, dedicated developers
motivation
A disciplined approach
team size.
A lead engineer of the customers
side
![Page 48: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/48.jpg)
www.canoo.com
Authorität und Flexibilität
48
Management support
Accepted by the team
The customers trust Flexible,
iterative planning
Involved in system design
![Page 49: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/49.jpg)
www.canoo.com
Weitere Voraussetzungen
49
Continuous Integration
Assessment Master Plan
Automated Integration
Tests
Good Analysis Tools
![Page 50: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/50.jpg)
www.canoo.com
Erkenntnisse oder Best Practices
๏ Entweder technisches oder logisches Refactoring
๏ Analyse – Implementierung – Stabilisation
๏ Früher Wissenstransfer zum Core Team
๏ Investition in automatische Regressionstest
๏ Abhängigkeiten zu anderen Systemen reduzieren
๏ Automatische Qualitätssicherung
๏ Manuelles Testing braucht Zeit – genügend Zeit einplanen
50
![Page 51: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/51.jpg)
www.canoo.com
Nachhaltigkeit
๏ Code verbessern ist nicht genug
๏ Professionelle Ethik einführen
๏ Technische Schulden überwachen und ggf. beseitigen
๏ Continous Improvement: Retrospektiven
๏ Core Team muss unterstützt werden, damit neue Funktionalität in guter Qualität ausgeliefert wird.
51
![Page 52: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/52.jpg)
www.canoo.com
Warum Sanierungsprojekte?
52
![Page 53: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/53.jpg)
www.canoo.com
Bücher und Links
๏ Martin Fowler, Refactoring: Improving the Design of Existing Code
๏ Stephan Ducasse, Oscar Nierstrasz, Object Oriented Reengineering Patterns PDF: http://www.win.ua.ac.be/~sdemey/
๏ Joshua Kerievsky, Refactoring to Patterns
๏ Martin Lippert, Stefan Rook, Refactoring in Large Software Projects
๏ Behaviour Driven Development: ‣ EasyB: http://www.easyb.org/ ‣ Spock: http://code.google.com/p/spock/
๏ Sonar: http://www.sonarsource.org/
๏ Mikado Method: http://pragprog.com/magazines/2010-06/the-mikado-method
53
![Page 54: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/54.jpg)
www.canoo.com
Master Thesis @ Canoo
54
![Page 55: Sanierung grosser Software Systeme - UZH00000000-0476-116c... · Sanierung grosser ! Software Systeme! Sibylle Peter, Dr. Dieter Holz! Canoo Engineering AG! Basel, Switzerland!](https://reader030.vdokument.com/reader030/viewer/2022040610/5ed055103a066a18461b5e26/html5/thumbnails/55.jpg)
www.canoo.com
Master Thesis @ Canoo
55