Verktyg som kan kommunicera på nya sätt

Öppen populärvetenskaplig föreläsning

av fil dr Henrik Gustavsson

25/3 2004 Högskolan i Skövde

”Föreläsningen ingår i en serie populärvetenskapliga föreläsningar om aktuell forskning vid Högskolan i Skövde. Den handlar om mjukvaruutvecklingsverktyg av olika slag, som tidigare talat sina egna språk utan att kunna kommunicera med andra verktyg från andra tillverkare, nu kan kommunicera med hjälp av en enkel utökning av standardiserade språk.

Henrik Gustavsson har läst på Högskolan i Skövde sedan 1993. Han tog en magisterexamen i datavetenskap 1997 på HiS och en doktorsexamen på University of Exeter 2003.” (Affisch)

Prof. Anders Malmsjö, ordförande i utbildningsnämnden vid Högskolan i Skövde, hälsade publiken välkommen och lämnade ordet till Henrik Gustavsson. Denne sade att man tidigare haft problem med kommunikation mellan olika utvecklingsverktyg. Det har alltså varit svårt att kommunicera och utbyta information mellan dessa verktyg av lite olika typ. H G har arbetat med att förbättra kommunikationen utvecklingsverktygen emellan.

Informationssystem byggs för att motsvara de krav som en verksamhet ställer på effektiv överföring av information. Det är tidskrävande och mycket svårt att bygga ett informationssystem som motsvarar högt ställda krav. För att lättare kunna bygga sådana system används modeller för att göra representationer av informationssystemet (...) ((Tyvärr fattas här några ord. Min anm.))

Utvecklingsprocess: Utvecklandet av informationssystem sker i ett antal steg. En schematisk bild med ett antal numrerade kvadrater 1>2>3... visade hur processen fortgår stegvis. H G anmärkte att denna figur ger en förenklad bild av förloppet men att det i princip går till så här. Varje steg är beroende av tidigare steg, och de senare stegen är förfinade versioner av de föregående. Det innebär att om ett fel uppstår i ett steg, så sprids detta till de efterföljande; det blir med andra ord något som liknar en kedjereaktion.

I stegvisa utvecklingsprocesser översätts en typ av modell till en annan typ av modell. Det gäller då att känna till alla begrepp och hålla ordning på dem. Det är mycket svårt att för hand utföra sådana operationer. Det rör sig om 10.000-tals konstruktioner i 10.000-tals steg; varje är bara en liten del av modellen. Därför är det nödvändigt med automatisering. Likaså behövs utvecklingsverktyg, eftersom utvecklingsprocessen är mycket komplex. Dessutom är den process i vilken modellerna skapas mycket krävande. Ytterligare ett skäl till att utvecklingsverktyg är absolut nödvändiga är att processen att översätta språket i en modell till nästa steg oftast är för svår för människan att klara ut på egen hand.

Steg A --> steg 2: Utvecklingen innefattar båda dessa kategorier. Ännu en schematisk bild visades som kompletterade bilden av informationssystemet såsom det hittills varit och ännu brukas. H G använde termen distribuerad utveckling. Denna innebär att delar av systemet byggs med olika verktyg och ofta på olika platser. Dessutom är det olika personer som inte använder samma verktyg under arbetet på modeller som också skiljer sig från varandra.

Det är uppenbart att det är problem med att slå samman alla delar. Det uppstår inkonsistens, då olika verktyg använder olika språk för att genomföra processen. Om ett steg utförs med olika verktyg, A resp. B, ger dessa följaktligen skilda resultat. Trots att det rör sig om samma modell blir det inte samma resultat, eftersom processen är olika. Verktygen för mjukvaruutveckling talar sina egna språk och förhindrar kommunikation med andra verktyg som framställts av andra tillverkare.

