Programvareutvikling

Software engineering ( software engineering på engelsk ) er den datavitenskapelige disiplinen som omhandler produksjonsprosesser og utviklingsmetodologier rettet mot å lage programvaresystemer [1] . Den foreslår en rekke mål knyttet til utviklingen av programvareutvikling (forstått som en industriell aktivitet ) både fra et teknologisk synspunkt (f.eks. gjennom definisjonen av nye programmeringsspråk ) og metodisk (for eksempel forbedring av programvarens livssyklus ).

Historie

Behovet for å lage en teoretisk-praktisk disiplin som utelukkende omhandler utvikling av programvare oppstår, rundt slutten av sekstitallet , fra behovet for å utvikle stadig mer komplekse og avanserte produkter som svarer på forespørsler fra store brukere, og gir strenghet og disiplin. toppmoderne programvareutvikling i store selskaper.

Mer presist, fra 1950 til 1965 var programvareutvikling noe begrenset: mange programmer ble utviklet batchvis , informatikere var få og de lærte i feltet. Det som ble utviklet var designet for en enkelt kunde, dessuten jobbet bare én person og ville ha jobbet med hvert prosjekt, vanligvis uten å skrive noen programvaredokumentasjon . Fram til fødselen av programvareteknikk var produksjonen av dataprodukter bare en programmeringsaktivitet utført ved bruk av disipliner som:

Programmering besto først og fremst i å sette sammen en sekvens av kildekodeinstruksjoner for å utføre svært spesifikke oppgaver.

Fra 1965 til 1975 er vi vitne til utviklingen av programvare utviklet for flere brukere og for sanntidssystemer . I løpet av denne perioden begynner utviklingen av programvarepakker og det dukker opp en rekke problemer, for eksempel administrasjon og vedlikehold av programvaren.

I 1968 gjorde NATO -konferansen som ble holdt i Garmisch , Tyskland , klart problemet med manglende evne til å produsere pålitelig og kompatibel programvare i tide. Fra 1972 og frem til 1988 ble nye teknologier introdusert, distribuerte systemer ble født og figuren til datasystemdesigneren ble etablert (den som senere skulle bli kalt programvarearkitekt ). Kostnaden for maskinvare synker betraktelig og som et resultat begynner datateknologi å spre seg raskt. Kvalitetsnivået på programvaren øker, men utviklingen er fortsatt begrenset til vitenskapelige og militære prosjekter, og først senere, etter å ha gjennomgått en lang testfase , introduseres programvaren i industrien. Organisasjoner som Pentagon presser sterkt på studiet av modeller som gjør det mulig å minimere mengden feil i programvare.

Med introduksjonen av informasjonsteknologi også i den industrielle og kommersielle sektoren, fra 1988 , føler bassenger av brukere som ikke lenger er tekniske behov for å datastyre strukturene sine. I denne perioden ble objektorientert programmering født , det er en tendens til å kontrollere programvareutviklingen, og prøve å utvikle kvalitetsprodukter, også på grunn av konkurransen som har etablert seg blant programvarehusene . Vi prøver å ta vare på det grafiske grensesnittet som presenteres for brukeren så mye som mulig, da brukertypen også har endret seg. Fra disse behovene oppstår møtet mellom kravene til klientbedriften og funksjonene som programmereren skal implementere.

Et konsept er utviklet analogt med samlebåndoptimaliseringer i industrier fra det tjuende århundre , som på samme måte hadde forstyrret måten mekanisk utstyr ble produsert på. Det vil si at vi prøver å identifisere fokuspunktene som må styre etableringen av et godt programvareprodukt, men fremfor alt prøver vi å formelt definere hva et godt programvareprodukt kan beskrive.

Beskrivelse

Grunnleggende konsepter

Programvareteknikk identifiserer en formalisering av prosessen med analyse , design , konstruksjon og vedlikehold av et datasystem. For denne assosiasjonen med en nesten biologisk idé om livet, snakker vi ofte om livssyklusen til en programvare, et konsept som har fått økende betydning gjennom flere tiår, gradvis forlater ideen om programvare som en artefakt og flytter til en ideen om programvare som et industrielt produkt. Behovet for å lage en vitenskap som omhandler implementering av informasjonssystemer oppstår fra behovet for å utvikle stadig mer komplekse og avanserte produkter som oppfyller behovene for riktighet til sluttproduktet og enkelt vedlikehold av det.

