Wielu moich klientów pyta mnie czy modele UML a raczej użyta do budowy modeli semantyka syntaktyka są zdefiniowane tylko przez standard OMG i kolejne „numerki” tegoż standardu? (Dla przypomnienie OMG to (idąc za Wikipedią) Object Management Group – konsorcjum powstałe w 1989 r., w którego skład wchodziły m.in. firmy IBM, Apple Computer i Sun Microsystems, a którego celem było ustanowienie standardów międzyplatformowego, rozproszonego programowania obiektowego. Obecnie OMG „opiekuje” się językiem UML.)
Inne pytanie jakie ostatnio mi zadano to: co zrobić w sytuacji, gdy dana firma nie uznaje standardów OMG a istnieje potrzeba budowy modeli UML, które trzeba zweryfikować nie tylko pod kątem merytorycznym?
Odpowiedzią na te pytania i tym podobne jest norma ISO/IEC 19501:2005, która opisuje język UML. Tą normę ISO można ściągnąć z witryny International Organization for Standardization: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32620 . Niestety pobranie normy kosztuje, ale jest też dobra wiadomość. Norma ISO/IEC 19501:2005 jest równoważna ze specyfikacją UML w wersji 1.4.2 . Specyfikację tą można pobrać ze stron OMG: http://www.omg.org/cgi-bin/doc?formal/05-04-01
Na koniec pozostaje jedno pytanie. Czy lepiej budować modele w oparciu o specyfikację UML 2.1.x czy normę ISO/IEC 19501:2005? Ja w swoich projektach bazuję na ISO czyli UML 1.4.2 rozszerzając ją o kilka wybranych elementów języka UML 2.1.x
A czy nie lepiej trzymać się specyfikacji, czyli jak w omawianym przypadku UML 2.1.x ,specyfikacji która się przecież zmienia jest rozszerzana wraz z postępem, potrzebami i czasem ? Czy może warto trzymać się „starej” 1.4.2 opisanej w ISO, czy to nie ogranicza ?
Standard języka UML to jedno i rządzi się on swoimi prawami. Norma to drugie. Moim zdaniem zawsze lepiej trzymać się normy ISO a w szczególnych przypadkach rozszerzyć ją o standard, który w pewnych wypadkach czasem zmierza w dziwnym kierunku.