Arhitectură evolutivă — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

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.