FOTA - 3 COTS och objektorientering i realtidstillämpningar 2000-05 - 03 Annika Ohlsson Ericsson Microwave Systems annika.h.ohlsson@emw.ericsson.se
FOTA - 3 Deltagare Ericsson Microwave Systems (projektledning) SAAB CelciusTech/Kockums
FOTA - 3 Bakgrund Med COTS och objektorientering kan programvaruutveckling ske på en högre abstraktionsnivå vilket leder till kortare utvecklingstider enklare underhåll ökad återanvändning ökad portabilitet Men går det att använda i realtidstillämpningar?
FOTA - 3 Målsättning Ta fram en modell/verktyg för utvärdering av språk och plattformar med avseende på realtidstillämpningar Utvärdera ett antal utvalda språk och plattformar m h a modellen Ta fram rekommendationer
FOTA - 3 Upplägg Fas 1: Framtagning av modellen Teoretisk, endast EMW Klar 2000-04-19 Fas 2: Utvärdering Praktisk (implementering och mätning) Del 1: Miniutvärdering, klar 2000-11-01 Del 2: Utvärdering och rekommendationer, klar 2001-09-01
FOTA - 3 Användning av resultat Modellen är framtagen - men vissa implementerings- och mätningsdetaljer saknas. Rekommendationer avseende valda plattformar och språk kan användas efter projektets slut. Modellen kan användas för att utvärdera andra plattformar och språk efter projektets slut.
Utvärderingsmodellen - förutsättningar Generellt verktyg för att utvärdera nuvarande och framtida språk och plattformar En första ansats - kan förbättras och förfinas i fortsatta studier Utvärdering av normala realtidssystem - ej system med väldigt specifika krav
Utvärderingsmodellen Konstruktionsfall Språk Konstruktionsfall - en mängd typkonstruktioner (mönster) Språk - en mängd olika språk främst med objektorienteringsmekanismer Plattform Plattformar - en mängd olika kombinationer av hårdvara, operativsystem och middleware
Utvärderingsresultat Utvärderingen ska ge: Jämförelser mellan olika plattformar och språk En bild av ett språks eller en plattforms egenskaper Jämförelser av resultat kräver: att endast 1 parameter ändras åt gången, dvs konstruktionsfall eller språk eller plattform
FOTA - 3 Studien Val av språk C++ Ada 95 Java
FOTA - 3 Studien Val av plattformar Operativsystem Windows 2000 Linux VxWorks Windows CE EPOC Middleware (CORBA, COM,...) Hårdvara (PC)
FOTA-3 Studien Val av konstruktionsfall De som finns i rapporten (24 st)
Konstruktionsfallsområden Processhantering prioriteter, schemaläggning, synkronisering Minneshantering allokering, deallokering, åtkomst Modularisering och strukturering högnivåmetoder för strukturering Kommunikation och distribution kommunikations- och distributionsmetoder
Konstruktionsfallsområde: Processhantering 6.1 Implementering av periodisk process 6.2 Schemaläggning periodiska processer 6.3 Avbrottshantering 6.4 Hantering av semaforköer 6.5 Förekomst av prioritetsinvertering 6.6 Maximalt antal användbara prioritetsnivå 6.7 Hantering av processer vid inläsning och utskrift
Konstruktionsfallsområde: Minneshantering 7.1 Dynamisk allokering/deallokering av minne 7.2 Stack vs. Heap 7.3 Fragmentering av dynamiskt minne
Konstruktionsfallsområde: Modularisering och strukturering 8.1 Åtkomst av dynamiskt allokerat minne 8.2 Åtkomst av data med generella metoder 8.3 Skapa instanser med hjälp av generella metoder 8.4 Abstraktion av dataåtkomst 8.5 Anpassning av klasser
Konstruktionsfallsområde: Kommunikation och distribution 9.1 Meddelandeorienterad kommunikation 9.2 Automatgenererad kommunikation 9.3 Deterministisk kommunikation 9.4 Pipes och Filter 9.5 Abonnemangstjänst 9.6 Abonnemangstjänst utökad 9.7 Kommunikation med broker
Konstruktionsfallsområde: Kommunikation och distribution 9.8 Dispatcher med Publisher-Subscriber (Observer) 9.9 N-tier kommunikation
Utvärderingsmodellen - uppdatering Utvärderingsmodellen uppdateras med implementerings- och mätningsdetaljer under utvärderingsfasen. Ev ändringar och tillägg efter första delen av utvärderingsfasen.
Implementering Alla tre språken har standardbibliotek => Implementering av ett konstruktionsfall i ett språk skiljer inte mellan plattformarna. => Räcker att implementera ett konstruktionsfall en gång i varje språk! => Kan användas för att utvärdera andra plattformar efter projektets slut.
Mätning De framtagna programmen måste exekveras (efter eventuell anpassning) på samtliga plattformar!
Språk/Plattform C++ Ada 95 Java Windows 2000 Linux VxWorks Windows CE EPOC
Prioritering konstruktionsfall - grupp 1 6.1 Implementering av periodisk process 6.2 Schemaläggning av periodiska processer 6.3 Avbrottshantering 9.1 Meddelandeorienterad kommunikation 9.2 Automatgenererad kommunikation 9.3 Deterministisk kommunikation
Prioritering konstruktionsfall - grupp 2 6.4 Hantering av semaforköer 6.5 Förekomst av prioritetsinvertering 7.1 Dynamisk allokering/deallokering av minne 7.2 Stack vs Heap 7.3 Fragmentering av dynamiskt minne 9.4 Pipes and Filters 9.5 Abonnemangstjänst 9.6 Abonnemangstjänst utökad
Prioritering konstruktionsfall - grupp 3 8.1 Åtkomst av dynamiskt allokerat minne 8.2 Åtkomst av data med generella metoder 8.3 Skapa instanser med hjälp av generella metoder 8.4 Abstraktion av dataåtkomst 8.5 Anpassning av klasser 9.7 Kommunikation med broker 9.8 Dispatcher med Publisher-Subscriber (Observer)
Prioritering konstruktionsfall - grupp 4 6.6 Maximalt antal användbara prioritetsnivåer 6.7 Hantering av processer vid inläsning och utskrift 9.9 N-tier kommunikation
FOTA 3 Nästa intressanta tidpunkt (Utvärdering del 1-2000-11-01) Utvärdering och rekommendationer 2001-09-01