31
Mälardalens Högskolan 01-12-06 Institution för datateknik Mälardalens Högskolan Institutionen för Datateknik Examinatior: Ivica Crnkovic Marina Kostenko([email protected]) Handledare WHA: Rikard Land Mina Sayadi([email protected]) Handledare MDH: Boel Almér Ett modernt konverterarverktyg Examensarbete 10 p C nivå ”Ett modernt och skräddarsytt IT-verktyg höjer säkerheten vid de svenska kärnkraftverken.” (VLT- 19 januari 2000) Westinghouse Atom AB Westinghouse Atom AB 1

Examensarbete 10 p C nivå - idt.mdh.se · Westinghouse Atom har ett önskemål att sammansätta de separata delarna av ... till exempel TCL eller Visual Basic. 2.1 Målet med arbetet

  • Upload
    ngotram

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Mälardalens Högskolan 01-12-06 Institution för datateknik

Mälardalens Högskolan Institutionen för Datateknik Examinatior: Ivica Crnkovic Marina Kostenko([email protected]) Handledare WHA: Rikard Land Mina Sayadi([email protected]) Handledare MDH: Boel Almér

Ett modernt konverterarverktyg Examensarbete 10 p

C nivå

”Ett modernt och skräddarsytt IT-verktyg höjer säkerheten vid de svenska kärnkraftverken.”

(VLT- 19 januari 2000)

Westinghouse Atom AB

Westinghouse Atom AB 1

Mälardalens Högskolan 01-12-06 Institution för datateknik

Sammanfattning

Detta examensarbete handlar om analys av ett befintligt system PAM, Plant- Analysis-Methodology, ett egenutvecklat mjukvarusystem på Westinghouse Atom, samt design av PAM-Converter.

Idag består PAM systemet av separata delar som fungerar var för sig med sina för och nackdelar. Westinghouse Atom önskar sammansätta de befintliga delarna av PAM till ett system, där delarna har koppling till varandra.

För att få en bättre insikt i hur systemet fungerar har vi varit tvungna att skaffa oss förståelse om de befintliga delarna av PAM systemet och deras relation till varandra. Eftersom det finns idag ett antal konverterare skrivna i FORTRAN, har vi varit tvungna att lära oss FORTRAN. Med tanke på att Westinghouse Atom vill skriva de nya konverterarna i ett skript språk som TCL, var det ett måste att lära sig TCL programmering också.

Med kunskaper om och efter analysering av systemet har vi kommit fram till ett förslag som vi tycker passar PAM. För företagets räkning har vi skrivit några dokument:

• Kravspecifikation.

• Designspecifikation.

• Regler hur man skriver en konverterare i TCL skript (två olika förslag).

• Analys av de befintliga FORTRAN-konverterarna och rekommendationer.

• Användarmanual till PAM-Converter.

Resultatet av vår undersökning samt förslag och rekommendationer finns i denna rapport.

Westinghouse Atom AB 2

Mälardalens Högskolan 01-12-06 Institution för datateknik

Förord

Denna rapport är ett resultat av vårt examensarbete inom datalogi, utfört under våren och sommaren 2001. Arbetet motsvarar 10 poäng på C nivå och uppdragsgivare är Westinghouse Atom AB i Västerås.

Vi vill tacka för förtroendet att få genomföra ett intressant examensarbete. Det har varit svårt men givande att sätta sig in i ett så stort och komplicerat system, att få samarbeta med personer som var indragna i projektet och prova på att komma in i en riktig arbetsmiljö.

Vidare vill vi tacka för all hjälp vi har fått från våra handledare och arbetskamrater.

Personer som skall tackas är bland annat följande: Rikard Land vår handledare på Westinghouse Atom AB Kimmo Pietarinen och resten av personalen på Westinghouse Atom AB Boel Almér vår handledare på Mälardalens Högskolan

Westinghouse Atom AB 3

Mälardalens Högskolan 01-12-06 Institution för datateknik

Innehållsförteckning

1 INLEDNING..........................................................................................................6

1.1 PAM:S BESTÅNDSDELAR ....................................................................................6 1.1.1 PAM-P..............................................................................................................6 1.1.2 PAM-I/A...........................................................................................................6 1.1.3 PAM-M.............................................................................................................7 1.1.4 Konverterare.................................................................................................7

2 INTRODUKTION TILL UPPGIFTEN ....................................7

2.1 MÅLET MED ARBETET ...........................................................................................7 2.2 GENOMFÖRANDE .....................................................................................................8

3 WESTINGHOUSE ATOMS KRAVSPECIFIKATION.....................................................................................8

4 PROBLEMANALYS ....................................................................................8

5 SYSTEMUNDERSÖKNING OCH FÖRBEREDANDE ARBETE..........................................................................9

5.1 FÖRBEREDELSER......................................................................................................9 5.2 FORTRAN-KONVERTERARE..........................................................................10

6 DESIGN ....................................................................................................................12

6.1 ÖVERGRIPANDE FÖRKLARINGAR...................................................................12 6.2 DATABASDESIGN ...................................................................................................14 6.3 KLASSDIAGRAM .....................................................................................................17 6.4 KLASSERNA I PAM-CONVERTER..................................................................18 6.5 USE CASE DIAGRAM .............................................................................................18 6.6 STATE DIAGRAM ....................................................................................................20 6.7 SEKVENSDIAGRAM ...............................................................................................20 6.8 ATT GODKÄNNA DATA........................................................................................22 6.9 BEROENDEN .............................................................................................................22 6.10 ANVÄNDARGRÄNSSNITT (GUI) .................................................................23

6.10.1 Model dialog...............................................................................................23 6.10.2 Converter dialog.......................................................................................24