Programvare som et industrielt produkt blir også gjenstand for nøye gransking for å utvide produksjonskapasiteten. I praksis er et konsept som ligner på samlebåndsoptimaliseringer for industrien i forrige århundre født . Vi prøver derfor i programvareutvikling å identifisere de målene som programvareindustrien bryr seg om, for eksempel kvaliteten på programvaren som lages og fremfor alt å gi ut et godt dokumentert og lett "vedlikeholdbart" produkt.

Den nye vitenskapen, programvareteknikk, er faktisk opptatt av å realisere disse behovene, gjennom definisjonen av modeller som lar team av teknikere samarbeide med stadig mer avanserte og kvalitetsprodukter. Programvareteknikk definerer derfor et sett med prosesser, eller sekvenser av faser som identifiserer spesifikke trinn i opprettelsen av et programvaresystem, alle dokumentert og inspiserbare, som i hovedsak gir tilstrekkelig synlighet til de forskjellige typene brukere av systemet, for kontroll av individuelle produkter og/eller for vedlikehold.

Fasene til Software Engineering eller Systems Engineering

Hvert programvareutviklingsdomene kan grupperes kortfattet i bare 5 trinn:

Husk at disse fem trinnene vi har listet opp for en programvareutviklingsprosess ikke bør tas som en regel eller standard. [2]

Programvareproduksjon i det tredje årtusen

Selv i dag legger bedrifter vekt på behovet for å definere programvareutviklingsprosesser som gjør det mulig å overholde de frister som er satt for å redusere kostnadene ved å produsere produktene selv. Ulike programvarelivssykluser identifiseres , dvs. forskjellige prosesser som kan oppdateres av et team for å nå et felles resultat. Hver av disse forskjellige prosessene identifiserer en rekke nøkkeltrinn som skal følges for til slutt å lage et programvareprodukt som oppfyller kravene. Programvareteknikk omfatter disse og mange andre elementer, og definerer en vitenskap som faktisk bryr seg om hvordan man ikke lenger lar en enkelt person, men et team av mange utviklere, lage god programvare. Ulike brukere genererer ulike krav [3] og nye behov i realiseringen av en programvare.

I dag gjenstår problemet med å produsere programvaresystemer av formidabel størrelse med forhåndsbestemte tider og kostnader, enormt økt sammenlignet med programvarepakkene for noen tiår siden. For disse situasjonene befinner den nyfødte vitenskapen seg ofte i vanskeligheter og behovet for mer avanserte teorier føles. Hvis den opprinnelige tilnærmingen var basert på konseptene fra den mekaniske industrien fra det tidlige tjuende århundre ( tider og metoder ), nå er det forstått at denne tilnærmingen er utilstrekkelig: i den mekaniske industrien snakker vi nå om en immateriell fabrikk som består av kunnskap om ansatte, fra forholdet mellom dem, fra de vanlige ambisjonene; enda mer for programvarefabrikken. I tillegg har mange forstått de originale egenskapene til programvareproduktet (først av alt immateriellheten til hovedproduktet - den kjørbare koden) som fører til behovet for mindre kjente teknologier i andre sektorer: den viktigste av disse teknologiene er sannsynligvis konfigurasjon kontroll (som selskaper).

Universitetssystem

I Italia

I det italienske universitetssystemet er det spesialiserte grader i programvareteknikk. De tar sikte på å spesialisere IT innen de ulike feltene som disiplinen kan brukes på: fra komplekse systemer og sanntidssystemer , til innebygde , opp til distribuerte og bedriftssystemer. Mastergradene i programvareteknikk er for eksempel de ved University of L'Aquila [4] , Free University of Bolzano [5] og Polytechnic University of Torino [6] som inkluderer doble utenlandske gradskurs. For de treårige gradene er det derimot lærestoler og undervisning i programvareteknikk ved det naturvitenskapelige fakultetet for gradskursene i informatikk , datateknikk og informasjonsteknologi og teknologier for programvareproduksjon .

Merknader

  1. ^ For IEEE Standard 610.12-1990 er bruken av en systematisk, disiplinert og kvantifiserbar tilnærming innen programvareutvikling, drift og vedlikehold
  2. ^ De 5 stadiene av programvareutvikling - Infographic | Software Engineering and Requirements Analysis , på engineeringdelsoftware.online . Arkivert fra originalen 12. januar 2020 .
  3. ^ chicoalff, Como escrever uma User Story fantástica | Software Engineering and Requirements Analysis , på engineeringdelsoftware.online . Arkivert fra originalen 12. januar 2020 .
  4. ^ [1]
  5. ^ [2]
  6. ^ [3]

Relaterte elementer

Andre prosjekter

Eksterne lenker