Termen "teknik" i samband med mjukvaruutveckling kan vara lite tvetydig. Det används ofta omväxlande med "mjukvaruteknik" men det finns subtila skillnader. Här är en uppdelning:
Engineering är ett brett fält som omfattar design, konstruktion och drift av alla typer av system, inklusive programvara. Det involverar vanligtvis:
* Tillämpa vetenskapliga principer och matematiska metoder: Ingenjörer använder dessa verktyg för att analysera, designa och optimera system.
* Fokusera på effektivitet, tillförlitlighet och säkerhet: Ingenjörer strävar efter att skapa system som är funktionella, robusta och säkra för användare.
* Arbeta med komplexa system: Ingenjörer arbetar ofta med projekt med många sammankopplade delar.
Programvaruteknik är specifikt en gren av teknik som fokuserar på design, utveckling och underhåll av programvarusystem. Det innebär:
* Förståelse och tillämpa metodik för mjukvaruutveckling: Detta kan inkludera agile, vattenfall eller andra tillvägagångssätt.
* Använd programmeringsspråk och verktyg för mjukvaruutveckling: Ingenjörer skriver kod, bygger programvara och använder olika verktyg för att hantera utvecklingsprocessen.
* Fokusera på mjukvarukvalitet: Programvaruingenjörer strävar efter att skapa programvara som är funktionell, effektiv, säker och användarvänlig.
Objektorienterad mjukvaruteknik är ett specifikt tillvägagångssätt inom mjukvaruteknik som betonar användningen av objekt som de grundläggande byggstenarna för programvara. Det fokuserar på:
* inkapsling: Kombinera data och de operationer som agerar på dessa data till enstaka enheter som kallas objekt.
* Abstraktion: Representerar komplexa system genom enklare gränssnitt, döljer onödiga detaljer.
* arv: Tillåter nya objekt att ärva egenskaper och beteende från befintliga.
* polymorfism: Att göra det möjligt för objekt att svara på samma meddelande på olika sätt, baserat på deras typ.
kort sagt:
* Engineering är ett brett fält som omfattar olika discipliner inklusive programvara.
* Programvaruteknik är en specifik gren som fokuserar på mjukvaruutveckling.
* Objektorienterad mjukvaruteknik är ett specifikt tillvägagångssätt inom mjukvaruteknik som använder objektorienterade principer för mjukvarudesign och utveckling.
Tänk på det här sättet:
* Engineering är grunden som omfattar alla typer av system.
* Programvaruteknik är en specifik byggnad inom stiftelsen med fokus på programvarusystem.
* Objektorienterad mjukvaruteknik är ett särskilt rum i mjukvarubyggnaden med objektorienterade principer för mjukvarudesign.