6.11 KOMMUNIKATION MELLAN PAM APPLIKATIONER .........................24 6.12 FELHANTERING...................................................................................................25 6.13 ATT SKRIVA EN KONVERTERARE...............................................................25

6.13.1 Metod 1 ..........................................................................................................25 6.13.2 Metod 2 ..........................................................................................................27

Westinghouse Atom AB 4

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.13.3 Konverterarhantering från VB koden ..........................................27 6.13.4 Jämförelse mellan de nämnda metoderna.................................28

7 SLUTSATSER ...................................................................................................28

7.1 FÖRDELAR.................................................................................................................28 7.2 NACKDELAR.............................................................................................................29

8 RESULTAT ..........................................................................................................29

9 FORTSATT ARBETE...............................................................................29

10 KÄLLFÖRTECKNING...........................................................................30

11 ORDLISTA ...........................................................................................................31

Westinghouse Atom AB 5

Mälardalens Högskolan 01-12-06 Institution för datateknik

1 Inledning Westinghouse Atom har utvecklat ett eget mjukvarusystem som heter PAM, Plant-Analysis-Methodology. PAM systemet är ett avancerat IT-verktyg, med hjälp av vilket bolaget kan genomföra en stor mängd kärnkraftsberäkningar och analyser som ingår i säkerhetsredovisningar.

Idag består PAM av separata delar (se 1.1) då analyser och beräkningar görs manuellt i respektive del.

För att skapa modeller1 som sedan används till avancerade analyser finns det ett antal konverterare (se 1.1.4) vilka är beräkningsprogram och genererar indata till modeller.

Westinghouse Atom har ett önskemål att sammansätta de separata delarna av PAM systemet för att automatisera och effektivisera processen, förenkla underhåll av systemet samt möjliggöra spårbarheten av dataflödet. Förklaring till kursiva ord finns i ordlistan.

1.1 PAM:s beståndsdelar PAM systemet skall bestå av delarna PAM-P, PAM-I/A, PAM-M och PAM-Converter. Idag består PAM systemet av PAM-I/A (se 1.1.2) och en enkel version av PAM-P (se 1.1.1) samt några färdigskrivna FORTRAN-konverterare (se 5.2). PAM-M (se 1.1.3) och PAM-P är under utveckling och konstruktion.

1.1.1 PAM-P PAM-P är PAM systemets databasdel vilket innehåller anläggningsdata som utgör grunden för reaktordynamiska beräkningar. PAM-P:s data är grupperad i anläggningar (Plants) som i sin tur består av system. Varje system består av komponenter (Components). Dessa komponenter (t. ex PUMP) är instanser av komponenttyper (Component Templates) och har en del egenskaper (t.ex. a, b och c). Till exempel en komponent S1 med egenskap r, som är radie, är av komponent typen SPHERE tillhör system 110 och plant F3 (radien kan ha värdet 0.5; F3.110.SPHERE.S1.r =0.5). Komponenterna i PAM-P har unika namn. En nyare och utförligare version av PAM-P är under utveckling.

1.1.2 PAM-I/A PAM-I/A hanterar modelltyper (Model Template) och deras egenskaper samt modelldata (Model Property). Den hanterar även modeller (Model) som skapas i systemet för att senare användas till analyser. Alla modelltyper som finns i PAM-I/A är sorterade efter anläggningar. PAM-I/A finns implementerad idag och

1 Se ordlistan för förklaring

Westinghouse Atom AB 6

Mälardalens Högskolan 01-12-06 Institution för datateknik

används som en separat del för att skapa modeller med hjälp av de befintliga FORTRAN-konverterarna.

1.1.3 PAM-M PAM-M innehåller metodiker (Methodology) som styr konverterarnas datainhämtning. En metodik är kopplad till en viss konverterare och talar om för den vilka egenskapsvärden den skall hämta från PAM-P. Egenskaperna i PAM-P har i sin tur tre egenskapsvärden; minimum, maximum och normalvärden. Metodiken talar även om vilka egenskaper som är viktigare än andra. PAM-M är också under utveckling.

1.1.4 Konverterare En konverterare gör beräkningar med indata som kommer från PAM-P och ger ifrån sig utdata till PAM-I/A. Idag finns det färdigskrivna FORTRAN- konverterare vilka används för att skapa modeller.

2 Introduktion till uppgiften Uppgiften består av att utföra analys av både PAM systemet och de befintliga FORTRAN-konverterarna, skriva en kravspecifikation med hänsyn till företagets önskemål samt utveckla en design för ett konverterar verktyg, PAM-Converter, som hanterar konverterare. Att hantera en konverterare består av olika moment, till exempel skapa, exekvera, spara, revidera och editera.

PAM-Converter kommer att vara en del av PAM:s sammansatta system. PAM-Converter hämtar in indata från PAM-P och sedan efter exekvering av konverterare lämnar ifrån sig utdata som hämtas in till PAM-I. De nya konverterarna bör skrivas i något skriptspråk, till exempel TCL eller Visual Basic.

2.1 Målet med arbetet Målet med arbetet är:

• Att göra analys och design för PAM-Converter vilket skapar och hanterar konverterare som i sin tur är skrivna i TCL eller Visual Basic skript.

• Att skapa en prototyp för PAM-Converter i Visual Basic

• Att göra analys av de befintliga konverterare som är skrivna i FORTRAN.

Westinghouse Atom AB 7

Mälardalens Högskolan 01-12-06 Institution för datateknik

2.2 Genomförande Genomförandet av arbetet görs genom att:

• Ta fram en beskrivning av kopplingen mellan PAM-Converter och resten av systemet.

• Visa dataflödet mellan olika delar i PAM.

