archiwum wpisów z 17 października 2005

Modelowanie niezupełnie rzeczywiste

W najróżniejszych ogólnych opisach i wstępach do technologii mówi się często, że programowanie obiektowe przedstawia związki między pojęciami w sposób analogiczny jak to ma miejsce w świecie rzeczywistym. Dzięki temu oprogramowanie ma być bliższe prawdziwemu światu — opiera się na interakcji autonomicznych obiektów, a nie tylko na wykonywaniu jakiegoś abstrakcyjnego ciągu rozkazów. Zgodnie z tym wszelkie dodatkowe technologie, które wyewoluowały z tego paradygmatu, w szczególności UML, oferują zestaw pojęć i notacji do „modelowania świata”. Taki model przekłada się potem na klasy, które w założeniu mają reprezentować obiekty lub pojęcia rzeczywiste czy chociażby wyobrażalne oraz relacje między nimi. Zadziwiające, jak łatwo udowodnić, że jest to bzdura... Chociażby wykorzystując stary (nawet jeśli znany, to wart przypomnienia) przykład z kwadratem i prostokątem.