Oversigt over software engineering - Outline of software engineering
Følgende oversigt er givet som en oversigt over og aktuel guide til software engineering:
Software engineering - anvendelse af en systematisk, disciplineret, kvantificerbar tilgang til udvikling, drift og vedligeholdelse af software ; det er anvendelsen af teknik til software .
ACM Computing Classification-systemet er en polyhierarkisk ontologi, der organiserer feltets emner og kan bruges i semantiske webapplikationer og som et defacto standardklassificeringssystem for feltet. Det store afsnit "Software og dets teknik" indeholder en oversigt og ontologi til software engineering.
Teknologier og praksis
Dygtige softwareingeniører bruger teknologier og praksis fra en række forskellige områder til at forbedre deres produktivitet til at skabe software og forbedre kvaliteten af det leverede produkt.
Softwareapplikationer
Softwareingeniører bygger software ( applikationer , operativsystemer , systemsoftware ), som folk bruger.
Applikationer påvirker softwareteknik ved at presse udviklere til at løse problemer på nye måder. For eksempel understreger forbrugersoftware lave omkostninger, medicinsk software lægger vægt på høj kvalitet, og internethandelssoftware lægger vægt på hurtig udvikling.
- Business software
-
Analytics
- Data mining er nært knyttet til databasen
- Beslutningsstøttesystemer
- Fly reservationer
-
Bankvirksomhed
- Automatiserede kasseringsmaskiner
- Tjek behandling
- Kreditkort
-
Handel
- Handle
- Auktioner (f.eks. EBay)
- Omvendte auktioner (indkøb)
- Stregkodescannere
- Kompilatorer
-
Meddelelse
- Instant messengers
- VOIP
- Kalendere - planlægning og koordinering
- Kontakt ledere
-
Computer grafik
- Animation
- Specialeffekter til video og film
- Redigering
- Efterbehandling
- Kryptografi
- Databaser , understøtter næsten alle felter
-
Indlejrede systemer Både softwareingeniører og traditionelle ingeniører skriver softwarekontrolsystemer til integrerede produkter.
- Automotive software
- Avionics software
- Varme ventilations- og klimaanlæg ( HVAC ) software
- Software til medicinsk udstyr
- Telefoni
- Telemetri
- Engineering Alle traditionelle ingeniørgrener bruger software i vid udstrækning. Ingeniører bruger regneark, mere end de nogensinde har brugt regnemaskiner. Ingeniører bruger brugerdefinerede softwareværktøjer til at designe, analysere og simulere deres egne projekter, f.eks. Broer og kraftledninger. Disse projekter ligner i mange henseender software, fordi arbejdet eksisterer som elektroniske dokumenter og gennemgår analyser, design , implementering og testfaser. Softwareværktøjer til ingeniører bruger principperne i datalogi; såvel som principperne i beregning, fysik og kemi.
- Fil
- Finansiere
- Spil
- Informationssystemer , understøtter næsten alle områder
- Logistik
- Fremstilling
- musik
- Netværksstyring
- Netværk og internet
- Kontorsuiter
- Operativsystemer
- Robotik
-
Signalbehandling , kodning og fortolkning af signaler
- Billedbehandling , kodning og fortolkning af visuel information
- Tale behandling
- Tekstgenkendelse
- Håndskriftsgenkendelse
-
Simulering , understøtter næsten alle felter.
- Engineering , En software simulering kan være billigere at bygge og mere fleksibelt at ændre end en fysisk teknisk model .
- Videnskaber
- Videnskaber
- Trafikkontrol
-
Uddannelse
- Bore
- Simulering
- Test
- Visualisering understøtter næsten alle felter
- Afstemning
- Internettet
Software engineering emner
Mange teknologier og praksis er (for det meste) begrænset til software engineering, selvom mange af disse deles med datalogi .
Programmeringsparadigme, baseret på en programmeringssprogsteknologi
- Objektorienteret programmering
- Aspektorienteret programmering
- Funktionel nedbrydning
- Struktureret programmering
- Regelbaseret programmering
Databaser
Grafiske brugergrænseflader
- GTK+ GIMP Toolkit
- wxWidgets
- Ultimate ++
- Qt værktøjskasse
- FLTK
Programmeringsværktøjer
-
Konfigurationsstyring og kildekodehåndtering
- CVS
- Subversion
- Git
- Mercurial
- RCS
- GNU Arch
- LibreSource Synchronizer
- Team Foundation Server
- Visual Studio Team Services
- Byg værktøjer
- Lave
- Rive
- Kabal
- Myre
- CADES
- Nant
- Maven
- Slutbygger
- Gradle
- Team Foundation Server
- Visual Studio Team Services
- Visual Build Pro
- Redaktører
- Parser oprettelsen værktøjer
- Værktøjer til analyse af statisk kode
Biblioteker
Design sprog
Mønstre, dokumenterer mange almindelige programmerings- og projektstyringsteknikker
Processer og metoder
- Adræt
- Tungt
- Rent rum
- ISO/IEC 12207 - softwares livscyklusprocesser
- ISO 9000 og ISO 9001
- Procesmodeller
- Metamodeller
Platforme
En platform kombinerer computerhardware og et operativsystem. Efterhånden som platforme vokser mere kraftfulde og billigere, vokser applikationer og værktøjer bredere.
- BRYGGE
- Cray supercomputere
- DEC minicomputere
- IBM mainframes
- Linux pc'er
- Klassiske Mac OS og macOS pc'er
- Microsoft .NET
- Palm PDA'er
- Sun Microsystems Solaris
- Windows -pc'er ( Wintel )
- Symbian OS
Anden praksis
- Meddelelse
- Metode teknik
- Par programmering
- Performance Engineering
- Programmering af produktivitet
- Refaktorering
- Softwareinspektioner / Kodeanmeldelser
- Genbrug af software
- Systemintegration
- Samarbejde
Andre værktøjer
Datalogiske emner
Dygtige softwareingeniører kender en masse datalogi, herunder hvad der er muligt og umuligt, og hvad der er let og svært for software.
- Algoritmer , veldefinerede metoder til løsning af specifikke problemer.
- Compiler teori
- Datastrukturer , veldefinerede metoder til lagring og hentning af data.
- Beregnelighed , nogle problemer kan slet ikke løses
- Kompleksitet , nogle problemer er principielt opløselige, men alligevel uløselige i praksis
- Formelle metoder
- Adaptive systemer
Matematikemner
Diskret matematik er et centralt fundament for software engineering.
- Nummer repræsentation
- Sæt (datalogi)
- Tasker
- Grafer
- Logik
- Induktion
- Combinatorics
Andet
Livscyklusfaser
-
Udvikling livscyklus fase
- Krav indsamling / analyse
- Software arkitektur
- Computer programmering
- Tester , registrerer fejl
- Kvalitetssikring , sikrer overholdelse af processen.
- Produkt Livscyklus fase og Projekt livscyklus
- Slip udviklingsstadiet , nær slutningen af en frigivelsescyklus
- Softwareudvikling livscyklus
Leverancer
Leverancer skal udvikles til mange SE -projekter. Softwareingeniører laver sjældent alle disse leverancer selv. De samarbejder normalt med forfattere, undervisere, installatører, marketingfolk, tekniske supportfolk og andre, der gør mange af disse resultater.
- Applikationssoftware - softwaren
- Database - skemaer og data.
- Dokumentation , online og/eller print, ofte stillede spørgsmål , Readme , release notes , Hjælp , for hver rolle
- Administration og vedligeholdelsespolitik , hvad skal sikkerhedskopieres, kontrolleres, konfigureres, ...
- Installatører
- Migration
- Opgrader fra tidligere installationer
- Opgrader fra konkurrentens installationer
- Uddannelsesmateriale , for hver rolle
- Støtte info til computer støttegrupper.
-
Markedsføring og salg materialer
- Hvidbøger , forklar de teknologier, der bruges i applikationerne
Forretningsroller
- Operationer
- Udvikling
-
Forretning
- Rådgivning - tilpasning og installation af applikationer
- Salg
- Marketing
- Juridisk - kontrakter, intellektuelle ejendomsrettigheder
- Fortrolighed og fortrolighedsteknik
- Support - hjælpe kunder med at bruge applikationer
- Personale - ansættelse og uddannelse af kvalificeret personale
- Finansiering - finansiering af ny udvikling
- Academe
Ledelsesemner
-
Ledelse
- Coaching
- Meddelelse
- Hører efter
- Motivering
- Vision , SE'er er gode til dette
- Eksempel , alle følger et godt eksempel bedst
-
Human Resource Management
- Ansættelse , få folk ind i en organisation
- Uddannelse
- Evaluering
-
Projektledelse
- Målopnåelse
- Kundeinteraktion (nytænkning)
- Estimering
- Risikostyring
- Forandringsledelse
- Processtyring
Forretningsemner
- Kvalitetsprogrammer
Software ingeniørfag
- Software engineering demografi
- Software engineering økonomi
- CCSE
- Software engineering historie
- Software engineering professionalisme
- gyldige
Software engineering historie
Pionerer
Mange mennesker leverede vigtige bidrag til SE -teknologier, praksis eller applikationer.
- John Backus : Fortran , første optimerende compiler, BNF
- Victor Basili : Oplev fabrik.
- FL Bauer : Stack princip, populariserede udtrykket Software Engineering
- Kent Beck : Refactoring , ekstrem programmering , pair programmering , test-drevet udvikling .
- Tim Berners-Lee : World wide web
- Barry Boehm : SE økonomi , COCOMO , Spiral model .
- Grady Booch : Objektorienteret design , UML .
- Fred Brooks : Managed System 360 og OS 360 . Skrev The Mythical Man-Month og Ingen Silver Bullet .
- Larry Constantine : Struktureret design , kobling , samhørighed
- Edsger Dijkstra : Skrev noter om struktureret programmering , en disciplin i programmering og gå til erklæring betragtes som skadelig , algoritmer , formelle metoder , pædagogik .
- Michael Fagan : Softwareinspektion .
- Tom Gilb : Software -metrics , softwareinspektion , evolutionær levering ("Evo") .
- Adele Goldstine : Skrev brugermanualen til ENIAC , den første elektroniske digitale computer, og uddannede nogle af de første menneskelige computere
- Lois Haibt : FORTRAN , skrev den første parser
- Margaret Hamilton : Udformede udtrykket "software engineering", udviklet Universal Systems Language
- Mary Jean Harrold : Regressionstest , fejllokalisering
- Grace Hopper : Den første kompilator (Mark 1), COBOL , Nanosekunder .
- Watts Humphrey : Capability Maturity Model , Personal Software Process , stipendiat ved Software Engineering Institute .
- Jean Ichbiah : Ada
- Michael A. Jackson : Jackson Structured Programming , Jackson System Development
- Bill Joy : Berkeley Unix , vi , Java .
- Alan Kay : Smalltalk
- Brian Kernighan : C og Unix.
- Donald Knuth : Skrev The Art of Computer Programming , TeX , algoritmer , literate programmering
- Nancy Leveson : System sikkerhed
- Bertrand Meyer : Design by Contract , programmeringssprog Eiffel .
- Peter G. Neumann : RISKS Digest , ACM Sigsoft.
- David Parnas : Modeldesign, socialt ansvar, professionalisme.
- David Pearson, computerforsker : Udviklede ICL CADES software engineering system.
- Jef Raskin : Udviklede den originale Macintosh GUI , forfattet The Humane Interface
- Dennis Ritchie : C og Unix .
- Winston W. Royce : Vandfaldsmodel .
- Mary Shaw : Software -arkitektur .
- Richard Stallman : Grundlægger af Free Software Foundation
- Linus Torvalds : Linux -kerne, gratis software / open source -udvikling.
- Will Tracz : Genbrug, ACM Software Engineering Notes.
- Gerald Weinberg : Skrev computerprogrammerings psykologi .
- Elaine Weyuker : Softwaretest
- Jeannette Wing : Formelle specifikationer .
- Ed Yourdon : Struktureret programmering , skrev The Decline and Fall of the American Programmer .
Se også
Bemærkelsesværdige publikationer
- About Face: Essentials of User Interface Design af Alan Cooper , om design af brugergrænseflader. ISBN 0-7645-2641-3
- Capability Maturity Model af Watts Humphrey . Skrevet til Software Engineering Institute , med vægt på ledelse og proces. (Se Styring af softwareprocessen ISBN 0-201-18095-2 )
- Katedralen og basaren af Eric Raymond om udvikling af open source.
- The Decline and Fall of the American Programmer af Ed Yourdon forudsiger afslutningen på softwareudvikling i USA ISBN 0-13-191958-X
- Design Patterns af Erich Gamma , Richard Helm , Ralph Johnson , og John Vlissides . ISBN 0-201-63361-2
- Ekstrem programmering Forklaret af Kent Beck ISBN 0-321-27865-8
- " Gå til erklæring betragtes som skadelig " af Edsger Dijkstra .
- Internet, innovation og open source: Skuespillere i netværket - Første mandagsartikel af Ilkka Tuomi (2000) kilde
- The Mythical Man-Month af Fred Brooks , om projektledelse. ISBN 0-201-83595-9
- Objektorienteret analyse og design af Grady Booch . ISBN 0-8053-5340-2
- Peopleware af Tom DeMarco og Tim Lister. ISBN 0-932633-43-9
- Den pragmatiske ingeniør kontra den videnskabelige designer af EW Dijkstra [1]
- Principper for Software Engineering Management af Tom Gilb om evolutionære processer. ISBN 0-201-19246-2
- Psykologi Computer Programmering af Gerald Weinberg . Skrevet som uafhængig konsulent, dels om hans år hos IBM. ISBN 0-932633-42-0
- Refactoring: Improving the Design of Existing Code af Martin Fowler , Kent Beck , John Brant, William Opdyke og Don Roberts. ISBN 0-201-48567-2
- Den pragmatiske programmør: fra svend til mester af Andrew Hunt og David Thomas . ISBN 0-201-61622-X
- Software Engineering Body of Knowledge (SWEBOK) ISO/IEC TR 19759
Se også:
Relaterede felter
- Computer videnskab
- Informationsteknik
- Informationsteknologi
- Traditionel teknik
- Software Engineering
- Kunst og videnskab
- Applikations software
- Programmering
- Systemteknik
Se også
- Indeks over software engineering artikler
- Søgebaseret software engineering
- SWEBOK Software engineering vidensorgan
- CCSE Computing curriculum for software engineering
- Computertermer etymologi , oprindelsen til computertermer
- Kompleksitet eller skalering
- Andet systemsyndrom
- optimering
- Kildekode escrow
- Funktionsinteraktionsproblem
- Certificering (software engineering)
- Ingeniørkatastrofer#Fejl på grund af software
- Oversigt over softwareudvikling
Referencer
eksterne links
- Faglige organisationer
- Professionalisme
- Uddannelse
- Standarder
- Regeringsorganisationer
- Adræt
- Andre organisationer
- Demografi
- Undersøgelser
- Andet