UML

Dalam bidang kejuruteraan perisian, UML (Unified Modeling Language) merupakan bahasa pemodelan yang dipiawaikan untuk pemodelan objek. UML merupakan bahasa pemodelan kegunaan-umum yang menyertakan penyampaian grafik untuk mencipta model abstrak sistem, yang dipanggil sebagai model UML. UML tidak terhad kepada pemodelan perisian sahaja. UML juga digunakan dalam pemodelan proses-proses perniagaan, pemodelan sistem-sistem kejuruteraan dan mempersembahkan struktur-struktur organisasi.
Penciptaan UML pada mulanya dirangsang oleh keinginan untuk menyeragamkan sistem dan pendekatan notasi yang berbeza dan pendekatan kepada reka bentuk perisian. Ia telah dibangunkan oleh Grady Booch, Ivar Jacobson dan James Rumbaugh di Rational Software (Perisian Rasional) pada 1994-1995, dengan perkembangan selanjutnya yang diterajui oleh mereka sepanjang tahun 1996.
Pada tahun 1997 UML diterima pakai sebagai piwaian oleh Kumpulan Pengurusan Objek (Object Management Group-OMG), dan telah diuruskan oleh organisasi ini sejak itu. Pada tahun 2005 UML juga diterbitkan oleh Organisasi Antarabangsa bagi Standardisasi (ISO) sebagai piawaian ISO yang diluluskan. Sejak itu, piawaian itu telah diubah suai secara berkala untuk merangkumi semakan UML terkini.

Sebelum UML 1.x

UML telah berkembang sejak separuh kedua tahun 1990-an dan berakar umbi dalam kaedah pengaturcaraan berorientasikan objek yang dibangunkan pada akhir 1980-an dan awal 1990-an. Garis masa (lihat imej) menunjukkan kemunculan sejarah kaedah pemodelan berorientasikan objek dan notasi.
Ia pada asalnya berdasarkan pada notasi kaedah Booch, teknik pemodelan objek (OMT) dan kejuruteraan perisian berorientasikan objek (OOSE), yang mana ia telah diintegrasikan ke dalam bahasa tunggal.
Perbadanan Perisian Rasional mengupah James Rumbaugh dari General Electric pada tahun 1994 dan selepas itu syarikat itu menjadi sumber bagi dua pendekatan pemodelan berorientasikan objek yang paling popular masa kini: Teknik pemodelan objek Rumbaugh (OMT) dan kaedah Grady Booch. Mereka tidak lama kemudian dibantu dalam usaha mereka oleh Ivar Jacobson, pencipta kaedah kejuruteraan perisian berorientasikan objek (OOSE), yang menyertai mereka di Rational pada tahun 1995.

UML 1.x

Di bawah kepimpinan teknikal ketiga-tiga mereka (Rumbaugh, Jacobson dan Booch), sebuah konsortium yang digelar Rakan UML dibentuk pada tahun 1996 untuk menyelesaikan spesifikasi Bahasa Pemodelan Bersepadu (Unified Modeling Language-UML), dan mencadangkannya kepada Kumpulan Pengurusan Objek (OMG) untuk penyeragaman. Perkongsian ini juga termasuk tambahan pihak-pihak yang berminat (contohnya HP , DEC , IBM dan Microsoft). Draft UML 1.0 Rakan UML dicadangkan oleh konsortium kepada OMG pada bulan Januari 1997. Pada bulan yang sama, Rakan Kongsi UML membentuk kumpulan, yang brtujuan untuk mentakrifkan makna sebenar pembinaan bahasa, dipengerusikan oleh Cris Kobryn dan ditadbir oleh Ed Eykholt, untuk menyelesaikan spesifikasi dan mengintegrasikannya dengan usaha penyeragaman yang lain. Hasil kerja ini, UML 1.1, telah diserahkan kepada OMG pada bulan Ogos 1997 dan diterima pakai oleh OMG pada November 1997.
Selepas pembebasan pertama pasukan petugas ditubuhkan untuk memperbaiki bahasa, yang mengeluarkan beberapa revisi kecil, 1.3, 1.4, dan 1.5.
Piawaian yang dihasilkan (dan juga piawaian asal) telah dilihat sebagai tidak jelas dan tidak konsisten.

Notasi kardinal

