Begrepet "ingeniørfag" i sammenheng med programvareutvikling kan være litt tvetydig. Det brukes ofte om hverandre med "programvareteknikk", men det er subtile forskjeller. Her er et sammenbrudd:
Engineering er et bredt felt som omfatter design, konstruksjon og drift av alle typer systemer, inkludert programvare. Det innebærer vanligvis:
* anvendelse av vitenskapelige prinsipper og matematiske metoder: Ingeniører bruker disse verktøyene for å analysere, designe og optimalisere systemer.
* Fokus på effektivitet, pålitelighet og sikkerhet: Ingeniører streber etter å lage systemer som er funksjonelle, robuste og trygge for brukere.
* Arbeide med komplekse systemer: Ingeniører jobber ofte med prosjekter med mange sammenkoblede deler.
Software Engineering Spesielt er en gren av ingeniørfag som fokuserer på design, utvikling og vedlikehold av programvaresystemer. Det innebærer:
* forståelse og anvendelse av programvareutviklingsmetodologier: Dette kan omfatte smidige, fossefall eller andre tilnærminger.
* Bruke programmeringsspråk og programvareutviklingsverktøy: Ingeniører skriver kode, bygger programvare og bruker forskjellige verktøy for å administrere utviklingsprosessen.
* Fokus på programvarekvalitet: Programvareingeniører streber etter å lage programvare som er funksjonell, effektiv, sikker og brukervennlig.
Objektorientert programvareteknikk er en spesifikk tilnærming innen programvareteknikk som understreker bruken av objekter som kjernebyggesteinene til programvare. Det fokuserer på:
* innkapsling: Kombinere data og operasjonene som virker på disse dataene i enkeltenheter som kalles objekter.
* Abstraksjon: Som representerer komplekse systemer gjennom enklere grensesnitt, skjuler unødvendige detaljer.
* Arv: Slik at nye objekter kan arve egenskaper og atferd fra eksisterende.
* polymorfisme: Slik at objekter kan svare på den samme meldingen på forskjellige måter, basert på deres type.
kort sagt:
* Engineering er et bredt felt, som omfatter forskjellige fagområder inkludert programvare.
* Software Engineering er en spesifikk filial med fokus på programvareutvikling.
* Objektorientert programvareteknikk er en spesifikk tilnærming innen programvareteknikk som bruker objektorienterte prinsipper for programvaredesign og utvikling.
Tenk på det på denne måten:
* Engineering er grunnlaget, som omfatter alle slags systemer.
* Software Engineering er en spesifikk bygning i stiftelsen, med fokus på programvaresystemer.
* Objektorientert programvareteknikk er et bestemt rom i programvareteknisk bygning, ved å bruke objektorienterte prinsipper for programvaredesign.