Obiekty to nie są proste “złączone dane i logika”. To obdarzone odpowiedzialnością elementy większej całości.

Mało jest w branży inżynierii oprogramowania książek, które praktycznie się nie starzeją. Jedną z nich, moim zdaniem, jest książka Object Design Roles, Responsibilities and Collaboration, autorzy: Rebecca Wirf-Brock i Alan McKean. Wydali ją pierwszy raz w 2002 roku. Autorzy w bardzo przystępny sposób pokazują zarówno teoretyczne jak i praktyczne aspekty analizy obiektowej (OOA, Object-oriented Analysis ) i projektowania obiektowego (OOD, Object-oriented design, łącznie często stosowany skrót OOAD).

Mimo, że od pierwszego wydania minęło już 17 lat, książka – a raczej opisane w niej metody – nie straciły na aktualności i skuteczności. Cztery lata temu nawiązywałem już do niej w artykule Jak identyfikować klasy? (polecam także artykuł i metodę: Class Responsibility Collaborator). Ogromną zaletą tej książki jest to, że diagramy UML, ilustrujące omawiane w książce przykłady, są poprawne i na wysokim poziomie abstrakcji, co powoduje, że mimo iż w 2015 specyfikacja UML uległa znacznym zmianom, diagramy w książce praktycznie nie straciły nic na aktualności.

Okładka polskiego wydania
Rebecca Wirf-Brock i Alan McKean, Projektowanie obiektowe, okładka polskiego wydania.

W pierwszej części autorzy opisują mechanizm jakim jest współdziałanie komponentów, zwracają uwagę na fakt, że oprogramowanie obiektowe to współpraca elementów (obiektów). Posługując się analogią, jaką są urządzenia mechaniczne i komponenty sprzętowe każdego komputera, bardzo przystępnie opisano paradygmat obiektowy.

Kolejny rozdział to opis tego czym jest rola i odpowiedzialność komponentu, i jak pojęcie to pomaga nam projektować architekturę oprogramowania.

W kolejnych rozdziałach, opisano i pokazano, na wielu przykładach, jak sobie radzić z podejmowaniem decyzji o architekturze i z jakich wzorców i zasad korzystać.

Jest to, ten wpis na blogu, nie tyle recenzja, co gorąca zachęta do włączenia tej książki do swojej biblioteki. Niestety polskie wydanie już tylko w antykwariatach, ale książka – oryginalne wydanie – jest nadal dostępna w sklepach internetowych.

Rebecca Wirfs-Brock, Alan McKean, Object Design Roles, Responsibilities, and Collaboration, Addison-Wesley 2003.

P.S. Dlaczego ta książką tyle lat czekała na moją recenzję? Bo od lat codziennie rano sobie mówiłem: jutro na pewno o niej napisze 🙂

Na koniec dość świeża prezentacja autorki:

Jarosław Żeliński

Jarosław Żeliński: autor, badacz i praktyk analizy systemowej organizacji: Od roku 1991 roku, nieprzerwanie, realizuje projekty z zakresu analiz i projektowania systemów, dla urzędów, firm i organizacji. Od 1998 roku prowadzi samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania (modele jako przedmiot badań: ORCID). Od 2005 roku, jako nieetatowy wykładowca akademicki, prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.) Oświadczenia: moje badania i publikacje nie mają finansowania z zewnątrz, jako ich autor deklaruję brak konfliktu interesów. Prawa autorskie: Zgodnie z art. 25 ust. 1 pkt. 1) lit. b) ustawy o prawie autorskim i prawach pokrewnych zastrzegam, że dalsze rozpowszechnianie artykułów publikowanych w niniejszym serwisie jest zabronione bez indywidualnej zgody autora (patrz Polityki Strony).