• Analysera och jämföra den befintliga konverterarkoden med motsvarande som är skriven i TCL.

• Skapa ett interface för PAM-Converter som följer PAM:s interface i övrigt.

• Ta fram rekommendationer.

3 Westinghouse Atoms kravspecifikation För att PAM-Converter skall vara anpassat för PAM systemet samt lämpligt och användbart för användare ställs följande krav:

• Systemet skall möjliggöra följande: skapa, editera, spara, revidera och exekvera konverterare.

• Möjligheten att använda de befintliga FORTRAN-konverterarna skall finnas.

• De nya konverterarna skall skrivas i ett skriptspråk som TCL eller Visual Basic.

• Det skall gå att revidera en konverterare om de beroende delarna (PAM-P och PAM-I/A) till konverterare har ändrats.

• Det skall vara möjligt för PAM-M att kontrollera datainhämtning till konverterare vid exekveringen.

En utförlig kravspecifikation finns i bilaga 1 i denna rapport.

4 Problemanalys De problem som vi har identifierat är:

• TCL och FORTRAN, båda är nya programmeringsspråk för oss som vi har varit tvungna att ägna tid åt.

• PAM systemet är också nytt som vi måste sätta oss in i och förstå.

Westinghouse Atom AB 8

Mälardalens Högskolan 01-12-06 Institution för datateknik

• Hur hanteras data i PAM systemet nu och hur data kommer att hanteras i fortsättningen?

• Vilka delar av PAM är PAM-Converter beroende av? Vad finns det för koppling mellan dem?

• Hur kommer data att flöda igenom de olika delarna i PAM systemet?

• Vilka krav ställs på PAM-Converter?

• Hur skall gränssnittet för PAM-Converter se ut?

• Hur skall in- och utgångar till en konverterare vara definierade?

• Vilka regler finns för att skriva en konverterare?

• Hur skall indata till och utdata från konverterare hanteras?

• Hur skall verktyget som kommer att vara skrivet i Visual Basic kunna kopplas ihop med en TCL-interpretator?

• Hur kommer PAM-M att styra exekveringen av en konverterare?

Dessutom har vi funderat på:

• Vilka krav har Westinghouse Atom på utformningen av dokumenten (krav- och designspecifikationen)?

5 Systemundersökning och förberedande arbete 5.1 Förberedelser Under de första veckorna av examensarbetet fick vi tag på en del information om PAM systemet. Vi sorterade bort överflödig information för att sedan läsa igenom resten som ansågs vara nödvändig för vårt arbete. Under inläsningstiden upptäckte vi att vissa delar i PAM systemet inte var färdiga och utvecklingen pågick i form av separata examensarbeten. Det förde med sig både för- och nackdelar för vår del.

Fördelen var att vi kunde samarbeta med de övriga vilket ledde till att få ett bättre och mer anpassat konverterarverktyg till PAM systemet.

Nackdelarna var att de bitarna av systemet vi försökte föra ihop var mycket röriga. De delar som var beroende av varandra skulle anpassas efter varje ändring vilket påverkade arbetets gång. Samtidigt var ansvarsgränserna för varje del inte tydliga från början och definierades bit för bit under tidens gång

Westinghouse Atom AB 9

Mälardalens Högskolan 01-12-06 Institution för datateknik

När vi började skriva användargränssnittet för PAM-Converter var våra grund- kunskaper i Visual Basic till stor hjälp eftersom PAM applikationerna var skrivna i Visual Basic.

Ett problem som vi stötte på och hade var brist på kunskap i TCL-språket. TCL är det språk som används för att skriva de nya konverterarna i. Genom att läsa manualer och böcker i TCL lärde vi oss grunderna i TCL.

Vi prövade några verktyg för att skriva och exekvera skriptet (TclPro 1.4 – ett debugg program, TclSh – en interpretator som liknar DOS och används för exekvering av skript, ConTEXT- en editor som används för att editera bl.a. TCL skript).

Det var ett intressant experiment att skriva testapplikationer i TCL och testköra dem.

5.2 FORTRAN-konverterare Det finns flera konverterare på Westinghouse Atom som är skrivna i FORTRAN och vi fick tag på tre av dem. Vi har exekverat konverterarna med indata och analyserat både processen och utdatat från konverterarna. För att se vilka utdata en FORTRAN-konverterare ger efter exekveringen har vi först kompilerat konverterarfilerna till en .exe fil och sedan exekverat den. Indata till konverteraren är en existerande fil som innehåller anläggningsdata. Efter exekveringen får vi en utfil som innehåller modelldata. Modelldata måste plockas ut från utfilen för att användas sedan till modeller.

Eftersom FORTRAN-konverterare tar in indata och ger ut utdata i form av en fil är det nödvändigt att lägga till lite mer kod i PAM-Converter. Koden är till att skapa en infil för konverterare och för att plocka ut modelldata från en utfil.

Vi fann vid vår undersökning av de tre existerande konverterarna att två av konverterarna är enkla och lätta att förstå men den tredje är komplicerad. Den tredje konverteraren består av flera FORTRAN-filer som är länkade till varandra.

Vi har även analyserat koden med McCabes komplexitets algoritm och fått ett värde mindre än 5 för de två första och över 10 för den sista. Detta innebär att de två första konverterarna inte är komplexa och går lätt att översättas men den tredje är komplex och lite svårare att översättas till TCL.

Problemet med FORTRAN-konverterarna är följande: Om PAM-Converter skall hantera både de befintliga konverterarna och nya som kommer att vara skrivna i TCL eller Visual Basic, måste koden för verktyget utökas. Kod för hantering av filer för in- och utdata bör läggas till. Förutom det måste ytterligare kod läggas till för att exekvera en kompilerad FORTAN-konverterare.

