OOAD - Analiza zorientowana obiektowo
W fazie analizy systemu lub analizy obiektowej tworzenia oprogramowania określa się wymagania systemowe, identyfikuje klasy i identyfikuje relacje między klasami.
Trzy techniki analizy, które są używane w połączeniu ze sobą do analizy obiektowej to modelowanie obiektowe, modelowanie dynamiczne i modelowanie funkcjonalne.
Modelowanie obiektów
Modelowanie obiektowe rozwija statyczną strukturę systemu oprogramowania w kategoriach obiektów. Identyfikuje obiekty, klasy, do których można je grupować, oraz relacje między obiektami. Określa także główne atrybuty i operacje charakteryzujące każdą klasę.
Proces modelowania obiektów można zwizualizować w następujących krokach -
- Identyfikuj obiekty i grupuj w klasy
- Zidentyfikuj relacje między klasami
- Utwórz diagram modelu obiektów użytkownika
- Zdefiniuj atrybuty obiektu użytkownika
- Zdefiniuj operacje, które powinny zostać wykonane na klasach
- Przejrzyj glosariusz
Modelowanie dynamiczne
Po przeanalizowaniu statycznego zachowania systemu należy zbadać jego zachowanie względem czasu i zmian zewnętrznych. Taki jest cel modelowania dynamicznego.
Modelowanie dynamiczne można zdefiniować jako „sposób opisania, w jaki sposób pojedynczy obiekt reaguje na zdarzenia, albo zdarzenia wewnętrzne wyzwalane przez inne obiekty, albo zdarzenia zewnętrzne wyzwalane przez świat zewnętrzny”.
Proces modelowania dynamicznego można zwizualizować w następujących krokach -
- Zidentyfikuj stany każdego obiektu
- Identyfikuj zdarzenia i analizuj zastosowanie działań
- Skonstruuj diagram modelu dynamicznego, składający się z diagramów przejść stanów
- Wyraź każdy stan za pomocą atrybutów obiektu
- Sprawdź poprawność narysowanych diagramów stanów
Modelowanie funkcjonalne
Modelowanie funkcjonalne jest ostatnim elementem analizy zorientowanej obiektowo. Model funkcjonalny pokazuje procesy, które są wykonywane w obiekcie i jak zmieniają się dane podczas przemieszczania się między metodami. Określa znaczenie operacji modelowania obiektów i działań modelowania dynamicznego. Model funkcjonalny odpowiada schematowi przepływu danych tradycyjnej analizy strukturalnej.
Proces modelowania funkcjonalnego można zwizualizować w następujących krokach -
- Zidentyfikuj wszystkie wejścia i wyjścia
- Skonstruuj diagramy przepływu danych pokazujące zależności funkcjonalne
- Podaj cel każdej funkcji
- Zidentyfikuj ograniczenia
- Określ kryteria optymalizacji
Analiza strukturalna a analiza zorientowana obiektowo
Podejście Structured Analysis / Structured Design (SASD) jest tradycyjnym podejściem do tworzenia oprogramowania opartym na modelu kaskadowym. Fazy rozwoju systemu wykorzystującego SASD to -
- Studium wykonalności
- Analiza wymagań i specyfikacja
- Projekt systemu
- Implementation
- Przegląd powdrożeniowy
Teraz przyjrzymy się względnym zaletom i wadom podejścia do analizy strukturalnej i metody analizy zorientowanej obiektowo.
Zalety / wady analizy zorientowanej obiektowo
Zalety | Niedogodności |
---|---|
Koncentruje się na danych, a nie na procedurach, jak w analizie strukturalnej. | Funkcjonalność jest ograniczona w obrębie obiektów. Może to stanowić problem dla systemów, które są z natury proceduralne lub obliczeniowe. |
Zasady hermetyzacji i ukrywania danych pomagają programistom w opracowywaniu systemów, które nie mogą być modyfikowane przez inne części systemu. | Nie może zidentyfikować, które obiekty wygenerowałyby optymalny projekt systemu. |
Zasady hermetyzacji i ukrywania danych pomagają programistom w opracowywaniu systemów, które nie mogą być modyfikowane przez inne części systemu. | Modele zorientowane obiektowo nie pokazują w prosty sposób komunikacji między obiektami w systemie. |
Dzięki modułowości pozwala na efektywne zarządzanie złożonością oprogramowania. | Wszystkie interfejsy między obiektami nie mogą być przedstawione na jednym diagramie. |
Można go rozbudować z małych do dużych systemów z większą łatwością niż w systemach po analizie strukturalnej. |
Zalety / wady analizy strukturalnej
Zalety | Niedogodności |
---|---|
Ponieważ opiera się na podejściu odgórnym, w przeciwieństwie do oddolnego podejścia do analizy obiektowej, można je łatwiej zrozumieć niż OOA. | W tradycyjnych modelach analizy strukturalnej jedna faza powinna zostać zakończona przed następną. Stwarza to problem w projektowaniu, zwłaszcza jeśli pojawiają się błędy lub zmieniają się wymagania. |
Opiera się na funkcjonalności. Określany jest ogólny cel, a następnie przeprowadzany jest rozkład funkcjonalny w celu opracowania oprogramowania. Nacisk nie tylko zapewnia lepsze zrozumienie systemu, ale także generuje bardziej kompletne systemy. | Początkowy koszt budowy systemu jest wysoki, ponieważ cały system trzeba zaprojektować od razu, pozostawiając bardzo niewiele możliwości późniejszego dodania funkcjonalności. |
Zawarte w nim specyfikacje są napisane prostym językiem angielskim, dzięki czemu mogą być łatwiej analizowane przez personel nietechniczny. | Nie obsługuje możliwości ponownego wykorzystania kodu. Zatem czas i koszt rozwoju są z natury wysokie. |