Udtrykket "teknik" i forbindelse med softwareudvikling kan være lidt tvetydig. Det bruges ofte ombytteligt med "software engineering", men der er subtile forskelle. Her er en sammenbrud:
ingeniørarbejde er et bredt felt, der omfatter design, konstruktion og drift af enhver type system, inklusive software. Det involverer typisk:
* Anvendelse af videnskabelige principper og matematiske metoder: Ingeniører bruger disse værktøjer til at analysere, designe og optimere systemer.
* med fokus på effektivitet, pålidelighed og sikkerhed: Ingeniører stræber efter at skabe systemer, der er funktionelle, robuste og sikre for brugerne.
* Arbejde med komplekse systemer: Ingeniører arbejder ofte på projekter med mange sammenkoblede dele.
Software Engineering , specifikt, er en gren af ingeniørarbejde, der fokuserer på design, udvikling og vedligeholdelse af softwaresystemer. Det involverer:
* forståelse og anvendelse af softwareudviklingsmetoder: Dette kan omfatte agile, vandfald eller andre tilgange.
* Brug af programmeringssprog og softwareudviklingsværktøjer: Ingeniører skriver kode, bygger software og bruger forskellige værktøjer til at styre udviklingsprocessen.
* med fokus på softwarekvalitet: Softwareingeniører stræber efter at skabe software, der er funktionel, effektiv, sikker og brugervenlig.
Objektorienteret software engineering er en specifik tilgang inden for softwareteknik, der understreger brugen af objekter som kerne byggesten til software. Det fokuserer på:
* Indkapsling: Kombination af data og de operationer, der handler på disse data til enkeltenheder kaldet objekter.
* abstraktion: Repræsenterer komplekse systemer gennem enklere grænseflader, skjuler unødvendige detaljer.
* arv: At tillade nye objekter at arve egenskaber og adfærd fra eksisterende.
* polymorfisme: Gør det muligt for objekter at svare på den samme meddelelse på forskellige måder, baseret på deres type.
Kort sagt:
* ingeniørarbejde er et bredt felt, der omfatter forskellige discipliner, herunder software.
* Software Engineering er en specifik filial, der fokuserer på softwareudvikling.
* objektorienteret software engineering er en specifik tilgang inden for softwareteknik, der bruger objektorienterede principper for softwaredesign og -udvikling.
Tænk på det på denne måde:
* ingeniørarbejde er fundamentet, der omfatter alle slags systemer.
* Software Engineering er en specifik bygning inden for fundamentet med fokus på softwaresystemer.
* objektorienteret software engineering er et bestemt rum i softwareteknikbygningen ved hjælp af objektorienterede principper til softwaredesign.