Нэгдсэн загварчлалын хэл

thumb|420px|UML диаграмуудын цуглуулга.
Нэгдсэн Загварчлалын хэл ( UML) нь ПХ-ийн инженерчлэл сэдэвт хамаарагдах ерөнхий зорилгын загварчлах зорилготой стандартчлагдсан хэл юм. UML -ыг хөгжүүлэлтийн шатандаа явж буй обьект хандалтат программ хангамжийн системийн бүрэлдэхүүн хэсгүүдийг тодорхойлох, дүрслэх, өөрчлөх, бий болгоход ашигладаг. 
Мөн UML нь системийн бүтэц зохион байгуулалтын ерөнхий төлөвлөгөөг дүрслэх стандарт аргыг санал болгодог юм. Үүнд нь: 
	- Үйл ажиллагаа
	- Оролцогчид 
	- Бизнесийн үйл явц 
	- Өгөгдлийн сангийн тойм буюу схем 
	- Логик бүрэлдэхүүн хэсгүүд
	- Программчлалын хэлний бичвэрүүд  зэрэг хамаарна.

UML -ыг программ хангамж хөгжүүлэлтийн бүх шатны үйл ажиллагаанд ашигладаг ба ингэх нь бараг л бичигдээгүй хууль юм. 

## Түүх
### UML 1.x -с өмнө 
Хэтэрхий олон төрлийн загварчлалын хэлийг ашиглаж байгаа нь обьект хандалтат технологийн хөгжилд тушаа болж байна гэж  тухайн үедээ салбартаа тэргүүлэгч нь байсан Rational Software корпорацийнхан үзжээ.  
Ийнхүү тэдний шилдэг мэргэжилтнүүд  1996 онд UML Partners гэх олон улсын холбоог байгуулан Нэгдсэн загварчлалын хэлний тодорхойлолтыг бий болгож эхлэв.

Ингэхдээ тэд олон төрлийн загварчлалын аргуудаас тэмдэглэлгээг нь ашигласан бөгөөд жишээ нь классыг дүрслэхдээ үүлэн тэмдэг биш хайрцаган тэмдэгтийг ашиглах нь зүйтэй гэх мэт шийдэлд хүрч байжээ.

### UML 1.x 
Класс, обьектуудыг тэгш өнцөгтөөр дүрсэлсэн гэх зэргээр  тэмдэглэгээний хувьд ихэнхидээ Обьект Загварчлалын Техник гэх загварчлагааны хэлний элементүүдийг ашиглажээ. 

Олон төрлийн обьект хандалтад аргуудаас дүрслэл, шинжилгээний аргуудыг нь авч ашигласнаар UML нь улам том, улам баялаг болж эхлэв. Ийнхүү UML -г ганц хэрэглэгчтэй хэрэглээний програмаас  өргөн цар хүрээг хамарсан, зэрэгцээ боловсруулалт хийдэг систем хүртэлх олон төрлийн инженерчлэлийн асуудалд ашигладаг болжээ.

Мөн Нэгдсэн загварчлалын хэл нь програм хангажийн системийн төлөвлөгөөг гаргадаг олон улсын стандарт болсон юм. (ISO/IEC 19501:2005)

### UML 2.x 
UML нь 1.1 хувилбараасаа хойш нилээд сайн боловсорсон бөгөөд 1.3
1.4 1.5 зэрэг хувилбар дээр жижиг жижиг алдаануудыг зассан байна.
Ингээд 2005 онд бүрэн шинэчлэлт хийгдсэн 2.0 хувилбар нь гарчээ. 

UML 2.1.1 ба 2.1.2 - 2007 онд, UML 2.2 2009, UML 2.3 2010 оны 5 сард, UML 2.4.1 2011 оны 8 сард тус тус албан ёсоор гарч байжээ. 

UML 2.x -н тодорхойлолт 4 хэсгээс бүрддэг: 
#Диаграм болон түүний элементүүдийн дүрслэл, бичиглэл зэргийг тодорхойлсон давхарга
#Дээрх давхаргын суурь болж өгөх үндсэн мета загварын бүтэц 
#Загварын элементүүдийн дүрмийг тодорхойлдог Обьектын шаардлагын хэл буюу OCL
#Диаграмын байршил хэрхэн солигдож байгааг тодорхойлдог UML диаграмын ээлжлэл. 

## Сэдэвүүд 
### Загварчлал 
Эхлээд UML загвар болон системийн диагруумуудыг хооронд нь ялгаж сурах хэрэгтэй. Диаграм гэдэг нь системийн загварын график дүрслэлийг хэлэх бөгөөд тэр загвар нь өөрийн элементүүдийг тодорхойлсон баримт бичгийг агуулдаг.     

UML диаграмууд нь системийн загварыг 2 талаас нь харуулдаг:

* Статик буюу бүтэц зохион байгуулалтын талаас нь: Системийн статик бүтцийг обьект, шинэ чанар, үйл ажиллагаа болон холбоо хамаарал зэргээр нь харуулдаг. Класс диаграм, нийлмэл бүтцийн диаграм зэрэг нь ийм төрлийнх юм.
* Динамик буюу үйл ажиллагааны талаас нь:  Системийн динамик шинжийг обьектуудын хамтын ажиллагаа, обьектын дотоод төлвийн өөрчлөлт зэргээр харуулах. Дарааллын диаграм , үйл ажиллагааны диаграм, төлөв шилжилтийн диаграм зэрэг нь ийм төрлийнх юм.  
UML загваруудыг UML хэрэгсэл дээр XMI солилцооны форматыг ашиглан хооронд нь сольж болдог.

