Programare pe calculator)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Un set de manuale de programare.

Programarea , în informatică , este o fază de implementare a întregului ciclu de dezvoltare software (vezi ingineria software ) cu scopul final de a satisface specificațiile funcționale solicitate de client în conformitate cu o analiză structurală predefinită a proiectului software; mai precis, este setul de activități și tehnici pe care una sau mai multe persoane specializate ( echipă ), programatori sau dezvoltatori ( dezvoltator ) le desfășoară pentru a crea un program sau o aplicație , adică un software care trebuie executat de un computer , scriind sursă de cod relativ într-un limbaj de programare specific; împreună cu partea sistemelor și știința datelor , constituie ramura sau linia productivității în IT corporativ , cunoscut sub numele de sectorul terțiar avansat .

Descriere

Pictogramă lupă mgx2.svg Același subiect în detaliu: Program (informatică) .

Fundamentele de programare indică cunoștințele de bază pe care trebuie să le aibă un programator pentru programarea în orice limbaj de programare . Pentru a scrie linii de cod în limbaje de programare, este suficient ca un programator să utilizeze un procesor de text normal sau un program ad hoc numit editor adesea inclus într-un mediu de dezvoltare integrat (IDE). În al doilea caz, software - ul identifică automat cele mai banale erori (de exemplu, erori de sintaxă ) pe care le poate comite un programator .

Pașii cu care se dezvoltă un program eficient sunt similare între ele pentru aproape toate contextele de programare (companii, hobby-uri, muncă etc.). Primele faze sunt strict legate de logica a ceea ce urmează să fie creat și a modului în care acesta funcționează, în timp ce ultimele sunt orientate către limbajul de programare specific care urmează fie utilizat.

Prima operațiune de realizat pentru crearea oricărui program este definirea cât mai precisă și exactă a problemei pe care intenționăm să o rezolvăm. Acest lucru se aplică atât unei funcții matematice simple, cât și unei baze de date complexe. Intrarea pe care o primește programul este legată de ieșirea pe care intenționăm să o returnăm după procesare. Această fază poate prezenta o mare complexitate datorită lucrării abstracte care impune programatorului să-și imagineze rezultatul final și formalizarea acestuia.

Proiectarea unui program

Pictogramă lupă mgx2.svg Același subiect în detaliu: inginerie software .
Un model de dezvoltare software

Odată ce definiția problemei de rezolvat a fost depășită, este necesar să proiectăm soluții posibile, să le comparăm între ele și să revenim la cea mai eficientă (amintindu-ne că o soluție ineficientă pentru o anumită problemă ar putea fi utilă pentru dezvoltare al altor programe). Două instrumente diferite pot fi utilizate pentru a compara diferența reală dintre o soluție și alta:

  • Una dintre ele este diagrama de flux : cu o foarte intuitiv grafic puteți ilustra un proces în toate fazele pe care le caracterizează. Fiecare fază este conectată la celelalte prin linii de flux care indică direcția procesului din cadrul programului .
  • O metodă eficientă de proiectare este pseudocodul , o formă de codare similară cu limbajul vorbit de programator . Redactarea sa este similară cu o linie de operații care sunt definite atunci când trebuie efectuată o anumită acțiune. Scrierea pseudocodului trebuie să fie cel puțin la fel de detaliată ca și codul final, dar nu este necesară o sintaxă precisă cu privire la acesta, lăsând programatorul liber să se concentreze asupra principalelor probleme ale programului .

Alegerea algoritmului

Pictogramă lupă mgx2.svg Același subiect în detaliu: Algoritm .
Exemplu de diagramă a unui algoritm

Pentru a crea un program eficient trebuie să proiectăm cu atenție algoritmul . De exemplu, am putea crea un algoritm care efectuează următorii pași:

  1. Examinați o listă de numere și recunoașteți minorul;
  2. Atribuiți cel mai mic număr variabilei X;
  3. Imprimați variabila X;

Este important să specificați că lista de pași trebuie să conțină instrucțiuni clare, precise și lipsite de ambiguitate, adică al căror sens nu depinde de contextul în care este scrisă, ci este clar identificabil.

