kvalitetskravrediger

uanset hvilken tilgang til udvikling der måtte være, skal det endelige program tilfredsstille nogle grundlæggende egenskaber. Følgende egenskaber er blandt de vigtigste:

  • pålidelighed: hvor ofte resultaterne af et program er korrekte. Dette afhænger af konceptuel korrekthed af algoritmer og minimering af programmeringsfejl, såsom fejl i ressourcestyring (f.eks. bufferoverløb og løbsbetingelser) og logiske fejl (såsom opdeling med nul eller off-by-one-fejl).,
  • robusthed: hvor godt et program forudser problemer på grund af fejl (ikke fejl). Dette inkluderer situationer som forkerte, upassende eller korrupte data, manglende adgang til nødvendige ressourcer såsom hukommelse, operativsystemtjenester og netværksforbindelser, brugerfejl og uventede strømafbrydelser.
  • brugervenlighed: ergonomien i et program: den lethed, hvormed en person kan bruge programmet til det tilsigtede formål eller i nogle tilfælde endda uventede formål. Sådanne spørgsmål kan gøre eller bryde sin succes selv uanset andre spørgsmål., Dette involverer en bred vifte af tekstmæssige, grafiske og undertiden hard .areelementer, der forbedrer klarheden, intuitiviteten, sammenhængskraften og fuldstændigheden af et programs brugergrænseflade.portabilitet: rækkevidden af computerhard .are og operativsystemplatforme, hvor kildekoden til et program kan kompileres/fortolkes og køres., Dette afhænger af forskelle i programmering faciliteter, der stilles af de forskellige platforme, herunder hardware og operativsystem ressourcer, forventede opførsel af hardware og operativsystem, og tilgængeligheden af platform-specifikke compilere (og nogle gange biblioteker) for de sprog af kildekoden.Vedligeholdelse: den lethed, hvormed et program kan ændres af dets nuværende eller fremtidige udviklere for at foretage forbedringer eller tilpasninger, rette fejl og sikkerhedshuller eller tilpasse det til nye miljøer., God praksis under den indledende udvikling gør forskellen i denne henseende. Denne kvalitet er muligvis ikke direkte synlig for slutbrugeren, men det kan betydeligt påvirke et programs skæbne på lang sigt.
  • effektivitet/ ydelse: måling af systemressourcer et program bruger (processortid, hukommelsesplads, langsomme enheder såsom diske, netværksbåndbredde og til en vis grad endda brugerinteraktion): jo mindre, jo bedre. Dette inkluderer også omhyggelig styring af ressourcer, for eksempel rengøring af midlertidige filer og eliminering af hukommelseslækager., Dette diskuteres ofte i skyggen af et valgt programmeringssprog. Selvom sproget bestemt påvirker ydeevnen, kan endnu langsommere sprog, såsom Python, udføre programmer øjeblikkeligt fra et menneskeligt perspektiv. Hastighed, ressourceforbrug og ydeevne er vigtige for programmer, der flaskehalser systemet, men effektiv brug af programmerertid er også vigtig og er relateret til omkostninger: mere hard .are kan være billigere.,

læsbarheden af source codeEdit

i computerprogrammering refererer læsbarheden til den lethed, hvormed en menneskelig læser kan forstå formålet, kontrolflo .et og driften af kildekoden. Det påvirker aspekterne af kvalitet ovenfor, herunder bærbarhed, brugervenlighed og vigtigst af alt vedligeholdelighed.

læsbarhed er vigtig, fordi programmører bruger størstedelen af deres tid på at læse, forsøge at forstå og ændre eksisterende kildekode i stedet for at skrive ny kildekode. Ulæselig kode fører ofte til fejl, ineffektivitet og duplikeret kode., En undersøgelse fandt, at et par enkle læsbarhedstransformationer gjorde koden kortere og drastisk reducerede tiden til at forstå den.

at følge en konsistent programmeringsstil hjælper ofte læsbarheden. Læsbarheden er dog mere end bare programmeringsstil. Mange faktorer, der har lidt eller intet at gøre med computerens evne til effektivt at kompilere og udføre koden, bidrager til læsbarheden. Nogle af disse faktorer omfatter:

  • forskellige indent stilarter (mellemrum)
  • nedbrydning
  • navngivning konventioner for objekter (såsom variabler, klasser, procedurer, etc.,)

præsentationsaspekterne af dette (såsom indrykk, linjeskift, farvefremhævning osv.) håndteres ofte af kildekodeditoren, men indholdsaspekterne afspejler programmørens talent og færdigheder.forskellige visuelle programmeringssprog er også blevet udviklet med det formål at løse læsbarhedsproblemer ved at vedtage ikke-traditionelle tilgange til kodestruktur og visning. Integrerede udviklingsmiljøer (ide ‘ er) sigter mod at integrere al sådan hjælp. Teknikker som kode refactoring kan forbedre læsbarheden.,

algoritmisk kompleksitetredit

det akademiske område og den tekniske praksis med computerprogrammering er begge stort set optaget af at opdage og implementere de mest effektive algoritmer for en given problemklasse. Til dette formål klassificeres algoritmer i ordrer ved hjælp af såkaldt Big O-notation, der udtrykker ressourceforbrug, såsom eksekveringstid eller hukommelsesforbrug, med hensyn til størrelsen på et input., Ekspertprogrammører er bekendt med en række veletablerede algoritmer og deres respektive kompleksiteter og bruger denne viden til at vælge algoritmer, der passer bedst til omstændighederne.

