Wakacje spowodowały u mnie mały zator prasy dlatego postanowiłem napisać kilka słów o tym co w całej kupce a nie o tym co pojedynczym numerze. Od pewnego czasu jestem czytelnikiem miesięcznika Software Developer’s Journal (SDJ). Co prawda jestem analitykiem a nie np. koderem ale w końcu niektóre projekty i UML’owe obrazki piszę dla koderów właśnie a dobrze jest znać swojego „klienta” i jego potrzeby. A co znajdziemy w numerach z Czerwca, Lipca i Sierpnia? Kilka ciekawostek
AJAX
Co to jest AJAX, skoro nie jest to tylko klub piłkarski? AJAX (ang. Asynchronous JavaScript and XML, Asynchroniczny JavaScript i XML) ? technika projektowania aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu. (źr. WIKI). Łatwo to zauważyć korzystając np. z niektórych aplikacji dostępnych w Google takich jak choćby Kalendarz. Nie będę się rozpisywał o szczegółach bo nie taki mam cel, rzecz w tym, że technologia ta uwalnia nas od niektórych wad aplikacji tworzonych dla WWW a mianowicie tego, że HTTP to protokół bezpołączeniowy. Efektem tego jest uciążliwe niejednokrotnie wymagane każdorazowe przeładowanie strony WWW jeżeli pracujemy z interaktywna zawartością i formularzami: po wypełnieniu formularza należy przeładować strony by obejrzeć skutki (np. spotykana powszechnie na stronach książka gości wymaga przeładowania w celu obejrzenia własnego do niej wpisu). Użycie AJAX zbliża nas do komfortu pracy z aplikacjami webowymi bliskiemu pracy z aplikacjami lokalnymi. Tyle o możliwościach, zainteresowanych odsyłam do numeru. Warto tu zaznaczyć, że Microsoft przystąpił do grupy OpenAJAX zrzeszającej firmy propagujące ten standard.
Obiektowe dane w relacyjnej bazie
Pewnie nie napisze nic nowego jeśli stwierdzę, że technologia obiektowa rośnie w siłę. Jednak kto zajmuje się analizą obiektową, projektowaniem obiektowym i programowanie pewnie nie raz „walczył” z problemem danych. Naturalnym sposobem zapisu danych była by tu obiektowa baza danych (motor bazy) jednak jak wiemy na rynku dominują nadal bazy relacyjne. Mapowanie ORM (Object Relational Mapping) to dość trudne zajęcie, tworzenie dodatkowych klas odpowiadających za zarządzanie danymi w bazach relacyjnych jest dość żmudnym zajęciem. Dlatego warto się zapoznać z takimi narzędziami jak iBATIS czy jego konkurentem Hibernate. Są to specjalizowane programy pośredniczące pomiędzy obiektową aplikacją a relacyjna bazą danych. Upraszczają projektowanie i tworzenie obiektowych systemów korzystających z baz relacyjnych.
UML -standaryzacja notacji
UML to nie tylko notacja i graficzny język modelowania. To moim zdaniem przede wszystkim narzędzie komunikacji. Pojawił sie już UML v.2.1 więc warto go poznać. Notacja stanowi małe wyzwanie, jednak po pierwsze pomaga po drugie jak ktoś już posiadł metody obiektowe w analizie i projektowaniu to pełny UML będzie dla niego uzupełnieniem tego co już wie. Tak więc zarówno analitykom jak i programistom polecam. Dlaczego? Bo kość niezgody jaką są wymagania i sposoby ich dokumentowania niemalże znika gdy wymagania te są opisane za pomocą czegoś co jest jednoznaczne i zrozumiałe dla wykonawcy (chyba nie ma nic bardziej mylącego niż wymagania na system opisane prozą).
Open Office 2.2 PL
Zupełnym przypadkiem stałem się użytkownikiem OpenOffice 2.2. Mała „awaria” mojego notebooka i potrzeba reinstalacji całego oprogramowania przypomniała mi, że posiadana licencja na MS Office to tak na prawdę legalna licencja ale otrzymana od ostatniego zatrudniającego mnie podmiotu do projektu. Projekt się skończył i moja „projektowa” instalacja także właściwie straciła racje bytu. A tu napatoczyła mi się „wiedza” o nowej wersji pakietu 2.2 w Lipcowym numerze SDJ. Pomyślałem, chcę mieć legalnie wiec sprawdzę co to za zwierze ten OpenOffice. Nie będę się rozpisywał o tym czym jest OpenOffice, to można samemu sprawdzić. Na pewno niektóre nawyki po MS są jednak do zmiany jednak co innego mnie wręcz urzekło czego nawet nie podejrzewałem: OpenOffice z nikim nie konkuruje dlatego zawiera wbudowane np. eksport do PDF, flash i wiele innych drobiazgów ułatwiających życie, które mając MS Office musiałem doinstalowywać pobierajac z sieci dodatki w postaci różnego rodzaju freeware’ów.
UML – Przypadki Użycia
Lipcowy numer SDJ zawiera ciekawy artykuł o Przypadkach Użycia czyli metodzie zapisu powszechnie używanej do dokumentowania wymagań funkcjonalnych. Artykuł interesujący bo w ciekawy i jasny sposób opisuje stosowanie ten metody jednak moim zdaniem minusem jest umieszczenie w podsumowaniu stwierdzenia, że przypadki użycia są „podstawowym elementem współczesnych metodyk wytwarzania oprogramowania”. Zdania na ten tema są podzielone, coraz częściej jednak spotykam się z tezą, że przypadki użycia są dobrym sposobem na udokumentowanie wyników analiz procesów biznesowych. Zastosowanie tylko przypadków użycia jako metody kolekcjonowania wymagań rodzi poważne ryzyko pominięcia istotnych rzeczy gdyż wszelkie metody ankietowe mają tę wadę, że otrzymamy tylko odpowiedzi na zadane pytania. Jeżeli nie mamy innej metody skorelowania zebranych tak informacji z faktyczną organizacją firmy bardzo łatwo możemy pominąć istotne wymagania, które dla przyszłych użytkowników są tak oczywiste, ze nie raczyli o nich wspomnieć.
Zarządzanie ryzykiem
Polecam artykuł na ten temat z numery sierpniowego SDJ. Temat powszechnie nie lubiany, traktowany po macoszemu. opisuje w zrozumiały sposób jak zarządzać ryzykiem zgodnie z norma ISO 27001:2005. Poprawnie przeprowadzona analiza ryzyka daje informacje o tym: co należy chronić, jakie zagrożenia mogą wystąpić, jaką szkodę mogą wyrządzić. Tak więc zastanawiając się jakie rozwiązanie wdrożyć mamy kluczowa informację w sferze wymagań: budżet czyli jaki kosztem ma sens ochrona, a progiem rentowności do obliczeń jest właśnie informacja jaka szkodę i z jakim prawdopodobieństwem mogą wyrządzić zidentyfikowane czynniki ryzyka.
UML – statyczne aspekty modelowania
Ten obszar to pole dla dwóch „ról” w projekcie. Analityka i architekta systemu. Diagram klas to praca dla analityka, diagramy komponentów to robota dla osoby planującej fizyczna implementacje systemu zaś diagram wdrożenia polecam jednym i drugim. Analityk ma narzędzie do udokumentowania środowiska wdrożenia a architekt do dokumentowania jego dalszego rozwijania pod kątem budowanego systemu. Diagram wdrożenia stanowi także doskonała metodę jednoznacznego dokumentowania postaci przyszłego systemu co nie raz stanowi potem ostatnia deskę ratunku podczas odawania gotowego systemu klientowi.
eZ Publish
To nazwa systemu CMS (ang. Content Management System, System Zarządzania Treścią) do budowy serwisów WWW. eZ Publish to także tytuł dodatku SDJ Extra zawierającego wyczerpujący opis użycia tego CMS’a wraz z CD zawierającym kod CMS’a i narzędzi ułatwiających jego instalacje i rozbudowę. Sa tam więc środowisko programistyczne między innymi dla PHP Eclipse 3.2.2 jak i edHTML 5.02 rozbudowany edytor HTML. Oba narzędzia są bezpłatne.
(na podstawie numerów SDJ Czerwiec, Lipiec i Sierpień 2007)