Wat is software-engineering? Definitie, basis, kenmerken

Wat is Software Engineering?

Software-engineering wordt gedefinieerd als een proces waarbij gebruikersvereisten worden geanalyseerd en vervolgens softwareapplicaties worden ontworpen, gebouwd en getest die aan deze vereisten voldoen.

Laten we eens kijken naar de verschillende definities van software-engineering:

  • De IEEE definieert software engineering in haar norm 610.12-1990 als de toepassing van een systematische, gedisciplineerde (berekenbare) aanpak voor de ontwikkeling, bediening en het onderhoud van software.
  • Fritz Bauer definieerde het als 'de gevestigde orde en gebruikte standaard technische principes. Het helpt u om op een voordelige manier software te verkrijgen die betrouwbaar is en efficiënt werkt op de echte machines.'
  • Boehm definieert software engineering als 'de praktische toepassing van wetenschappelijke kennis op het creatieve ontwerp en de bouw van computerprogramma's. Het omvat ook bijbehorende documentatie die nodig is voor het ontwikkelen, 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 software raakte boven het budget. De output was onbetrouwbare software die duur is in onderhoud.
  • Grotere software was moeilijk en vrij duur in onderhoud.
  • Er is veel software die niet aan de groeiende eisen van de klant kan voldoen.
  • De complexiteit van softwareprojecten nam toe naarmate de hardwarecapaciteit toenam.
  • De vraag naar nieuwe software nam sneller toe vergeleken met de mogelijkheid om nieuwe software te genereren.

Alle bovenstaande problemen leiden tot een 'softwarecrisis'.

De oplossing

De oplossing voor het probleem was het transformeren van ongeorganiseerde coderingsinspanningen naar een software engineering discipline. Deze engineering modellen hielpen bedrijven om hun activiteiten te stroomlijnen en software te leveren die aan de eisen van de klant voldeed.

  • Eind jaren zeventig zagen we het wijdverbreide gebruik van software-engineeringprincipes.
  • In de jaren tachtig zag de automatisering van het software-engineeringproces en de groei van (CASE) Computer-Aided Software Engineering.
  • In de jaren negentig is er steeds meer nadruk gelegd op de 'management'-aspecten van projecten, kwaliteitsnormen en processen, net als ISO 1990

Waarom software-engineering populair is?

Hier zijn belangrijke redenen achter de populariteit van software-engineering:

Waarom software-engineering populair is

  • Grote software – In ons echte leven is het veel comfortabeler om een ​​muur te bouwen dan een huis of gebouw. Op dezelfde manier, als de omvang van de software groot wordt, helpt software-engineering u bij het bouwen van software.
  • schaalbaarheid- Als het softwareontwikkelingsproces gebaseerd zou zijn op wetenschappelijke en technische concepten, is het eenvoudiger om nieuwe software te creëren en bestaande software op te schalen.
  • Aanpassingsvermogen: Wanneer het softwareproces gebaseerd was op wetenschap en techniek, is het gemakkelijk om nieuwe software opnieuw te creëren met behulp van software-engineering.
  • Kosten- De hardware-industrie heeft haar vaardigheden bewezen en de grootschalige productie heeft de kosten van computers en elektronische hardware verlaagd.
  • Dynamische natuur– Altijd groeiende en aanpassende aard van de software. Het hangt af van de omgeving waarin de gebruiker werkt.
  • Kwaliteitsmanagement : Biedt een betere methode voor softwareontwikkeling om hoogwaardige softwareproducten te leveren.

Relatie van software-engineering met andere disciplines

