Om vi anser hårdvara som dators kropp är mjukvara (på engelska software) då dators hjärta.

Enligt allmänt accepterad definition är mjukvara datorprogram, resp. samlingar av program vars roll är att ge kommando hur vissa uppgifter bör utföras till dator. Alltså omfattar mjukvara alla program och uppgifter som finns i en dator, och operativsystem tillhör de grundläggande komponenterna av mjukvara.

Som vi har sagt för hårdvara att den omfattar alla komponenter man kan ta på, kan vi säga att mjukvara omfattar alla komponenter man inte kan ta på, men som är nödvändiga för att viss dator, surfplatta och mobiltelefon kan fungera. När termen mjukvara nämns i moderna världen, tänker man ofta på speciella typen av mjukvara, så kallade applikationsprogram. Men om du nämner den termen för någon som sysslar med programmering, ska han/hon nästan säkert tänka på alla informationer som behövs för att dator kan fungera.

Systemprogram är endast en typ av mjukvara. Systemprogram är egentligen de alla programen som behövs för att dator kan fungera. Den typen av mjukvara är viktigaste för att hårdvara och hela datorsystemet inom viss anordning kan fungera. Systemprogram omfattar först och främst operativsystem (som till exempel Windows), olika drivrutiner resp. styrprogram, GUI (grafiskt användargränssnitt) och många systemverktyg. I stort antal fall, när du köper ny dator, har den redan inbyggda systemprogramet. Enligt definitionen används systemprogram för direkt kommunikation med hårdvara av viss anordning, så att den kan fungera utan hinder.

Den andra typen av mjukvara är så kallade applikationsprogram. Dess grundläggande syfte är att möjliggöra utförande av vissa uppgifter med hjälp av olika program som finns inom det. Vid sidan av olika program som tillhör aplikationsprogram innehåller det oftast viss webbläsare (på engelska web browser ), datorspel, databaser samt speciell mjukvara som till exempel: kalkylprogram, kommunikationsprogram, kontorsprogram, medicinskt program eller andra program som specialiserades för visst område. Applikationsprogram kan också innehålla speciellt program för ordbehandling, men också behandling av video, bilder och ljud.

Programmerare använder i stort sett så kallade programmeringsverktyg mestadels när de skapar och ändrar något annat program. Programmeringsverktyg omfattar först och främst stort antal verktyg som programmerare använder för att skapa andra program.

En annan typ av mjukvara är så kallade serverprogramvara som omfattar olika internet applikationer, stort antal ändelser, insticksprogram och speciell mikrokod. Tack vare många internet applikationer kan man överföra webbsidor till själva webbläsare oftast med hjälp av programspråk Java och i vissa fall JavaScript. Stort antal insticksprogram och ändelser som omfattas av serverprogramvara finns så att man kan förbättra eller ändra funktionalitet av viss del av mjukvara, medan mikrokods funktion ätt ge order till processor och de orderna gäller sättet på vilket speciellt maskinkod bör utföras. För att den typen av mikrokod kan uppdateras bör man inte byta processor, eftersom tillverkare mestadels ger instruktioner för adekvat uppdatering.

Vid sidan av ovannämnda typer av mjukvara, finns det också speciell mjukvara som kan vara i form av applikation eller program och som kallas programverktyg. Med hjälp av den speciella typen av mjukvara har programmerare och kodare men också hackare möjlighet att ta bort alla fel och förbättra funktion av viss mjukvara. Det är helt klart om hackare använder den typen av mjukvara, inför de egentligen fel i funktion av viss mjukvara. Om man tar hänsyn till att varje mjukvara kan skrivas i ett programspråk, men med hjälp av fler programspråk, där varje språk kräver sitt programverktyg, påverkar det i stort sett vad slags verktyg man kan finna inom programverktyg. Det gäller oftast: textredigerare (från engelska ord text editor, vars huvudsyfte är att redigera vanliga textfiler), avlusare (på engelska debugger, verktyget används först och främst för att ta bort fel som uppstår vid funktion av andra program), länkare (verktyg som används för att en eller flera program som skapades med hjälp av kompilator kan kombineras till exekverbar fil som är känd som exe program, från engelska ord executable ), men också kompilator (från engleska ord compiler, sammanfattningsvis gäller det ett slags översättare som används för att “översätta” visst program från ett till annat programspråk) och programtolk (från engelska interpreter, dess huvudsyfte är att utföra kod som är skriven i visst programspråk). Beroende på behov av viss mjukvara, kan de verktygen kombineras och då skapar man IDE (på engelska Integrated Development Environment ), resp. integrerad utvecklingsmiljö som underlättar vid utförande av vissa uppgifter.

Begreppet mjukvara underförstår mjukvara som oftast finns i hårdvara resp. i datorminne. För att dator kan utföra kommando som mjukvara ger är det nödvändigt att skicka dem till applikationer, och applikationer skickar sedan instruktioner till hårdvara med hjälp av systemprogram och då får man instruktioner i form av maskinkod. Med hjälp av mjukvara kan man utföra olika operationer som till exempel ändring av kontrollflöde av instruktioner eller data överföring.

Så kallade mjukvarans licens, dvs. tillstånd för att använda viss mjukvara kan vara kostnadsfri, medan man får betala för andra. Det sker ofta att det finns en viss testperiod för mjukvara som betalas och det gäller oftast 15 till 30 dagar. Det rör så kallade free trial versioner. Enskilda mjukvarans versioner, så kallade kommersiella mjukvaran får användas endast om det finns licens som man bör köpa.