Programele de calculator sunt mult mai complexe decât un proces liniar, cum ar fi adăugarea a două numere. Pentru a oferi programului o structură mai complexă, sunt utilizate următoarele instrumente:

  • Ramurile constau în furnizarea codului cu funcții care pot schimba dezvoltarea algoritmului în funcție de rezultatul condiției exprimate.
  • Buclele sunt secvențe de instrucțiuni care sunt executate în mod repetat până la îndeplinirea unei anumite condiții. Fiecare repetare se numește iterație.

Programele pot fi, de asemenea, împărțite în secțiuni, astfel încât diferite sarcini să poată fi efectuate prin secvențe de pași mai simple. În acest scop, programul este împărțit în funcții . Programatorul experimentat omite adesea această fază de dezvoltare în termeni de algoritm și trece direct la faza următoare gândindu-se direct la soluția algoritmică a problemei date în termeni de limbaj de codare sau limbaj de programare sau în pseudocod .

Alegerea tehnicilor: paradigme de programare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Paradigmă de programare și instrumente de control .

Există diverse tehnici de programare, cele mai comune și utilizate sunt următoarele:

  • Programare nestructurată - în care programul este alcătuit dintr-un singur bloc de instrucțiuni (numit principal ) care sunt executate secvențial.
  • Programare procedurală - în care există blocuri de instrucțiuni care acționează ca subprograme și îndeplinesc funcții bine definite.
  • Programare modulară - unde puteți utiliza proceduri puse la dispoziție de alte programe și le permiteți să le folosească pe ale lor.
  • Programare orientată pe obiecte - în care sunt create „obiecte” care pot funcționa autonom sau interacționa între ele. Fiecare obiect are în sine proprietăți și funcții specifice (dacă presupunem o mașină ca obiect, o caracteristică va fi culoarea sau marca sa și funcțiile vor fi accelerarea sau încetinirea). Fiecare paradigmă poate exploata unul sau mai multe limbaje de programare cu un nivel scăzut, mediu sau ridicat de abstractizare.

Limbaje de programare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Limbaj de programare și platformă (computer) .
Exemplu de cod sursă scris în limbaj C ++
Exemplu de program scris în Java

Există multe limbaje de programare și sunt împărțite în principal în două categorii: interpretate și compilate .

Cele mai frecvente limbi interpretate sunt:

În plus, scripturile shell (așa-numitele fișiere batch ) și alte scripturi utilizate pe internet ( Jscript , VBScript , Batch ...) sunt, de asemenea, interpretate. Codul unui program interpretat este salvat așa cum este și este apoi citit de un interpret , care este un program care rulează pe sistemul dvs. de operare . Limbajele de programare compilate, pe de altă parte, necesită ca codul, odată terminat, să fie procesat de un compilator care, transformându-l în limbajul mașinii , permite executarea acestuia de către CPU .

Cele mai cunoscute limbi compilate sunt:

Programele interpretate sunt mai lente, dar mai ușor de creat și rulat pe multe sisteme de operare, atâta timp cât au același interpret și dialectul limbii este comun. Limbajele compilate, foarte des, au în schimb standarde ISO sau, în orice caz, reguli universale, care vă permit să compilați un program fără modificări pe arhitecturi multiple, chiar de la o singură mașină, cu condiția să aveți un compilator adecvat.

Java este pseudocompilat, adică este tradus într-un limbaj intermediar, numit bytecode , care este un fel de limbaj mașină, care este apoi transmis interpretului, care trebuie să fie disponibil pentru tipul de mașină pe care doriți să o utilizați. Visual Basic , pe de altă parte, nu este un limbaj standard, ci un mediu de dezvoltare creat pentru a dezvolta programe într-o bază orientată obiect dezvoltată de Microsoft și, ca atare, disponibilă numai pe sistemul lor de operare. Întrucât nu există un standard recunoscut, compatibilitatea între versiunile ulterioare nu este garantată și nu este posibil să îl utilizați complet pe alte sisteme de operare sau procesoare, altele decât cele acceptate de Microsoft.

Codificarea programului

