Ladda ner presentationen
Presentation laddar. Vänta.
1
Effektiv migrering till den nya världen
Application Mining Effektiv migrering till den nya världen Gräva måste vi! Presentation av presentatören Namn: Mats G Danielsson, IT-Arkitekt/Seniorkonsult Anställningstid: 12 år på Cap, numera Sogeti Erfarenheter: Arbetat i roller som systemutvecklare, design&arkitektur, kvalitetsansvarig, har gjort insatser som projektledare Aktuella arbetsuppgifter: Arbetar med intern verksamhetsutveckling inom AM och systemutveckling. Inledning Ännu ett nytt begrepp i vår bransch, det omfattar dock en av våra vanligaste arbetsuppgifter. Application Mining handlar om källkodsanalys - att söka efter olika typer av svar i ett systems källkod - vilket har förekommit i alla tider, men i olika omfattning och mer eller mindre metodiskt, ofta helt beroende på systemutvecklarens eget sätt att lösa olika uppgifter. Branschanalytiker har sedan några år tillbaka (strax efter milleniumskiftet) uppmärksammat detta nya begrepp som innefattar både verktyg och metod för ett mer strukturerat sätt att göra källkodsanalys. Att läsa och förstå källkod är antagligen den vanligaste arbetsuppgiften för oss som arbetar på Sogeti. Vi gräver och gräver för att hitta, förstå och därmed finna svar och lösningar. Test anses stå för % av en systemutvecklares arbetstid, källkodsanalys står för upp till 50% och ibland mer ändå. Sogeti har ett framgångsrikt testkoncept med TPI och T-MAP och då kan det ju upplevas som logiskt att vi även ger oss på källkodsanalys. Mats G Danielsson , SWEAN
2
Agenda Inledning Allmänt om Application Mining
Systemförnyelse - Erfarenheter och metodik Kort Demo – Skörda specifikation Frågor Application Mining, Mats G Danielsson
3
Källkodsanalys har stor betydelse
Kostnad för ett fel Ju senare i utvecklingsprocessen ett fel upptäcks, ju dyrare är det att åtgärda. Kostnaden stiger logaritmiskt med varje fas. Ett fel som upptäckts vid test kräver en ny analys, ny ändring/kompilering och ny test. Ett fel i produktion påverkar inte bara systemutvecklingen utan även användare av systemet. I värsta fall måste man åtgärda produktionsdata också. Att spara tid i analysen är bra, men betydelsefullast är att analysen blir så korrekt och fullständig som möjligt. Eftersom analysen är den första fasen, så har den störst påverkan på kvaliteten i arbetet. Hög kvalitet = sparad tid vid ett senare tillfälle (det gäller generellt oavsett ämnesområde). Ändring / Kompilering Test Produktion Analys, förståelse och ändringsbeslut Application Mining, Mats G Danielsson
4
Vad är Application Mining?
Avancerad sökning ger exakthet Källkod Databas Källkod parsas in i databasen så att informationen förädlas Vyer och Rapporter ger förståelse Är systemutvecklarens motsvarighet till Data Mining för affärsutvecklaren. Hjälper systemutvecklare att göra ett snabbare och mer korrekt arbete I källkoden finner man svar på många frågor. Källkoden är ritningen för systemet och systemet speglar den verksamhet som stöds. Med systemutvecklare menas inte bara programmerare, utan även andra roller som tex PL, kravfångare, kvalitetsansvarig Databasen kan innehålla enbart metadata om källkoden eller hela källkoden Worklist och Diagram ger god kommunikation Application Mining, Mats G Danielsson
5
Skörda verksamhetsregler
Nytta för hela livscykeln Dokumentation Kvalitetssäkring Förändringsanalys Förstå okända system Skörda verksamhetsregler Refactor Projekt Övertagande Utfasning Förvaltning De olika nyttorna finns paketerade som tjänster och beskrivs i tjänstebladen för Application Mining. De kan hittas på Sogetis hemsida under Tjänsteblad. Application Mining, Mats G Danielsson
6
Erfarenheter: Systemförnyelse
SCA Transforest delar av Stordator till nytt Java-system Västerbottens Läns Landsting delar av Stordator till nytt .NET-system Metso delar av Stordator till nytt .NET-system SCA Transforest delar av Stordator till standardsystem SCA Timber VB6 till nytt .NET-system inkl ny struktur Application Mining, Mats G Danielsson
7
Om Källkod Källkoden är den kompletta och aktuella ritningen för systemet. Källkoden kan delas upp i en teknisk och en verksamhetsmässig del. Verksamhetskoden beskriver affärsobjekt, deras attribut, deras flöden samt operationer och regler för dessa. Verksamhetsmässig kod kan också vara behörighetshantering (speglar roller och användare i verksamheten) samt delar av gränssnitt som skärmlayouter, rapporter och externa kopplingar. Application Mining, Mats G Danielsson
8
Metodik Inventera och säkerställ komplett källkod
Dela in arbetet i avgränsade områden (grupper), utgå från funktioner och/eller tabeller Identifiera alla startpunkter (exekveringsflöden) som ska skördas För alla eller utvalda affärsobjekt i startpunktens exekveringsflöde: Identifiera databärare för affärsobjekten och identifiera dess flöden Hitta och beskriv de regler som omgärdar affärsobjektens flöden a) Regler som styr dataflödet b) Regler/operationer som förändrar/skapar data utefter vägen c) Inmatningskontroller Beskriv multipla implementationer av samma regel EN gång Sammanställ som pseudokod per användningsfall och funktion Application Mining, Mats G Danielsson
9
Identifiera dataflödet i exekveringsflödet
Antal: BANT1 WS_ANT T08-ANTP T10-ANTALPERIODER Application Mining, Mats G Danielsson
10
Hitta regler i exekveringsflödet
Antal: BANT1 IF (BANT1 LE 0) OR (BANT1 > 10) THEN MOVE ERR-203 TO ERROR-MESSAGE EXIT. WS_ANT IF WS_ANT > 4 THEN PERFORM SPARA-T08 ELSE PERFORM SPARA-T10. ADD 1 TO T08-ANTP T08-ANTP T10-ANTALPERIODER Application Mining, Mats G Danielsson
11
Hitta regler i exekveringsflödet
Antal: BANT1 Operation IF (BANT1 LE 0) OR (BANT1 > 10) THEN MOVE ERR-203 TO ERROR-MESSAGE EXIT. Inmatnings-kontroll WS_ANT IF WS_ANT > 4 THEN PERFORM SPARA-T08 ELSE PERFORM SPARA-T10. ADD 1 TO T08-ANTP Dataflödes-kontroll T08-ANTP T10-ANTALPERIODER Application Mining, Mats G Danielsson
12
Erfarenheter: Produktivitet
Skördningstakt drygt 100 rader i timmen c:a 1 program specas per dag 100 program specas på 6 manmånader. + Nyckelpersoner ej trång sektor + Detaljerad spec förenklar Designfasen + Pseudokod förenklar programmering + Ökad kvalitet (= sparad tid senare) + ’Gratis’ testfall för Parallelltest = Klart effektivare förnyelse! = Kan spara mycket kalendertid! Application Mining, Mats G Danielsson
13
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
14
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Med 1:1 menas funktionell likhet, ej strukturell. Funktionell likhet innebär att ett visst indata ger samma utdata både före och efter migrering. Olika typer av användargränssnitt är inget hinder för 1:1. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
15
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Med 1:N menas att funktionen före och efter migrering är så olika att det inte lönar sig att utnyttja likheterna före och efter migrering. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
16
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Analysera gruppen och besluta vilka delar som ska gå ’Nära 1:1’ respektive ’1:N’-spåret. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
17
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys En mindre del av koden innehåller verksamhetsregler, resten av koden är av teknisk art eller annat som ej behöver beskrivas. Denna aktivitet utförs med ResourceMiner och levererar en As-Is specifikation. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
18
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Identifiera vilket indata som skall användas för test. Kör baseline-tester på befintlig kod. Utdata från baselinetester används som facit vid ’Testa 1:1’. Skapa även verktyg för on-line inmatning och diff. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
19
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Skriv kod i ny miljö. Använd färdiga mallar och autogenerera så mycket kod som möjligt. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
20
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Grupp- analys Speca Bryggor Leverera Analysera förändringskrav och specificera dessa. Skapa testfall för förändringarna. Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
21
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Kör enhetstester med indata från baseline som skapades i ’Test prep’. Diffa och analysera skillnader. Vissa skillnader är fel, andra är förväntade. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
22
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Inför förändringar enligt de förändringsspecar som skapades i ’ ∆ Kravanalys’. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
23
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Enhetstesta enligt de testfall som skapades i ’ ∆ Kravanalys’. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
24
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Kravanalys enligt normalt förfarande i målmiljön. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
25
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Kvalitetssäkra detaljer i kravanalysen genom att skörda / granska befintlig källkod med ResourceMiner. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
26
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Skapa specifikation enligt normalt förfarande i målmiljön. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
27
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Skriv kod i ny miljö. Använd färdiga mallar och autogenerera så mycket kod som möjligt. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
28
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Skapa testfall enligt normalt förfarande i målmiljön. Använd verktyg för automatisk uppspelning och diff. Grupp- analys Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
29
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Grupp- analys Utför enhetstest enligt de testfall som skapades i ’Test prep’. Speca Bryggor Leverera Krav- analys Skapa Skapa spec. Test Skörda Test prep 1:N - spåret Application Mining, Mats G Danielsson
30
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Grupp- analys Speca Bryggor Leverera Specificera bryggbehov, både för gruppen och för andra grupper i arvsmiljön som påverkas. Skapa testfall för Integrationstest som görs i målmiljön när bryggorna är på plats. Skörda Skapa Skapa spec. Test Krav- analys Test prep 1:N - spåret Application Mining, Mats G Danielsson
31
En effektiv förnyelseprocess
Nära 1:1 - spåret Skörda Skapa Testa 1:1 Ändra ∆ -Test Test prep ∆ Krav- analys Grupp- analys Speca Bryggor Leverera Skörda Skapa Skapa spec. Test Paketera och leverera till drifttagandeprocessen. Krav- analys Test prep 1:N - spåret Application Mining, Mats G Danielsson
32
Kort demo – skörda specifikation
Application Mining Kort demo – skörda specifikation
33
www.sogeti.se – tjänstebladsarkivet
Mer information – tjänstebladsarkivet Application Mining, Mats G Danielsson
34
Application Mining, Mats G Danielsson
35
Application Mining, Mats G Danielsson
36
Application Mining, Mats G Danielsson
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.