Det är mycket vanligt att om en modell som implementeras till ett verktyg som inte har samma process, så fungerar överföringen till nästa utvecklingssteg inte korrekt. Att sänka inkonsistensen i större modeller är emellertid svårt att lösa. Ju större stegen blir, ju större modeller och annorlunda utvecklingsverktyg erfordras. Det är inte möjligt att använda samma verktyg. Företagen som tillverkar dem har olika policy; verktygstillverkarna integrerar ej. Det är bara deras egna verktyg som gäller. Därför är det ett stort behov av ett nytt sätt som kan tillämpas oberoende av verktygstyp.

Lösningen

*En representation av överföringsprocessen som en del av modellen snarare än som en del av verkligheten. * Ett standardiserat språk för överföring mellan olika modeller. Informationen finns enligt denna lösning i beskrivningen i sig själv, något som ger god flexibilitet. Därtill bidrar även att informationen ligger i beskrivningen av modellen som sådan. Det handlar om en ny överföringsprocess för varje tillfälle eller projekt. Genom att ändra på överföringsprocessen erhålls en öppen och påverkbar struktur. Denna var tidigare sluten.

Ett standardiserat språk är oberoende av verkligheten och behöver ej ändras. Alla utvecklare vet hur ett visst språk fungerar. Nu har överföring och representation slagits ihop; modellen har fått ett annat verktyg. Beteendet är unikt för en viss modell. Modellerna överförs till andra verktyg tillsammans med reglerna som genomför processen.

Man har alltså en modelluppsättning (model set). Alla modellerna hänger ihop: steg 1 --> 2: reglerna genomför överföringsprocessen. Vid varje ny överföring är informationen inbäddad i modellen genom regler. På detta sätt erhålls konsistenta modeller. På så vis har vi kommit runt problemet, sa H G. Implementeringen är det sista steget vid distributionsutveckling.

Resultat

¤ Lösningen implementerades som en verkstadsarkitektur som testades mot verkliga exempel. ¤ De modelluppsättningar som skapades kunde uttrycka överföringsprocesser som stora kända kommersiella verktyg inte klarar av. ¤ Det är relativt enkelt att utöka existerande verktyg med stöd av modelluppsättningar. ¤ När stöd för dessa har implementerats in, är det mycket enkelt att utöka överföringsprocesserna.

Innovationen gick över förväntan, trots att det i mitten av utvecklingsarbetet verkade tröstlöst. Detta nya system som bygger på standardiserade språk tog två och ett halvt år att bygga. Det representerar bättre än de system som finns för närvarande. En prototyp av systemet har visats. Det är lätt att bygga ut modelluppsättningarna och skapa nya modeller. Det handlar som sagt om ett specialiserat beteende för varje modell. För varje arkitektur kan man lätt bygga in en specialisering. Ovanstående är i korthet resultat av H G:s doktorsavhandling.

Fortsättning

H G planerar att bygga ut distributiva utvecklingsmiljöer. Han ämnar arbeta med ett projekt i England; pengar söks nu till detta. Projektet syftar till att utveckla en ännu bättre arkitektur. Följande planeras: * Bygga arkitektur som tillåter att verktyg kopplas samman över Internet med hjälp av web services. *Ytterligare hjälpverktyg för att skriva regler. * Utnyttja arkitekturen genom att testa på nya typer av modeller baserade på verkliga exempel.

Den sistnämnda punkten anger ett redan pågående projekt med några magisterskolade (?) från Belgien. Många saker har varit svåra att representera i verkligheten, men det är enklare nu när man kan expandera verksamheten i verkliga situationer. Det gäller att pröva om allt fungerar i alla möjliga verksamheter. Fler idéer kommer säkert att genereras och en expansion kan ske över tid. Fler ”grejor” kommer till och andra avdelningar kan inrättas i framtiden.