Pictogramă lupă mgx2.svg Același subiect în detaliu: Teorema lui Böhm-Jacopini , Codul sursă , Mediul de dezvoltare integrat și Mediul de execuție .
Cod sursă scris în Python

În această fază, are loc alegerea paradigmei de programare și a limbajului de programare relativ cu care să se dezvolte proiectul (de exemplu, Java , C ++ , BASIC , Perl etc.), trecând de la diagrame de flux sau pseudocod , la un mod mai riguros. sintaxa și specificația limbii alese, întocmind codul sursă .

În acest sens, o teoremă a informaticii teoretice ( teorema Böhm-Jacopini ) afirmă că pentru codarea algoritmului în codul sursă al unui anumit limbaj este necesară utilizarea adecvată, posibil combinată, a doar trei structuri pentru controlul fluxul de execuție: secvența sau blocul de instrucțiuni , selecție și iterație bazându-se pe utilizarea variabilelor , constante , tipuri de date, indicatori , operatori aritmetici și logici , structuri de date , funcții , parametri , intrare standard , ieșire standard și eroare de instrucțiuni standard etc. .

Operația de codificare este cea mai supusă erorilor de natură logică și sintactică. În teorie, programul ar putea fi gata în această etapă, dar în realitate prezintă erori ( bug-uri ) în aproape toate cazurile, care vor fi analizate în etapa următoare. De obicei, dezvoltarea unei aplicații are loc local pe PC-ul dezvoltatorului, care va fi capabil să efectueze o primă fază de testare, verificând bunătatea sau nu rezultatul programului realizat.

Uneori, un proiect software este realizat de o comunitate de utilizatori distribuiți în rețea activă prin intermediul grupurilor de știri , așa cum se întâmplă de exemplu pentru diferite distribuții GNU / Linux . Când un proiect software dezvoltă altul pe același tip de program, dar realizat de o altă comunitate, acesta se numește furcă .

Verificarea rezultatului: erori de programare

Pictogramă lupă mgx2.svg Același subiect în detaliu: erori și depanare .
Activități de depanare

Odată ce programul este finalizat, sunt frecvente erorile de programare sau erorile provenite din diverse motive care pot apărea în timpul dezvoltării și executării unui cod. Aceste erori pot fi în esență în trei categorii principale: erori de sintaxă, erori logice și erori de rulare. Toate aceste erori trebuie neapărat eliminate sub pedeapsa cu funcționarea defectuoasă sau blocarea execuției programului în sine.

Faza de verificare și dezvoltare a programului are scopul de a găsi și corecta erorile găsite și se numește depanare . Aceasta este o fază foarte lungă și importantă în care programatorul își verifică bunătatea muncii sale. Remedierea unei erori ar putea cauza noi erori, deci trebuie să fiți foarte atenți.

Pentru a evita depanarea unui program prea complex și articulat, este de preferat să creați un prototip , adică o versiune a rezultatului final care nu prezintă în sine toate funcțiile oferite de proiectul original, obținând o viteză mai mare de corectare a principalele bug-uri . La sfârșitul acestei faze vom avea produsul finit. Operațiunile efectuate în timpul dezvoltării trebuie să fie documentate în mod corespunzător pentru a facilita o modificare viitoare.

Exemplu: adunarea a două numere

Primul program educațional pe care îl scrie un programator instruit este de obicei Hello world . Un alt program simplu și intuitiv este cu siguranță cel care, luate două numere ca intrare , returnează suma lor ca ieșire . În funcție de limbajul de programare utilizat, structura se schimbă și este articulată într-un mod diferit.

Dezvoltarea de software în mediul de afaceri

Pictogramă lupă mgx2.svg Același subiect în detaliu: inginerie software .
Unele faze ale dezvoltării software-ului

Dezvoltarea unui sistem de programe în cadrul unei companii face parte dintr-un proces mult mai larg de analiză și proiectare care implică de obicei o întreagă echipă de analiști / dezvoltatori. Pe lângă faptul că este eficient, rezultatul trebuie să satisfacă cereri specifice activității de afaceri pentru care este conceput.

