Software Engineering

Software engineering er anvendelsen af  ​​en systematisk, disciplineret, målbar tilgang til udvikling , drift og vedligeholdelse af software , såvel som undersøgelsen af ​​disse tilgange; det vil sige anvendelsen af ​​ingeniørdisciplinensoftware ( ISO/IEC/IEEE 24765:2017 ) [1] .

Grundlæggende information

Udtrykket "software engineering" dukkede op for første gang i 1968 på en NATO-konference og havde til formål at stimulere søgen efter løsninger på den " softwarekrise ", der fandt sted på det tidspunkt . Det er siden vokset til professionen som softwareingeniør og et forskningsfelt  dedikeret til at gøre software bedre, mere tilgængelig, bedre understøttet og hurtigere at udvikle.

Money Magazine og Salary.com rangerede softwareingeniør som det bedste job i Amerika i 2006[ afklare ]

Softwareudvikling er relateret til disciplinerne datalogi , projektledelse og systemteknik .

Historie

Da de første moderne digitale computere dukkede op i begyndelsen af ​​1940'erne, var der allerede indbygget sæt af eksekverbare instruktioner i maskinen. Eksperter indså hurtigt, at denne tilgang ikke er særlig praktisk. Sådan blev den "lagrede programarkitektur" eller von Neumann-arkitektur født . Således begyndte opdelingen i "hardware" og "software" med en abstraktion, der blev brugt til at løse problemet med beregningsmæssig kompleksitet.

De første programmeringssprog begyndte at dukke op i 1950'erne, og dette var endnu et vigtigt skridt i abstraktionen. Større sprog som Fortran , Algol og Cobol blev udgivet i slutningen af ​​1950'erne for at løse henholdsvis videnskabelige, algoritmiske og forretningsmæssige problemer. Dijkstra skrev sin berømte artikel "Go To Statement Considered Harmful " i 1968, og David Parnas introducerede nøglebegreberne modularitet og informationsskjul i 1972 for at hjælpe programmører med at håndtere stadigt mere komplekse softwaresystemer. Systemsoftware til styring af hardware kaldet " operativsystem " blev introduceret af Unix i 1969. I 1967 introducerede Simula -sproget konceptet om et objektorienteret programmeringsparadigme .

Disse fremskridt inden for software blev mødt med et stort gennembrud inden for computerteknologi. I midten af ​​1970'erne blev mikrocomputeren introduceret , hvilket gjorde det muligt for hobbyfolk at få deres egen computer og skrive deres egne programmer til den. Dette gav igen anledning til personlige computere (pc'er) og Microsoft Windows . Også i midten af ​​1980'erne fremstår begreber som softwarens livscyklus som en form for konsensus for centraliseret softwareudvikling. I slutningen af ​​1970'erne og begyndelsen af ​​1980'erne kom flere nye simula-lignende objektorienterede programmeringssprog, herunder Smalltalk , Objective-C og C++ .

Open source-software , som dukkede op i begyndelsen af ​​1990'erne, affødte en decentraliseret stil inden for softwareudvikling.

Profession

Lovmæssige krav til licensering og certificering af professionelle softwareingeniører varierer rundt om i verden. I Storbritannien licenserer British Computer Society softwareingeniører, og medlemmer af samfundet kan også blive "certificerede ingeniører" (C.Eng), og i nogle dele af Canada, såsom Alberta, Ontario og Quebec, kan ingeniører 

Arbejde

I 2004 talte US Bureau of Labor Statistics 760.840 softwareingeniører, der arbejdede i USA. I samme periode var der omkring 1,4 millioner praktiserende læger ansat i USA i andre blandede ingeniørfag. På grund af sin relative nyhed som et formelt studieområde undervises softwareteknik ofte som en del af en datalogi-pensum, og mange softwareingeniører er velbevandrede i datalogi.

Mange softwareingeniører arbejder som ansatte eller entreprenører. De arbejder i virksomheder, offentlige myndigheder (civile eller militære) og non-profit organisationer. Nogle ingeniører arbejder som freelancere . Nogle organisationer har specialister til at udføre hver af opgaverne i softwareudviklingsprocessen. Andre kræver en softwareingeniør, der udfører mange eller alle opgaverne på én gang. I store projekter kan folk kun specialisere sig i én rolle. I små mennesker kan tage flere eller alle roller på samme tid.

Specialiseringer omfatter: i industrien: analytikere, softwarearkitekter , udviklere , testere , teknisk support, mellemliggende analytiker, leder; i akademiske kredse: lærere, forskere.

De fleste softwareingeniører og programmører arbejder 40 timer om ugen, og omkring 15 procent af softwareingeniører og 11 procent af programmører arbejdede mere end 50 timer om ugen i 2008. Skader i disse erhverv er sjældne. Men som med andre erhverv, der kræver meget tid foran en computer, er folk i disse erhverv mere tilbøjelige til øjentræthed, rygsmerter og hånd- og håndledslidelser såsom karpaltunnelsyndrom .

