Översikt över mjukvaruutveckling
Följande översikt tillhandahålls som en översikt över och aktuell guide till mjukvaruutveckling:
Mjukvaruutveckling är utvecklingen av en mjukvaruprodukt , vilket innebär datorprogrammering (process för att skriva och underhålla källkoden ), och omfattar en planerad och strukturerad process från idén om den önskade programvaran till dess slutliga manifestation. Därför kan mjukvaruutveckling inkludera forskning, nyutveckling, prototyper, modifiering, återanvändning, omkonstruktion, underhåll eller andra aktiviteter som resulterar i mjukvaruprodukter.
Vilken typ av sak är mjukvaruutveckling?
Mjukvaruutveckling kan beskrivas som allt av följande:
Branscher för mjukvaruutveckling
- Mjukvaruutveckling
- Dataprogramering
- Utveckling av videospel
- webbutveckling
- Utveckling av webbapplikationer
- Mobil applikationsutveckling
Historien om mjukvaruutveckling
Deltagare i mjukvaruutveckling
- Mjukvaruutvecklare
- Mjukvaruingenjör
- Konsulterande mjukvaruingenjör
- Datorprogrammerare
- Programutgivare
- webbutvecklare
Problem med mjukvaruutveckling
Programvaruprojektledning
- Mjukvaruprojektledning – konst och vetenskap att planera och leda mjukvaruprojekt. Det är en underdisciplin av projektledning där programvaruprojekt planeras, övervakas och kontrolleras.
Programvaruutvecklingsstrategier
- Offshore-programvara FoU – tillhandahållande av mjukvaruutvecklingstjänster av en extern leverantör placerad i ett land som är geografiskt avlägset från kundföretaget; en typ av offshore outsourcing .
Mjukvaruutvecklingsprocess
-
Mjukvaruutvecklingsprocess
-
Programvaruversionens livscykel
- Utvecklingsstadier
- Släpp
- Release to manufacturing (RTM)
- Allmän tillgänglighetsversion (GA)
- Webbversion (RTW)
-
Teknisk support
- End-of-life – uppsägning av support för en produkt
-
Programvaruversionens livscykel
Aktiviteter och steg
- Kravanalys
- Funktionsspecifikation
- Mjukvaruarkitektur
- Mjukvarudesign
- Dataprogramering
- Mjukvarutestning
-
Programvarudistribution
- Programvaruversion
- Produktinstallation
- Produktaktivering
- Avaktivering
- Anpassning
- Programuppdatering
- Avinstallation
- Produktens pensionering
- Programvaruunderhåll
Metoder för mjukvaruutveckling
- Aspektorienterad mjukvaruutveckling
- Cleanroom Software Engineering
- Iterativ och inkrementell utveckling
- Metodik för inkrementell finansiering
- Snabba applikationsutveckling
- IBM Rational Unified Process
- Spiral modell
- Vattenfall modell
- Extrem programmering
- Lean mjukvaruutveckling
- Klunga
- V-modell
- Testdriven utveckling (TDD)
Agil mjukvaruutveckling
- Tvärfunktionellt team
- Extrem programmering
- Iterativ och inkrementell utveckling
- Parprogrammering
- Självorganisering
- Timeboxing
Stödjande discipliner
- Dataprogramering
- Programvarudokumentation
- Mjukvaruutveckling
- Kvalitetssäkring av programvara (SQA)
- Design av användarupplevelse
Verktyg för mjukvaruutveckling
Utbildning relevant för mjukvaruutveckling
- Kandidatexamen i datavetenskap – typ av kandidatexamen som tilldelas för studier av datavetenskap, som betonar de matematiska och teoretiska grunderna för datoranvändning, snarare än att lära ut specifika tekniker som snabbt kan bli föråldrade. En sådan examen är en vanlig inledande kandidatexamen för dem som går in på området mjukvaruutveckling.
Mjukvaruutvecklingsorganisationer
Medan informationsteknikbranschen (IT) genomgår förändringar snabbare än något annat område, är de flesta tekniska experter överens om att man måste ha en gemenskap att konsultera, lära av eller dela erfarenheter med. Här är en lista över välkända programvaruutvecklingsorganisationer.
- Association of Computer Engineers and Technicians (ACE – ACET) professionella standarder inom IT-branschen.
- Association for Computing Machinery (ACM) är en av de äldsta och största vetenskapliga gemenskaperna som sysslar med datorer och teknik. Den täcker ett brett spektrum av ämnen inklusive e-handel, bioinformatik och nätverk.
- Association of Independent Information Professionals (AIIP) är en sammanslutning för informationsproffs som arbetar självständigt eller inom relaterade branscher.
- Association of Information Technology Professionals (AITP) är en världsomspännande gemenskap som fokuserar på informationsteknologiutbildning. Det hjälper till att koppla ihop experter från olika IT-områden.
- ASIS International (ASIS) är den ledande communityn som kopplar samman säkerhetsproffs från hela världen.
- Association of Shareware Professionals (ASP) kopplar samman utvecklare och tekniska specialister som arbetar med tjänster och applikationer på basis av "prova-innan-du-köper".
- Association for Women in Computing (AWC) anordnar utbildnings- och nätverksevenemang för kvinnliga teknikspecialister för att öka andelen kvinnor i branschen.
- Black Data Processing Associates (BDPA) samlar en gemenskap av afroamerikaner som arbetar inom informationsteknologi för både utbildning och yrkesmässig tillväxt.
- Computer & Communications Industry Association (CCIA) förespråkar öppna marknader, system och konkurrens.
- Computing Technology Industry Association (CompTIA) tillhandahåller certifieringar för IT-branschen, samt utbildar individer och grupper om förändringar och tendenser för branschen.
- Computer Professionals for Social Responsibility (CPSR) en organisation som arbetar med teknikens påverkan på samhället. Gruppen ger en bedömning av den tekniska utvecklingen och dess inverkan på olika områden i livet.
- Data & Analysis Center for Software (DACS) samlar in och tillhandahåller information om olika enheter och programvara som de producerar, såväl som dess tillförlitlighet.
- EDUCAUSE är en ideell organisation som uttalar sitt uppdrag som "förväg högre utbildning genom informationsteknologi".
- European Computer Manufacturers Association (ECMA) är en europeisk organisation som underlättar standarder och informations- och kommunikationssystem.
- International Association of Engineers (IAENG) är en internationell sammanslutning som tidigare var ett privat nätverk. Numera är den värd för den årliga världskongressen för teknik för FoU och ingenjörer.
- Institute of Electrical and Electronics Engineers (IEEE) Computer Society tillhandahåller utbildningstjänster till sina medlemmar över hela världen. Detta sällskap har ett av de största nätverken och erbjuder många förmåner till sina medlemmar.
- Information Systems Security Association ( ISSA) är en icke-vinstdrivande organisation som uppmuntrar användningen av metoder för att skydda informationsresursernas konfidentialitet och integritet.
- Network Professional Association (NPA) uppmuntrar sina medlemmar att följa den etiska koden, följa de senaste bästa praxis och ägna sig åt kontinuerlig självutbildning.
- Technology Services Industry Association (TSIA) är en professionell förening som erbjuder forskning och rådgivning.
- Society for Technical Communication (STC) erbjuder stöd och kunskapsdelning till specialister som är involverade i teknisk kommunikation och relaterade områden.
- User Experience Professionals Association (UXPA) är en organisation som delar kunskap om UX och hjälper sina medlemmar att växa, utveckla och förbättra sina produkter.
- Women in Technology (WIT) förespråkar utbildning av kvinnliga representanter i branschen hela vägen från grundutbildning till avancerade program.
Programvaruutvecklingspublikationer
Personer med inflytande inom mjukvaruutveckling
Språkskapare, designers
- Kathleen Booth ( Assembly )
- Bjarne Stroustrup ( C++ )
- Brendan Eich ( JavaScript )
- James Gosling ( Java )
- Guido van Rossum ( Python )