70 likes | 217 Views
Podsumowanie metodologii OMT. Podsumowanie metodologii. Metodyka zakłada szereg kroków. Kolejność ich jest istotna, ale: - doświadczeni projektanci mogą wykonać niektóre kroki równolegle - iteracje są niezbędne dla uwzględnienia różnych poziomów abstrakcji i rafinacji szczegółów
E N D
Podsumowanie metodologii Metodyka zakłada szereg kroków. Kolejność ich jest istotna, ale: - doświadczeni projektanci mogą wykonać niektóre kroki równolegle - iteracje są niezbędne dla uwzględnienia różnych poziomów abstrakcji i rafinacji szczegółów - po analizie całości na pewnym poziomie abstrakcji możliwe jest wydzielenie podsystemu i rozwijanie tych podsystemów niezależnie Różnica pomiędzy analizą i projektowaniem jest czasami trudno uchwytna. Istnieją proste reguły dla ich rozróżnienia: - Model analityczny zawiera informację istotną z punktu widzenia opisywanego świata i powinien prezentować zewnętrze systemu. Model analityczny powinien być zrozumiały dla przyszłego uzytkownika systemu i powinien wyrażać zewnętrzne wymagania na system. - Model projektowy jest zorientowany na implementację komputerową. W związku z tym musi być rozsądnie efektywny i praktyczny do zakodowania. W praktyce, większość informacji z modelu analitycznego może być pozostawiona bez zmian w modelu projektowym. Dokumentacja modeli powinna być odpowiednio zróznicowana, aby uwzględnić te dwie perspektywy.
Podsumowanie metodologii: Analiza (1) Model jest wyrażony w terminach obiektów, związków, dynamicznego przepływu sterowania, i transformacji funkcjonalnych. Kroki są następujące: 1. Napisz lub uzyskaj wstepny opis problemu (Ustalenie Problemu) 2. Zbuduj model obiektów: • zidentyfikuj klasy obiektów • załóż słownik danych zawierający opisy klas, atrybutów i asocjacji • połącz klasy asocjacjami • dodaj atrybuty do obiektów i powiązań • zorganizuj i uprość klasy obiektów używając dziedziczenia • przetestuj ścieżki dostępu używając scenariuszy; powtórz powyższe kroki jeżeli potrzeba • zgrupuj klasy w moduły, bazując na powiązaniach klas i związanych funkcjach Model Obiektów = diagram modelu obiektów + słownik danych 3. Rozwiń model dynamiczny • przygotuj scenariusze typowych sekwencji interakcji • zidentyfikuj zdarzenia między obiektami i przygotuj trop zdarzeń dla każdego scenariusza • przygotuj diagram przepływu zdarzeń dla systemu • rozwiń diagram stanów dla każdej klasy, która ma istotne dynamiczne zachowanie • sprawdź spójność i kompletność zdarzeń występujących pomiędzy diagramami stanów Model Dynamiczny = diagram stanów + globalny diagram przepływu zdarzeń
Podsumowanie metodologii: Analiza (2) 4. Skonstruuj model funkcjonalny • zidentyfikuj wartości wejściowe i wyjściowe • użyj diagramu przepływu danych dla pokazania zależności pomiędzy funkcjami • opisz co robi każda funkcja • zidentyfiku ograniczenia • wyspecyfikuj kryteria optymalizacji Model Funkcjonalny = diagram przepływu danych + ograniczenia 5. Weryfikuj, powtarzaj i uściślaj wymienione trzy modele • Dodaj kluczowe operacje odkryte podczas przygotowania modelu funkcjonalnego do modelu obiektów. Nie pokazuj w nim wszystkich operacji, gdyż mogą zaciemnić model. • Zweryfikuj klasy, asocjacje atrybuty i operacje na wzajemną spójność i kompletność. Porównaj trzy modele na wybranym poziomie abstrakcji. Porównaj je z Ustaleniem Problemu oraz z wiedzą dziedzinową. Przetestuj modele używając scenariuszy • Rozpracuj bardziej szczegółowe scenariusze (właczając w to warunki błędów) jako warianty scenariuszy podstawowych. Użyj te “Co, jak...?” scenariusze do dalszej weryfikacji trzech modeli • Powtórz powyższe kroki zgodnie z potrzebą, aż do zakończenia analizy. Dokument Analizy = Ustalenie Problemu + Model Obiektów + Model Dynamiczny + Model Funkcjonalny
Podsumowanie metodologii:Projektowanie Systemowe Podczas projektowania systemowego wybierana jest ogólna architektura systemu. 1. Organizacja systemu, określenie jego podsystemów 2. Zidentyfikowanie procesów współbieżnych inherentnych dla problemu 3. Przydzielenie podsystemów do procesorów i zadań 4. Wybranie podejścia do zarządzania składem (nośnikami) danych: strukturą danych, plikami, bazą danych 5. Ustalenie dostępu do zasobów globalnych 6. Implementacja sterowania w oprogramowaniu - użyj pewnych zmiennych programu do przechowywanbia stanu, lub - bezpośrednio zaimplementuj automat ze stanami, lub - użyj techniki zadań współbieżnych 7. Ustalenie warunków brzegowych 8. Ustalenie priorytetów obowiazujacych przy kompromisach Dokument Projektowania Systemowego = struktura podstawowej architektury systemu oraz decyzje dotyczące strategii wysokiego poziomu.
Podsumowanie metodologii: Projektowanie obiektowe (1) Podczas projektowania obiektowego rozpracowujemy model analizy zapewniając szczegółową podstawę dla implementacji. Decyzje implementacyjne określamy bez nadmiernego wchodzenia w detale języka programowania lub systemu bazy danych. Projektowanie obiektów przesuwa orientację ze świata rzeczywistego będącego przedmiotem modelu analitycznego na świat komputerowy, będący przedmiotem implementacji. 1. Odzyskaj operacje modelu obiektowego z innych modeli - Znajdź operację dla każdego procesu w modelu funkcjonalnym - Zdefiniuj operację dla każdego zdarzenia w modelu dynamicznym, w zależności od implementacji sterowania 2. Opracuj algorytmy implementujące operacje - Wybierz algorytmy minimalizujące koszt operacji - Wybierz struktury danych właściwe dla algorytmów - Zdefiniuj nowe wewnętrzne klasy i operacje, jeżeli są potrzebne - Przypisz odpowiedzialność do operacji które nie są związane z pojedynczą klasą 3. Zoptymalizuj ścieżki dostępu do danych - Dodaj redundantne asocjacje dla zminimalizowania kosztów dostępu i zmaksymalizowania wygody - Zmień układ obliczeń dla większej efektywności - Określ zapamiętywanie wartości pochodnych dla uniknięcia ponownego wykonywania skomplikowanych operacji
Podsumowanie metodologii: Projektowanie obiektowe (2) 3. Zoptymalizuj ścieżki dostępu do danych - Dodaj redundantne asocjacje dla zminimalizowania kosztów dostępu i zmaksymalizowania wygody - Zmień układ obliczeń dla większej efektywności - Określ zapamiętywanie wartości pochodnych dla uniknięcia ponownego wykonywania skomplikowanych operacji 4. Zaimplementuj sterowanie oprogramowaniem poprzez zmaterializowanie założeń przyjetych podczas projektowania systemu 5. Popraw strukture klas dla zwiększenia stopnia dziedziczenia - Zmień i popraw aranżację klas i operacji dla zwiększenia stopnia dziedziczenia - Zwiększ abstrakcję poprzez wyciągnięcie przed nawias wspólnych metod - Użyj delegacji dla dzielenia metod jeżeli dziedziczenie jest semantycznie niepoprawne 6. Zaprojektuj implementację asocjacji - Przeanalizuj przejścia po asocjacjach - Zaimplementuj każdą asocjację jako odrębny obiekt lub dodaj do jednej lub dwóch klas atrybuty przechowujące obiekty (referencje, wskaźniki) 7. Określ dokładną reprezentację atrybutów obiektów 8. Umieść klasy i asocjacje w modułach Dokument Projektowy = Szczegółowy Model Obiektów + Szczegółowy Model Dynamiczny + Szczegółowy Model Funkcjonalny