Sama seperti pangkalan data Chen, Bachman, dan rajah ISO ER , model kelas ditetapkan untuk menggunakan kardinaliti "lihat-merentas", walaupun beberapa penulis (Merise, Elmasri & Navathe  antara lain ) cenderung "sisi-sama" atau "melihat-sini" bagi peranan dan kedua-dua kardinaliti minimum dan maksimum. Penyelidik terkini (Feinerer, Dullea et alia ) telah menunjukkan bahawa teknik "melihat-silang" yang digunakan oleh gambar UML dan ER kurang berkesan dan kurang koheren apabila digunakan untuk perhubungan n-ary bagi susunan khusus lebih besar daripada 2.
Feinerer berkata: "Masalah timbul sekiranya kita beroperasi di bawah semantik semantik seperti yang digunakan untuk persatuan UML. Hartmann menyiasat keadaan ini dan menunjukkan bagaimana dan mengapa transformasi yang berbeza gagal.", Dan: "Seperti yang akan kita lihat pada beberapa laman hadapan, tafsiran lihat-lintang memperkenalkan beberapa masalah yang menghalang perlanjutan mekanisme mudah dari perduaan kepada kaitan n-ary."

Kaedah pembangunan perisian

UML bukanlah kaedah pembangunan dengan sendirinya; Sungguhpun begitu, ia direka untuk bersesuaian dengan kaedah pembangunan perisian berorientasikan objek utama masa, contohnya OMT , kaedah Booch , Objek dan terutama RUP yang pada mulanya bertujuan untuk digunakan apabila kerja bermula di Rational Software.

Diagram

UML 2 mempunyai banyak jenis diagram, yang dibahagikan kepada dua kategori. Sesetengah jenis mewakili maklumat struktur, dan selebihnya mewakili jenis kelakuan umum, termasuk beberapa yang mewakili pelbagai aspek interaksi. Gambar rajah ini boleh dikategorikan secara hierarki seperti yang ditunjukkan dalam rajah kelas berikut:
Rajah ini mungkin mengandungi komen atau nota yang menjelaskan penggunaan, kekangan, atau niat.

Diagram struktur

Gambar rajah struktur menekankan perkara yang mesti ada dalam sistem yang dimodelkan. Oleh kerana rajah struktur mewakili struktur, ia digunakan secara meluas dalam mendokumenkan perisian seni bina sistem perisian. Sebagai contoh, gambarajah komponen menerangkan bagaimana sistem perisian dipecah menjadi komponen dan menunjukkan kebergantungan di antara komponen-komponen ini.

Rajah kelakuan

Rajah kelakuan menonjolkan apa yang mesti berlaku dalam sistem yang dimodelkan. Oleh kerana rajah kelakuan menggambarkan kelakuan sistem, ia digunakan secara meluas untuk menggambarkan fungsi sistem perisian. Sebagai contoh, rajah aktiviti menggambarkan aktiviti perniagaan dan langkah-langkah operasi komponen dalam sistem.

Rajah interaksi

Rajah interaksi, sebahagian daripada rajah tingkah laku, menekankan aliran kawalan dan data di antara perkara-perkara dalam sistem yang dimodelkan. Sebagai contoh, rajah urutan menunjukkan bagaimana objek berkomunikasi satu sama lain mengenai urutan pesanan.

Metamodeling

Kumpulan Pengurusan Objek (OMG) telah membangunkan seni bina metamodeling untuk menentukan UML, yang digelar Kemudahan Meta-Objek. MOF direka sebagai seni bina empat lapisan, seperti yang ditunjukkan dalam imej di sebelah kanan. Ia menyediakan model meta-meta di bahagian atas, yang dipanggil lapisan M3. Model M3 ini adalah bahasa yang digunakan oleh Meta-Object Facility untuk membina metamodel, dipanggil M2-model.
Contoh yang paling menonjol dari model Kemudahan Meta-Objek Layer 2 adalah metamodel UML, yang menerangkan UML itu sendiri. Model M2 ini menerangkan unsur-unsur lapisan M1, dan dengan itu M1-model. Contohnya, contohnya, model yang ditulis dalam UML. Lapisan terakhir ialah lapisan M0 atau lapisan data. Ia digunakan untuk menggambarkan keadaan masa perlaksanaan sistem.
Model meta boleh dilanjutkan dengan menggunakan mekanisme yang dipanggil stereotaip . Ini telah dikritik kerana tidak mencukupi / tidak dapat dipertahankan oleh Brian Henderson-Sellers dan Cesar Gonzalez-Perez dalam "Kegunaan dan Penyalahgunaan dari Mekanisme Stereotype di UML 1.x dan 2.0".

Penerimaan

UML telah dipasarkan untuk banyak konteks.
Ia telah layan, kadang-kadang, sebagai peluru perak reka bentuk (penyelesaian semua masalah), yang membawa kepada masalah. Penyalahgunaan UML termasuk terlalu banyak (mereka bentuk setiap bahagian sistem dengannya, yang tidak perlu) dan mengandaikan bahawa orang baru dapat merancang dengan menggunakannya.
Ia dianggap bahasa yang besar, dengan banyak pembinaan. Sesetengah orang (termasuk Jacobson ) merasakan saiz UML menghalang pembelajaran (dan dengan itu, menggunakannya).