Shumica e sistemeve të reja softuerike të biznesit tash zhvillohen duke e ripërdorur njohurinë dhe kodin nga sistemet e implementuara më parë.
Ka mënyra të ndryshme për ta ripërdorur softuerin. Këto shkojnë nga ripërdorja e klasave dhe e metodave në librari deri te ripërdorja e sistemeve të plota aplikative.
Përparësitë e ripërdorjes së softuerit janë kostot më të ulëta, zhvillimi më i shpejtë i softuerit, dhe rreziqet më të vogla. Besueshmëria e sistemit rritet.
Specialistët mund të përdoren në mënyrë më efikase duke e përqendruar ekspertizën e tyre në projektimin e komponentave të ripërdorshme.
Kornizat e aplikacioneve (application frameworks) janë koleksione të objekteve konkrete dhe abstrakte që janë projektuar për ripërdorje përmes specializimit dhe shtimit të objekteve të reja. Ato zakonisht përfshijnë praktika të mira të projektimit përmes mostrave të projektimit (design patterns).
Vijat e produktit softuerik janë aplikacione të ndërlidhura që janë zhvilluar nga një apo më shumë aplikacione bazë. Një sistem i përgjithshëm adaptohet dhe specializohet për t’i plotësuar kërkesat specifike për funksionalitet, platformë të synuar, apo konfigurim operacional.
Ripërdorja e produkteve COTS (Commercial Off the Shelf – komerciale, të gatshme për shitje) merret me ripërdorjen e sistemeve të shkallës së madhe, të gatshme për shitje. Këto ofrojnë shumë funksionalitet dhe ripërdorja e tyre mund t’i zvogëlojë rrënjësisht kostot dhe kohën e zhvillimit.
Sistemet mund të zhvillohen duke e konfiguruar një produkt të vetëm, të përgjithshëm COTS apo duke i integruar dy apo më shumë produkte COTS.
Sistemet për Planifikimin e Resurseve të Ndërmarrjes (Enterprise Resource Planning, ERP) janë shembuj të ripërdorjes së shkallës së madhe të COTS. E krijoni një instancë të një sistemi ERP duke e konfiguruar një sistem të përgjithshëm me informata për proceset dhe rregullat e biznesit të klientit.
Problemet potenciale me ripërdorjen e bazuar në COTS përfshijnë mungesën e kontrollit ndaj funksionalitetit dhe performansës, mungesën e kontrollit ndaj evolucionit të sistemit, nevojën për përkrahje nga furnizuesit e jashtëm, dhe vështirësitë në garantimin se sistemet mund të ndëroperojnë.
Burimi: Ian Sommerville, Inxhinierimi i softuerit