Descoperirea cunoştinţelor
/ Knowledge Discovery >> Descoperirea cunoştinţelor >> tech >> calculator >> securitatea calculatoarelor >>

Modul în care problema anului 2000 Worked

a efectua o mulțime de calcule pe date. De exemplu, pentru a calcula cat de vechi esti un program va avea data de astăzi și scade data nașterii dvs. de la ea. Că scăderea funcționează bine de datele de an cu două cifre până la data de astăzi și data nașterii dumneavoastră se află în diferite secole. Apoi calculul nu mai funcționează. De exemplu, în cazul în care programul consideră că data de astăzi este 1/1/00 si ziua ta este 1/1/65, atunci se poate calcula că sunteți -65 de ani, mai degrabă decât 35 de ani. Ca urmare, calculele data da de ieșire și software eronate accidente sau produce rezultatele greșit.

Cel mai important lucru este să recunoaștem că asta este. Aceasta este întreaga problemă anului 2000. Mulți programatori folosit un format de două cifre pentru anul în programele lor, și, ca rezultat calculele data nu va produce răspunsuri corecte pe 1/1/2000. Nu este nimic mai mult decât atât.

Soluția, în mod evident, este de a stabili programe, astfel încât acestea funcționează corect. Există o serie de soluții standard: Site-ul

  • Recode software-ul, astfel încât să înțeleagă că de ani ca 00, 01, 02, etc. într-adevăr înseamnă 2000, 2001, 2002, etc.
  • " rezolva cu adevărat problema " prin utilizarea substituenți 4-cifre de ani de zile și recodare toate software-ul să se ocupe de date 4 cifre. [Întrebare interesantă gând - de ce sa folositi 4 cifre pentru anul? De ce nu folosiți 5, sau chiar 6? Pentru că cei mai mulți oameni presupun că nimeni nu va folosi acest software 8.000 de ani de acum, și care pare ca o presupunere rezonabilă. Acum puteți vedea cum ne-am în problema Y2K ...] Site-ul

    Oricare dintre aceste remedieri este ușor de făcut, la nivel conceptual - te duci în codul, găsi fiecare calcul data și schimbare le să se ocupe de lucruri în mod corespunzător. E doar că există milioane de locuri în software-ul care trebuie să fie stabilită, iar fiecare fix trebuie să fie făcut de mână și apoi testate. De exemplu, o companie de asigurări ar putea avea 20 sau 30 de milioane de linii de cod care efectuează calculele sale de asigurare. În interiorul codul ar putea fi de 100.000 de ori de 200.000 de data calcule. În funcție de modul în care sa scris codul, este posibil ca programatorii trebuie să meargă în mână și să modifice prin fiecare punct din program care utilizează o dată. Apoi le-au pentru a testa fiecare schimbare. Testarea este partea cea mai grea, în cele mai multe cazuri -. Poate lua o mulțime d

    Page [1] [2] [3] [4] [5]