Westinghouse Atom AB 10

Mälardalens Högskolan 01-12-06 Institution för datateknik

Med tanke på att de nya konverterarna inte skall skrivas i FORTRAN, övervägde vi nödvändigheten i att kunna hantera de befintliga konverterarna. Vi har kommit fram till att dessa konverterare bör skrivas om till TCL eller Visual Basic skript för att spara både tid och pengar.

Westinghouse Atom AB 11

Mälardalens Högskolan 01-12-06 Institution för datateknik

6 Design 6.1 Övergripande förklaringar PAM-Converter innehåller flera konverterare och tillhandahåller PAM-I/A med modelldata efter att konverterarna har gjort beräkningar med data från PAM-P. PAM-Converter är en del av PAM systemet och är beroende av delarna PAM-P och PAM-I/A samt är kontrollerad av PAM-M. De eventuella konverterarna i PAM-Converter kan bli reviderade och varje revision kan bli länkad till beroende delar i PAM systemet (PAM-P och PAM-I/A).

En konverterare skapas genom att användaren skriver all information om konverteraren, definierar in- och utgångar samt skriver konverterarkoden enligt speciella regler i PAM-Converter (se 6.13).

När en konverterare har skapats blir den en beräkningsmall för att skapa flera olika modeller, se figur 1.

Converter1

PAM-Converter

a

b

c

PAM-P

Component Template

Component

PAM-I/A

x

y

z

Model Template

a

b

c

P1

P2

P3

V1

V2

V3

(links)(link)

PUMP

VALVE

MODEL

Figur 1: Definiering av in- och utgångar till en konverterare

Det betyder att det är komponentegenskaper som definieras som ingångar till konverterare och inte själva komponenterna.

Figur 1 visar att en konverterare har definierade ingångar PUMP.a, PUMP.b, VALVE.a, VALVE.c och dess definierade utgång blir en MODEL med egenskaper x, y, z.

Westinghouse Atom AB 12

Mälardalens Högskolan 01-12-06 Institution för datateknik

Först vid exekvering av en konverterare bestämmer användaren vilken komponent varje egenskap skall tillhöra. Om en modell skall skapas för första gången måste alla komponenterna väljas (se Figur 2).

P1.a =3P1.b=5

V2.c = 2.1

x = a + by = a + 3 z = 10

x = 8y = 6

z = 10

Compont property Converter1 Model1

x = 14.2 y = 9.2 z = 10

Model2

x = a + by = a + 3 z = 10

P2.a = 6.2P2.b = 8

V3.c = 3.4

Converter1Compont property

Data flöde

Figur 2: Exekvering av en konverterare med två olika uppsättningar av komponenter

När användaren väljer en uppsättning av komponenter för att skapa en modell blir denna uppsättning sparad i PAM- I/A tillsammans med modellen. När konverteraren exekveras för andra gången för uppdatering av samma modell, kommer den uppsättningen att visa vilka komponenter som är aktuella för modellen. En annan uppsättning av komponenter till en och samma konverterare skapar en annan modell.

Utgångar till en konverterare definieras av användaren och detta är en modelltyp som har vissa egenskaper. Egenskaperna kan vara ”Optional” eller ”NotOptional”. Optional betyder att om en egenskap inte får något värde efter konverterar-exekveringen får den ett ”default” värde av PAM systemet. NotOptional däremot innebär att egenskapen skall få ett värde efter konverterarexekveringen.

För att skapa eller revidera en modell i PAM-I/A exekveras en konverterare. PAM-M styr exekveringen av konverteraren genom att tala om vilka värden konverteraren skall hämta från PAM-P. Värdena i PAM-P är i form av minimum, maximum och normal.

För varje konverterare kan det finnas en eller flera metodiker. Om det inte finns någon metodik skall alla värden som hämtas in vid exekveringen vara normal- värden.

Westinghouse Atom AB 13

Mälardalens Högskolan 01-12-06 Institution för datateknik

Figur 3 illustrerar dataflödet inom de olika delarna av PAM systemet när en konverterare exekverar. Indata till PAM-Converter är anläggningsdata och utdata från PAM-Converter är modeller eller modelldata.

Dataflöde Kontroll

PAM:s del Objekt

Metodologi

Indata Utdata

PAM-M

PAM-Converter

a

PAM-I/A PAM-P

Figur 3: Dataflöde vid

6.2 Databasdesign PAM-Converter kommer att använda ehela PAM systemet. Figur 4 visar de tamellan tabellerna samt relationer till nDe tabeller som tillhör PAM-Converte

PAM-Converter:s databas består av feC_TblConverterRev har all informatiomodelltyp i PAM-I/A. Tabellerna C_Tinnehåller länkar till oberoende data oc

Westinghouse Atom AB

Konverter

konverterarexekvering i PAM systemet

n Oracle-databas som är gemensam för beller PAM-Converter har, relationer

ödvändiga tabeller i PAM-P och PAM-I/A. r:s databas är markerade med fet stil.

m tabeller. Tabellerna C_TblConverter och n om konverterarna samt en länk till en blIDataLink och C_TblCompPrpLink h komponenttypsegenskaper i PAM-P.

14

Mälardalens Högskolan 01-12-06 Institution för datateknik

C_TblConverter

C_TblConverterRev

C_TblCompPrpLink

C_TblPlantLink

C_TblIDataLink

P_TblCompTPrp

P_TblMdtRev

G_TblPlant

P_TblIData

PAM-I/A

PAM-PPAM-CONVERTER

Figur 4: Databas diagram (beroenden mellan tabellerna)

