Hvad er Software Engineering? Definition, Grundlæggende, Karakteristika

Hvad er software engineering?

Software engineering er defineret som en proces til at analysere brugerkrav og derefter designe, bygge og teste softwareapplikationer, som vil opfylde disse krav.

Lad os se på de forskellige definitioner af software engineering:

  • IEEE, i sin standard 610.12-1990, definerer software engineering som anvendelsen af ​​en systematisk, disciplineret, som er en beregnelig tilgang til udvikling, operation og vedligeholdelse af software.
  • Fritz Bauer definerede det som 'etableringen og brugte standardtekniske principper. Det hjælper dig med at opnå økonomisk software, som er pålidelig og fungerer effektivt på de rigtige maskiner«.
  • Boehm definerer software engineering, som involverer 'den praktiske anvendelse af videnskabelig viden til kreativt design og opbygning af computerprogrammer. Det inkluderer også tilhørende dokumentation, der er nødvendig for at udvikle, operating, og vedligeholde dem.'

Hvorfor Software Engineering? Softwarekrise og dens løsning

Hvad var softwarekrisen?

  • Det var i slutningen af ​​1960'erne, da mange softwareprojekter mislykkedes.
  • Mange software blev over budgettet. Output var en upålidelig software, som er dyr at vedligeholde.
  • Større software var vanskelig og ret dyr at vedligeholde.
  • Masser af software er ikke i stand til at tilfredsstille growing kundens krav.
  • Complexsoftware-projekter steg, hver gang dets hardwarekapacitet blev øget.
  • Efterspørgslen efter ny software steg hurtigere sammenlignet med evnen til at generere ny software.

Alle ovenstående problemer fører til "Software Crisis".

Løsningen

Løsningen på problemet var at omdanne uorganiseret kodningsindsats til en softwareingeniørdisciplin. Disse ingeniørmodeller hjalp virksomheder med at strømline operaog levere software, der opfylder kundernes krav.

  • I slutningen af ​​1970'erne så den udbredte anvendelse af software engineering principper.
  • I 1980'erne så automatiseringen af ​​software engineering-processen og væksten af ​​(CASE) Computer-Aided Software Engineering.
  • 1990'erne har set en øget vægt på 'ledelse' aspekter af projekters kvalitetsstandard og processer ligesom ISO 9001

Hvorfor er softwareteknologi populært?

Her er vigtige årsager bag populariteten af ​​software engineering:

Hvorfor Software Engineering er populær

  • Stor software – I vores virkelige liv er det meget mere behageligt at bygge en mur end et hus eller en bygning. På samme måde, når størrelsen af ​​softwaren bliver stor, hjælper softwareteknologi dig med at bygge software.
  • Skalerbarhed- Hvis softwareudviklingsprocessen var baseret på videnskab og teknik concepts, er det nemmere at genskabe ny software for at skalere en eksisterende.
  • Tilpasningsevne: Når softwareprocessen var baseret på videnskab og teknik, er det nemt at genskabe ny software ved hjælp af softwareteknologi.
  • Koste- Hardwareindustrien har vist sine færdigheder, og enorm produktion har sænket omkostningerne til computer og eltronic hardware.
  • Dynamisk natur– Altid growing og tilpasning af softwarens karakter. Det afhænger af det miljø, som brugeren arbejder i.
  • Quality Management: Tilbyder en bedre metode til softwareudvikling for at levere kvalitetssoftwareprodukter.

Software Engineerings forhold til andre discipliner

Her, hvordan software engineering relateret til andre discipliner:

  • Computer videnskab: Giver det videnskabelige foundation for softwaren som elektroteknik afhænger hovedsageligt af fysik.
  • Ledelsesvidenskab: Software engineering er arbejdskrævende arbejde, som kræver både teknisk og ledelsesmæssig kontrol. Derfor er det meget brugt i ledelsesvidenskab.
  • Økonomi: I denne sektor hjælper software engineering dig med ressourcevurdering og omkostningskontrol. Computersystem skal udvikles, og data skal vedligeholdes regelmæssigt inden for et givet budget.
  • Systemteknik: Det meste software er en komponent i et meget større system. For eksempel softwaren i et industriovervågningssystem eller flyvesoftwaren på et fly. Software engineering metoder bør anvendes til studiet af denne type systemer.

