Wat is software engineering?
Software engineering wordt gedefinieerd als een proces van het analyseren van gebruikersvereisten en vervolgens het ontwerpen, bouwen en testen van softwareapplicaties die aan deze vereisten voldoen.
Laten we eens kijken naar de verschillende definities van software engineering:
- IEEE definieert software engineering in zijn standaard 610.12-1990 als de toepassing van een systematische, gedisciplineerde, wat een berekenbare benadering is voor de ontwikkeling, bediening en onderhoud van software.
- Fritz Bauer definieerde het als 'de oprichting en gebruikte standaard technische principes. Het helpt u om economisch software te verkrijgen die betrouwbaar is en efficiënt werkt op de echte machines '.
- Boehm definieert software engineering, wat inhoudt: 'de praktische toepassing van wetenschappelijke kennis op het creatieve ontwerp en de bouw van computerprogramma's. Het bevat ook de bijbehorende documentatie die nodig is voor het ontwikkelen, gebruiken en onderhouden ervan. '
In deze zelfstudie over software-engineering leert u:
- Wat is software engineering?
- Waarom software engineering? Softwarecrisis en de oplossing ervan
- Waarom is software-engineering populair?
- Relatie tussen software engineering en andere disciplines
- Uitdagingen van software-engineering
- Kenmerken voor softwareproducten
- Kenmerken van goede software
Waarom software engineering? Softwarecrisis en de oplossing ervan:
Wat was de softwarecrisis?
- Eind jaren zestig mislukten veel softwareprojecten.
- Veel software overschreed het budget. De output was een onbetrouwbare software die duur is om te onderhouden.
- Grotere software was moeilijk en vrij duur om te onderhouden.
- Veel software kan niet voldoen aan de groeiende eisen van de klant.
- De complexiteit van softwareprojecten nam toe naarmate de hardwarecapaciteit toenam.
- De vraag naar nieuwe software nam sneller toe in vergelijking met de mogelijkheid om nieuwe software te genereren.
Alle bovenstaande problemen leiden tot 'Softwarecrisis'.
De oplossing
De oplossing voor het probleem was het transformeren van ongeorganiseerde codeerinspanningen in een software-engineeringdiscipline. Deze technische modellen hielpen bedrijven hun activiteiten te stroomlijnen en software te leveren die aan de eisen van de klant voldeed.
- Aan het eind van de jaren zeventig werd op grote schaal gebruik gemaakt van de principes van software engineering.
- In de jaren 1980 zag de automatisering van het software-engineeringproces en de groei van (CASE) Computer-Aided Software Engineering.
- In de jaren negentig is er een toenemende nadruk gekomen op de 'management'-aspecten van de kwaliteit van projecten en processen, net als ISO 9001
Waarom is software-engineering populair?
Hier zijn belangrijke redenen achter de populariteit van software engineering:
- Grote software - In ons echte leven is het veel comfortabeler om een muur te bouwen dan een huis of gebouw. Op dezelfde manier, naarmate de omvang van de software groot wordt, helpt software engineering u bij het bouwen van software.
- Schaalbaarheid - Als het softwareontwikkelingsproces was gebaseerd op wetenschappelijke en technische concepten, is het gemakkelijker om nieuwe software opnieuw te maken om een bestaande 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 zijn vaardigheden getoond en de enorme productie heeft de kosten van de computer en elektronische hardware verlaagd.
- Dynamische aard - Altijd groeiende en aanpassende aard van de software. Het hangt af van de omgeving waarin de gebruiker werkt.
- Kwaliteitsbeheer : biedt een betere methode voor softwareontwikkeling om softwareproducten van hoge kwaliteit te leveren.
Relatie tussen software engineering en andere disciplines
Hier, hoe software engineering gerelateerd is aan andere disciplines:
- Computerwetenschappen: geeft de wetenschappelijke basis voor de software, aangezien elektrotechniek voornamelijk afhankelijk is van natuurkunde.
- Managementwetenschap: Software engineering is arbeidsintensief werk dat zowel technische als bestuurlijke controle vereist. Daarom wordt het veel gebruikt in de managementwetenschap.
- Economie: in deze sector helpt software engineering u bij het inschatten van middelen en kostenbeheersing. Er moet een computersysteem worden ontwikkeld en de gegevens moeten binnen een bepaald budget regelmatig worden bijgehouden.
- System Engineering: 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 type systemen.
Uitdagingen van software-engineering
Hier zijn enkele kritieke uitdagingen waarmee software-ingenieurs worden geconfronteerd:
- In veiligheidskritische gebieden zoals de ruimte, de luchtvaart, kerncentrales, enz. Kunnen de kosten van softwarefouten enorm zijn omdat er levens op het spel staan.
- Verhoogde marktvraag naar snelle doorlooptijden.
- Omgaan met de toegenomen complexiteit van software die nodig is voor nieuwe toepassingen.
- De diversiteit aan softwaresystemen zou met elkaar moeten communiceren.
Kenmerken voor softwareproducten
Tot de kenmerken van elk softwareproduct behoren functies die door het product worden weergegeven wanneer het wordt geïnstalleerd en in gebruik wordt genomen.
Dit zijn niet de diensten die door het product worden geleverd. In plaats daarvan hebben ze betrekking op het dynamische gedrag van de producten 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 verschilt echter van het ene softwaresysteem tot het andere.
Producteigenschappen | Omschrijving |
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 aanrichten op het moment dat het systeem uitvalt. |
Efficiëntie | De softwaretoepassing moet systeembronnen zoals geheugen en processorcyclus te veel gebruiken. |
Bruikbaarheid | De softwaretoepassing 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 wat het biedt en wat zijn de methoden die u helpen om het te gebruiken.
Elke software moet voldoen aan de volgende kenmerken:
- Operationeel
- Overgang
- Onderhoud
Hier zijn enkele belangrijke kenmerken van goede software die is ontwikkeld door softwareprofessionals
Operationeel
Dit kenmerk laat ons weten hoe goed software werkt in de bewerkingen die kunnen worden gemeten op:
- Begroting
- Efficiëntie
- Bruikbaarheid
- Betrouwbaarheid
- Juistheid
- Functionaliteit
- Veiligheid
- Veiligheid
Overgang
Dit is een essentieel aspect wanneer de software van het ene platform naar het andere wordt verplaatst:
- Interoperabiliteit
- Herbruikbaarheid
- Draagbaarheid
- Aanpassingsvermogen
Onderhoud
Dit aspect vertelt hoe goed software de mogelijkheden heeft om zich aan te passen in de snel veranderende omgeving:
- Flexibiliteit
- Onderhoudbaarheid
- Modulariteit
- Schaalbaarheid
Overzicht
- Software engineering is een proces van het analyseren van gebruikersvereisten en vervolgens het ontwerpen, bouwen en testen van softwareapplicaties die aan die vereisten voldoen
- Belangrijke redenen om software engineering te gebruiken zijn: 1) Grote software, 2) Schaalbaarheid 3) Aanpassingsvermogen 4) Kosten en 5) Dynamische aard.
- Eind jaren zestig raakt veel software het budget te boven. Daarom biedt het onbetrouwbare software die duur is om te onderhouden.
- Aan het eind van de jaren zeventig werd op grote schaal gebruik gemaakt van de principes van software engineering.
- Software engineering concept 1) Computer Science 2) Management Science 3) System engineering en 4) Economie
- De toegenomen vraag vanuit de markt naar een snelle doorlooptijd is de grootste uitdaging op het gebied van software engineering.
- 1) Onderhoudbaarheid, 2) Betrouwbaarheid, 3) Efficiëntie en, 4) Bruikbaarheid zijn de belangrijkste kenmerken van softwareproducten.
- Drie belangrijkste kenmerken van goede software zijn 1) Operationeel 2) Overgangsmatig 3) Onderhoud.