Figur 5 innehåller utförligare information som tabellerna i PAM-Converter:s databas har. De fält som är markerade med pk är primära nycklar. Primära nycklar som ingår i andra tabeller blir främmande nycklar och är markerade med fk.

Tabellen C_TblConverter innehåller namnet på varje konverterare och är i relation till tabellen C_TblConverterRev. Eftersom varje konverterare kan ha många revisioner, lagras informationen om revisioner i C_TblConverterRev. Varje konverterare kan få information om sina revisioner då en speciell nyckel används för att söka i tabellen C_TblConverterRev. Den sista tabellen har även referens till en annan tabell i databasen vilken har information om modelltypen.

Westinghouse Atom AB 15

Mälardalens Högskolan 01-12-06 Institution för datateknik

”Mellantabellerna”, C_TblComponentPrpLink, C_TblPlantLink och C_TblIDataLink används för att komma åt komponenttypsegenskaper, anläggningsdata och oberoende data. De innehåller referenser till tabeller som innehåller komponenttypsegenskaper, anläggningsdata och oberoende data.

pk LONG Name TEXT(50)

C_TblConverter

pk LONG RevNumber INT CrDate DATE CrBy TEXT(50) AppDate DATE AppBy TEXT(50) Responsible TEXT(50) AppCom TEXT(50) References TEXT(50) Description TEXT(50) LastUppdateDate DATE LastUppdateBy TEXT(50) Code TEXT(200) fkConverter LONG (FK) (IE)fkMdtRev LONG (FK) (IE)

C_TblConverterRev

pk LONGfkConverterRev LONG (FK) (IE)fkCompTPrp LONG (FK) (IE)

C_TblCompPrpLink

pk LONG fkConvertereRev LONG (FK) (IE)fkPlant LONG (FK) (IE)

C_TblPlantLink pk LONG fkConverterRev LONG (FK) (IE) fkIData LONG (FK) (IE)

C_TblIDataLink

pk LONG

P_TblCompTPrp

pk LONG

P_TblMdtRev

pk LONG

G_TblPlant

pk LONG

P_TblIData

Figur 5: Databas diagram med nycklar för PAM-Converter

Westinghouse Atom AB 16

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.3 Klassdiagram Klassdiagram visar den logiska vyn av PAM-Converter samt klasser som finns i den och deras relationer till varandra. Figur 6 illustrerar PAM-Converter:s klass- diagram och använder UML:s standard notation. För mer information om klass- diagram och UML:s standard notation se [18]. De klasser som är gråa är inte medlemmar av PAM-Converter:s klassdiagram.

CConverterRevSet

CConverterRev

CCompPrpLinkSet

CCompPrpLink

1

CFConverter

CConverter

CConverterSet

CPlantLinkSet

CPlantLink

*CConverterPart

CConverterSetPart

1

1

*

*CPlantLinkPart

1

CConverterRevSetPart

CConverterRevPart*

CPlantLinkSetPart

* 1

1

*

1

CIDataLinkSet

CIDataLink

CModelMethodologyRev

CMd

*

*

CIDataLinkSetPart

*

CIDataLinkPart

0..1

0..1

1 1

1

CCompPrpLinkSetPart

*

CCompPrpLinkPart*

1

Figur 6: PAM-Converter:s klassdiagram

Westinghouse Atom AB 17

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.4 Klasserna i PAM-Converter Klasserna i PAM-Converter representerar den information som finns i databasen.

• CFConverter CFConverter är ett hög nivå objekt, ett façade objekt. Ett façade objekt skapas utanför applikationen och kan tillförse referenser till lågnivå objekterna i objekthierarkin.

• CConverterSet CConverterSet är en behållarklass för CConverter.

• CConverter CConverter implementerar konverterarinformation. Klassen innehåller bland annat egenskaper som innehåller konverterarnamn.

• CConverterRevSet CConverterRevSet är en behållarklass för CConverterRev.

• CConverterRev CConverterRev har egenskaper och metoder för att utföra operationer. Egenskaperna är bland annat: revisions nummer, datum och tid då konverteraren var skapad, namnet på den person som skapade konverteraren, datum och tid då konverteraren var godkänd, den som godkände konverteraren, kommentarer, datum och tid då den var uppdaterad, beskrivning av konverteraren, ansvarig användare, själva koden osv. De metoder som ska finnas med är: skapa, spara, ta bort, editera, godkänna, exekvera samt revidera en konverterare.

• C<name>LinkSet C<name>LinkSet är en behållarklass för C<name>Link objekten: CCompPrpLink, CplantLink och CIDataLink.

• C<name>Link C<name>Link innehåller information om relationer mellan konverterare och komponenttypsegenskaper, oberoende data och anläggningar.

6.5 Use case diagram Ett use case diagram visar beteendet och funktionaliteten av ett system ur användarens synvinkel. Det visar och tydliggör samspelet mellan användaren och systemet, för mer information se [19].

Figur 7 visar PAM-Converter:s use case diagram i UML notation. Användaren av PAM-Converter kan göra följande: skapa, spara, editera, ta bort, godkänna och exekvera en konverterare.

Westinghouse Atom AB 18

Mälardalens Högskolan 01-12-06 Institution för datateknik

För att utföra följande operationer: ”execute”, ”edit”, ”remove” eller ”approve” måste man först välja en konverterare. Operationen ”Save” kräver att en konverterare redan har varit skriven.

Converter

user

choose converter

save

remove

edit

approve

execute

create converter

<<include>>

<<include>><<include>>

<<include>>

Figur 7: PAM-Converter:s use case diagram

Westinghouse Atom AB 19

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.6 State diagram Ett state diagram visar ett systems beteende på en konceptuell nivå, med andra ord hur ett objekt av systemet beter sig och svarar på händelser som påverkar det, för mer information se [19].

