Najlepiej
przeglądać z
Powrót
Załącznik A
Zakresy dat przechowywanych w
programach Microsoftu
Załącznik B
Zasady określania lat
przestępnych
Załącznik C
Rozwiązanie problemów z BIOS-em
Załącznik D
Zalecane zasady postępowania
odnośnie roku 2000 dla projektantów aplikacji,
programistów i osób testujących
Załącznik E
Jak przygotować aplikację na rok
2000 w Visual Basicu lub Visual FoxPro.
Jak przygotować aplikacje w FoxPro
na rok 2000
Załącznik F
Zasady konwersji roku dwucyfrowego
na rok czterocyfrowy
Rok 2000: problemy i rozwiązania
Problem roku 2000 – często
zadawane pytania
|
Microsoft a
rok 2000
Załącznik D: zalecane
zasady postępowania odnośnie roku 2000 dla
projektantów aplikacji, programistów i osób
testujących
Microsoft utrzymuje
intranetową witrynę WWW, przeznaczoną do ogólnego
szkolenia w tym zakresie. Zawiera ona zbiór zasad
postępowania, podzielony na trzy grupy według typu
odbiorców: kierowników programów, programistów i
osób testujących.
Niektóre problemy
dotyczące programistów:
- Nie istnieje jeden,
ustalony w branży sposób interpretowania dat z
rokiem skróconym do dwóch cyfr.
- Reguły wyznaczania
roku przestępnego są następujące: (1) rok
podzielny przez 4 jest przestępny, ale (2) rok
podzielny przez 100 nie jest przestępny, ale (3)
rok podzielny przez 400 jest przestępny.
Programy zakodowane bez uwzględnienia reguły
(3) będą w roku 2000 działać niepoprawnie.
Przy niepoprawnym zakodowaniu reguły (3) program
może uznać, że w lutym 2000 r. jest 27, a
nawet 30 dni.
- Przekształcenie daty
sekwencyjnej (tzn. liczby dni od początku 1980
r.) na numer dnia w miesiącu lub na dzień
tygodnia wymaga prawidłowego zastosowania reguł
wyznaczania roku przestępnego.
Zalecenia dla
programistów Microsoftu dotyczące projektowania,
kodowania i kontroli kodu (lista skrócona):
- Należy używać
systemowych formatów i procedur dla dat, chyba
że wiadomo, iż na danej platformie występują
zakłócenia.
- Sprawdzić, czy w
programie występują specjalne wartości roku
(00 lub 99) albo daty (np. 9.9.99) do zakodowania
przypadków szczególnych.
- Upewnić się, czy
rok dwucyfrowy jest prawidłowo wyświetlany w
zakresie 00-09, 10-19 itd.
- Sprawdzić, czy w
programie występuje kod obliczający dzień
tygodnia i w ilu miejscach się znajduje. Uwaga:
2000 jest rokiem przestępnym.
- Sprawdzić, jakie
występują ograniczenia na zakres dat. Czy
format jest oznaczony? Czy daty są
“dodatnie” czy “ujemne”? Przy jakiej
dacie najbardziej znaczący bit reprezentacji
daty przestawia się na 1?
- Czy występują
formaty plików, w których pola daty zawierają
rok dwucyfrowy?
- Czy rok jest używany
do indeksowania, mieszania lub sortowania?
- Czy założone wyniki
obliczeń na datach i godzinach są weryfikowane
przez asercje?
- Czy w programie
występuje kod konwersji między formatami
danych? W ilu miejscach?
- Ustalić zagadnienia
specyficzne dla danego produktu (lista pełna).
Sugestie odnośnie
testowania (lista skrócona):
- Podczas testowania
platformy sprawdzić, jak obsługiwane są
błędy BIOS-u związane z rokiem 2000.
Sprawdzić wyświetlanie roku w każdej dekadzie
od 2000 do 2099. Jeżeli platforma uwzględnia
strefy czasowe, sprawdzić, kiedy UTC
(uniwersalny czas skoordynowany, szczegóły –
patrz strona WWW Narodowego Instytutu Standardów
i Technologii USA pod adresem
http://www.bldrdoc.gov/timefreq/) należy do
innego stulecia niż czas lokalny (zarówno
jeśli czas lokalny jest wcześniejszy, jak i
późniejszy niż UTC).
- Przetestować
aplikację przy wprowadzaniu dat z rokiem
dwucyfrowym oraz wyświetlanie dat z rokiem
dwucyfrowym przed rokiem 2000 i po nim.
Sprawdzić wprowadzanie i wyświetlanie dat
należących do innego stulecia (poprzedniego i
następnego).
- Sprawdzić
wprowadzanie i wyświetlanie dat z rokiem
czterocyfrowym.
- Sprawdzić sortowanie
dat w przypadku, gdy niektóre daty są przed
rokiem 2000, a niektóre po nim.
- Sprawdzić dni
tygodnia dla dat przed 29 lutego 2000, w dniu 29
lutego oraz w datach późniejszych (1 lutego
2001).
- Czy program wylicza
kiedykolwiek numer kolejnego roku? Decydujący
może być test na rok 1999.
- Co się dzieje,
jeżeli nastąpi połączenie w sieci z maszyną
o źle ustawionym roku? Albo w innej strefie
czasowej?
- Czy można utworzyć
kopię zapasową przed rokiem 2000, a odtworzyć
ją po tym roku?
- Czy występują
zakresy dat? Czy zakres może objąć daty przed
rokiem 2000 i po nim?
- Czy jakakolwiek
poprzednia wersja programu zapisuje dane w pliku
w takim formacie, że rok 00 lub 99 oznacza
jakiś przypadek szczególny (np. nieograniczony
termin ważności)?
- Ustalić zakres dat,
jakie program może przyjmować.
- Ustalić specyficzne
problemy, związanie z testowaniem danego
produktu (lista pełna).
|