Дијаграм класа![]() У инжењерингу софтвера, дијаграм класа или класни дијаграм у обједињеном језику за моделовање (UML) је тип дијаграма статичке структуре који описује структуру система приказивањем класа система, њихових атрибута, операција (метода) и односа између објеката. Дијаграм класа је главни градивни блок објектно-оријентисаног моделовања. Користи се за опште концепутално моделовање структуре апликације, као и за детаљно моделовање превођења модела у програмски код. Дијаграми класа могу се користити и за моделовање података.[1] Класе у дијаграму класа представљају главне елементе, интеракције у апликацији и класе које треба да буду испрограмиране. У дијаграму, класе су представљене кутијама које се састоје из три дела:
У дизајнирању система, одређени број класа се идентификује и групише у дијаграм класе који помаже да се одреде статички односи између њих. Уз детаљно моделовање, класе концептуалног дизајна се често деле на више поткласа. Да би се даље описало понашање система, ови дијаграми класа могу бити допуњени дијаграмом стања или UML аутоматом стања.[2] ВезеВеза је општи појам који покрива специфичне типове логичких веза на дијаграмима класе и објекта. UML дефинише следеће односе: Везе на нивоу инстанцеЗависностЗависност је семантичка веза између зависних и независних елемената модела.[3] Постоји између два елемента ако промене у дефиницији једног елемента (сервера или циља) могу проузроковати промене на другом (клијенту или извору). Ова асоцијација је једносмерна. АсоцијацијаАсоцијација представља породицу веза. Бинарна асоцијација (са два краја) је нормално представљена као линија. Асоцијација може повезати било који број класа. Асоцијација са три везе се зове тернарна асоцијација. Асоцијација се може именовати, а крајеви асоцијације могу бити украшени именима улога, индикаторима власништва, вишеструкостима и другим својстима. Постоје четири различита типа асоцијација: двосмерна, једносмерна, агрегација (укључује агрегацију композиције) и рефлексивна. Двосмерне и једносмерне асоцијације су најчешће. На пример, класа лета је у асоцијацији са авионом двосмерно. Асоцијација представља статички однос који се дели између објеката две класе. Агрегација![]() Агрегација је варијанта везе асоцијације која значи „има”; агрегација је специфичнија од асоцијације. То је асоцијација која представља део целине или део односа. Као што је приказано на слици, класа Професор (Professor) „има” класу Разред (Class) коју учи. Као врста асоцијације, агрегација може бити именована и имати исте украсе као и асоцијација. Међутим, агрегација не може укључивати више од две класе; то мора бити бинарна асоцијација. Штавише, тешко да постоји разлика између агрегација и асоцијација приликом имплементовања, а дијаграм може потпуно прескочити односе агрегације.[4] Агрегација се може појавити када је класа збирка или контејнер других класа, али садржане класе немају снажну зависност животног циклуса од контејнера. Садржај контејнера и даље постоји када се контејнер уништи. У UML-у, ова веза је графички приказана као шупљи дијамантни облик на страни класе која садржи неку класу, а повезана је са том класом која је садржана. Пример: библиотека и студенти. Овде студент може да постоји без библиотеке, те је због тога однос између студента и библиотеке агрегација. КомпозицијаUML представа везе композиције показује композицију линију која спаја класу која садржи и класу која је садржана, са попуњеним дијамантним обликом на страни класе која садржи. Разлике између композиције и агрегације![]()
Везе на нивоу класаГенерализација/Наслеђивање![]() Ова веза указује да се једна од две сродне класе сматра специјализованом формом друге, а наткласа се сматра генерализацијом поткласе. У пракси, ово значи да је свака инстанца поткласе такође инстанца наткласе. Ова врста генерализације може се наћи у биолошкој таксономији: људи су поткласа симијана, који су поткласа сисара, итд. Ова веза најлакше се схвати фразом „А је Б” (човек је сисар, сисар је животиња). UML графички приказ генерализације је линија која спаја наткласу са поткласом (или стабло које повезује наткласу са поткласама), а на страни наткласе је празни троугао. Генерализација је такође позната као и наслеђивање. Наткласа у генерализацији је такође позната и као „родитељ”, суперкласа, основна класа или основни тип. Поткласа у специјализованој вези је ткаође позната као „дете”, поткласа, изведена класа, изведени тип, наслеђена класа или наслеђени тип. Пример: „храст је тип дрвета”, „аутомобил је врста возила”. Генерализација се може приказати само на дијаграмима класе и на дијаграмима случајева коришћења. Реализација/ИмплементацијаУ UML моделовању, веза реализације је веза између два елемента модела, при чему један елемент модела (клијент) реализује (имплементује или извршава) понашање које други елемент модела (добављач) прописује. UML графички приказ реализације је испрекидана линија која повезује интерфејс са једним или више имплементатора, при чему је на страни интерфејса шупљи троугао. Отворена глава стрелице користи се на линији која спаја интерфејс са својим корисницима и то на страни на којој је интерфејс. Реализације се могу приказати само на дијаграмима класа или компоненти. Реализација је однос између класа, интерфејса, компоненти и пакета који повезује елемент клијента са елементом добављача. Однос реализације између класа/компоненти и интерфејса показује да класа/компонента реализује операције које нуди интерфејс. Општа везаЗависностЗависност је слабија форма везе која указује да једна класа зависи од друге зато што је користи у неком тренутку у времену. Једна класа зависи од друге ако је независна класа параметарска променљива или локална променљива методе зависне класе. Ово се разликује од асоцијације, где је атрибут зависне класе инстанца независне класе. Понекад је веза између две класа веома слаба. Оне се уопште не имплементирају са променљивим члановима. Уместо тога, они могу бити имплементирани као чланови аргумената функције. ВишеструкостОва веза асоцијације указује да (барем) једна од две сродне класе упућује на другу. Ова веза се обично описује као „А има Б” (мачка има мачиће, мачићи имају мајку мачку). UML репрезентација асоцијације је линија која повезује две асоцијативне класе. На сваком крају линије постоји опциона нотација. На пример, можемо указати, користећи стрелицу, да шиљасти крај буде видљив са репа стрелице. Можемо означити власништво постављањем лопте, улогу елемената коју играју елементи на том крају тако што дајемо име за улогу и многострукост интсанци тог ентитета (опсег броја објекат акоји учествују у асоцијацији из перспективе другег краја).
Види јошРеференце
Спољашње везе |
Portal di Ensiklopedia Dunia