PAM-Converter:s state diagram här nedan (Figur 8) visar systemets gensvar till användarens val ( exekvera, ta bort eller godkänna en konverterare).

Övergången mellan olika tillstånd i diagrammet representerar det svar som ett objekt ger till en händelse.

idel

edited

choosed

^create new converter

/choosen converter is indicated^choose converter

^save converter

^execute converter

^remove converter

^approve converter

Figur 8: PAM-Converter:s state diagram

6.7 Sekvensdiagram Ett sekvensdiagram visar de objekt som är inblandade i ett specifikt scenario samt deras samspel, för mer information se [19].

Figur 9 visar samspelet mellan aktören (användaren) av systemet och objekt av klasserna Model Template, Model, Converter, Methodology och Component vid konverterar exekveringen. Diagrammet visar även meddelandesändning. I vissa fall skiljer sig meddelandesändning från andra och det innebär att ett villkor bör uppfyllas först för att en händelse skall ske (se chooseMd i Figur 9).

Westinghouse Atom AB 20

Mälardalens Högskolan 01-12-06 Institution för datateknik

:user

Model::CMd Converterare:CConverter Metothodology:CMethodologyDisplay: ModelTemplate:CMdt

doQuery

doQuery

doQuery

Componet:Ccomponet:

getMdList

doQuery

[rs!=null]getModel

getConvList

doQuery

[rs=null]createConv

[rs!=null]getConv

getMethodologydoQuery

[rs!=null]getMethodology

MdtList

chooseMdt

ChooseMd

chooseConv

chooseMethodology

executeConv

isConsistent

getComponet

chooseComponet

Figure 9: PAM-Converter:s sekvensdiagram

Westinghouse Atom AB 21

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.8 Att godkänna data Data i databasen måste skyddas och för att möjliggöra detta måste data vara godkänd. Detta medför att ändringarna i databasen som har skett under tidens gång sparas. En konverterare kan bli godkänd när användaren anser att den är fastställd och slutgiltig.

Detta innebär i sin tur att objektet är skyddat och kan inte bli modifierat eller borttaget från databasen. Om det behövs ändringar, skall en kopia av objektet skapas vilket kallas för revision. Kopian innehåller samma mängd data och enda ändringen är revisionsnummer som ökas med ett. Därefter kan användaren ändra data i det nya objektet samt spara och skydda det.

När ett objekt är godkänt kan man lägga till ytterligare information i det som kommentar, datum, tid och namn på personen som har godkänt det.

6.9 Beroenden Ett objekt som är beroende av andra objekt kan inte bli godkänt förrän de andra. I PAM-Converter blir det att en komponenttypsegenskap, modelltyp och oberoende data måste vara godkända innan en konverterare kan bli godkänd.

Beroenden som visas i tabellen nedan existerar i PAM-Converter.

Object Depends on

Konverterare Komponenttypsegenskaper

Konverterare Modelltyp

Konverterare Oberoende data

Westinghouse Atom AB 22

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.10 Användargränssnitt (GUI) PAM-Converter:s GUI är skriven i Visual Basic och varje dialog är en Visual Basic dialog.

6.10.1 Model dialog Huvud fönstret för PAM-Converter är gemensamt för PAM-I/A och PAM-Converter och kallas för Model dialog (Figur 10). Här visas modelltyper och deras relaterade modeller och konverterare. Även en lista av de berörda metodiker och komponenter som användaren kan välja mellan visas här.

Från Modell dialogen kan användaren exekvera en konverterare. Här hittar användaren nödvändig information för konverterar exekveringen. Användaren kan komma till en annan dialog, Converter dialog, genom en knapptryckning eller via menyn. Knappen hittas i Model dialogen.

Figur 10: Model dialog, gemensam för PAM-I/A och PAM-Converter

Westinghouse Atom AB 23

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.10.2 Converter dialog När man har öppnat Converter dialog och därefter valt en konverterare från listan (Figur 11), visas det upp information om den valda konverteraren (name, revision, approval, last update osv.). Dialogen används då användaren vill skapa en ny konverterare. Det finns några flikar (se figur 11) i dialogen som möjliggör för användaren att skriva en ny konverterare och välja in- och utgångar till konverteraren.

Figur 11: Converter dialog

6.11 Kommunikation mellan PAM applikationer Det finns flera sätt att utbyta data i PAM systemets applikationer och en av dem är drag ’n’ drop. Drag ’n’ drop interface möjliggör dataöverföring mellan PAM applikationerna. Det innebär att ett markerat objekt går att dra med musen från en applikation och släppa i en annan. I PAM-Converter används drag’n’drop mellan olika dialoger när det behövs.

Westinghouse Atom AB 24

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.12 Felhantering PAM-Converter använder Visual Basic:s felhantering precis som de övriga delarna i PAM systemet. I PAM systemet är det bestämt att en metod skall börja med ett påstående (statement) ”on error Goto <label> ” och i slutet av metoden definieras <label>. Namnet på <label> talar om för användaren att detta är en error. Det kan vara till exempel ”error” eller ”catchError”.

6.13 Att skriva en konverterare Medan PAM-Converter kommer att skrivas i Visual Basic skall själva konverterarkoden skrivas i TCL skript. För att exekvera TCL skriptet kommer en TCL-interpretator att användas. PAM-Converter kommer att kommunicera med interpretatorn, det vill säga skicka indata till interpretatorn som passar för exekvering av en viss konverterare och få utdata efter exekveringen. Ett av de problem som vi skulle lösa var att skriva nya konverterare. Vi har kommit fram till två förslag vilka vi tycker passar PAM-Converter.

