- Komponentbaseret arkitektur er en gren af softwareudvikling, der giver et højere abstraktionsniveau end objektorienterede designprincipper.
- Komponentbaseret arkitektur fokuserer ikke på spørgsmål som kommunikationsprotokol og delt tilstand.
- Denne arkitektur fokuserer på dekomponering af designet i logiske komponenter, der indeholder hændelser, metoder og egenskaber.
- Komponentbaseret arkitektur opdeler problemet i delproblemer, og hvert problem er forbundet med komponentpartitioner.
- Den giver et højere abstraktionsniveau end objektorienterede designprincipper.
- Den fokuserer ikke på spørgsmål som kommunikationsprotokoller og delt tilstand.
Principper for komponentbaseret arkitektur
1. Kan udvides
En komponent kan udvides fra eksisterende komponenter for at give ny adfærd.
2. Kan udskiftes
Komponenter kan let udskiftes med andre lignende komponenter.
3. Indkapslet
Komponenter eksponerer grænseflader, som gør det muligt for den, der kalder dem, at bruge deres funktionalitet og skjuler detaljerne i de interne processer eller eventuelle interne variabler eller tilstand.
4. Uafhængige
Komponenter er uafhængige. Den kan designes til at have minimale afhængigheder af andre komponenter.
5. Genanvendelige
Komponenter er designet til at blive genbrugt i forskellige scenarier i forskellige applikationer.
6. Ikke kontekstspecifikke
Komponenter er designet til at fungere i forskellige miljøer og kontekster. Specifikke oplysninger, som f.eks. tilstandsdata, bør videregives til komponenten i stedet for at indgå i eller tilgås af komponenten.
Fordele ved komponentbaseret arkitektur
- Komponentbaseret arkitektur reducerer omkostningerne ved udvikling og vedligeholdelse.
- Den er genanvendelig, hvilket betyder, at kan bruges til genanvendelige komponenter til at sprede udviklings- og vedligeholdelsesomkostningerne over flere applikationer.
- Den øger pålideligheden af hele systemet via genbrug.
- Det er nemt at vedligeholde og opdatere implementeringen uden at påvirke resten af systemet.
- Det ændrer kompleksiteten med brugen af en komponentcontainer og dens tjenester.
- Hvis de nye kompatible versioner er tilgængelige, er det let at udskifte de eksisterende versioner uden nogen indvirkning på de andre komponenter.