Certificering

Software Engineering Institute tilbyder certificering inden for specifikke områder som sikkerhed, procesoptimering og softwarearkitektur. Apple , IBM , Microsoft og andre virksomheder finansierer[ afklare ] egne prøver til certificering. Mange it-certificeringsprogrammer fokuserer på specifikke teknologier og administreres af disse teknologileverandører. Disse certificeringsprogrammer er designet omkring det sted, hvor folk, der bruger disse teknologier, vil blive ansat.

Certificeringsudvidelsen "General Software Development Skills" er tilgængelig gennem forskellige professionelle fællesskaber. I 2006 certificerede IEEE over 575 softwareprofessionelle som "Certified Software Development Professional" (CSDP). I 2008 tilføjede de en entry-level certificering kendt som "Certified Software Development Associate" (CSDA). ACM havde et professionelt certificeringsprogram i begyndelsen af ​​1980'erne, som blev afbrudt på grund af manglende interesse. ACM overvejede også at certificere professionelle softwareingeniører i slutningen af ​​1990'erne, men besluttede i sidste ende, at en sådan certificering ikke var passende for professionel softwareudviklingspraksis.

British Computing Society har udviklet en juridisk anerkendt professionel certificering kaldet Chartered IT Professional (CITP) og er kun tilgængelig for fuldgyldige medlemmer (MBCS). Softwareingeniører er berettiget til medlemskab i Institut for Engineering and Technology og kan kvalificere sig som en Chartered Engineer i overensstemmelse hermed .  I Canada har Canadian Information Processing Society også udviklet en juridisk anerkendt professionel certificering kaldet Information Systems Professional (ISP). I Ontario, Canada, er softwareingeniører, der er uddannet fra Canadian Engineering Accreditation Board (CEAB), med succes bestået Professional Practice Examination (PPE) og har mindst 48 måneders erfaring med softwareingeniør, berettiget til at blive licenseret gennem PEO. ”) og kan blive Professionelle Ingeniører (P.Eng).

Uddannelse

Programmeringsviden er en forudsætning for at blive softwareingeniør. I 2004 udgav IEEE Computer Society SWEBOK , som blev udgivet som ISO/IEC 19759:2004-standarden, der beskriver mængden af ​​viden, de mener, en kvalificeret softwareingeniør med fire års erfaring bør erhverve sig. Mange mennesker går ind i dette erhverv efter at have afsluttet eksamen eller gået på en erhvervsskole. Standardpensum for International Bachelor of Software Engineering blev defineret af CCSE og opdateret i 2004. En række universiteter har softwareingeniørprogrammer. Siden 2010 har der været 244 fuldtidsprogrammer, 70 onlinekurser, 230 specialistprogrammer, 41 forskerprogrammer og 69 certifikatprogrammer i USA. På russiske universiteter er der et separat træningsområde 09.03.04 "Software Engineering".

Ud over de videregående uddannelser finansierer mange virksomheder praktikpladser for studerende, der ønsker at forfølge en karriere inden for informationsteknologi. Disse praksisser kan vise den studerende interessante virkelige udfordringer, som softwareingeniører står over for hver dag. Lignende erfaring kan opnås gennem militærtjeneste inden for software engineering.

Sammenligning med andre discipliner

De vigtigste forskelle mellem softwareteknik og andre ingeniørdiscipliner er ifølge nogle forskere de forskellige produktionsomkostninger. [2]

Noter

  1. ISO/IEC/IEEE 24765:2017 Systems and software engineering - Ordforråd . Hentet 20. april 2019. Arkiveret fra originalen 20. april 2019.
  2. Young, Michal; Faulk, Stuart. Deling af det, vi ved om softwareudvikling // Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10  ) . - ACM, 2010. - S. 439-442. — ISBN 978-1-4503-0427-6 . - doi : 10.1145/1882362.1882451 . . - "Den væsentlige skelnen mellem software og andre konstruerede artefakter har altid været fraværet af fremstillingsomkostninger. I konventionel konstruktion af fysiske artefakter har omkostningerne til materialer og fremstilling domineret omkostningerne ved design og sat en kontrol af kompleksiteten af ​​artefakter, der kan designes. Når én flaskehals fjernes, dukker der andre op, og softwareingeniør har derfor stået over for de væsentlige udfordringer med kompleksitet og omkostningerne ved design i et omfang, som konventionel teknik ikke har. Software engineering har fokuseret på problemer i håndtering af kompleksitet, fra proces til modulært design til omkostningseffektiv verifikation, fordi det er det primære løftestangspunkt, når omkostningerne til materialer og fremstilling er nul."

Litteratur

Links