Inițial continuăm cu o analiză detaliată a cerințelor pe care crearea programului își propune să le rezolve (nevoi) numite și analize funcționale . Analistul trebuie să propună aceste informații și să elaboreze propuneri adecvate în etapa de proiectare. Documentul de ieșire a analizei poartă diferite denumiri: specificații funcționale, specificații, listă de cerințe, dar termenii englezi sunt adesea folosiți. Cerințele înseamnă adesea nu numai funcții, ci și: performanță, condiții de utilizare, specificații tehnologice și hardware și multe altele. În logica managementului proiectului , documentul de definire a cerințelor poate fi însoțit și de cele referitoare la: timpi, costuri, responsabilități, riscuri etc.

Odată finalizată analiza, trecem la faza de proiectare efectivă a noului sistem. Această operațiune implică un număr mare de oameni și idei. Cele mai bune proiecte vor fi selectate și dezvoltate în vederea câștigului economic și a eficienței. Odată ce cel mai bun proiect a fost aprobat, trecem la dezvoltarea reală. Aceasta constă în achiziționarea materialului software (și, eventual, a celui hardware ) necesar pentru a verifica funcționarea noului sistem. Apoi urmează faza de testare a aplicației de către o echipă independentă care întoarce orice erori sau erori către dezvoltatori pentru rezolvarea lor.

Pentru multe companii, software - ul de pe piață este adesea inadecvat nevoilor lor și este necesar să dezvoltăm programe personalizate sau să le modificăm pe cele existente. În acest scop, există și alte companii specializate în acest tip de servicii care sunt, prin urmare, externalizate ( companii de consultanță IT ).

Instalare

Pictogramă lupă mgx2.svg Același subiect în detaliu: implementare .

Odată ce noul sistem a fost creat și verificat, acesta este instalat în cadrul companiei și este pe deplin operațional. Acest impact poate fi traumatic pentru o companie obișnuită cu sistemele vechi, motiv pentru care procedăm în moduri diferite, în funcție de caz:

  • Instalare directă , în care dezactivați vechiul sistem și îl înlocuiți cu cel nou pe care tocmai l-ați creat. Dacă o astfel de înlocuire are probleme neprevăzute în dezvoltare, nu există o copie de rezervă a programelor vechi, provocând probleme uriașe. Această soluție este adoptată numai în absența unor alternative valide.
  • Instalarea paralelă , în care lucrările prevăzute pentru noul sistem sunt distribuite în părți egale pe acesta și pe cel învechit , pentru a face față unei posibile probleme a noului folosind temporar vechiul. Când noul sistem atinge un nivel decent de fiabilitate, îl înlocuiește pe cel vechi.
  • Instalarea eșalonată , în care noul sistem este introdus treptat, pe măsură ce erorile găsite sunt rezolvate, îl înlocuiește pe cel vechi în diferite etape. Prin adoptarea acestei soluții, orice problemă va avea consecințe mai puțin dezastruoase care afectează doar o singură fază. Dezavantajul acestui tip de instalare este timpul foarte lung.
  • Instalația pilot , în care noul sistem este utilizat doar pentru o mică parte din activitățile companiei și, dacă funcționează regulat, este extinsă la întreaga companie . În caz de probleme, acestea vor fi limitate doar la acea parte a activității care adoptă noul sistem, fără a aduce atingere întregii activități a companiei.

Implementare

Odată ce instalarea a fost finalizată, programul va oferi companiei un serviciu, care necesită totuși întreținere, în care problemele întâmpinate sunt rezolvate și modificările funcționale introduse pentru a îmbunătăți performanța programelor.

Domenii de programare

În funcție de utilizarea intenționată a codului, există diferite tipuri de programare, cum ar fi:

Bibliografie

  • Dennis P. Curtin, Kim Foley, Kunal Sen, Cathleen Morin, Calcul de bază , Mc-Graw Hill, 2005

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității Tesauro BNCF 7541 · LCCN (EN) sh85107310 · GND (DE) 4076370-5 · BNF (FR) cb11932648m (dată) · BNE (ES) XX526555 (dată) · NDL (EN, JA) 00.569.223
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT