De term "engineering" in de context van softwareontwikkeling kan een beetje dubbelzinnig zijn. Het wordt vaak door elkaar gebruikt met "software engineering", maar er zijn subtiele verschillen. Hier is een uitsplitsing:
Engineering is een breed veld dat het ontwerp, de constructie en de werking van elk type systeem omvat, inclusief software. Het gaat meestal om:
* Het toepassen van wetenschappelijke principes en wiskundige methoden: Ingenieurs gebruiken deze tools om systemen te analyseren, ontwerpen en optimaliseren.
* Focus op efficiëntie, betrouwbaarheid en veiligheid: Ingenieurs streven ernaar om systemen te maken die functioneel, robuust en veilig zijn voor gebruikers.
* Werken met complexe systemen: Ingenieurs werken vaak aan projecten met veel onderling verbonden onderdelen.
Software Engineering , met name, is een tak van engineering die zich richt op het ontwerp, de ontwikkeling en het onderhoud van softwaresystemen. Het gaat om:
* Methodologieën van softwareontwikkeling begrijpen en toepassen: Dit kan Agile, waterval of andere benaderingen omvatten.
* Het gebruik van programmeertalen en tools voor softwareontwikkeling: Ingenieurs schrijven code, bouwen software en gebruiken verschillende tools om het ontwikkelingsproces te beheren.
* Focus op softwarekwaliteit: Software-ingenieurs streven ernaar om software te maken die functioneel, efficiënt, veilig en gebruiksvriendelijk is.
Objectgeoriënteerde software-engineering is een specifieke aanpak binnen software -engineering die het gebruik van objecten benadrukt als de kernbouwstenen van software. Het richt zich op:
* inkapseling: Gegevens combineren en de bewerkingen die op die gegevens werken in afzonderlijke eenheden die objecten worden genoemd.
* abstractie: Complexe systemen vertegenwoordigen door eenvoudiger interfaces, waardoor onnodige details worden verborgen.
* erfenis: Waardoor nieuwe objecten eigenschappen en gedrag van bestaande eigenschappen kunnen erven.
* polymorfisme: Objecten in staat stellen om op verschillende manieren op hetzelfde bericht te reageren, op basis van hun type.
Kortom:
* Engineering is een breed veld, dat verschillende disciplines omvat, waaronder software.
* Software Engineering is een specifieke branch gericht op softwareontwikkeling.
* Objectgeoriënteerde software-engineering is een specifieke aanpak binnen software-engineering die objectgeoriënteerde principes gebruikt voor softwareontwerp en -ontwikkeling.
Denk er zo aan:
* Engineering is de basis, die allerlei systemen omvat.
* Software Engineering is een specifiek gebouw binnen de stichting, gericht op softwaresystemen.
* Objectgeoriënteerde software-engineering is een bepaalde kamer in het software-engineeringgebouw, met behulp van objectgeoriënteerde principes voor softwareontwerp. |