Kvalitet requirementsEdit

Uansett tilnærming til utvikling kan være, er det endelige programmet må tilfredsstille noen grunnleggende egenskaper. Følgende egenskaper er blant de viktigste:

  • Pålitelighet: hvor ofte resultatene av et program som er riktig. Dette avhenger av konseptuelle riktigheten av algoritmer, og minimalisering av programmering feil, for eksempel feil i resource management (f.eks., bufferoverløp og løp forhold) og logiske feil (for eksempel divisjon med null eller av ved en feil).,
  • Robusthet: hvor godt et program forutser problemer på grunn av feil (ikke feil). Dette inkluderer situasjoner slik som feil, upassende eller ødelegge data, mangel på nødvendige ressurser, for eksempel minne, operativsystem tjenester, og nettverk-tilkoblinger, bruker feil og uventede strømbrudd.
  • Brukervennlighet: ergonomi av et program: den enkle måten en person kan bruke programmet til det formål det er beregnet eller i noen tilfeller til og med uforutsette formål. Slike spørsmål kan gjøre eller bryte sin suksess selv, uavhengig av andre problemer., Dette innebærer et bredt spekter av tekst, grafisk, og noen ganger maskinvare elementer som gir bedre klarhet, intuitiv, samhold og fullstendigheten av en programmets brukergrensesnitt.
  • Portabilitet: utvalget av maskinvare og operativsystem plattformene som kildekoden til et program kan være kompilert/tolket og kjøre., Dette avhenger av forskjeller i programmering fasiliteter som tilbys av ulike plattformer, inkludert maskinvare og operativsystem ressurser, forventet atferd av maskinvare og operativsystem, og tilgjengelighet av plattform-spesifikke kompilatorer (og noen ganger biblioteker) språket i kildekoden.
  • Vedlikehold: den enkle som et program som kan bli endret av sin nåværende eller fremtidige utviklere for å gjøre forbedringer eller tilpasninger, fikse bugs og sikkerhetshull, eller tilpasse det til nye miljøer., God praksis ved første gangs utvikling, gjør forskjellen i denne sammenheng. Denne kvaliteten kan ikke være direkte synlig for sluttbrukeren, men det kan påvirke utfallet av et program over lang sikt.
  • Effektivitet/ytelse: Mål av systemressurser et program som bruker (prosessor tid, minne, tregere enheter, for eksempel disker, nettverk båndbredde og til en viss grad selv brukermedvirkning): jo mindre, jo bedre. Dette inkluderer også forsiktig styring av ressurser, for eksempel å rydde opp midlertidige filer og fjerne minne lekkasjer., Dette er ofte omtalt under skyggen av et valgt programmeringsspråk. Selv om språket absolutt påvirker ytelsen, enda tregere språk, for eksempel Python, kan kjøre programmer direkte fra et menneskelig perspektiv. Hastighet, ressursbruk og resultater er viktig for programmer som flaskehals i systemet, men effektiv bruk av programmerer tid er også viktig, og er knyttet til kostnader: mer maskinvare kan være billigere.,

Lesbarheten av kilde codeEdit

I programmering, lesbarhet refererer til den enkle som en menneskelig leser kan forstå hensikten, kontroll, flyt, og drift av kildekoden. Det påvirker aspekter av kvalitet ovenfor, inkludert portabilitet, brukervennlighet og viktigst av alt vedlikehold.

Lesbarhet er viktig fordi programmerere tilbringe mesteparten av sin tid til å lese, prøver å forstå og endre eksisterende kildekoden, heller enn å skrive ny kilde kode. Uleselig kode som ofte fører til feil, ineffektivitet, og duplisert kode., En studie fant at et par enkle lesbarhet endringene som har laget koden kortere og drastisk redusert tid til å forstå det.

å Følge en konsekvent programmering stil hjelper ofte lesbarhet. Men lesbarheten er mer enn bare programmering stil. Mange faktorer, har lite eller ingenting å gjøre med evnen til datamaskinen for å effektivt kompilere og kjøre koden, bidra til lesbarhet. Noen av disse faktorene er:

  • Annet ledd stiler (mellomrom)
  • Nedbrytning
  • navnekonvensjoner for objekter (for eksempel variabler, klasser, prosedyrer, etc.,)

presentasjonen av denne (for eksempel innrykk, linjeskift, farge utheving, og så videre) er ofte håndteres av kilde kode editor, men innholdet aspekter reflektere programmerer talent og ferdigheter.

Ulike visuelle programmeringsspråk har også blitt utviklet med den hensikt å løse lesbarhet bekymringer ved å ta i bruk utradisjonelle tilnærminger til kode, struktur og skjerm. Integrerte utviklingsmiljøer (IDEs) tar sikte på å integrere all slik hjelp. Teknikker som Kode refactoring kan forbedre lesbarheten.,

Algoritmisk complexityEdit

Det akademiske feltet og engineering practice of computer programming er begge i stor grad opptatt med å oppdage og å iverksette de mest effektive algoritmer for en gitt klasse av problemet. For dette formål, algoritmer er klassifisert i ordre ved hjelp av såkalte Big-O notasjon, som uttrykker ressurs bruk, slik som execution time eller minne forbruk, i form av størrelsen av en inngang., Ekspert programmerere er kjent med en rekke godt etablerte algoritmer og deres respektive kompleksiteten og bruke denne kunnskapen til å velge algoritmer som er best egnet til omstendighetene.