Fråga från publiken: Vad är bakgrunden till informationssystemet? Är det människor (företag) eller datasystem som ligger bakom begreppen? Svar: Begreppen är oberoende av strukturer. I det här fallet är det fråga om abstrakta modeller av informationssystem, men det finns alla möjliga typer av info-system: mänskliga, manuella och datoriserade. När det handlar om ett enormt ostrukturerat system går det dock inte att modellera. Vi kan i alla fall täcka mjukvarusidan väl. Däremot är det dåligt när det gäller logik; den har hittills varit svår att representera. Men grafiska modeller fungerar bra.

Fråga: Kommer det att bli mer jobb för datamodellbyggare? Svar: Det blir möjligt att genomföra speciella processer. Men vanligtvis används färdiga standardiserade processer, liksom färdiga regelsystem. Det behövs alltså inte ett sådant för varje modell. Man kommer att bygga ut regeluppsättningarna. Då får man mycket att utgå ifrån. Varje unikt projekt ställer särskilda krav. Och det går alltid att förbättra saker, så en utvecklare får förstås mer att göra. Men när inkonsistensen försvinner, kommer allt att gå mycket lättare.

Fråga: Du har sagt ”vi”... Vilka är då vi? Svar: Vi som har jobbat med det här är jag och min handledare och Björn Lundell samt flera andra vid universitetet i Exeter. Det är personer som kan funktionell programmering och logik. Där är fler personer involverade.

Fråga: Det här är alltså en ny teknik. Är det enkelt att införa den i företagens verksamhet? Svar: Basen är språket i verktyget. Det är svårt att lägga till extra lager i verktyget. Företagen är relativt öppna – ett av dem är Rational, som tillverkar speciallampor. Man är således beroende av en rad steg. Men det går att utveckla informationssystem med mycket bättre kommunikation mellan komponenterna även utan hjälp av verktygstillverkare. IBM framställer verktyg, liksom nämnda Rational, samt Microsoft. Det är dock svårare utan deras medhjälp.

Fråga: Hur ställer sig företagen idag till det här nya sättet att kommunicera? Svar: Det behövs naturligtvis kontakter med tillverkare för att kunna ta fram utvecklingsbara verktyg. Det krävs troligen nya modeller som tillägg. Men självfallet kostar det en hel del. Firman Rational ska ta fram en ny komponent som sedan alla andra också kan använda. I Exeter har man nu framställt en bättre produkt än min första prototyp som jag gjorde under arbetet på min avhandling. Den var inte så bra, nu finns alltså bättre verktyg. Om webbservicen slår väl ut, kommer det att stå alla fritt att förnya språket. Och det blir lättare att lägga till/komplettera. Om några år kommer en annan syn att dominera; det blir inga problem att kunna bygga ut applikationer. System som nu ännu är slutna kommer att bli öppna.

Fråga: Hur är det med tillämpningen nu? Svar: Än så länge är det bara fråga om modelltillämpning i några företag. De vill se först hur det hela fungerar. Det handlar alltså ännu inte om tillämpning i verkligheten, men det blir snart tal om att använda systemet i realistiska miljöer. Man testar det parallellt på olika håll.

Fråga: Kostnaden då? Svar: Man har nämnt 10-15 miljoner kronor, men de är nog onödigt mycket. Däremot krävs mer interaktion.

Fråga: Vad tror man om vinster? Svar: Det är många som är intresserade, en del tror att det blir möjligt att göra stora vinster. För som det nu är, är kommunikationen dålig och mycket tidskrävande. Dessutom är det gamla systemet som nämnt inkonsistent på många informationsobjekt. Det går inte att överblicka.

Fråga: Är funktionen säker? Svar: Det måste vi kontrollera mer, men antagligen är den säker. I varje fall går det att lösa enskilda fall. Däremot ät det enormt svårt att lösa generella fall. Helt klart är emellertid att inga nått bättre resultat än vi. Det är verkligen bra idéer som vi testar här. Men vi har svåra konkurrenter. Betänk att vi tävlar mot stora universitet som på det här området gör arbetsinsatser på 50-60 manår, medan vi här på Högskolan i Skövde bara har resurser för 5-10 manår.