Udfordringer ved Software Engineering

Her er nogle kritiske udfordringer, som softwareingeniører står over for:

  • I sikkerhedskritiske områder som rumfart, luftfart, atomkraftværker osv. kan omkostningerne ved softwarefejl være enorme, fordi liv er i fare.
  • Øgede markedskrav til hurtig ekspeditionstid.
  • Håndtering af den øgede complexsoftwarebehov for nye applikationer.
  • Mangfoldigheden af ​​softwaresystemer bør kommunikere med hinanden.

Attributter til softwareprodukter

Ethvert softwareprodukts egenskaber omfatter funktioner, som er displayed af produktet, når det er installeret og taget i brug.

De er ikke de tjenester, der leveres af produktet. I stedet har de forholdt sig til produkternes dynamiske adfærd og brugen af ​​produktet.

Eksempler på disse attributter er:

Efficiency, reliability, robustness, maintainability, etc. 

Imidlertid varierer den relative betydning af disse egenskaber fra et softwaresystem til et andet.

Produktresuméet Beskrivelse
Maintainability Softwaren skal udvikle sig for at imødekomme kundernes skiftende krav.
Driftssikkerhed Pålidelighed omfatter forskellige egenskaber. Pålidelig software bør aldrig forårsage fysisk eller økonomisk skade på tidspunktet for systemfejl.
Effektivitet Softwareapplikationen bør overforbruge systemressourcer som hukommelse og processorcyklus.
Usability Softwareapplikationen skal have specifik brugergrænseflade og dokumentation.

At optimere ovenstående egenskab er meget udfordrende. For eksempel kan en bedre brugergrænseflade reducere systemets effektivitet.

Karakteristika for god software

Enhver software bør bedømmes ud fra, hvad den tilbyder, og hvad er de metoder, der hjælper dig med at bruge den.

Hver software skal opfylde following egenskaber:

  • Operanale
  • Transitional
  • Vedligeholdelse

Her er nogle vigtige egenskaber ved god software udviklet af softwareprofessionelle

Operanale

Denne egenskab fortæller os, hvor godt software fungerer i operationer, der kan måles på:

  • budget
  • Effektivitet
  • Usability
  • Driftssikkerhed
  • Korrekthed
  • Funktionalitet
  • Sikkerhed
  • Sikkerhed

Transitional

Dette er et væsentligt aspekt, når softwaren flyttes fra en platform til en anden:

  • Interoperaheden
  • Reus Evne
  • Overførsel
  • Tilpasningsevne

Vedligeholdelse

Dette aspekt taler om, hvor godt software har evnerne til at tilpasse sig selv i det hurtigt skiftende miljø:

  • Fleksibilitet
  • Maintainability
  • modularitet
  • Skalerbarhed

Resumé

  • Software engineering er en proces til at analysere brugerkrav og derefter designe, bygge og teste softwareapplikationer, som vil opfylde disse krav
  • Vigtige grunde til at bruge software engineering er: 1) Stor software, 2) Skalerbarhed 3) Tilpasningsevne 4) Omkostninger og 5) Dynamic Nature.
  • I slutningen af ​​1960'erne bliver meget software over budgettet. Derfor tilbyder den upålidelig software, som er dyr at vedligeholde.
  • I slutningen af ​​1970'erne så den udbredte anvendelse af software engineering principper.
  • Software engineering koncept 1) Datalogi 2) Management Science 3) System engineering og 4) Økonomi
  • Øgede markedskrav til hurtig ekspeditionstid er de største udfordringer inden for softwareingeniørområdet.
  • 1) Vedligeholdelse, 2) Pålidelighed, 3) Effektivitet og 4) Brugervenlighed er de vigtigste egenskaber ved softwareprodukter.
  • Tre vigtigste egenskaber ved god software er 1) Operational 2) Transitional 3) Vedligeholdelse.