Sjakk algoritmer som et exampleEdit

«Programmere en Datamaskin for å Spille Sjakk» var en 1950 papir som evaluert en «minimax» algoritme som er en del av historien til algoritmisk kompleksitet; et kurs på IBM ‘ s Dyp Blå (sjakk-maskin) er en del av computer science curriculum ved Stanford University.,

MethodologiesEdit

første trinn i de fleste formelle software development prosesser er krav til analyse, etterfulgt av testing for å finne ut verdien modellering, implementering og svikt eliminering (debugging). Det finnes en rekke ulike tilnærminger for hver av disse oppgavene. En tilnærming populære for krav til analyse er Use Case analyse. Mange programmerere bruk former for Agile software development der de ulike stadier av formelle programvare utvikling, er mer integrert sammen i korte sykluser som tar et par uker snarere enn år., Det er mange tilnærminger til programvareutvikling prosessen.

Populære modellering teknikker inkluderer Objekt-Orientert Analyse og Design (OOAD) og Model Driven Architecture (MDA). Unified Modeling Language (UML) er en notasjon som brukes for både OOAD og MDA.

En lignende teknikk som brukes for database design er Entity-Relationship-Modellering (ER-Modellering).

Implementering teknikker inkluderer imperative språk (objekt-orientert eller prosessuelle), funksjonelt språk, og logiske språk.,

Måler språk usageEdit

utdypende artikkel: Måling programmeringsspråk popularitet

Det er svært vanskelig å fastslå hva som er de mest populære moderne programmeringsspråk., Metoder for måling av programmeringsspråk popularitet inkluderer: opptelling av stillingsannonsene som nevner språk, antall bøker solgt til kurs og undervisning i språket (dette overestimates betydningen av nyere språk), og estimater av antall eksisterende linjer med kode som er skrevet i språket (dette underestimates antall brukere av business språk som COBOL).

Noen språk er svært populære for bestemte typer programmer, mens noen språk er regelmessig brukt til å skrive mange forskjellige typer programmer., For eksempel, COBOL er fortsatt sterk i bedriftens data sentre ofte på store stormaskiner, Fortran i ingeniørfag-programmer, skript-språk i Web utvikling, og C i innebygd programvare. Mange programmer bruker en blanding av flere språk i sin konstruksjon og bruk. Nye språk er generelt utformet rundt syntaksen til en skriftlig språk med ny funksjonalitet er lagt til (for eksempel C++ legger objekt-orientering til C og Java gir memory management og bytekode til C++, men som et resultat, mister effektivitet og mulighet for lavt nivå manipulasjon).,

DebuggingEdit

Den første kjente faktiske feil som forårsaker et problem i en datamaskin var en sommerfugl, som er fanget inne i en Harvard stormaskin, innspilt i en loggbok oppføring datert 9. September 1947. «Bug» var allerede en felles betegnelse for en software feil når denne feilen ble funnet.

utdypende artikkel: Debugging

Debugging er en svært viktig oppgave i programvareutvikling prosessen siden etter å ha feil i et program kan ha betydelige konsekvenser for brukerne., Noen språk er mer utsatt for enkelte typer feil fordi deres spesifikasjonen krever ikke kompilatorer for å utføre så mye kontroll som andre språk. Bruk av en statisk kodeanalyse verktøyet kan bidra til å oppdage noen mulige problemer. Normalt er det første trinnet i debugging er å forsøke å gjenskape problemet. Dette kan være en ikke-triviell oppgave, for eksempel med parallelle prosesser eller noen uvanlige programvare feil. Også, bestemte brukeren, miljø og brukshistorie kan gjøre det vanskelig å gjenskape problemet.,

Etter at feilen er gjengitt, input av programmet må være forenklet for å gjøre det enklere å feilsøke. For eksempel, når en bug i en kompilator kan få den til å krasje når parsing noen stor kilde filen, en forenkling av test som resulterer i bare noen linjer fra den opprinnelige kilden filen kan være tilstrekkelig til å gjenskape den samme ulykken. Prøve-og-feile/deler-og-hersk er nødvendig: programmerer vil prøve å fjerne noen deler av den opprinnelige test og se om problemet fortsatt finnes., Når feilsøking problem i en GUI, programmerer kan prøve å hoppe over noen brukermedvirkning fra den opprinnelige beskrivelse av problemet og se om resterende tiltakene er tilstrekkelige for feil skal vises. Scripting og breakpointing er også en del av denne prosessen.

Debugging er ofte gjort med IDEs som Eclipse, Visual Studio, Xcode, Kdevelop, NetBeans og Code::Blocks. Frittstående debuggers som GDB er også brukt, og disse gir ofte mindre av et visuelt miljø, vanligvis ved hjelp av en kommandolinje. Enkelte tekstredigeringsprogrammer som for eksempel Emacs tillate GDB å bli brukt gjennom dem, for å gi et visuelt miljø.,

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *