MetaCASE-verktyg
Ett metaCASE-verktyg är en typ av applikationsprogramvara som ger möjlighet att skapa en eller flera modelleringsmetoder, språk eller beteckningar för användning inom mjukvaruutvecklingsprocessen . Ofta blir resultatet ett modelleringsverktyg för det språket. MetaCASE-verktyg är alltså ett slags språkarbetsbänk, allmänt sett som inriktade på grafiska modelleringsspråk.
En annan definition: MetaCASE-verktyg är mjukvaruverktyg som stödjer design och generering av CASE-verktyg . I allmänhet bör metaCASE-verktyg tillhandahålla generiska CASE-verktygskomponenter som kan anpassas och instansieras i särskilda CASE-verktyg. Syftet med metaCASE-verktyg är att fånga specifikationen för det nödvändiga CASE-verktyget och sedan generera verktyget från specifikationen.
Översikt
Snabb översikt över CASE-verktyg
Att bygga storskaliga mjukvaruapplikationer är en mycket komplicerad process som inte är lätt att hantera. Mjukvaruföretag måste ha ett bra system för samarbete genom hela utvecklingsteamen och god displicin krävs.
Ändå är det ett modernt sätt att använda CASE-verktyg för att påskynda mjukvaruutveckling och säkerställa en högre nivå av applikationsdesign. Det finns dock andra frågor som måste hållas i åtanke. För det första garanterar inte användningen av dessa verktyg bra resultat eftersom de vanligtvis är stora, komplexa och extremt dyra att producera och använda.
CASE-verktyg kan klassificeras som antingen front-end- eller back-end-verktyg beroende på vilken fas av mjukvaruutveckling de är avsedda att stödja: till exempel "Front-end" analys- och designverktyg kontra "Back-end" implementeringsverktyg. För en mjukvaruingenjör som arbetar med ett visst applikationsprojekt , skulle valet av CASE-verktyg typiskt bestämmas av faktorer som projektets storlek, metod som används, tillgången på verktyg, projektbudget och antalet involverade personer. För vissa applikationer kanske ett lämpligt verktyg inte är tillgängligt eller så är projektet för litet för att dra nytta av ett.
CASE-verktyg stöder ett fast antal metoder men programvaruutvecklingsorganisationer ändrar dynamiskt sina antagna metoder.
Snabb översikt av metaCASE-verktyg
MetaCASE-produkter är vanligtvis mycket specialiserade applikationsutvecklingsmiljöer som producerar ett anpassat verktyg(uppsättning) från en högnivåbeskrivning av de nödvändiga verktygen.
Så med andra ord närmar metaCASE-teknologin metodautomatiseringen ur ett dynamiskt perspektiv.
MetaCASE-verktyg tillåter definition och konstruktion av CASE-verktyg som stöder godtyckliga metoder. En CASE-verktygsanpassare anger först den önskade metoden och anpassar motsvarande CASE-verktyg. Sedan använder mjukvaruutvecklare det CASE-verktyget för att utveckla mjukvarusystem. En fördel med detta tillvägagångssätt är att samma verktyg används med olika metoder, vilket i sin tur minskar inlärningskurvan och därmed kostnaden. Vilken metod som helst kan automatiseras eller modifieras av den utvecklande organisationen, vilket ger en dynamisk förmåga i dagens dynamiska och konkurrensutsatta värld. Ur ett annat perspektiv kan denna teknik användas som ett praktiskt läromedel med tanke på den förkortade utvecklings- och inlärningstiden som passar akademiska kursperioder.
Skillnader mellan metaCASE och CASE-verktyg
De flesta CASE-verktyg för objektorienterad modellering är starkt baserade på UML- metoden. En metod dikterar även andra CASE-verktygsfunktioner , såsom hur modeller kan göras, kontrolleras och analyseras, och hur kod kan genereras. Till exempel kan ett verktyg generera CORBA IDL-definitioner endast om modelleringsspråket kan specificera och analysera CORBA-kompatibla gränssnitt på ett adekvat sätt . Om verktyget (och metoden) inte genererar dem, erbjuder det väldigt lite, om något, stöd för arbete med gränssnittsdesign och implementering.
När man använder metoder möter utvecklare ofta liknande svårigheter. De kan inte specificera domänen och systemet som är under utveckling på ett adekvat sätt eftersom metoden inte ger begrepp eller notationer för den aktuella uppgiften. Slutanvändare kan tycka att modellerna är svåra att läsa och förstå eftersom de inte är bekanta med modelleringskoncepten. Vanligtvis har de också svårt att kartlägga de begrepp och semantik som används i modellerna till deras applikationsdomän . Efter att ha skapat modellerna, som inte ens lyckas illustrera applikationsdomänen på ett tillfredsställande sätt, tillhandahåller verktyget inte de nödvändiga rapporterna och genererar inte heller den nödvändiga koden.
Vad som behövs då är förmågan att enkelt fånga specifikationerna för vilken metod som helst och sedan generera CASE-verktyg automatiskt från dessa specifikationer. Senare när situationen i applikationsdomänen utvecklas och utvecklingsmiljön förändras kan du stegvis uppdatera metodstödet i ditt CASE-verktyg. Detta är precis vad metaCASE-tekniken erbjuder.
Hur metaCASE fungerar
Traditionella CASE-verktyg är baserade på en arkitektur på två nivåer: systemdesigner lagras i ett arkiv , vars schema programmeras och kompileras i CASE-verktyget . Denna hårdkodade del definierar vilken typ av modeller som kan göras och hur de kan analyseras. Det viktigaste är att endast verktygsleverantören kan ändra metoden, eftersom den är fixerad i koden. MetaCASE-teknik tar bort denna begränsning genom att tillhandahålla flexibla metoder.
Detta uppnås genom att lägga till en nivå över metodnivån.
MetaCASE-verktyg är baserade på en arkitektur på tre nivåer:
- Den lägsta, modellnivån, liknar den för CASE-verktyg. Den inkluderar systemdesigner som modeller.
- Mellannivån innehåller en modell av metoden, alltså en metamodell. En metamodell inkluderar begreppen, reglerna och diagramnotationerna för en given metod. Till exempel kan en metamodell specificera begrepp som en klass och ett arv , hur de är relaterade och hur de representeras. Men istället för att vara inbäddad i kod i verktyget, som i ett fast CASE-verktyg, lagras metoden som data i förvaret. Användningen av metamodeller har nyligen blivit mer populär. Många metodböcker innehåller nu metamodeller av deras metod, och flera viktiga innovationer, som XMI , är metamodellbaserade. Till skillnad från ett CASE-verktyg tillåter ett metaCASE-verktyg användaren att modifiera metamodellen. Därför är metaCASE baserad på flexibiliteten i metodspecifikationerna.
- Detta uppnås genom att ha en tredje, högre nivå som inkluderar metamodelleringsspråket för att specificera metoder. Denna nivå är den hårdkodade delen av metaCASE-programvaran.
Alla de tre nivåerna är nära relaterade: en modell bygger på en metamodell, som i sin tur bygger på ett metamodelleringsspråk. Det är uppenbart att ingen modellering är möjlig utan någon form av metamodell. Denna beroendestruktur liknar den mellan objekt , klasser och metaklasser i vissa objektorienterade programmeringsspråk .
metaCASE-verktyg
Detta är en lista över för närvarande tillgängliga metaCASE-verktyg; många andra modelleringsverktyg kan också erbjuda ett visst mått av metamodelleringsfunktionalitet
- KUPOL
- GME
- MetaEdit+
- MetaKLAR
- Obeo designer
- Hela plattformen
- ConceptBase
Verkliga fördelar med att använda metaCASE-verktyg
Jackson inser den avgörande skillnaden mellan en applikations domän och dess kod: två olika världar, var och en med sitt eget språk, experter, sätt att tänka etc. En färdig applikation utgör skärningspunkten mellan dessa världar. Programingenjörens svåra uppgift är att bygga en bro mellan dessa världar, samtidigt som man löser problem i båda världarna.
Empiriska studier har genomgående visat att bara runt hälften av alla utvecklingsprojekt använder metoder. Bland de som använder metoder, över 50 % antingen modifierar metoderna för att bättre passa deras behov eller till och med utveckla sina egna metoder
I ett standard CASE-verktyg är metoden som stöds av verktyget fast: den kan inte ändras. I ett metaCASE-verktyg finns det full frihet att ändra metoden, eller till och med utveckla en helt ny metod. Både modeller och metamodeller (metodbeskrivningar) lagras som förstklassiga element i förvaret. Detta gör det möjligt för en organisation att utveckla en metod som passar deras situation och behov, och att lagra och sprida den kunskapen till alla utvecklare. Verktyget och metoden vägleder sedan utvecklare, ger ett gemensamt ramverk för dem att arbeta i och integrerar hela teamets arbete.
Forskningsprototyper och även kommersiella metaCASE-verktyg har funnits i många år, men först på senare tid har det funnits verktyg som är mogna, användarvänliga och stabila för både metodutvecklaren och metodanvändaren. Ett av de mest kända och använda metaCASE-verktygen är MetaEdit+ .
Följande lista representerar flera typer av sätt hur dessa verktyg kan användas inom mjukvaruutveckling:
- kan minska tiden och kostnaderna för att utveckla en datorstödd miljö
- kan stödja formella programvaruutvecklingsmetoder
- kan användas som ett modelleringsverktyg för informationssystem
- kan stödja skapandet av ett brett utbud av modelleringsspråk
- kan stödja CASE- och modellspråkträning
- kan stödja jämförelse och integration av modelleringsspråk
Dessa verktyg bör också ha följande egenskaper:
- gör det möjligt för användare att skapa metodstöd för sina egna programvaruteknikmetoder med låg inlärningskurva
- att ha lättanvända grafiska CASE-verktyg för att stödja enkla och effektiva användarinteraktioner
- att ha förmågan att kontrollera en modells konsistens, även under körning
- att ha standardrapportgenereringsanläggning
- att ha komplexitetshanteringsverktyg som ger begränsade vyer och detaljerade modellrepresentationer
- att ha sofistikerade inmatningsdialoger för att skapa och modifiera modelldata
- att ha anpassningsbart stöd för flera metoder