Қолдану нұсқаларының диаграммалары.
Қандай да бір сыртқы объектімен, яғни қатысушы кейіпкердің (тұлғаның) әсерімен орындалатын оқиғаға жауап ретінде жүйеде орындалатын әрекеттердің (транзакциялардың) тізбегін қолдану нұсқасы деп аталады.
Қолдану нұсқасы пайдаланушы мен жүйе арасындағы типтік өзара әрекеттестікті сипаттайды. Қарапайым жағдайда қолдану нұсқасы пайдаланушының жүзеге асырғысы келген функцияларын талқылау үрдісінде анықталады.
Қатысушы кейіпкер, яғни актер (actor) – жүйеге қатысты пайдаланушының атқаратын ролі. Қатысушы кейіпкерлернақты адамдарды немесе жұмыстардың атауын емес белгілі бір рөлді көрсетеді. Мысалы: менеджер, сатушы мен пайдаланушы есебінің жүйесі, клиент және т.б.
Қолдану нұсқаларының диаграммаларында адам фигурасымен (20-сурет) бейнеленгенімен, ол берілген жүйеден ақпарат қажет болатын сыртқы жүйе де болуы мүмкін, яғни адам болуы міндетті емес.
20-сурет. Қатысушы кейіпкердің белгіленуі
Диаграммада қатысушы кейіпкерлерді көрсету оларға қандай да бір қолдану нұсқалары қажет болған жағдайда ыңғайлы.
Актерлер негізгі 3 типке бөлінеді:
жүйенің пайдаланушылары;
берілген жүйемен өзара әрекеттесетін басқа жүйелер;
уақыт.
Жүйеде қандай да бір оқиғалардың болуы уақытқа тәуелді болса, онда уақыт қатысушы кейіпкер бола алады.
Банкілік жүйеде банкоматпен жұмыс үшін қолдану нұсқасының диаграммаларын қарастырайық (21-сурет).
Осы диаграммада 2 қатысушы кейіпкер: клиент пен кредиттік жүйе көрсетілген. Модельденетін жүйе орындалып тұрған негізгі мынадай әрекеттер бар: салым жасау, балансты қарау және т.б.
Модельденетін жүйе үшін: қолдану нұсқалары – жүйемен орындалатын функциялар, ал қатысушы кейіпкерлер жасалатын жүйеге қатысты қызығушылық білдіретін кейіпкерлер. Бұндай диаграммалар қандай қатысушы кейіпкерлер қолданудың нұсқаларын орындайтындығын көрсетеді.
21-сурет. Қолдану нұсқалары диаграммасы
М
─ қатысушы кейіпкерлер
ұндағы:
─ қатысушы кейіпкерлер мен қолдану нұсқалары арасындағы әртүрлі байланыстар
─ қолдану нұсқалары
Қатысушы кейіпкерлер қолдану нұсқаларына қатысты әртүрлі рөлдерді ойнауы мүмкін. Олар оның нәтижелерін қолдануы мүмкін немесе тікелей өздері оған қатысуы да мүмкін. Қатысушы кейіпкерлердің әртүрлі рөлдерінің мәні оның байланыстары қалай қолданылатындығында.
Қолдану нұсқаларының диаграммаларының нақты мақсаты – қолдану нұсқаларын, қатысушы кейіпкерлерді және олардың арасындағы байланыстарды құжаттау.
Қолдану нұсқалары жүйенің не істеуі керек екендігін сипаттауды бастайды. Жүйені нақты әзірлеу үшін неғұрлым нақты детальдар қажет болады. Бұл детальдар оқиғалар ағыны деп аталатын құжатта сипатталады. Оқиғалар ағынының мақсаты – қолдану нұсқаларының шеңберінде жүзеге асырылатын мәліметтерді өңдеу үрдісін құжаттау болып табылады. Бұл құжат жүйенің пайдаланушылары және жүйенің өзі не істейтіндігін нақты сипаттайды.
Оқиғалар ағыны төмендегілерді қамтиды:
қысқаша сипаттама;
алғы шарттар (pre-conditions);
оқиғалардың негізгі ағыны;
оқиғалардың альтернативті ағыны;
соңғы шарттар (post-conditions).
Қысқаша сипаттама. Қолданудың әрбір нұсқаның оның не істейтініді туралы қысқаша сипаттамасы болуы керек. Мысалы: «Ақша аудару» қолдану нұсқасы мынадай сипаттамалардан тұрады: Ол клиентке немесе банк қызметкеріне бір шоттан талап етушіге дейін немесе басқа жинақ шотына дейін ақша аударуға мүмкіндік береді.
Алғы шарттар. Қолдану нұсқасының алғы шарттары қолдану нұсқасының өзі орындалуына дейін орындалатын шарттар. Бұндай шарттар ретінде қолданудың басқа нұсқасының орындалуы немесе осы нұсқаны бастауға қажетті рұқсат (қатынау) құқығының пайдаланушыда болуы мүмкін. Мысалы: іске қосу немесе авторизация. Қолданудың барлық нұсқасында алғы шарттар болмайды.
Оқиғалардың негізгі және альтернативті ағындары. Қолдану нұсқаларының нақты детальдары оқиғалардың негізгі және альтернативті ағындарында сипатталады. Оқиғалар ағыны қолдану нұсқаларында берілген функционалдылығының орындалу барысында не орындалуы керектігін кезең бойынша сипаттайды.
Оқиғалар ағыны жүйенің не істейтіндігіне көңіл аударады.
Оқиғалардың негізгі және альтернативті ағындар мына сипаттамаларды қамтиды:
қолдану нұсқасы қалай іске қосылады;
қолдану нұсқасының орындалуының әртүрлі жолдары;
қолдану нұсқасының оқиғаларының қалыпты немесе ағыны;
оқиғалардың негізгі ағынынан ауытқулар (альтернативті ағындар;
қателер ағыны;
қолдану нұсқасының қалай аяқталатындығын.
Мысалы: «Шоттан ақша алу» қолдану нұсқасының оқиғалар ағыны мынандай болуы мүмкін.
Негізгі ағыны:
Қолдану нұсқасы клиенттің карточкасын банкоматқа салудан басталады.
Банкомат бастапқы терезені шығарады және клиентке жеке PIN-кодын енгізуді ұсынады.
Клиент PIN-кодты енгізеді.
Банкомат енгізілген кодты бекітеді. Егер код бекітілмесе, онда А1 оқиғасының альтернативті ағыны орындалады, яғни негізгі ағыннан ауытқу болады.
Банкомат орындауға болатын әрекеттер тізімін шығарады:
салым жасау;
шоттан ақша алу;
ақша аудару және т.б.
Клиент «шоттан ақша алу» пунктін таңдайды.
Банкомат қанша ақша алатындығын сұрайды.
Клиент қажет соманы енгізеді.
Банкомат осындай ақшаның шотта бар екендігін анықтайды. Егер ақша жеткіліксіз болса, негізгі ағыннан ауытқу болады да, А2 альтернативті ағынорындалады. Егер алынатын соманы бекіту барысында қателіктер туындаса, онда Е1 қателер ағыны орындалады.
Банкомат қажет соманы клиент шотынан азайтады.
Банкомат клиентке талап еткен сомасын қолма-қол береді.
Банкомат клиентке карточкасын қайтарады.
Банкомат клиентке чек баспалайды.
Қолдану нұсқасы аяқталады.
А1 альтернативті ағыны: PIN-кодтың дұрыс енгізілмеуі.
Банкомат клиентке кодтың дұрыс енгізілмегендігі туралы ақпарат береді.
Банкомат клиентке карточкасын қайтарады.
Қолдану нұсқасы аяқталады.
Қолданудың А2 альтернативті нұсқасы: Шотта ақша жеткіліксіз.
Банкомат клиентке оның шотында ақша жеткіліксіздігі туралы ақпарат береді.
2. Банкомат клиентке карточкасын қайтарады.
3. Қолдану нұсқасы аяқталады
Е1 қателер ағыны: Сұралған соманың бекітілгендігі қате.
Банкомат клиентке сұралған соманы бекіту барысында қате кеткендігі туралы ақпарат береді, банктің клиенттеріне қызмет көрсету бөлімінің нөмерін береді.
Банкомат қателер туралы мәліметті қателер журналына енгізеді. Әрбір жазу қате датасын, уақытын клиент атын, оның шот нөмерін және қате кодын қамтиды.
Банкомат клиентке оның карточкасын қайтарады.
Қолдану нұсқасы аяқталады.
Соңғы шарттар. Қолдану нұсқасының аяқталғаннан кейін орындалатын шарттар соңғы шарттар деп аталады. Мысалы: Мәліметтердің сақталуы, т.с.с. Соңғы шарттар барлық қолдану нұсқаларында болуы міндетті емес.
UML тілінде қолдану нұсқалары мен қатысушы кейіпкерлер үшін байланыстардың бірнеше типтері қолданылады. Бұл байланыстар: 1) коммуникациялық (communication); 2) іске қосу (включения - include); 3) кенейтілу (расширения - extend); 4) жалпылау (обобщения - generalization).
Коммуникация байланысы қолдану нұсқасы мен қатысушы кейіпкер арасындағы байланыс. UML тілінде коммуникация байланысын бір бағыттағы ассоциация, яғни бағытталған сызық арқылы көрсетеді. Сызық бағыты кімнің коммуникацияны бастағанын түсінуге мүмкіндік береді.
Іске қосу байланысы жүйенің тәртібін қандай да бір үзіндісі қолданудың нұсқасында бірден көп қайталанатын болған жағдайда қолданылады. Осындай байланыс көмегімен бірнеше рет қолданылатын функционалдылықты модельдейді. Мысалы: Банктік жүйенің «Шоттан ақша алу» және «Салым жасау» сияқты қолдану нұсқалары транзакцияны жүзеге асыру алдында алдымен клиентті және PIN-кодты аутентификациялауы керек. Әрбіреуі үшін аутентификация үрдісін нақты сипаттау үшін осы қызметті «клиентті аутентификациялау» атауымен қолдану нұсқасының өзіне орналастыру керек.
Кеңейту байланысы жүйенің қалыпты тәртібінің өзгерісі сипаттауда қолданылады. Ол қолдану нұсқасына қажет болған жағдайда басқаның функционалдық мүмкіндіктерін қолдануға мүмкіндік береді. UML тілінде іске қосу және кеңейту байланыстары сәйкес стереотиптердің тәуелділіктері түрінде көрсетіледі (22-сурет).
22-сурет. Қолдану және кеңейту байланыстары
Бірнеше қатысушы кейіпкерлердің ортақ мінездемелері болғанда жалпылау байланысы қолданылады. Мысалы: Клиенттер 2 типті болуы мүмкін: корпоративті және жекелеме. Осы байланысты мынандай нотацияның көмегімен модельдеуге болады (23-сурет).
23-сурет. Қатысушы кейіпкерлерді жалпылау.
Қолдану нұсқалары ақпараттық жүйелерге талаптарды қалыптастыру жобаны зерттеу кезеңінде қажетті құрал болып табылады. Қолданудың әрбір нұсқасы жүйедегі потенциалды талаптардың бірі. Ол анықталмайынша оныжүзеге асыру кезеңіне өту өте қиын.
Өзара әрекеттестіктер диаграммалары (interaction diagrams) объектілер тобының өзара әрекеттестіктерінің тәртібін сипаттайды. Ол қолданудың тек бір ғана нұсқасы шеңберіндегі объектілердің тәртібін қамтиды. Осы диаграммада объектілер қатары және олар өзара алмасатын хабарламалары бейнеленеді.
Хабарламалар (message) – объект-жіберуші объект-қабылдаушыдан өзінің амалдарының біреуін орындауды сұрайтын құрал.
Ақпараттық (informative) хабарлама – объект-қабылдаушыны жағдайын жаңалау үшін ақпаратпен жабдықтайтын хабарлама.
Хабарлама-сұраныс (interrogative) – объект-қабылдаушы туралы ақпарат беруді сұрайтын хабарлама.
Императивті (imperative) хабарлама – объект-қабылдаушыдан әрекеттерді орындауды сұрайтын хабарлама.
Өзара әрекеттестік диаграммасының 2 түрі бар:
- тізбектілік диаграммасы;
- кооперативтік диаграммалар.
Тізбектілік диаграммалары қолдану нұсқасы шеңберінде болатын оқиғалардың ағынын бейнелейді. Мысалы: «Шоттан ақша алу» қолдану нұсқасы бірнеше мүмкін тізбектілікті қарастырады:
ақша алу;
шотта жеткіліксіз болса да, ақшаны алу;
дұрыс емес PIN-код бойынша ақша алу және т.б.
Қандай да бір соманы алудың қалыпты сценарийін құрастыруға болады. Сценарий дегеніміз оқиғалар ағынының нақты экземпляры.
Бұл тізбектілік диаграммасы «Шоттан ақша алу» қолдану нұсқасы шеңберіндегі оқиғалардың ағынын бейнелейді. Қатысушы кейіпкерлер диаграмманың жоғары бөлігінде көрсетіледі. Мысалы: Клиент жүйеге осы қолдану нұсқасын орындауды талап ететін объектілер де жоғары бөлікте көрсетіледі. Бағыттар қатысушы кейіпкер мен объект арасында берілген немесе қажет функцияларды орындау үшін объектілер арасындағы хабарламаларға сәйкес келеді. Тізбектілік диаграммасында объект пунктирлі тік сызықтың төбесінде тік төртбұрыш түрінде бейнеленеді. Тік сызық объектінің өмір сызығы (lifeline) деп аталады. Ол өзара әрекеттестік үрдісінде объектінің өмірлік циклінің үзіндісіні көрсетеді. Әрбір хабарлама 2 объектінің өмір сызықтарының арасында бағыт түрінде бейнеленеді. Хабарламалар үстіден астыға қарай пайда болады. Әрбір хабарлама оның атымен белгіленеді, аргументтер мен қандай да бір басқару ақпаратын қосуға болады және тағы да өзін-өзі беруді көрсетуге болады.
Өзін-өзі беру – объект өзіне-өзі жіберетін хабарлама. Мұнда хабарлама бағыты өзінің өмір сызығына көрсетіледі.
Тізбектілік диаграммалары уақыт бойынша реттелген.
Кооперативті диаграммалаы қолдану нұсқасының нақты сценарийі арқылы оқиғалардың ағынын бейнелейді. Бұл диаграммалар объектілер арасында байланыстарға қатты көңіл бөледі. Бұл диаграммадан объектілер арасындағы байланысты жеңіл түсінуге болады, бірақ оқиғалардың тізбектілігін түсіндіру қиынырақ. Осындай себептерге байланысты сәйкес қандай да бір сценарийлер үшін диаграммалардың 2 типі де жасалады. Олар бір мақсатты көздесе де, бір ақпаратты құраса да, оларды әртүрлі көзқарастан көрсетеді.
Кооперативті диаграммаларда да бағыттар хабарламаларды бейнелейді. Олардың уақыттық тізбектері хабарламаларды нөмірлеу жолымен көрсетіледі.
К ластар диаграммасы жүйенің кластар типтерін және олардың арасындағы әртүрлі текті статикалық байланыстарды анықтайды. Кластар диаграммасында кластар атрибуттары, кластар амалдары және кластар арасындағы байланыстарға таңылатын шектеулер кескінделеді. Диаграммада әрбір класс тік төртбұрыш түрінде бейнеленеді. Ол үш бөлікке бөлінеді. Бірінші бөлігінде класс аты, екінші бөлігінде оның атрибуттары, үшінші бөлігінде кластың тәртібін бейнелейтін класс амалдар, яғни класпен орындалатын әрекеттер беріледі. Мысалы: Карточканы оқу құрылғысы класын қарастырайық (24-сурет).
24-сурет. Карточканы оқу құрылғысы класы
Кластарды байланыстыратын сызықтар кластар арасындағы өзара әрекеттестікті білдіреді.
Кластар стереотиптері. Стереотиптер кластарды категорияларға бөлуге мүмкіндік беретін механизм. UML тілінде негізгі стереотиптерге Boundary (Шекара), Entity (Мән), Control (Басқару) жатады.
Шекаралық кластар (Boundary Classes) – жүйенің және қоршаған ортаның шекарасында орналасқан кластар. Олар барлық формаларды, есептерді, аппаратура интерфейстерін (принтер, сканер) және де басқа жүйелер интерфейстерін қамтиды.
Кластар шекарасын табу үшін қолдану нұсқаларының диаграммаларын зерттеу керек. Қатысушы кейіпкер мен қолдану нұсқасы арасындағы әрбір өзара әрекеттестікке бір шекаралық класс сәйкес келеді. Осындай класс қатысушы кейіпкерге жүйемен өзара байланыс жасауға мүмкіндік береді.
Мәндер-кластары (Entity Classes) пәндік аймақтың негізгі ұғымдарын бейнелейді және де сақталған ақпараттардан тұрады. Әдетте әрбір мән-класс үшін мәліметтер қорында кесте жасаццды.
Басқарушы кластар (Control Classes) – басқа кластардың әрекеттерінің үйлестіктеріне жауап береді. Әдетте қолданудың әрбір нұсқасында осы нұсқаның оқиғаларының тізбектілігін бақылайтын бір басқарушы класс болады. Басқарушы класс басқа кластарға жауапкершілік береді, сол себептен оны класс-менеджер деп те атайды. Жүйеде қолданудың бірнеше нұсқаларына ортақ басқа да басқарушы кластар болуы мүмкін. Мысалы: қауіпсіздікпен байланысты оқиғаларды бақылауға жауап беретін Security Manager – қауіпсіздік класы. Transaction Manager – транзакциялар менеджері класы мәліметтер қорымен транзакцияларға қатысты хабарламалардың үйлестігімен айналысады.
Жүйенің қызметінің басқа да элементтерімен жұмыс үшін басқа да менеджерлер болуы мүмкін. Мысалы: ресурстарды бөлісу, мәліметтерді таратылған өңдеу немесе қателерді өңдеу.
Пакеттер механизмі. Пакеттер қандай да бір жалпылыққа ие болатын кластарды топтауда қолданылады. Топтаудың мейлінше кең таралған тәсілдері:
Стереотипі бойынша топтау. Бұл тәсіл дайын жүйені орналастыру тұрғысында пайдалы.
Кластардың қызметі бойынша топтастыру. Жетістігі – қайталап қолдану мүмкіндігінің болуы.
Пакеттер механизмі кластарға ғана емес, модельдің кез келген элементіне қолдануға болады. Кез келген екі кластың арасындағы пакетте кез келген тәуелділік бар болса, онда екі пакеттің арасында тәуелділік болады. Сонымен пакеттер диаграммасы кластар пакетінен және олардың арасындағы тәуелділіктен тұратын диаграмманы көрсетеді (25-сурет).
25-сурет. Пакеттер диаграммасы
Пакеттер мен тәуелділіктер кластар диаграммаларының элементтері болып табылады, яғни пакеттер диаграммасы кластар диаграммасының формасы.
Екі элемент арасындағы тәуелділік мына жағдайда орын алады: егер бір элементті анықтаудағы өзгерістер екінші элементке де ықпалы тисе. Кластар арасындағы тәуелділіктер әртүрлі болуы мүмкін: бір класс екінші класқа хабарлама жібереді; бір класс екінші класты амалдар параметрі ретінде қолданатын болса. Егер класс өзінің интерфейсін өзгертетін болса, онда оның жіберетін кез келген хабарламасы өзінің күшін жоюы мүмкін. Пакеттер диаграммасын жалпы құрылымдық жүйені басқарудың негізгі құралы деп қарастыруға болады.
Пакеттер үлкен жобалар үшін өмірлік қажетті құрал болып табылады.
Атрибут дегеніміз класпен байланысты ақпарат элементі. Мысалы: Компания класында атауы (Name), мекен-жайы (Address) және қызметкерлерінің саны (Number of Employees) болуы мүмкін.
Атрибуттар кластың ішінде тұрады, сондықтан олар басқа кластар үшін жасырын болады. Осыған байланысты кей кездері қандай кластардың атрибуттарды оқуға және өзгертуге құқығы бар екендігін көрсету керектігін талап етеді. Бұл қасиет атрибуттың көрінуі (attribute visibility) деп аталады. Атрибутта осы параметрдің 4 мүмкін мәнін анықтауға болады. Олардың әрқайсысын мысал арқылы қарастырайық (26-сурет). Employee класы Address атрибутымен және Company класы берілсін.
Атрибуттың 4 мүмкін мәні:
Жалпы, ашық (Public) – барлық кластарға көрініп тұрады. Кез келген класс оны қарауына және мәнін өзгертуіне болады. Ендеше, Company класы Employee класының Address атрибутының мәнін өзгерте алады. UML нотациясына сәйкес жалпы атрибутқа «+» таңбасы қойылады.
Жабық, құпия (Private) – ешбір класқа көрінбейді. Employee класы Address атрибутының мәнін біледі және оны өзгерте алады, ал Company класы оны көре де алмайды, өзгерте де алмайды. Егер қажет болса, ол Employee класынан атрибуттың мәнін қарауға рұқсат сұрайды немесе жалпы амалдардың көмегімен осы атрибуттың мәнін өзгертуді ұсынады. Жабық атрибут сәйкесінше «–» таңбасымен белгіленеді.
Қорғалған (Protected) – атрибут кластың өзіне ғана және оның ішкі кластарына ғана ашық.Бұл атрибут «#» таңбасымен белгіленеді.
Пакетті (Package or Implemention) – атрибут пакет шеңберінде ғана жалпы болып табылады. Бұл атрибут ешқандай таңбамен белгіленбейді.
26-сурет. Атрибуттардың көрінуі.
Амалдар класпен байланысқан тәртіпті жүзеге асырады. Амалдар үш бөлікті қамтиды: аты, параметрі және қайтарылатын мәннің типі.
Парметрлер – «кірісте» амал арқылы алынған аргументтер. Қайтарылатын мәннің типі амал әрекеті нәтижесіне қатысты.
Кластар диаграммасында амалдар аттарын және олардың параметрлері мен қайтарылатын мәнінің типімен амалдар аттарын көрсетуге болады.
UML тілінде амалдар мынандай нотациямен беріледі. Амал аты (аргумент1: аргумент1-дің мәліметтер типі, аргумент2: аргумент2-нің мәліметтер типі, ...): қайтарылатын мәннің типі.
Амалдардың әртүрлі төрт типін қарастырайық:
Жүзеге асыру амалдары (implementor operations) – қандай да бір бизнес-функцияларды жүзеге асырады. Өзара әрекеттестік диаграммаларын зерттеу арқылы осындай амалдарды табуға болады. Осы типтің диаграммалары бизнес-функцияларда қолданылады, диаграмманың әрбір хабарламасын жүзеге асыру амалымен сәйкес келтіруге болады.
Басқару амалдары (manager operations) – объектілерді жасау және жоюды басқарады. Бұл категорияға кластардың конструкторлары мен деструкторлары жатады.
Қатынау амалдары (access operations) – басқа кластардың атрибуттарының мәндерін қарау немесе өзгерту үшін қажет. Мысалы: Employee класында Salary атрибуты болсын. Басқа кластар бұл атрибутты өзгерткенін қаламаймыз. Оның орнына Employee класына GetSalary және SetSalary сияқты қатынаудың 2 амалын қосамыз. Біріншісі GetSalary-ға басқа да кластар қатынай алады, себебі, ол жалпы болып табылады. Ол Salary атрибутының мәнін алады және оны шақырған класқа осы мәнді қайтарады. SetSalary амалы да ортақ болып табылады, ол оны шақырған класқа Salary атрибутының жаңа мәнін беруге көмектеседі. Бұл амалда жалақы өзгеруі үшін орындалуға қажетті тексерудің кез келген ережелері мен шарттары болуы мүмкін.
Осындай тәсіл класс ішінде атрибуттарды қауіпсіз инкапсуляциялауға мүмкіндік береді, басқа кластардан қорғайды, оған бақыланатын қатынау жасауға мүмкіндік береді. Әрбір кластың атрибуты үшін Get және Set амалдарын (мәнді алу және өзгерту) жасау стандарт болып табылады.
4. Көмекші амалдар (helper operations) – класс үшін оның жауапкершілігін орындауға қажетті кластың амалдары, бірақ бұл туралы басқа кластар ештеңе білмеуі қажет. Бұл кластың жабық және қорғалған амалдары. Амалдарды идентификациялау үшін келесі әрекеттерді орындау керек:
- тізбектілік және кооперативті диаграммаларды толықтай оқып-үйрену керек. Бұл диаграммалардағы хабарламалардың үлкен бөлігі жүзеге асыру амалдары болып табылады. Рефлексивті хабарламалар көмекші амалдар болып табылады.
- басқару амалдарын қарастырыңыз. Конструкторлар және деструкторларды қосу қажеттігі туындайды.
- қатынау амалдарын қарастырыңыз. Кластың әрбір атрибуты үшін (олармен жұмыс жасайтын басқа кластар үшін) Get және Set амалдарын жасау керек.
Кластар арасындағы семантикалық өзара байланыс байланысты білдіреді. Ол класқа басқа кластың атрибуттары, операциялары және байланыстары туралы білуге мүмкіндік береді. Басқа сөзбен айтқанда бір класс басқа класқа хабарлама жібергенде тізбектілік диаграммасында немесе кооперативті диаграммада олардың арасында байланыс болу керек.
Кластар арасында қойылатын байланыстың 4 типі бар:
Ассоциациялар (association);
тәуелділіктер (dependency);
агрегациялар (aggregations);
жалпылау (generalization).
Ассоциация – кластар арасындағы семантикалық байланыс. Оны кластар диаграммасында кәдімгі сызықпен көрсетеді (27-сурет).
27-сурет. Ассоциация.
Ассоциациялар бір бағытты немесе екі бағытты болады. UML тілінде екі бағытты ассоциацияларды бағыттаушысыз қарапайым сызықпен (27-сурет) немесе екі жағынан да бағыттаушысы бар сызықпен көрсетеді.
Ассоциациялар бағытын тізбектілік диаграммалары мен кооперативті диаграмманы оқып-үйренуде анықтауға болады. Егер барлық хабарламалар оларға бір ғана класпен жіберіліп, басқа класпен қабылданатын болса және керісінше, онда осы кластар арасында бір бағытты байланыс бар. Егер ең болмағанда бір хабарлама кері жаққа жіберілетін болса, онда ассоциация екі бағытты болғаны. Ассоциациялар рефлекситі болуы да мүмкін. Кластың бір экземпляры осы кластың басқа да экземплярымен өзара әрекеттескен жағдайда рефлексивті ассоциация пайда болады.
Тәуелділіктер де кластар арасындағы байланысты бейнелейді, бірақ олар әрқашан бір бағытты және бір класс басқа класпен жасалған анықтамаларға тәуелді екендігін көрсетеді. Тәуелділіктер үзік сызықтармен жүргізілген бағыттауыштармен кескінделеді (28-сурет).
28-сурет. Тәуелділік.
Осы кластар үшін кодты генерациялауда олара жаңа атрибуттар қосылмайды.
Агрегациялар ассоциацияның неғұрлым тығыз формасын білдіреді. Агрегация дегеніміз бүтін мен оның бөліктері арасындағы байланыс. Мысалы: Компьютер класы, сонымен бірге Жүйелік блок класы, Монитор класы және т.б.
Агрегациялар бүтін болып табылатын класта кішкентай ромбысы бар сызықпен бейнеленеді (29-сурет). (Whole - бүтін, Part – бөлік).
29-сурет. Агрегация
Қарапайым агрегацияға толықтыру үшін UML агрегацияның неғұрлым күшті түрі – декомпозицияны енгізеді.
Жалпылау екі класс арасындағы мұралау байланысын көрсетеді. Объектіге бағытталған тілдер мұралау концепциясын қолдайды. Ол бір класқа басқа кластың барлық атрибуттарын, операцияларын және байланыстарын мұралауға мүмкіндік береді. UML тілінде мұралау байланысын жалпылау деп атайды және оны ішкі кластан түпкі класқа бағытталған бағыттауыштар түрінде кескіндейді
Әрбір ішкі кластың мұраланғаннан басқа өзінің меншікті бірегей атрибуттары, операциялары және байланыстары болады.
Бір кластың қанша экземпляры осы байланыс көмегімен уақыттың осы сәтінде басқа кластың бір экземплярымен өзара әрекеттесуін жиын (multiplicity) деп атайды. Мысалы: Университеттегі курстарды тіркеудің жүйесін жасауда мынандай кластарды анықтауға болады: Курс, Студент. Олардың арасында мынандай байланыс қойылған: курстарда студенттер бар, студенттерде курс.
Жиынның параметрі жауап беретін сұрақтар мынандай болуы мүмкін:
Осы сәтте студент қанша курсқа қатыса алады?
Бір уақытта бір курсқа қанша студент қатыса алады?
Жиын осы 2 сұраққа жауап бере алатындықтан оның индикаторлары байланыс сызығының екі ұшына да орналастырылады. Мысалы: Бір студент 0-ден 4 курсқа дейін қатыса алады, ал бір курсты 10-нан 20-ға дейін студенттер таңдай алсын. Осы берілгендерді диаграммада былайша көрсетеміз (30-сурет).
30-сурет. Жиын.
UML тілінде жиынды белгілеу үшін келесі нотациялар қабылданған (1-кесте):
1-кесте. Жиынның мәндері
Жиын
|
Мәні
|
*
|
Көп
|
0
|
Нөл
|
1
|
Бір
|
0 .. *
|
Нөл немесе одан артық
|
1 .. *
|
Бір немесе одан артық
|
0 .. 1
|
Нөл немесе бір
|
1 .. 1
|
Тек біреу
|
Байланыстарды оның аттарымен немесе рөлдік аттарымен нақтылауға болады.
Байланыс аты - әдетте етістік болады немесе оның не үшін қажет екендігін сипаттайтын етістікті фраза.
Мысалы: Адам (Person) және Компания (Company) кластарының арасында ассоциация болуы мүмкін. Осымен байланысты Адам класының объектісі компанияның клиенті, оның қызметкері немесе иесі болып табылады ма? деген сұрақ туындайды. Осыны анықтау үшін ассоциацияны «employs» (жалдайды) деп атауға болады (31-сурет).
31-сурет. Байланыс аты.
Байланыстардың аттарын анықтау міндетті емес. Әдетте оны байланысты жасау себебі көрінбеген болса ғана жасайды. Атты байланыс сызығында көрсетеді.
Рөлдер. Рөлдік аттар ассоциация немесе агрегация байланыстарында қолданылады. Адам класы Компания класының қызметкерінің рөлін атқарады. Рөлдік аттар – зат есімдер немесе олардың фразаларын қамтушылар. Оларды диаграммада класпен бірге көрсетеді (32-сурет).
32-сурет. Рөлдік аттар.
Достарыңызбен бөлісу: |