Wat is software engineering? Kenmerken, definitie
โก Slimme samenvatting
Software engineering is het gedisciplineerde proces van het analyseren van eisen en vervolgens het ontwerpen, bouwen en testen van software die aan die eisen voldoet. Deze bron legt de definities uit, de softwarecrisis die eraan ten grondslag lag, de populariteit ervan, verwante disciplines, uitdagingen en de kenmerken van goede software.

Wat is Software Engineering?
Software engineering wordt gedefinieerd als het proces van het analyseren van gebruikersbehoeften en vervolgens het ontwerpen, bouwen en testen van een softwareapplicatie die aan die behoeften voldoet.
Laten we eens kijken naar de verschillende definities van software engineering:
- In de IEEE-standaard 610.12-1990 wordt software-engineering gedefinieerd als de toepassing van een systematische, gedisciplineerde en computergestuurde aanpak bij de ontwikkeling, werking en het onderhoud van software.
- Fritz Bauer definieerde het als โhet vaststellen en toepassen van standaard technische principes. Het helpt je om op een economische manier software te verkrijgen die betrouwbaar is en efficiรซnt werkt op echte machinesโ.
- Boehm definieert software engineering als โde praktische toepassing van wetenschappelijke kennis op het creatieve ontwerpen en bouwen van computerprogramma's. Het omvat ook de bijbehorende documentatie die nodig is voor de ontwikkeling.โping, het bedienen en onderhouden ervan.โ
Waarom software-engineering? Softwarecrisis en de oplossing ervan
Wat was de softwarecrisis?
- Het was eind jaren zestig toen veel softwareprojecten mislukten.
- Veel softwareprojecten overschreden het budget. Het resultaat was onbetrouwbare software die duur was in onderhoud.
- Grotere software was moeilijk en vrij duur in onderhoud.
- Veel software voldeed niet aan de steeds hogere eisen van de klant.
- De complexiteit van softwareprojecten nam toe naarmate de hardwaremogelijkheden toenamen.
- De vraag naar nieuwe software nam sneller toe vergeleken met de mogelijkheid om nieuwe software te genereren.
Al deze problemen leidden tot de 'softwarecrisis'.
De Oplossing
De oplossing voor het probleem was het omzetten van ongeorganiseerde programmeerinspanningen in een software-engineeringdiscipline. Deze engineeringmodellen hielpen bedrijven om hun activiteiten te stroomlijnen en software te leveren die aan de eisen van de klant voldeed.
- Eind jaren zeventig werden principes van software-engineering op grote schaal toegepast.
- In de jaren tachtig vond de automatisering van het softwareontwikkelingsproces plaats en groeide Computer-Aided Software Engineering (CASE).
- In de jaren negentig kwam er, net als bij ISO 9001, meer nadruk te liggen op de 'management'-aspecten van projecten en op kwaliteits- en procesnormen.
Waarom software-engineering populair is?
Hier zijn belangrijke redenen achter de populariteit van software-engineering:
- Grote software In de praktijk is het veel gemakkelijker om een โโmuur te bouwen dan een huis of gebouw. โโOp dezelfde manier helpt software-engineering je bij het bouwen van software naarmate de omvang ervan toeneemt.
- Schaalbaarheid Als het softwareontwikkelingsproces gebaseerd is op wetenschappelijke en technische concepten, is het eenvoudiger om nieuwe software te creรซren die schaalbaar is voor bestaande software.
- Aanpassingsvermogen โ Wanneer het softwareontwikkelingsproces gebaseerd is op wetenschappelijke en technische principes, is het eenvoudig om met behulp van software-engineering nieuwe software te creรซren.
- Kosten De hardware-industrie heeft haar vaardigheden bewezen en door de enorme productie zijn de kosten van computers en elektronische hardware gedaald.
- Dynamische natuur โ Het voortdurend groeiende en aanpasbare karakter van software. Het is afhankelijk van de omgeving waarin de gebruiker werkt.
- Kwaliteitsmanagement โ Biedt een betere methode voor softwareontwikkeling om softwareproducten van hoge kwaliteit te leveren.
Relatie van software-engineering met andere disciplines
Hieronder wordt uitgelegd hoe software engineering zich verhoudt tot andere disciplines:
- Computertechnologie: Het vormt de wetenschappelijke basis voor software, net zoals natuurkunde de basis vormt voor elektrotechniek.
- Bestuurswetenschappen: Softwareontwikkeling is arbeidsintensief werk dat zowel technische als managementvaardigheden vereist. Daarom wordt het veelvuldig toegepast in de managementwetenschappen.
- Economie: In deze sector helpt software engineering bij het inschatten van benodigde middelen en het beheersen van kosten. Er moet een computersysteem worden ontwikkeld en de gegevens moeten regelmatig worden bijgewerkt binnen een bepaald budget.
- Systeemtechniek: De meeste software is een onderdeel van een veel groter systeem, bijvoorbeeld de software in een industrieel monitoringsysteem of de vluchtsoftware van een vliegtuig. Software-engineeringmethoden zouden moeten worden toegepast op de studie van dit soort systemen.
Uitdagingen van software-engineering
Hier zijn enkele cruciale uitdagingen waarmee software-ingenieurs worden geconfronteerd:
- In veiligheidskritieke sectoren zoals de ruimtevaart, de luchtvaart en kerncentrales kunnen de kosten van softwarefouten enorm zijn, omdat er levens op het spel staan.
- Toegenomen marktvraag naar snelle doorlooptijd.
- Omgaan met de toegenomen complexiteit van software die nodig is voor nieuwe toepassingen.
- De diversiteit aan softwaresystemen die met elkaar zouden moeten communiceren.
Kenmerken voor softwareproducten
De kenmerken van een softwareproduct omvatten de eigenschappen die het product vertoont wanneer het wordt geรฏnstalleerd en in gebruik genomen.
Het gaat hier niet om de diensten die het product levert. In plaats daarvan hebben ze betrekking op het dynamische gedrag van het product en het gebruik ervan.
Voorbeelden van deze attributen zijn:
Efficiency, reliability, robustness, maintainability, etc.
Het relatieve belang van deze kenmerken varieert echter van softwaresysteem tot softwaresysteem.
| Productkenmerken | Beschrijving |
|---|---|
| Onderhoudbaarheid | De software moet evolueren om aan de veranderende eisen van de klanten te voldoen. |
| Betrouwbaarheid | Betrouwbaarheid omvat verschillende kenmerken. Betrouwbare software mag nooit fysieke of economische schade veroorzaken op het moment dat het systeem uitvalt. |
| Efficiรซntie | De softwareapplicatie mag geen overmatig gebruik maken van systeembronnen zoals geheugen en processorkracht. |
| Usability | De softwareapplicatie moet een passende gebruikersinterface en documentatie hebben. |
Het optimaliseren van bovenstaande eigenschappen is zeer uitdagend. Het aanbieden van een betere gebruikersinterface kan bijvoorbeeld de systeemefficiรซntie verminderen.
Kenmerken van goede software
Software moet beoordeeld worden op wat het biedt en de methoden die het gebruik ervan vergemakkelijken.
Elke software moet aan de volgende kenmerken voldoen:
- Operationele
- Overgangs
- Onderhoud
Hieronder volgen enkele belangrijke kenmerken van goede software, ontwikkeld door softwareprofessionals.
Operationele
Deze eigenschap laat ons weten hoe goed de software in de praktijk werkt, wat gemeten kan worden aan de hand van:
- Budget
- Efficiรซntie
- Usability
- Betrouwbaarheid
- Juistheid
- Functionaliteit
- Veiligheid
- Security
Overgangs
Dit is een essentieel aspect wanneer de software van het ene platform naar het andere wordt verplaatst:
- Interoperabiliteit
- Herbruikbaarheid
- Draagbaar
- Aanpassingsvermogen
Onderhoud
Dit aspect gaat over hoe goed software zich kan aanpassen aan een snel veranderende omgeving:
- Flexibiliteit
- Onderhoudbaarheid
- modulariteit
- Schaalbaarheid

