Fördelar och nackdelar med olika konfiguratorvarianter
Det finns olika typer av konfiguratorer och alla har sina fördelar och nackdelar. Här beskrivs olika typer av konfiguratorer och hur de fungerar. Förklaringarna är något förenklade och konfiguratorer är ofta en blandning av olika typer av lösningar. Detta är dock en introduktion till de olika sätten att angripa ett konfigurationsproblem.
Följande typer av konfiguratorer beskrivs här:
Sekventiell konfigurator
Detta är den vanligaste typen av enklare konfiguratorer och den typen av konfigurator som en programmerare vanligen börjar med.
En sekventiell konfigurator görs oftast i ett programmeringsspråk som tex Java och består, i sin enklaste form, av if-satser.
Fördelar
- Lätt att skapa - intuitivt
- Kräver ingen extra programvara
Nackdelar
- Användaren måste svara på frågorna i en specifik ordning
- Svårt att göra konfliktlösning för användaren
- Ändringar i data gör att man måste ändringar i konfiguratorkoden. Ändringar som oftast måste göras av en programmerare
- Det är mycket tidskrävande att underhålla logik
Relationsbaserad konfigurator
En annan enkel typ av konfigurator som är väldigt intutiv att skapa och lätt att förstå. Det kräver ibland en viss typ av programvara men kan också skapas i tex Excel.
En relationsbaserad databas bygger helt enkelt på att man i en tabell ställer upp kombinationerna som fungerar och inte fungerar. Den ena komponenten är i x-led och den andra i y-led. I korsningen anges om komponenterna är kompatibla eller inte.
Maskin A | Maskin B | Maskin C | Maskin D | |
Komponent X | Ej OK | OK | OK | OK |
Komponent Y | Ej OK | Ej OK | Ej OK | OK |
Komponent Z | Ej OK | OK | Ej OK | OK |
Komponent W | OK | Ej OK | OK | OK |
Fördelar
- Lätt att skapa - kräver inga programmeringskunskaper
- Intuitiva kopplingar
Nackdelar
- Tabellen ökar drastiskt med varje ny komponent som läggs till
- Underhållet kan bli en mardröm när databasen växer
- Ändras förutsättningarna för kompatibiliteten för komponenterna så måste konfiguratorn i princip göras om. OK / Ej OK säger ju ingenting om vad det egentligen är som gör att komponenterna är kompatibla.
Excel-konfigurator
De flesta hemgjorda konfiguratorerna görs i Excel av vana Excel-användare. Dessa är ofta en blandning av de ovan nämnda konfiguratorlösningar. Man kan använda sig av relationer, programmeringskod (via makron) och relativt kraftfulla funktioner som tex VLOOKUP.
Fördelar
- Ingen ny programvara behöver köpas in (oftast)
- Kunskapen finns ofta in-house
- Omgivningen är bekant för de flesta användare
Nackdelar
- Oftast krångligt att underhålla
- Ofta svårt för användaren
- Går inte att (enkelt) koppla mot webben
Konfigurator baserad på databas
En annan vanlig lösning på konfigurationsproblem är att använda kraftfulla databaser som MySQL eller Oracle och göra avancerade databassökningar. Man specificerar då varje lösning och vilka komponenter som är kompatibla i just den lösningen.
Bildskärm | Processor | Minne | |
Lösning #1 | 14", 15" | 1.3 GHz, 1.4 GHz | 256 MB, 512 MB |
Lösning #1 | 15" | 1.5 GHz | 1024 MB |
Lösning #2 | 14", 17" | 1.3 Ghz, 1,5 Ghz | 512 MB, 1024 MB |
Fördelar
- Relativt kraftfullt
- Användaren kan svara på frågor i vilken ordning han eller hon vill
Nackdelar
- Man kan hamna i situationen att konfiguratorn inte kan hitta en lösning (efter att man svarat på ett dussintal frågor)
- Tungt att underhålla
- Blir långsammare ju mer data man har i databasen
Attribut och constraint-baserad konfigurator
Den mest kraftfulla typen av konfiguratorer är de som är baserade på så kallade constraints och attribut. Enkelt sett så går det ut på att man extraherar själva anledningen till varför två olika komponenter är kompatibla med varandra, och inte bara att de är kompatibla. Man sätter sedan regler som är baserade på dessa attribut.
Ett exempel på ett attributbaserat constraint är:
Inre rör (diameter) <= Yttre rör (diamater)
Fördelar
- Mycket kraftfullt
- Användaren kan svara på frågor i vilken ordning han eller hon vill
- Lätt att underhålla
- Finns oftast med webbanpassning
- Intuitivt för användaren
- Möjliggör detaljerad konflikthantering
- Kräver inte avancerad kunskap för att skapa eller underhålla
Nackdelar
- Måste köpas in - I princip omöjlig att skapa in-house
- Är ofta inte lönsamt för mindre konfigurationsproblem
- Dyrt i inköp (men ofta billigare i längden)