Arhitectură evolutivă
Arhitectură evolutivă
Note originale de SunDiaL · Vezi sursa în engleză
Acum aproximativ 20–30 de ani, când se proiecta un proiect, arhitectura era gândită să dureze. Era planificată pentru cel puțin 5 ani. Dar lucrurile se schimbă, cu atât mai mult în zilele noastre.
Arhitectura evolutivă acceptă că schimbarea este inevitabilă și încearcă să o ghideze, urmărind să prevină degradarea software-ului. Face acest lucru folosind un concept din programarea evolutivă, și anume funcția de evaluare a adecvării. Zonele în care poate apărea degradarea software-ului se numesc aspecte arhitecturale.
Aspecte arhitecturale
După un anumit punct, o soluție nu mai privește doar cerințele clientului. Aceste preocupări sunt numite aspecte arhitecturale, aspecte transversale etc. Au multe denumiri, dar toate se reduc la:
- Posibilitatea de auditare
- Performanță
- Securitate
- Cerințe
- Date
- Legalitate
- Scalabilitate
Funcția de evaluare a adecvării
În arhitectura evolutivă, o funcție de evaluare a adecvării (fitness function) este orice funcție/metrică folosită pentru a măsura cât de bună este soluția. Funcțiile de evaluare sunt clasificate după:
Arie de aplicare
- Atomice -> Se aplică unui singur aspect.
- Holistice -> Se aplică mai multor aspecte.
Frecvență
- Declanșate -> De evenimente. -> Teste unitare, teste în pipeline, teste QA.
- Continue -> Mai degrabă periodice. Verifică permanent sistemul la un anumit interval.
- Temporale -> Se asigură că programul ține pasul cu timpul, semnalând ca nereușite verificările pentru versiuni vechi ale bibliotecilor.