För att skriva en konverterare bör användaren följa vissa regler. Här nedan beskrivs två metoder med regler för detta ändamål. Skillnaden mellan metoderna ligger i sättet de beräknade värdena samlas in i konverteraren samt hanteringen av utdata från konverteraren.

6.13.1 Metod 1 I Metod 1 använder en konverterare en lista för att spara beräknade värden. PAM-Converter får tillbaka en sträng (TCL lista) som innehåller dessa värden. Därefter hanteras strängen.

Reglerna för att skriva en konverterare är:

• En tom lista skapas och alla beräknade värden läggs till den.

• Värdena läggs till listan i form av ett par, först ett modelltypsegenskapsnamn och sedan dess motsvarande värde.

• Returvärdet blir en lista med modelltypsegenskapsnamn och dess motsvarande värde.

• Konverterare sparas som antingen text eller TCL fil med lämpligt namn.

6.13.1.1 Exempel Här följer ett exempel på en konverterare som är skriven enligt Metod 1. Koden i det här fallet använder tre variabler (a, b, c) och utdata är en lista.

set List {} lappend List PropertyName 1 lappend List [expr $a + $b]

Westinghouse Atom AB 25

Mälardalens Högskolan 01-12-06 Institution för datateknik

lappend List PropertyName2 lappend List $c lappend List PropertyName 3 lappend List 10 return $List

6.13.1.2 Konverterarhantering från PAM-Converter I PAM-Converter koden som är skriven i Visual Basic för att hantera konverterare skrivs ytterligare kod vilket visar kopplingen mellan de två delarna (Visual Basic och TCL skript).

Först skapas ett TCL interpretator objekt: Dim TCLInterpreterObject As New tclInterpreter

De variabler som används i koden får sina värden: TCLInterpreterObject.SetVar "a", 1, 0 TCLInterpreterObject.SetVar "b", 3, 0 TCLInterpreterObject.SetVar "c", 5, 0

Skriptet läses in i en sträng: Open file For Input As #1 Do While Not EOF(1) Input #1, script string = string + vbNewLine + script Loop Close #1

Här är file en sträng som innehåller sökvägen till konverteraren.

Resultatet efter exekveringen av konverteraren sparas i en sträng: result = TCLInterpreterObject.Eval (string)

För att få ut värdena från strängen till en array behövs det en funktion. I det här fallet fanns det en funktion som var skriven av våra medarbetare på Westinghouse Atom vilken var lämpig att använda. Funktionen heter TclListToArray2 och har tre parametrar; resultArray – en array till vilken kommer resultatet från funktionen, nArg – antal element i resultArray, result – en sträng som kommer från konverteraren: TclListToArray2 result, resultArray, nArg

ResultArray ser ut: PropertyName1 Value1 PropertyName2 Value2 PropertyName3 Value3

Det betyder att: PropertyName1 har värdet Value1, PropertyName2 har Value2 osv.

Westinghouse Atom AB 26

Mälardalens Högskolan 01-12-06 Institution för datateknik

6.13.2 Metod 2 I Metod 2 använder en konverterare en global array att spara beräknade värden i. Från PAM-Converter exekveras TCL koden. Det finns inget returvärde men värdena kan plockas ur arrayen var för sig. Reglerna för att skriva en konverterare är:

• En global array skapas och alla beräknade värden läggs till den: global array

• Index namn ska vara samma som modelltypsegenskapsnamn. Värdet som läggs till arrayen med ett visst index skall vara beräknade för denna egenskap: array (ModelTPropertyName) [expr $a + $b]

6.13.2.1 Exempel Nedan visas ett exempel på en konverterare som är skriven enligt Metod 2. Proceduren har i detta fall tre variabler (a, b, c):

global array set array (ModelTPropertyName1) $a + $b set array (ModelTPropertyName2) $c set array (ModelTPropertyName3) 13

6.13.3 Konverterarhantering från VB koden PAM-Converter koden ser ut enligt nedan: Dim TCLInterpreterObject As New tclInterpreter

TCLInterpreterObject.SetVar "a", 1, 0 TCLInterpreterObject.SetVar "b", 3, 0 TCLInterpreterObject.SetVar "c", 5, 0

Open file For Input As #1 Do While Not EOF(1) Input #1, script string = string + vbNewLine + script Loop Close #1

TCLInterpreterObject.Eval (string)

Inget resultat fås tillbaka däremot kan de beräknade värdena plockas var för sig: Property1Value = TclInterpretatorObject.GetVar (”array (ModelTPropertyName1)”, 0)

Property2Value = TclInterpretatorObject.GetVar (”array (ModelTPropertyName2)”, 0)

Westinghouse Atom AB 27

Mälardalens Högskolan 01-12-06 Institution för datateknik

Property3Value = TclInterpretatorObject.GetVar (”array (ModelTPropertyName3)”, 0)

Här bestäms vilka värden skall plockas in.

6.13.4 Jämförelse mellan de nämnda metoderna Båda sätten att skriva en konverterare och exekveringshantering från PAM-Converter har testats. Metoderna är enkla att följa samt det blir lätt att hantera de nya konverterarna. Skillnaderna mellan metoderna är:

• Konverterare som är skrivna enligt Metod 1 returnerar en lista men konverterare som är skrivna enligt Metod 2 returnerar inget värde alls.

• Resultatet från konverterare som är skrivna enligt Metod 1 måste hanteras på det sättet att värdena från en sträng måste flyttas till en array. Detta innebär att i PAM-Converter koden behövs ytterligare en funktion.

• Användaren bestämmer vilka värde skall plockas från konverterare som är skrivna enligt Metod 2.

