czwartek, 14 lutego 2013

Wstęp do UML, cz.1 - GENEZA

Niniejszy temat jest ściśle powiązany z podejściem obiektowym w wytwarzaniu oprogramowania. Przed przejściem do omówienia czym jest język UML, warto byłoby wspomnieć kilka zdań właśnie o obiektowości.

Podejście obiektowe rozwijane jest od lat 50 XX wieku, ale największy swój rozkwit przeżyło w latach 90, kiedy znalazło się w centrum zainteresowania twórców i użytkowników systemów informatycznych. Podejście obiektowe w najwyższym stopniu sprostało wówczas takim wyzwaniom jak:

Obserwator

Rolą wzorca Obserwator (Observer/Listener) jest asynchroniczne powiadamianie o zmianach stanu obiektów. W tym celu wzorzec definiuje relację między obiektami typu "jeden do wielu". Dzięki temu zmiana stanu (atrybutu) obiektu obserwowanego wiąże się z powiadomieniem o niej wszystkich powiązanych obiektów - obserwatorów. Obiekt obserwowany jest zarządcą swoich danych i informuje on powiązanych obserwatorów o zamianach w nich zachodzących. Można by powidzieć, że wzorzec obserwator przydaje się w sytuacji, gdy modyfikacja stanu jednego obiektu wpływa na inne elementy systemu.

wtorek, 12 lutego 2013

Fasada


Fasada (Facade) jest jednym ze strukturalnych wzorców projektowych służącym do konstruowania uproszczonego i uporządkowanego interfejsu programistycznego (lub zestawu interfejsów) ułatwiającego dostęp do złożonego i bardziej skomplikowanego systemu. Wzorzec ten umożliwia dostęp do wybranych funkcjonalności kompleksowego systemu w prostszy i ujednolicony sposób. Zastosowanie wzorca Fasady nie ogranicza funkcjonalności systemu, tylko dostarcza wygodniejszy interfejs zarządzania wybraną częścią kodu.
 

Wzorce projektowe

Wzorce stały się jednym z podstawowych narzędzi projektowania systemów.  Ich ewolucję obserwuje się w różnych obszarach rozwoju oprogramowania. Wyróżnia się wzorce na poziomach:
  • architektonicznym – poziom integracji komponentów,
  • projektowym – poziom interakcji między klasami,
  • analitycznym – poziom opisu rzeczywistości,
  • implementacyjnym – poziom języka programowania.