Hier hoe software-engineering zich verhoudt tot andere disciplines:

  • Computertechnologie: Geeft de wetenschappelijke basis voor de software, aangezien elektrotechniek voornamelijk afhankelijk is van natuurkunde.
  • Bestuurswetenschappen: Software-engineering is arbeidsintensief werk dat zowel technische als managementcontrole vereist. Daarom wordt het veel gebruikt in de managementwetenschappen.
  • Economie: In deze sector helpt software-engineering u bij het inschatten van hulpbronnen en het beheersen van de kosten. Er moeten computersystemen worden ontwikkeld en de gegevens moeten binnen een bepaald budget regelmatig worden onderhouden.
  • Systeemtechniek: De meeste software is een onderdeel van een veel groter systeem. Bijvoorbeeld de software in een Industry monitoringsysteem of de vluchtsoftware in een vliegtuig. Software-engineeringmethoden moeten worden toegepast op de studie van dit soort systemen.

Uitdagingen van software-engineering

Hier zijn enkele cruciale uitdagingen waarmee software-ingenieurs worden geconfronteerd:

  • Op veiligheidskritische gebieden zoals de ruimtevaart, de luchtvaart, kerncentrales, enz. kunnen de kosten van softwarestoringen enorm oplopen omdat levens in gevaar zijn.
  • Toegenomen marktvraag naar snelle doorlooptijd.
  • Omgaan met de toegenomen complexiteit van software vraagt ​​om nieuwe applicaties.
  • De diversiteit aan softwaresystemen moet met elkaar communiceren.

Kenmerken voor softwareproducten

De kenmerken van een softwareproduct omvatten functies die door het product worden weergegeven wanneer het wordt geïnstalleerd en in gebruik wordt genomen.

Het zijn niet de diensten die door het product worden geleverd. In plaats daarvan hebben ze betrekking op het dynamische gedrag van het product en het gebruik dat van het product wordt gemaakt.

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ënt: De softwareapplicatie moet systeembronnen zoals geheugen en processorcyclus overmatig gebruiken.
Usability De softwareapplicatie moet een specifieke gebruikersinterface en documentatie hebben.

Het optimaliseren van het bovenstaande kenmerk is een grote uitdaging. Het aanbieden van een betere gebruikersinterface kan bijvoorbeeld de systeemefficiëntie verminderen.

Kenmerken van goede software

Elke software moet worden beoordeeld op basis van wat deze biedt en welke methoden u helpen deze te gebruiken.

Elke software moet aan de volgende kenmerken voldoen:

  • Operationele
  • Overgangs
  • Onderhoud

Hier volgen enkele belangrijke kenmerken van goede software die is ontwikkeld door softwareprofessionals

Operationele

Deze eigenschap geeft ons inzicht in hoe goed software werkt in de operationele processen, wat gemeten kan worden aan de hand van:

  • Budget
  • Efficiënt:
  • Usability
  • Betrouwbaarheid
  • Juistheid
  • Functionaliteit
  • Veiligheid
  • Beveiliging

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 het vermogen heeft om zichzelf aan te passen in de snel veranderende omgeving:

  • Flexibiliteit
  • Onderhoudbaarheid
  • modulariteit
  • Schaalbaarheid

Samenvatting

  • Software-engineering is een proces waarbij gebruikersvereisten worden geanalyseerd en vervolgens softwareapplicaties worden ontworpen, gebouwd en getest die aan die vereisten voldoen
  • Belangrijke redenen voor het gebruik van software-engineering zijn: 1) Grote software, 2) Schaalbaarheid 3) Aanpassingsvermogen 4) Kosten en 5) Dynamisch karakter.
  • Eind jaren zestig raakt veel software boven het budget. Daarom biedt het onbetrouwbare software die duur is in onderhoud.
  • Eind jaren zeventig zagen we het wijdverbreide gebruik van software-engineeringprincipes.
  • Software-engineeringconcept 1) Computerwetenschappen 2) Managementwetenschappen 3) Systeemtechniek en 4) Economie
  • De toegenomen marktvraag naar snelle doorlooptijden zijn de grootste uitdagingen op het gebied van software-engineering.
  • 1) Onderhoudbaarheid, 2) Betrouwbaarheid, 3) Efficiëntie en 4) Gebruiksvriendelijkheid zijn de belangrijkste kenmerken van softwareproducten.
  • Drie belangrijkste kenmerken van goede software zijn 1) Operationeel 2) Transitioneel 3) Onderhoud.