Slutligen tycker vi att man kan avgöra vid implementeringen av PAM-Converter vilken av de här metoderna som är lämpligare än den andra.

7 Slutsatser 7.1 Fördelar • PAM systemet blir ett sammansatt och helt system. PAM-Converter blir en

länk mellan delarna PAM-P, PAM-I/A och PAM-M.

• PAM systemet blir enklare och användarvänligare för att PAM-Converter tillåter hantering och exekvering av konverterare.

• Tillgång till information om varje konverterare blir lättare. Användaren får all information om konverterare från gränssnittet.

• Det blir enkelt att göra en uppsättning av komponenter vilket i sin tur leder till lättare arbetsgång samt större variation i modeller. Listor av möjliga komponenter till egenskaper visas vilket gör valet enklare.

• PAM-Converter ger möjlighet till revisionshantering, detta framgår från designen (se 6).

• Det går att skriva, skapa och exekvera konverterare i ett system utan att växla mellan olika program (se 6.10).

• Med regler för att skriva en konverterare blir det enklare för användaren att skriva nya konverterare (se 6.13).

Westinghouse Atom AB 28

Mälardalens Högskolan 01-12-06 Institution för datateknik

• Systemet tillåter användaren att skriva kod för bara konverterarkroppen (se 6.13). Det sparar tid samt det blir enklare.

• Det behövs inte stor kunskap i programmering för att skriva en ny konverterare för att det finns klara och enkla regler att följa (se 6.13.1 och 6.13.2).

7.2 Nackdelar • Det finns beroenden mellan olika delar i PAM system som begränsar

användningen av verktyget. På grund av att konverterare skall ha in- och utgångar vilka länkas till PAM-P och PAM-I/A i PAM systemet, kan verktyget inte användas separat.

8 Resultat Uppgiften bestod i att skriva krav- och designspecifikation för PAM-Converter samt ett användargränssnitt som följer PAM:s interface i övrigt. Verktyget skulle hantera både de befintliga FORTRAN-konverterarna och ge möjlighet till att skapa nya konverterare i TCL och Visual Basic skript.

Undersökning av både PAM systemet och de befintliga FORTRAN-konverterarna visade att PAM-Converter borde vara en länk mellan olika delar i PAM systemet samt det skulle bli kostsamt att hantera de befintliga FORTRAN-konverterarna i PAM systemet.

Målet med arbetet har uppnåtts. Vi har skrivit både krav- och designspecifikation till PAM-Converter samt kommit fram till rekommendationer för att skriva nya konverterare. Vi har ett användargränssnitt som följer PAM:s interface och en användarmanual för hur användaren skall gå tillväga. Samtliga krav förutom en har uppfyllts på ett tillfredställande sätt. Det krav som inte har uppfyllts är hantering av FORTRAN-konverterare i PAM-Converter vilket vi tycker att det kommer att vara både kostsamt och onödigt med tanke på de få antal dessa konverterare har (tre stycken).

9 Fortsatt arbete Fortsättning på vårt arbete blir att skriva kod till PAM-Converter.

Westinghouse Atom AB 29

Mälardalens Högskolan 01-12-06 Institution för datateknik

10 Källförteckning [1] http://www.scriptics.com/

[2] http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/winbase/dll_512r.htm

[3] http://whatis.techtarget.com/definition/0,289893,sid9_gci212948,00.html

[4] http://www.preview.org/software/sc_help/why_complexity.htm

[5] http://hissa.ncsl.nist.gov/sw_assurance/strtest.html

[6] http://www.cpsc.ucalgary.ca/~mildred/451/Complexity.html

[7] http://www.smartdraw.com/drawing/software/howtoFusion.htm

[8] http://safari2.oreilly.com/table.asp?bookname=oraclep2&snode=19

[10] http://info-it.umsystem.edu/oradocs/doc/server/doc/PLS23/toc.htm

[11] http://www.nsc.liu.se/f90.html

[12] http://www.sdmagazine.com/articles/2000/0003/

[13] http://www.sei.cmu.edu/publications/documents/92.reports/92.tr.022.html

[14] Balena .F ., ”Programming Microsoft Visual Basic 6.0”, Microsoft Press 1999.

[15] Welch .B .B ., ”Practical programming in TCL and TK”, second edition, Prentice Hall PTR, 1997.

[16] Schneider .D . I., ”An introduction to programming using Visual Basic 6.0”, Second Edition, Prentice-Hall, Inc Simon & Schuster/A, 1999.

[17] Cornell .C ., ”Visual Basic 6”, The McGraw-Hill, 1998.

[18] ”OMG Unified Modelling Language Specification”, version 1.3, Object Management Group Inc.

[19] Britton .C ., Doake .J ., ”Object-Oriented Systems Development”, McGraw-Hill,1999.

Westinghouse Atom AB 30

Mälardalens Högskolan 01-12-06 Institution för datateknik

11 Ordlista Ord Word Förklaring Anläggning Plant En abstraktion av den datamängd

beskrivande en fysisk kärnkraftsanläggning som behövs för att göra reaktorberäkningar.

Komponenttyp Component Template Komponenttyper omfattar komponenttypsegenskaper som finns i komponenttypens instanser, komponenterna.

Komponent Component Komponenter är instanser av komponenttyper. I komponenten finns numeriska egenskapsvärden.

System System Ett datamängd som beskriver ett reaktorsystem.

Modell Model En enkel presentation av olika delar av anläggningen.

Modelltyp Model type Bestämmer strukturen av en modell, antal och typen av modelegenskaper.

Modellegenskap Modelproperty Egenskaper som varje model har.

Metodik Methodology Bestämmer data inhämtningen från anläggningen för att skapa modeller eller modelldata.

Westinghouse Atom AB 31