Kommentar 2004

Det här ämnet lät utomordentligt intressant. Fastän jag är humanist utan teknisk utbildning fick jag en känsla av att detta är något som har framtiden för sig. Att åstadkomma bättre kommunikation är ju väsentligt på snart sagt alla områden, och inom data måste all systemförenkling och/eller förbättrad informationsöverföring av olika slag vara värdefullt. Jag förstår resonemanget i princip, även om jag saknar den konkreta bakgrunden. Åtskilliga facktermer är främmande för mig, jag kan på sin höjd ana innebörden. Däremot kan jag knappast föreställa mig hur verktygen i fråga är utformade och inte heller vet jag hur modellerna kan se ut. Om jag blev visad några av dem som H G talade om, skulle jag säkert bli ännu mer förvirrad. Bakom verklig behärskning av ett ämne ligger enormt mycket arbete över tid.

När jag tänker efter måste nog en populärvetenskaplig föreläsning som presenterar tekniska lösningar hållas på den här nivån som oundvikligen blir ganska abstrakt. Att närmare gå in på detaljkonstruktioner är naturligtvis inte att tänka på, då inga speciella förkunskaper hos publiken kan förutsättas. Hänsyn måste likaså tas till den väldigt begränsade tiden (45 min). Översiktlig kunskap är just vad jag söker på många områden – i hopp om att då kanske kunna knyta ihop allting till en låt vara ofullständig helhet. En smula generaliserande ytlighet är då måhända det pris man får betala. Man kan som bekant inte få allt!

Ordet språk fick mig att lystra lite extra. Jag har sysslat mycket med olika språk, dels de vanliga skolspråken, dels andra som t.ex. ryska (tyvärr ett utdöende skolspråk förefaller det), samt kinesiska och arabiska. Skiljaktigheter, men även likheter, i de skilda språkens struktur och ordbyggnad är väldigt fascinerande. Men för att nå den nivå där man i någon mening förnimmer ett språks ”själ”, krävs fördjupade kunskaper. Ett naturligt språk har till skillnad från ett artificiellt många skilda nivåer.

Här kommer jag att tänka på esperanto som i viss mening är artificiellt, samtidigt som det på sätt och vis också är naturligt, då det lånat mycket av vokabulären från främst romanska språk. Vad man än tycker om esperanto och några liknande ”konstgjorda” språk, så borde det ha kunnat fylla en mer betydelsefull funktion, som t.ex. EU-språk. Men det var ju inte realistiskt. (På skoj gjorde jag en gång upp riktlinjer och mallar för ett helt (?) påhittat språk – för att plötsligt finna att en rad liknande sådana fanns i SF-filmer!)

Jag har själv aldrig satt mig in i olika dataspråk som ju är system av en annan typ. I unga år hade jag kontakt med krypto – koder och chiffer -- i det militära. Jag är överhuvud taget intresserad av mönster och system. Tyvärr har jag i skrivande stund ingen tillgång till info om hur moderna datakoder o.d. konstrueras. Men även om det vore intressant att ta del av närmare detaljer, skulle jag hellre ägna mig åt övergripande strukturer och mönster. I min ålder är det nu inte lika lätt att ta till sig en mängd detaljkunskaper. Därmed inte sagt att man får försumma detaljer när det gäller bl.a. ordkunskap – tvärtom! Ett mänskligt naturligt språk är f.ö. hart när outtömligt. Och märk väl: utan det vore vi inte människor!

Kort kommentar i mars 2016

Jag har i sak ingenting att tillägga – utom att forskningen och teknologin på detta fält sedan 2004 självfallet utvecklats avsevärt och att jag fortfarande saknar närmare kunskaper om denna utveckling. Min förhoppning är dock att referatet innehåller tillräckligt med substans – mer konkret i utbytet frågor och svar – för att vara någorlunda läsvärt.

Sture Alfredsons hemsida