Andrzej Ment

Andrzej Ment Student, Uniwersytet
w Bydgoszczy

Temat: Diagram klas + interface użytkownika FileManager.

Witam społeczność:)
Na 2gim roku studiów inżynierskich na kierunku Teleinformatyka doszły mi laborki "Programowanie
obiektowe - projekt". Wszystko ładnie, pięknie, cacy. Wchodzi wykładowca, powiedział co wiedział i sytuacja wygląda tak:

Celem projektu jest realizacja prostego programu w środowisku projektowania obiektowego. Aplikacja musi być napisana w sposób w pełni obiektowy z wykorzystaniem różnych funkcjonalności oferowanych przez język. W szczególności takich jak:

-Hermetyzacja, dziedziczenie,
-Przeciążanie metod,
-Modyfikatory dostępu (public, private, protected),
-Kolekcje,
-Wyjątki (Generowanie własnych i przechwytywanie).

Specyfikacja wygląda mniej więcej w ten sposób:

"Realizowanym celem w ramach projektu o powyższym temacie jest stworzenie prostej aplikacji przeznaczonej do zarządzania plikami znajdującymi się na dysku komputera
. Za pomocą stworzonej aplikacji będzie można przeglądać katalogi/pliki znajdujące się na dyskach twardych

komputera oraz wykonywać podstawowe operacje na plikach/folderach, takie jak: wyszukiwanie plików/folderów, kopiowanie plików/folderów, wklejanie plików/folderów, zmiana nazwy plików/folderów, usuwanie plików/folderów, otwieranie plików. Interface graficzny programu planowo ma być zbliżony do interface’u popularnego menedżera plików o nazwie Total Commander (Podział okna programu na 2 niezależne od siebie równe okienka exploratorów z paskami adresu). "

Jeżeli chodzi o interface chciałbym żeby był bardzo prosty - 2 okna exploratora obok siebie + paski adresu i okienko z przyciskiem do wyszukiwania plików/folderów o podanej nazwie i przyciski takie jak: zmiana nazwy (pliku lub folderu), utworzenie nowego folderu, usunięcie folderów/plików. Na srodku pomiędzy oknami przyciski: wytnij (zaznaczony/ne folder/ry plik/ki) z okna do drugiego okna, kopiuj (zaznaczony/ne folder/ry plik/ki) z okna do drugiego okna.

Tak to sobie wyobraziłem.

W tym tygodniu muszę podesłać "projekt", który zawierać będzie:

-diagram klas,
-projekt interface'u użytkownika,
-Przydział klas w systemie do członków grupy projektowej,
-Specyfikacja interface'ów pomiędzy pakietami przypisanymi do poszczególnych programistów w grupie.

Wszyscy robią projekty samodzielnie wiec przydział klas oraz pakietów do poszczególnych osób można pominąć bo jestem sam:)

Do 30 stycznia mam oddać już gotową aplikację wraz z kodem do wglądu i się z niej obronić;) (Sprawdzenie czy praca
jest wykonana samodzielnie, nie kupiona:) )

Teraz przejdźmy do tej smutnej części tematu.

Na pierwszym semestrze jedyne co mieliśmy z programowania
to C na zasadzie "macie kartki z programami, przepiszcie do Visual'a i pobadajcie jak działają." Nic nie działało a jak zadziałało to programy typu "Hello world" lub choinka z gwiazdek która się zapętlała i zapierda**ła przez całe okno wiersza poleceń:) Na 2gim semestrze uhh... "Programowanie obiektowe - wykład". No to zaczęła się teoria, terminologia. (Także podstawowe terminy znam:) ) No i przychodzi 3ci semestr gdzie koleś wchodzi, daje wytyczne i maila i wychodzi. Nic o jakimkolwiek języku, nic nic nic. A o UML'u to już w ogóle ani słowa.

Praca ma być wykonana w Javie

na platformie Netbeans 6.9.1 + tool uml.

Kwestia jest taka, że kod to jakoś bym już sobie wykombinował...w internecie jest multum tutoriali wiec myślę, że sfinalizować bym już to sfinalizował. Najbardziej chodzi o diagram klas + projekt interface'u użytkownika. Nie wiem w ogóle jak się zabrać za diagram...czytałem książkę "UML dla każdego" i po przeczytaniu całości i tak szczerze mówiąc nie jestem w stanie przełożyć tego na mój soft który mam zaprojektować i zaprogramować:/ Jeżeli byłby ktoś miłosierny w jakikolwiek sposób pomóc będe wdzięczny.

pozdrawiam:)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram klas + interface użytkownika FileManager.

Witam

nie będę się odnosił do uczelni itp..;)

proponuje:
1. opisać sobie przykładowe typowe scenariusze pracy z przyszłym programem, najlepiej zdarzenie (potrzebę) i to jak została by wykonana, to nie jest tożsame z przypadkiem użycia -UC)
2. wybrać z tych opisów czynności do wykonania ( to są kandydaci na UC)
3. opisać model dziedziny, program jest na zaliczenie wiec ewentualne z nim kłopoty nas nie interesują, więc model dziedziny można zacząć budować na bazie starej metody: rzeczownik jako kandydaci na klasy, czasowniki na metody,
4. interfejs użytkownika w zasadzie wymyślony :)
Andrzej Ment

Andrzej Ment Student, Uniwersytet
w Bydgoszczy

Temat: Diagram klas + interface użytkownika FileManager.

Ja również nie odnoszę się do nauki programowania na mojej uczelni bo do reszty nie mam zastrzeżeń.

