Przeczytaj
Wybór algorytmu szyfrowania i deszyfrowania
Przed przystąpieniem do analizy zadań projektowych, musimy najpierw zdecydować, jakie funkcje ma spełniać nasz program. W tym przypadku są to: szyfrowanie i deszyfrowanie informacji. Należy więc zadać sobie pytanie, w jaki sposób miałby się odbywać cały proces. I spróbować rozwiązać kolejne kwestie, związane z tematem: czy zamierzamy korzystać z gotowych przetestowanych rozwiązań, czy może nasz program ma realizować innowatorskie, opracowane przez nas metody? Czy zależy nam na szyfrowaniu kluczowych informacji, ważnych dla bezpieczeństwa danych? Czy też priorytetem jest szybkość wykonywanych operacji? Czy szyfrować będziemy zdania, czy może ciągi liczb?
Podobnych pytań i wątpliwości może być wiele. Na potrzeby omawianego projektu pozostaniemy przy poznanych dotychczas algorytmach szyfrowania oraz deszyfrowania informacji. Możemy na przykład założyć, że zrealizujemy projekt programu, w którym wykorzystamy szyfr Cezara.
Analiza zadań projektowych
Gdy podjęliśmy już decyzję, jaki algorytm szyfrowania wykorzystamy, możemy przejść do analizy poszczególnych zadań projektowych. Jej przeprowadzenie przed przystąpieniem do praktycznej realizacji kodu programu może się wydawać zbędne, jednakże wbrew pozorom zaoszczędzi nam to wielu późniejszych poprawek projektu, a także uporządkuje harmonogram pracy. Ustalenie konkretnych zadań oraz ich kolejności podczas tworzenia projektu pomoże nam skupić się na aktualnych priorytetach. Wiemy na przykład, że obecna faza projektu to funkcja deszyfrująca informacje – i w tym momencie jest to jedyne, czym musimy się zająć. Łatwiej będzie nam wyobrazić sobie założone rezultaty na każdym z mniejszych etapów pracy niż ukończony program, a skupiając się jedynie na ostatecznym rezultacie, możemy pominąć wiele istotnych szczegółów.
Ostatecznie zrezygnowanie z analizy zadań projektowych pozornie zaoszczędzi nam trochę czasu, jednakże taka decyzja może skutkować dodatkowymi godzinami naprawiania możliwych do uniknięcia błędów. Spróbujemy więc przemyśleć, czym musimy się zająć podczas pisania programu kryptograficznego. Aplikacja powinna realizować szyfrowanie i deszyfrowanie z zastosowaniem algorytmu Cezara.
Najpierw należy podjąć decyzję, w jakim języku programowania napiszemy kod. Wybór ten może być determinowany wieloma czynnikami, jednak w naszym wypadku wybierzemy języki C++, Java oraz Python (praktycznej realizacji projektu w tych językach poświęcimy kolejne e‑materiały).
W następnym kroku należy zastanowić się nad ogólną konstrukcją docelowego programu. Aby potencjalni użytkownicy mogli bez problemu odnajdywać potrzebne funkcje, program powinien być zaopatrzony w odpowiednie menu i interfejs. Obecność tych elementów to standard w dzisiejszych czasach i warto pomyśleć o nich również w przypadku naszego projektu. W menu znajdą się takie opcje jak szyfrowanie
, deszyfrowanie
oraz wyjście
. Jest to podstawowy zbiór funkcji, który na potrzeby naszego programu będzie wystarczający. Musimy więc skonstruować odpowiednie menu, a następnie napisać poszczególne fragmenty kodu odpowiedzialne za trzy wspomniane opcje.
Najprostszą listę zadań możemy przedstawić następująco:
Wybór języka programowania.
Stworzenie menu zawierającego opcje
szyfrowanie
,deszyfrowanie
orazwyjście
.Stworzenie funkcji odpowiedzialnej za szyfrowanie.
Stworzenie funkcji odpowiedzialnej za deszyfrowanie.
Stworzenie funkcji odpowiedzialnej za wyłączanie programu.
Jest to bardzo ogólna lista zadań projektowych, jednak daje nam już wstępne informacje na temat realizowanego projektu.
Warto praktykować działania projektowe i analizować zadania różnego typu. Nawet w przypadku prostych, szkolnych projektów odpowiednie przygotowanie i zaplanowanie kolejnych kroków może zmienić, przyśpieszyć przebieg całej pracy. Zarządzanie projektamiZarządzanie projektami to obecnie potężna dziedzina, którą zajmują się całe zespoły wykwalifikowanych w tym kierunku ludzi. Zdobyte teraz umiejętności, przydadzą ci się w pracy projektowej na studiach, a także podczas wykonywania obowiązków zawodowych.
Słownik
zbiór działań mający na celu stworzenie unikalnego produktu lub usługi w określonym czasie
działania, które obejmują planowanie projektu oraz kontrolę nad jego przebiegiem i zakończeniem