### Диаграмуудын тойм 
UML 2.2 нийтдээ 14 диаграм агуулдаг. Эдгээрийн 7 нь системийн бүтцийг, 7 нь системийн үйл явцыг (үүний 4 нь харилцан үйлчлэлийн гэх дэд төрөлд багтана) үзүүлдэг. Энэ диаграмуудыг доорхи класс диаграм дээрх шиг шаталсан хэлбэрээр үзүүлж болно.  

  

UML нь өөрийн элементүүдийг зөвхөн тодорхой нэг төрлийн класс диаграмд хэрэглэдэг байхаар хязгаарлалт тогтоож өгдөггүй юм. Жишээ нь та Use case диаграмд зурж байхдаа класс диаграмын элементүүдийг ашиглаж болно. 

Мөн уламжлалт инженерчлэлийн зураг төсөлд байдагчлан тухайн загварын хэрэглээ, хязгаарлалт, хийх зүйлс зэргийг UML диаграм дээр тэмдэглэж болдог. 

### Бүтцийн диаграмууд 
Бүтцийн диаграмууд нь яг систем загварчлагдаж байх үед байгаа зүйлсийг харуулдаг. Ийм төрлийн диаграмууд нь програм хангамжийн бичиг баримтанд ихээр ашиглагддаг. 

* Класс диаграм : Системийн классууд, тэдгээрийн шинж чанарууд болон класс хоорондын хамаарал зэргээр системийн бүтцийг тодорхойлдог. 
* Бүрэлдэхүүний диаграм: Систем ямар бүрэлдэхүүн хэсгүүдэд задарч байгааг болон тэдгээрийн хоорондох хамаарлыг тодорхойлдог.   
* Нийлмэл бүтцийн диаграм: Классын дотоод бүтэц болон түүний бий болгож буй хамтын ажиллагааг тодорхойлно. 
* Байршлын диаграм: Системийг ажиллуулах техник хангамж зэргийг тодорхойлно. 
* Обьектын диаграм: Тодорхой хугацааны агшин дахь системийн бүрэн юм уу хэсэглэсэн бүтцийг тодорхойлно. 
* Багцын диаграм: Систем ямар логик хэсгүүдэд хуваагдаж байгааг болон тэдгээрийн хоорондох хамаарлыг тодоройлдог. 
* Илэрхийлэмжийн диаграм: Мета загварын түвшинд ашиглагддаг ба хэвшмэл төлөвүүдийг  > гэсэн хэвтэй классуудаар, илэрхийлэмжүүдийг > гэсэн хэвтэй багцуудаар дүрсэлдэг. 

File:BankAccount1.svg|Класс диаграм
File:Policy Admin Component Diagram.PNG|Бүрэлдэхүүний диаграм
File:Composite Structure Diagram.png|Нийлмэл бүтцийн диаграм
File:Deployment Diagram.PNG|Байршлын диаграм
File:Object diagram.png|Обьектын диаграм
File:Package Diagram.PNG|Багцын диаграм

### Үйл явцын диаграмууд 
* Үйл ажиллагааны диаграм: Системд явагдах бизнесийн болон бусад үйл ажиллагааны ажлын урсгалыг алхам алхамаар харуулна. 
* Төлөв шилжилтийн диаграм: Системийн төлөвүүд болон тэдгээрийн шилжилтийг тодорхойлно. 
* Use case буюу хэрэглэх нөхцлийн диаграм: Системийн үйл ажиллагааг оролцогчдоор илэрхийлдэг.

File:Activity conducting.svg|Үйл ажиллагааны диаграм
Image:UML state diagram.png|Төлөв шилжилтийн диаграм diagram
Image:UML_Use_Case_diagram.svg|Хэрэглэх нөхцлийн диаграм
 

### Харилцан үйлчлэлийн диаграмууд  
* Харилцааны диаграм: Обьектуудын хоорондох харилцан үйлчлэлийг дараалласан зурвас байдлаар үзүүлдэг. Энэ нь Класс диаграм, хэрэглэх нөхцлийн диаграм, дарааллын диаграм зэргээс авсан мэдээллээс бүрдэх ба системийн бүтэц, үйл явцыг нэгтгэн тодорхойлдог юм. 
* Харилцан үйлчлэлийн тойм диаграм: Харилцааны диаграмуудыг дүрсэлсэн зангилаануудаас бүрдэнэ. 
* Дарааллын диаграм: Обьектууд хоорондоо хэрхэн харилцдагийг  дараалласан зурвас байдлаар тодорхойлох ба мөн энэ зурвасуудад харгалзах обьектуудын амьдрах хугацааг үзүүлдэг.
* Хугацааны диаграм: Систем дэх хугацааны хязгаарлалтыг тодорхойлдог. 

Image:Kommunikations diagramm-2.png|Харилцааны диаграм
Image:Iau-diagramm-1.png|Харилцан үйлчлэлийн тойм диаграм
Image:CheckEmail.svg|Дарааллын диаграм

## UML-н загварчлалын хэрэгслүүд 
ArgoUML, BOUML, Dia, Enterprise Architect, MagicDraw UML, Modelio, PowerDesigner, Rational Rhapsody, Rational Software Architect, StarUML, Umbrello зэрэг загварчлалын хэрэгслүүд байдаг.

Ангилал:Програм хангамжийн инженерчлэл