Panie Jarku dziękuje za odpowiedź ale niestety nie za bardzo wiem jak przełożyć to wszystko na diagram. Jeżeli chodzi o rzeczownik jako kandydat na klasy to chodzi o na przykład: Okno1, Okno2, Panel, a czasowniki - metody: Otwórz, kopiuj, wklej, wróć, zamknij? Mam świadomość, że to łopatologiczne podejście ale nie chce tego odklepać tylko również to zrozumieć:) A na razie mam tylko dziwny natłok informacji o UML'u nabyty w ciągu bardzo małego czasu i nic więcej.

Pozdrawiam i dziękuje z góry dziękuje za próbę pomocy;)Andrzej Ment edytował(a) ten post dnia 02.01.11 o godzinie 18:50
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram klas + interface użytkownika FileManager.

Andrzej Ment:
Ja również nie odnoszę się do nauki programowania na mojej uczelni bo do reszty nie mam zastrzeżeń.

Panie Jarku dziękuje za odpowiedź ale niestety nie za bardzo wiem jak przełożyć to wszystko na diagram. Jeżeli chodzi o rzeczownik jako kandydat na klasy to chodzi o na przykład: Okno1, Okno2, Panel, a czasowniki - metody: Otwórz, kopiuj, wklej, wróć, zamknij? Mam świadomość, że to łopatologiczne podejście ale nie chce tego odklepać tylko również to zrozumieć:) A na razie mam tylko dziwny natłok informacji o UML'u nabyty w ciągu bardzo małego czasu i nic więcej.

Pozdrawiam i dziękuje z góry dziękuje za próbę pomocy;)Andrzej Ment edytował(a) ten post dnia 02.01.11 o godzinie 18:50

w kwestii pierwszej części proponuje krótką lekturę ;)
http://it-consulting.pl/autoinstalator/wordpress/index...

co do rzeczowników i czasowników nie jest źle, należy przyporządkować "czasowniki" (operacje) do rzeczowników (klasy). Zwracam uwagę, że to dość kulawa metoda ale na początek może być... dalsze wskazówki w miarę czasu :)
Andrzej Ment

Andrzej Ment Student, Uniwersytet
w Bydgoszczy

Temat: Diagram klas + interface użytkownika FileManager.

lektura przeczytana:)

jeżeli chodzi o kulawą metodę to sporządziłem sobie taką listę: (Nie wiem czy zrobiłem to po Pańskiej myśli;))

KOPIUJ FOLDERY/PLIKI
WYTNIJ FOLDERY/PLIKI
WKLEJ FOLDERY/PLIKI
ZMIEŃ NAZWĘ FOLDERU/PLIKU
USUŃ FOLDERY/PLIKI
UTWÓRZ FOLDER
WYSZUKAJ FOLDERY/PLIKI
ZAZNACZ FOLDERY/PLIKI
OTWÓRZ FOLDER/PLIK
WRÓĆ POPRZEDNI FOLDER
WYŚWIETL ADRES
ZAMKNIJ PROGRAM

...tylko teraz kwestia co dalej:)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram klas + interface użytkownika FileManager.

Andrzej Ment:
lektura przeczytana:)

jeżeli chodzi o kulawą metodę to sporządziłem sobie taką listę: (Nie wiem czy zrobiłem to po Pańskiej myśli;))

KOPIUJ FOLDERY/PLIKI
WYTNIJ FOLDERY/PLIKI
WKLEJ FOLDERY/PLIKI
ZMIEŃ NAZWĘ FOLDERU/PLIKU
USUŃ FOLDERY/PLIKI
UTWÓRZ FOLDER
WYSZUKAJ FOLDERY/PLIKI
ZAZNACZ FOLDERY/PLIKI
OTWÓRZ FOLDER/PLIK
WRÓĆ POPRZEDNI FOLDER
WYŚWIETL ADRES
ZAMKNIJ PROGRAM

...tylko teraz kwestia co dalej:)

pytanie: które z powyższych są samowystarczalne (mają sens jako działanie?)

np. polecenie kopiowania lub wycinania ma sens jeśli pojawi się wklejanie lub klonowanie, zmiana nazwy, usuń, utwórz to operacje typu CRUD na jednym obiekcie. Należy zawsze pamiętać, że ingerencja w obiekt (stan jego atrybutów) to z reguły jeden przypadek użycia (przywołaj formatkę na ekran, poklikaj i zapisz efekt).

Po drugie różnica pomiędzy plikiem i folderem jest taka, że w zasadzie folder to specyficzny plik na dysku. Innymi słowy, plik np. mógłby mieć atrybut folder=TAK/NIE, jeżeli ma NIE to może być częścią agregatu ale już sam nie może być agregatem.

Dalej: operacje Twórz i Usuń powinny być poza plikiem; to (sugestia projektowa) efekt tego, że stosuje metodykę DDD oraz projektowanie dziedziny w modelu tools&materials to jest obiekty są podzielone na narzędzia i materiały, odpowiedzialność jest podzielona: materiał jest obrabiany narzędziem a sam się nie obrabia (w szczególności nie tworzy, dla DDD mamy tu wzorzec fabryka lub podobne).

Widzę tu więc klasę Plik, klasę ZarządcaPlików oraz Repozytorium, w tym przypadku Repozytorium stanowi interfejs dysku twardego a klasa ZarządcaPlików jest ładowanym kodem, klasa (obiekt) Repozyrium ukrywa (hermetyzuje) przez Zarządcą fizyczny dysk.

nie miałem czasu na rysunki :)

Następna dyskusja:

Diagram klas analitycznych




Wyślij zaproszenie do