Tarkvararaamistik
Programmeerimises tähendab tarkvararaamistik abstraktsiooni, mis pakub mingit teatud üldistatut funktsionaalsust tarkvaraarenduses ette tulevate ülesannete lahendamiseks olles samas spetsiifilise rakenduse tarvis laiendatav. Raamistikud võivad sisaldada erinevaid tugiprogramme ja tööriistu, kompilaatoreid, teeke või eeldada teatud rakendusliides(t)e kasutamist. Teekidest eristuvad raamistikud järgmiselt: Kontrolli ümberpööramine: raamistiku puhul ei dikteeri koodi kulgu selle kasutaja (programmeerija) kirjutatud kood vaid raamistik ise. Laiendatavus: programmeerija saab raamistiku koodi valikuliselt laiendada ja/või üle kirjutada. Vajadusel saab raamistiku panna kasutama uut koodi. Raamistiku enda lähtekoodi muutmist ette nähtud ei ole.