Skak algoritmer som en exampleEdit

“Programmering af en Computer for at Spille Skak”, var en af 1950 papir, der evalueres til en “minimax” – algoritme, som er en del af historien om algoritmisk kompleksitet; et kursus på IBM ‘ s Deep Blue (skak computer) er en del af den computer science curriculum på Stanford University.,

MethodologiesEdit

Det første skridt i de fleste formelle udvikling af software processer, der er af krav, analyse, efterfulgt af test for at bestemme værdien modellering, implementering, og manglende eliminering (debugging). Der findes mange forskellige tilgange til hver af disse opgaver. En tilgang populær for krav analyse er Use Case analyse. Mange programmører former for anvendelse af Agile software udvikling, hvor de forskellige stadier af formelle softwareudvikling er mere integreret sammen i korte cyklusser, som tager et par uger snarere end år., Der er mange tilgange til Soft .areudviklingsprocessen.populære modelleringsteknikker inkluderer objektorienteret analyse og Design (OOAD) og modeldrevet arkitektur (MDA). Unified Modeling Language (UML) er en notation, der bruges til både OOAD og MDA.

en lignende teknik, der bruges til databasedesign, er enhed-Forholdsmodellering (er modellering).

implementeringsteknikker inkluderer imperative sprog (objektorienterede eller proceduremæssige), funktionelle sprog og logiske sprog.,

Måling af sprog usageEdit

uddybende artikel: Måling af programmeringssprog popularitet

Det er meget vanskeligt at afgøre, hvad der er de mest populære moderne programmeringssprog., Metoder til måling af programmeringssprog popularitet omfatter: at tælle antallet af jobannoncer at nævne det sprog, antallet af solgte bøger og kurser, undervisning sprog (dette overvurderer betydningen af nyere sprog), og et overslag over antallet af eksisterende linjer af kode, der er skrevet i sproget (dette undervurderer antallet af brugere af business-sprog som COBOL).

Nogle sprog er meget populære til bestemte typer applikationer, mens nogle sprog regelmæssigt bruges til at skrive mange forskellige slags applikationer., For eksempel, COBOL er stadig stærk i virksomhedernes datacentre ofte på store mainframe-computere, Fortran i ingeniørmæssige anvendelser, scripting sprog i Web-udvikling, og C i indlejret software. Mange applikationer bruger en blanding af flere sprog i deres konstruktion og brug. Nye sprog er generelt designet omkring de syntaks af en forudgående sprog med ny funktionalitet tilføjet (for eksempel C++ tilføjer objekt-orientering til C og Java tilføjer memory management og bytecode til C++, men som et resultat, mister effektiviteten og evnen til lav-niveau manipulation).,

DebuggingEdit

Den første kendte faktiske fejl, der forårsager et problem i en computer var et møl, der er fanget inde i en Harvard mainframe, der er registreret i en logbog indlæg dateret 9 September 1947. “Bug” var allerede en almindelig betegnelse for en soft .arefejl, da denne fejl blev fundet.

Hovedartikel: fejlfinding

fejlfinding er en meget vigtig opgave i Soft .areudviklingsprocessen, da det at have defekter i et program kan have betydelige konsekvenser for dets brugere., Nogle sprog er mere tilbøjelige til nogle slags fejl, fordi deres specifikation ikke kræver compilere til at udføre så meget kontrol som andre sprog. Brug af et statisk kodeanalyseværktøj kan hjælpe med at registrere nogle mulige problemer. Normalt er det første trin i Fejlfinding at forsøge at gengive problemet. Dette kan være en ikke-triviel opgave, for eksempel som med parallelle processer eller nogle usædvanlige soft .arefejl. Specifikt brugermiljø og brugshistorik kan også gøre det vanskeligt at gengive problemet.,

efter at fejlen er gengivet, skal programmets input muligvis forenkles for at gøre det lettere at fejlsøge. For eksempel, når en fejl i en compiler kan få den til at gå ned, når man analyserer en stor kildefil, kan en forenkling af testsagen, der kun resulterer i få linjer fra den originale kildefil, være tilstrækkelig til at gengive det samme nedbrud. Trial-and-error/divide-and-con .uer er nødvendig: programmøren vil forsøge at fjerne nogle dele af den oprindelige testcase og kontrollere, om problemet stadig eksisterer., Når fejlsøgning af problemet i en GUI, kan programmereren forsøge at springe over nogle brugerinteraktioner fra den oprindelige problembeskrivelse og kontrollere, om resterende handlinger er tilstrækkelige til, at der vises fejl. Scripting og breakpointing er også en del af denne proces.fejlfinding udføres ofte med IDE ‘ er som Eclipse, Visual Studio, .code, Kdevelop, NetBeans og Code::Blocks. Standalone debuggere som GDB bruges også, og disse giver ofte mindre af et visuelt miljø, normalt ved hjælp af en kommandolinje. Nogle tekstredaktører som Emacs tillader, at GDB påberåbes gennem dem for at give et visuelt miljø.,

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *