Reutilizare - Reusability
În informatică și ingineria software , reutilizarea este utilizarea activelor existente într-o anumită formă în cadrul procesului de dezvoltare a produselor software ; aceste active sunt produse și subproduse ale ciclului de viață al dezvoltării software-ului și includ cod, componente software, suite de testare, proiecte și documentație. Conceptul opus al reutilizării este efectul de levier , care modifică activele existente după cum este necesar pentru a îndeplini cerințele specifice ale sistemului. Deoarece reutilizarea implică crearea unei versiuni întreținute separat a activelor , este preferată în locul pârghiei.
Subrutinele sau funcțiile sunt cea mai simplă formă de reutilizare. O bucată de cod este organizată în mod regulat folosind module sau spații de nume în straturi . Susținătorii susțin că obiectele și componentele software oferă o formă mai avansată de reutilizare, deși a fost greu să măsurăm și să definim obiectiv nivelurile sau scorurile de reutilizare.
Capacitatea de reutilizare se bazează într-un mod esențial pe capacitatea de a construi lucruri mai mari din părți mai mici și de a putea identifica puncte comune între acele părți. Reutilizarea este adesea o caracteristică necesară a software-ului platformei . Reutilizarea aduce mai multe aspecte dezvoltării software-ului care nu trebuie luate în considerare atunci când nu este necesară reutilizarea.
Reutilizarea implică o anumită gestionare explicită a problemelor de construcție , ambalare , distribuție , instalare , configurare , implementare , întreținere și actualizare . Dacă aceste probleme nu sunt luate în considerare, software-ul poate părea reutilizabil din punct de vedere al proiectării , dar nu va fi reutilizat în practică.
Reutilizarea software-ului se referă mai specific la caracteristicile de proiectare ale unui element software (sau colecție de elemente software) care sporesc adecvarea acestuia pentru reutilizare.
Multe principii de proiectare a reutilizării au fost dezvoltate la atelierele WISR.
Caracteristicile de proiectare ale candidaților pentru refolosirea software-ului includ:
- Adaptabil
- Scurt: dimensiune mică
- Coerență
- Corectitudine
- Extensibilitate
- Rapid
- Flexibil
- Generic
- Localizarea ipotezelor de proiectare volatile ( modificabile ) ( David Parnas )
- Modularitate
- Ortogonalitate
- Parametrizare
- Simplu: complexitate redusă
- Stabilitate sub cerințe în schimbare
Nu s-a ajuns încă la un consens pe această listă cu privire la importanța relativă a intrărilor și nici la problemele care fac ca fiecare să fie important pentru o anumită clasă de aplicații.