Дәріс

Практикалық жұмыс №4

Зертханалық жұмыс№4

Дәріс.

Модельдеу Тілі UML

Дәрiс жоспары:

1. Модельдеу Тілі UML;

2. Графикалық көрінісі: дөңгелек, оның астынан атау жазылады

1. Модельдеу Тілі UML

Унифицирленген Модельдеу Тілі (UML) – бағдарламалық жүйенің артефактілерін құжаттау және құрылымдастыру, арнайыландыру, визуализация тілі.

UML концептуалды моделі

UML түсіну концептуалды моделін меңгеру қажет, ол өзіне үш құрама бөліктерді қосады: тілдің негізгі құрылыстық блоктары, олардың үйлесу ережелері және тілдің жалпы механизмі үшін кейбір жалпы ережелері.

Қрылыстық блоктар UML

UML тілінің сөздігі өзіне үш құрылыс блоктарын қосады:

ü болмыстар;

ü қатынастар;

ü диаграммалар.

Болмыстар – бұл модельдің негізгі элементі болып табылатын абстракции.

Қатынастар – элементтер арасындағы семантикалық байланыс.

Диаграммалар – элементтер жиынтығының графикалық көрінісі.

Қатынастар түрлі болмыстарды байланыстырады, болмыс жиынтығының қызығушылығын көрсететін диаграммаларды топтастырады.

Болмыстар

UML-да төрт түрлі болмыстар бар:

ü құрылымды;

ü тәртіпті;

ü топтастырушы;

ü аннотациялық.

Болмыстары тілдің негізгі объектті-бағытталған блоктары болып табылады. Олардың көмегімен корректті модельдерді құруға болады.

Құрылымдық болмыстар – бұл UML тіліндегі моделіндегі зат есіп атаулары. Тәртіп бойынша, олар өз алдына модельдің статистикалық бөлігін көрсетеді, олар жүйенің концептуалды немесе физикалық бөліктеріне сәйкес келеді. Құрылымды болмыстың жеті түрлілігі бар:

Класс (Class) – жалпы атрибуттар, операциялар, семантикалар және объектілердің көрінісі. Графикалық көрініс: оның атрибуты, операциясы, атауы берілген тікбұрыш.

Интерфейс (Interface) – бұл класспен немесе компонентпен ұсынылатын операциялар жиынтығы.

Графикалық көрінісі: дөңгелек, оның астынан атау жазылады.

Кооперация (Collaboration) – өзара әрекеттесуді нықтайды, ол өз алдына бірігіп жұмыс істей отырып кейбір кооперативті нәтижені шығаратын рольдер мен басқа элементтердің жиынтығын көрсетеді. Графикалық көрінісі: пунктирлі сызықпен шектелген эллипс.

Прецедент (Use case) – орындалатын әрекеттердің, белгілі тұлғаға мағыналы тізбегінің көрінісі (әртіс, Actor).

Графикалық көрінісі: үздіксіз сызықпен шектелген эллипс.

Үш келесі болмыстар – класттарға ұқсас, алайда олар ерекшеліктер қатарына ие болады және сондықтан UMLдың жеке болмыстарына шығарылған.

Белсенді класс (Active class) – бұл объектілері немесе жіптері (threads) бір немесе ірнеше процестерге енгізілген класс, және сондықтан олар басқарушы әрекетті көрсете алады.

Графикалық көрінісі: жуан сызықпен белгіленген қарапайым класс тәріздес.

Компонент (Component) – бұл жйүенің физикалық алмастырушы бөілігі, ол интерфестер жиынтығына сәйкес келеді және оның жүзеге асырылуын қамтамасыз етеді. Компонент, ереже бойынша, өз алдына логикалық элементтердің физикалық жиынтығын, класстар мен интерфейстер және кооперация тәріздес.

Графикалық көрінісі: бөлімшелері бар тікбұрыш тәрізді

Түйін (Node) – бағдарламалық кешенді жобалау кезінде бар болатын жүйенің шынайы элементі және өз алдына жадының кейбір көлеміне ие болатын есептеу қорын көрсетеді.

Графикалық көрінісі: әдетте куб ретінде көрсетіледі

Компоненттер мен түйіндер жүйенің физикалық болмыстарына сәйкес келеді, сол уақытта бірінші бес – концептуальды немесе логикалық болмысқа сай келген.

Осы болмыстардың осылайша түрлері бар болады: актерлер, сигналдар, утилиттер (класс түрі), процестер және жіптер (активті клас түрлері), қосымшалар, құжаттар, файлдар, кітапханалар, беттер және кестелер (компоненттер түрі).

Тәртіпті болмыстар UML тілінің үлгілерінің динамикалық құрастырушысы болып табылады. Бұл тіл етістіктері: олар үлгінің тәртібін уақыттарда және кеңістікте бейнелеп түсіндіреді:

Өзара әсерлесу (Interaction) – бұл тәртіп, болмысы объект арасында нақты контекст аясында хабарламалармен алмасуда нақты мақсатқа жетуде құралады. Графикалық белгіленуі: сәйкес операцияның аты бейнеленетін тілше.

Автомат (State machine) – күйлердің тізбегін анықтайтын тәртіп алгоритмі, сол арқылы объект немесе зара әрекеттесу өзінің өмірлік цикл созындысында түрлі құбылыстарға жауап ретінде өтеді.

Графикалық көрінісі: доғаланған бұрышпен тікбұрыш, атауы бар болатын, мүмкін ішкі күйі де.

Топтастырылатын болмыстар UML үслгісінің ұйымдастырушы бөлігі болып табылады. Бұл үлгіні қоюға болатын блоктар.

Пакеты (Packages) – топтаушы болмыстардың жаләыз типі - өз алдына элементтердің топтарға ұйымдастырудың әмбебаб механизмын ұсынады. Пакетке құрылысты, тәртіптік жјне басқа топтаушы болмыстарды орналастыруға болады. Бағдарламалаудың жұмыс уақытында бар болатын компоненттен айырмашылығы пакеттер таза концептуалды сипат алады, яғни өңдеу уақытында ғана бар болады. Графикалық белгілеу: закладкамен папка түрінде, кейде атау және –құрамындағыларды құрайтын.

Аннотациялы болмыстар – UML үлгілерінің түсіндіргіш бөлігі. Бұл қосымша суреттеуге арналған түсініктер, түсіндірулер немесе үлгі - элементіне ескерту. Аннотациялық элементтердің негіздік үлгісі бар ол- ескерту.

Ескерту (Note) –Бұл жай ғана түсініктерді бейнелеуге арналған символ немесе элементке немесе элементтердің тобына қосылған шектеулер. Графикалық белгілеуі: мәтіндік немесе графикалық түсінігі бар бүгілмелі жақпен тікбұрыш түрінде.

Жиірек ескертулер диаграммаларды формалды немесе формальсіз мәтін түрінде айтуға болатын шектеулермен немесе түсініктермен жабдықтау үшін қолданылады.

Унифицирленген Модельдеу Тілі (UML) – бағдарламалық жүйенің артефактілерін құжаттау және құрылымдастыру, арнайыландыру, визуализация тілі.

UML концептуалды моделі

UML түсіну концептуалды моделін меңгеру қажет, ол өзіне үш құрама бөліктерді қосады: тілдің негізгі құрылыстық блоктары, олардың үйлесу ережелері және тілдің жалпы механизмі үшін кейбір жалпы ережелері.

Қрылыстық блоктар UML

UML тілінің сөздігі өзіне үш құрылыс блоктарын қосады:

· болмыстар;

· қатынастар;

· диаграммалар.

Болмыстар – бұл модельдің негізгі элементі болып табылатын абстракции.

Қатынастар – элементтер арасындағы семантикалық байланыс.

Диаграммалар – элементтер жиынтығының графикалық көрінісі.

Қатынастар түрлі болмыстарды байланыстырады, болмыс жиынтығының қызығушылығын көрсететін диаграммаларды топтастырады.

Болмыстар

UML-да төрт түрлі болмыстар бар:

· құрылымды;

· тәртіпті;

· топтастырушы;

· аннотациялық.

Болмыстары тілдің негізгі объектті-бағытталған блоктары болып табылады. Олардың көмегімен корректті модельдерді құруға болады.

Құрылымдық болмыстар – бұл UML тіліндегі моделіндегі зат есіп атаулары. Тәртіп бойынша, олар өз алдына модельдің статистикалық бөлігін көрсетеді, олар жүйенің концептуалды немесе физикалық бөліктеріне сәйкес келеді.

Құрылымды болмыстың жеті түрлілігі бар:

Класс (Class) – жалпы атрибуттар, операциялар, семантикалар және объектілердің көрінісі. Графикалық көрініс: оның атрибуты, операциясы, атауы берілген тікбұрыш.

Интерфейс (Interface) – бұл класспен немесе компонентпен ұсынылатын операциялар жиынтығы.

Графикалық көрінісі: дөңгелек, оның астынан атау жазылады.

Кооперация (Collaboration) – өзара әрекеттесуді нықтайды, ол өз алдына бірігіп жұмыс істей отырып кейбір кооперативті нәтижені шығаратын рольдер мен басқа элементтердің жиынтығын көрсетеді. Графикалық көрінісі: пунктирлі сызықпен шектелген эллипс.

Прецедент (Use case) – орындалатын әрекеттердің, белгілі тұлғаға мағыналы тізбегінің көрінісі (әртіс, Actor).

Графикалық көрінісі: үздіксіз сызықпен шектелген эллипс.

Үш келесі болмыстар – класттарға ұқсас, алайда олар ерекшеліктер қатарына ие болады және сондықтан UMLдың жеке болмыстарына шығарылған.

Белсенді класс (Active class) – бұл объектілері немесе жіптері (threads) бір немесе ірнеше процестерге енгізілген класс, және сондықтан олар басқарушы әрекетті көрсете алады.

Графикалық көрінісі: жуан сызықпен белгіленген қарапайым класс тәріздес.

Компонент (Component) – бұл жйүенің физикалық алмастырушы бөілігі, ол интерфестер жиынтығына сәйкес келеді және оның жүзеге асырылуын қамтамасыз етеді. Компонент, ереже бойынша, өз алдына логикалық элементтердің физикалық жиынтығын, класстар мен интерфейстер және кооперация тәріздес.

Графикалық көрінісі: бөлімшелері бар тікбұрыш тәрізді.

Түйін (Node) – бағдарламалық кешенді жобалау кезінде бар болатын жүйенің шынайы элементі және өз алдына жадының кейбір көлеміне ие болатын есептеу қорын көрсетеді.

Графикалық көрінісі: әдетте куб ретінде көрсетіледі. Компоненттер мен түйіндер жүйенің физикалық болмыстарына сәйкес келеді, сол уақытта бірінші бес – концептуальды немесе логикалық болмысқа сай келген.

Осы болмыстардың осылайша түрлері бар болады: актерлер, сигналдар, утилиттер (класс түрі), процестер және жіптер (активті клас түрлері), қосымшалар, құжаттар, файлдар, кітапханалар, беттер және кестелер (компоненттер түрі).

Тәртіпті болмыстар UML тілінің үлгілерінің динамикалық құрастырушысы болып табылады. Бұл тіл етістіктері: олар үлгінің тәртібін уақыттарда және кеңістікте бейнелеп түсіндіреді:

Өзара әсерлесу (Interaction) – бұл тәртіп, болмысы объект арасында нақты контекст аясында хабарламалармен алмасуда нақты мақсатқа жетуде құралады. Графикалық белгіленуі: сәйкес операцияның аты бейнеленетін тілше.

Автомат (State machine) – күйлердің тізбегін анықтайтын тәртіп алгоритмі, сол арқылы объект немесе зара әрекеттесу өзінің өмірлік цикл созындысында түрлі құбылыстарға жауап ретінде өтеді.

Графикалық көрінісі: доғаланған бұрышпен тікбұрыш, атауы бар болатын, мүмкін ішкі күйі де.

Топтастырылатын болмыстар UML үслгісінің ұйымдастырушы бөлігі болып табылады. Бұл үлгіні қоюға болатын блоктар.

Пакеты (Packages) – топтаушы болмыстардың жаләыз типі - өз алдына элементтердің топтарға ұйымдастырудың әмбебаб механизмын ұсынады. Пакетке құрылысты, тәртіптік жјне басқа топтаушы болмыстарды орналастыруға

болады. Бағдарламалаудың жұмыс уақытында бар болатын компоненттен айырмашылығы пакеттер таза концептуалды сипат алады, яғни өңдеу уақытында ғана бар болады. Графикалық белгілеу: закладкамен папка түрінде, кейде

атау және –құрамындағыларды құрайтын.

Аннотациялы болмыстар – UML үлгілерінің түсіндіргіш бөлігі. Бұл қосымша суреттеуге арналған түсініктер, түсіндірулер немесе үлгі - элементіне ескерту. Аннотациялық элементтердің негіздік үлгісі бар ол- ескерту.

Ескерту (Note) –Бұл жай ғана түсініктерді бейнелеуге арналған символ немесе элементке немесе элементтердің тобына қосылған шектеулер. Графикалық белгілеуі: мәтіндік немесе графикалық түсінігі бар бүгілмелі жақпен

тікбұрыш түрінде.

Жиірек ескертулер диаграммаларды формалды немесе формальсіз мәтін түрінде айтуға болатын шектеулермен немесе түсініктермен жабдықтау үшін қолданылады.

Қолданылған әдебиеттер тiзiмi

1. Леоненков А.В. Объектно-ориентированный анализ и проектирование с использованием UML и IBM Rational Rose БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2012;

2. Слайд Мухаметжанова Б.О. Жасанды зерде жүйелеріне кіріспе – ҚарМТУ- Қ.Р. Тұнғыш Президенті атындағы ЭОТ ғЗИ – Сертификат № 3895 2011ж.;

3. Мухаметжанова Б.О., Когай Г.Д. Деректерді өңдеу құрылымдары мен әдістері: Оқу құралы- Қарағанды ҚарМТУ баспасы 2011-110б;;

4. Мухаметжанова Б.О.Автоматтандырылған жүйелердің теориялық негіздері– ҚарМТУ- ң.Р. Тұнғыш Президенті атындағы ЭОТ ғЗИ – Сертификат № 2711 2010ж.;

5. Боггс У., Боггс М. UML и Rational Rose - М.: "ЛОРИ", 2012. - 582 с.

Практикалық жұмыс№4

ListBox және ComboBox тізімдерінен таңдау компоненттері

Мазмұны:

1. ListBox және ComboBox тізімдерінен таңдау компоненттері;

2. Жолдар кестесі - StringGrid компоненті;

3. Cells[ACol, ARow: Integer]: string;

4. Иерархиялық мәліметтер компоненттері – TreeView и ListView;

5. Chart көмегімен графиктер мен диаграммаларды жасау;

6. Бас меню –MainMenu компоненті;

7. Жүйелік диалогтар.

Ескерту. Есептеу нәтижесі нұсқа бойынша жасалынатын қосымша үшін дайындалады.

 Қосымшаның Файл (тазалау/оқу/матрицаны жазу/ нәтижені басып шығару/икемдеу операциялары), Есеп (нұсқаға сәйкес тапсырмалар), Анықтама (нұсқаға сәйкес тапсырмалар бойынша ақпарат) пункттері бар бас менюі болу керек;

 Қосымшаның матрицамен жұмыс істеу үшін келесі пункттері болу керек: ену, файлдан оқу, файлда сақтау, ағымдағы матрицаны тазалау.ввод, чтение из файла, сохранение в файле и очистку текущей матрицы. «Открыть», «Сохранить» және «Сохранить как» командалары тиісті жүйелік диалогтарды қолдану керек;

 Матрицаны енгізу кестелі формада болуын қамтамасыз ету керек (матрицаның максималды үлкендігі – 20×20);

 Тапсырма орындалуының нәтижесі үлкендігі өзгертілетін жеке терезелерде құрылуы керек;

 Менюдің барлық бөлімдері мен барлық басқарушы элементтеріне тез қатынау батырмалардың, негізгі командаларға қатынаудың ыстық пернелердің бар болуы;

 Шапшаң батырмалар не өзге компоненттерден тышқан курсорын жылжытқанда қалқып шығатын еске түсіру таңбашалары болу керек;

 Қолданушыға түрлі ақпаратты ұсыну мен жайылған еске түсірулерлер үшін қолданылатын қалып жолағы болу керек;

 Негізгі бөлімдерді қайталайтын, шапшаң батырмалардың 2ден кем емес аспапты панельдері болу керек. Аспапты панельдер автоматты айналдыруы болуы міндетті;

 Икемдеу Командасы, бас меню мен аспапты панельдерді икемдеуге мүмкіндік беру керек;

Қолданушы кезкелген компоненттен тышқанның оң батырмасымен шерткенде контекстік, қалқымалы терезелер істеуі керек;

Басқарушы элементтердің фокусын ауыстырып қосудың ойластырылған тізбегі болуы шарт;

 Қолданушы F1 барырмасы немесе менюдің сәйкес бөлімін таңдағанда тақырыптары көрінетін анықтама файлы болуы керек;

 Қосымшаның пиктограммасынан тышқанның оң жақ батырмасымен шерткенде қолданушыға қолжетімді версиясы туралы ақпаратты ұсыну;

 Өткен сеанста орнықтырылған икемдеудің кезекті жұмыс істегенде қайта қосылуы мүмкін болатын қосымшаны икемдеудің бар болуы;

 Қосымшаны орнату, Windowsта тіркеу не жою үшін Құралдар (бұл бірнеше файлдары бар қосымшалар үшін керек; қарапайым бағдарламалар үшін ол арнайы құралдарды қажет етпейді)

Жеке тапсырмалар

2.1-кесте-Тапсырма

№ | Тапсырма
1 | Жоғарғы үшбұрышты матрицаның элементтер сомасын есептеу Матрицаның әр жолының ең үлкен элементтерін табу. Матрицаның әр бағанасының ең үлкен элементтерін табу.
2 | Төменгі үшбұрышты матрицаның оң элементтер сомасын есептеу Матрицаның ең кіші элементін, оның жолы мен бағанасының нөмірін табу. Матрицаны транспонирлеу, нәтижесін кесте формасына шығару.
3 | Жоғарғы үшбұрышты матрицаның жұп сандарының көбейтіндісін есептеу. Сандарының сомасы максималды мәнге ие элемент және оның индексткрін табу. Нөлдік емес сандардың көбейтінділерінің сомасы 5-ке бөлінетін матрица жолдарының нөмірлерін табу.
4 | Матрицаның әр бір жолының элементтер модульдерінің максималды сомаларын есептеу. Тақ сан болып табылатын матрица элементтер санының сомасын табу. Матрицаның бірінші және соңғы жолдарының орнын ауыстыру.

5

Егер матрицаның ең үлкен элементі минималды элементінің абсолютті мәнінпн үлкен болса, онда барлық теріс элементтерді олардың модульдарымен алмастыру.

Нөлдік емес сандардың көбейтінділерінің сомасы максималды болатын элемент және оның индекстерін табу.

Матрицаның диагональдық қасиетке сәйкес келетінін анықтау.

6

Егер матрицаның ең үлкен элементі жұп жол және тақ бағанада орналасса, онда матрицаның барлық элементін осы ең үлкен элементке бөлу.

Егер массивтің теріс элементтерін олардың квадраттарымен алмастыру нәтижесінде жол бойынша кері тізбекті құраса, онда әр жолдың элементтер сомасын табу, болмаса көбейтіндісін табу.

Цифрларының сомасы жұп болатын элементтерді табу.

7 | Егер массивтің элементтері жол бойынша өспелі тізбек құраса, онда барлық теріс элементтерін нөлдермен алмастыру. Массивтің ең үлкен шамасынан кейінгі барлық элементтерді 10ға арттыру. Цифрларының сомасы 30-дан асатын элементтер мен индекстерін табу.
8 | Цифрларының сомасы минималды элементтер мен индекстерін табу. Матрицаның жолдарының максималды элементтерінің сомасын бағананың минимплды элементтерінің сомасына көбейтіндісіе табу. Егер массивтің қандайда бір A(i,j) элементі A(i,j) < 11 шартына сәйкес болса, онда матрицаның барлық теріс элементтерін олардың квадраттарымен алмастыру.

9

Матрицаның барлық оң элементтерін олардың квадраттарымен алмастыру, ал теріс элементтерін 10ға көбейту.

Егер массивта бір де бір элемент 10 мәнімен болмаса, онда матрицаның ең кіші элементін осы санға алмастыру, өйтпегенде оны нөлге алмастыру.

Нөлдік емес цифрларының көбейтінділерінің сомасы 100-ден асатын элемент пен олардың индекстерін табу.

10 | Тақ сан болатын матрица элементтерінің цифрлар сомасын табу. Элементтер цифрларының сомасы минималды болатын матрица жолының нөмірін табу. Матрицаның бірінші және соңғы бағаналарының орнын ауыстыру.
11 | Матрицаның нөлдік емес цифрлар көбейтінділерінің сомасын табу Элементтер цифрларының сомасы максималды болатын матрица бағанасының нөмірін табу. Матрицаның әр жолының ең үлкен элементтерінің нөмірлерін табу.
12 | Матрицаның әр жолының элементтерінің цифрлар сомаларын табу. Теріс элементінен басталатын жолдар мен оң элементпен аяқталатын бағаналар қиылысында орналасқан матрица элементтерінің сомасын табу. Ең құрмағанда бір теріс элементі бар матрица жолдарының санын анықтау.

13

Егер төртбұрышты матрицаның ең үлкен элементі басты диагональда орналасса, барлық элементтерді 10-ға, болмаса 0.5ке көбейту.

Басты диагональ бойындағы жолдардың теріс элементіне жолдағы өзіне дейінгі сандар сомасын қосу, оң элементіне өзінен кейінгі сандар сомасын қосу

Матрицаның әр бағанасының элементтері сандарының сомасын табу.

14 | Матрицаның оң және теріс элемнеттерінің санын анықтау. Егер матрицаның басты диагональ бойында ең құрмағанда бір теріс элементі бар болса, онда басты диагональ бойындағы әр элементке өзінің алдындағы элементтер сомасын қосу. Матрицаның әр жолының нөлдік емес цифрлары көбейтінділерінің сомасын табу.
15 | Элементтердің ең үлкен теріс және ең кіші оң мәндерін табу.. Ең үлкен элементі бар жолдан кейін орналасқан жолдардағы барлық элементтерді 10ға арттыру. Элементтер сандарының сомасы 3-ке бөлінетін матрица жолдарының нөмірлерін табу.
16 | Төртбұрышты матрицаның бас диагоналіне параллель жіне одан жоғары сызықтар бойында жатқан элементтер сомасын анықтау Қиылысында минималды элемент орналасқан жол мен бағана элементтерінің сомасын анықтау. Элементтер сандарының сомасы минималды бағана нөмірін табу.
17 | Элементтер сандарының сомасы максималды жол нөмірін табу. Егер массивте теріс элементтердің саны көбірек болса, онда барлық теріс элементтерді 99-ға, болмаса 100-ге алмастыру. Бас диагональда және одан төмен орналасқан матрицаның тақ элементтерінің санын анықтау.
18 | Бас диагональда және одан жоғары орналасқан матрицаның жұп элементтерінің санын анықтау. Жұп сан болатын барлық элементтер мен олардың индекстерін анықтау. Бұрышты диагональдан төмен орналасқан, нөлдік емес матрица элементтерінің санын анықтау.
19 | Тақ сан болатын барлық элементтер мен олардың индекстерін анықтау. Матрицаның минималды элементінің нөлдік емес санының көбейтіндісін анықтау. Симметрияның тік сызығына қатысты симметриялы орналасқан матрица элементтерінің орнын алмастыру.
20 | Матрицаның әр бағанасының нөлдік емес элемент сандарының көбейтіндісін табу. Матрицаның максималды элементінің цифрлар сомасын табу. Бас диагональға қатысты симметриялы орналасқан матрица элементтер мәндерінің орнын алмастыру.

Бақылау сұрақтары

1. ListBox тізімінде қанша элемент орналасқанын қалай білуге болады?

2. StringGrid компонентінде бекітілген және бекітілмеген бағаналар мен жолдар санын қалай белгілеуге болады?

3. Қолданушы жүйелік диалогпен жұмыс жасағанда әрекетті аластатқанын қалай білуге болады?

4. Файлды ашу/сақтау диалогында таңдалған файлды, ал түсті таңдау диалогында таңдалған түсті және шрифтті таңдау диалогында таңдалған шрифтті қалай анықтауғаболады?

5. TreeView ағашында тораптарды қалай қосып/жоюға болады?

6. Қай қасиет ListView компонентінде элементтерді көрсету түрін таңдауға мүмкіндік береді (ірі белгілер, ұсақ значки және т.б.)

ListBox және ComboBox тізімдерінен таңдау компоненттері

ListBox және ComboBox Компоненттері жолдардың тізімін көрсетеді. Олар бірбірінен ажыратылады, ең біріншіден ListBox мәліметті тек көрсетіп, қолданушыға оларды таңдауға мүмкіндік берсе, ComboBox мәтінді түзетуге мүмкіндік береді. Одан басқа тізімдерді көрсету формасында айырмашылық бар. ListBox тізімді ашылған терезеде көрсетеді, егер олар сыймаса оларды айналдыру жолағының тізіміне автоматты қосады. ComboBox тізімді ашылған және түсіп шығатын тізім түрінде көрсетіп қосымша терезесінің аумағын үнемдеуге мүмкіндік береді.

Екі компоненттің ерекше қасиеті ол Tstrings қарастырылған типі бар, Items жолдар тізімі. Оны Объектілер Инспекторы терезесіндегі осы қасиеттің батырмасын басып, жобалау кезінде толтыруға болады.

ListBox компонентінде қолданушыға көп таңдауды ұснатын MultiSelect қасиеті бар. Егер MultiSelect = false, онда қолданушы тізімнен бірақ элементті таңдай алады. то пользователь может выбрать только один элемент списка. Бұл жағдайда тек орындау кезіндеқол жетімді Itemlndex қасиетінен таңдалған жолдың индексін білуге болады. Егер бірдебір жол таңдалмаса, онда Itemlndex = –1. Көптеген таңдауда берілген элемент таңдалғанын Boolean типті Selected[Index: Integer] қасиетін тексеру арқылы білуге болады. Columns қасиеті тізім көрсетілетін бағаналар санын анықтайды. Егер ол сыймаса, ListBox компонентінің терезесінен көрсетіледі.

Sorted қасиеті тізімді алфавит бойынша орналастырады. Sorted = True болса, жаңа жолдар тізім соңына емес, алфавит бойынша енгізілелі. lbStandardқа енгізілген Style қасиеті жолдар тізізіміне сәйкес келеді. Styleдың өзге мәндері тізімде тек мәтін ғана емес, сонымен қатар суреттерді көрсетуге мүмкіндік береді.

ListBox компонентіне ұқсайтын, тағы бір компонент бар – бұл индикаторлары бар CheckListBox тізімі. Ол тура ListBox сияқты, бірақ әрбір жолдың қасында қолданушы өзгерте алатын индикатор бар.

Енді ComboBox компонентін қарастырайық. Оның суретінің стилі Style қасиетімен анықталып, келесі негізгі мәндерге ие бола алады:

2.2-кесте-Қолданушылар

esDropDown | Қолданушыға мәтінді енгізу мен түзетуге мүмкіндік беретін, бірдей биіктіктегі жолдары бар, түсіп шығатын тізім.
csSimple | Қолданушыға мәтінді енгізу мен түзетуге мүмкіндік беретін, бірдей биіктіктегі жолдары мен түзету терезесі бар, ашық тізім.
csDropDownList | Бірдей биіктіктегі жолдары бар, бірақ түзету терезесі жоқ түсіп шығатын тізім.

Қолданушыны таңдау Text қасиетінің мәні бойынша анықтауға болады. Егер қолданушы таңдаған элемент индексін таңдау қажет болса, Itemlndex қасиетін пайдалануға болады.

Жолдар кестесі - StringGrid компоненті

StringGrid Компоненті жолдардан тұратын кесте болып табыллады.. Кесте мәліменттері тек оқу үшін не түзетілетін бола алады. Кесте айналдыру жолақтарынан тұрады, бекітілген бірінші жолдар мен бағаналалардың саны тұрақты болып, айналмауы мүмкін. Осылайша, компонент терезесінде үнемі тұратын жолдар мен бағаналардың тақырыптарын беруге болады. Кестенің әр бір ұяшығына сәйкес элементті қоюға болады.

StringGrid Компоненті мәтіндік ақпаратты кестелік түрде көрсету үшін арналған. Компоненттің көрсетілетін мәтінді анықтайтын, негізгі қасиеттері:

2.3-кесте-Бағана

Cells[ACol, ARow: Integer]: string | Бағана мен жол индекстерімен ACol мен ARow ұяшықта болатын жол.
Cols[Index: Integer]: TStrings | Index индексі бар бағанада болатын жолдар тізімі.
Rows[Index: Integer]: ТStrings | Index индексі бар жолда болатын жолдар тізімі.
Objects [ACol, ARow: Integer] :TObject | Бағана мен жол индекстерімен ACol мен ARow ұяшықта болатын жолмен байланысты объект.

Аталған қасиеттердің барлығы орындалу барысында қол жетімді. Мәтіндерді бағдарламалық, жеке ұяшықтар бойынша немесе бірден TStrings сыныбының әдістерінің көмегімен беруге болады.

ColCount пен RowCount қасиеттері сәйкесінше бағаналар мен жолдар санын, FixedCols және FixedRows (бекітілген, айналмайтын жолдар мен бағаналар саны) қасиеттерін анықтайды. Бекітілген ұяшықтардың түсі FixedColor қасиетімен анықталады. LeftCol мен TopRow қасиеттері Экранда бірінші көрінетін жіне ағымдағы айналып жатқан жол мен бағана индекстерін анықтайды.

Кесте бағандарының ұзындығы мен ені DefaultColWidth және DefaultRowHeight қасиеттерімен қойылады. Кесте ұяшықтарын шектейтін сызық ені GridLineWidth көмегімен.

ScrollBars қасиеті кестедегі айналу жолақтарының санын анықтайды. Мұнда кестенің тиісті үлкендікке сыйатынына байланысты айналу жолақтары пайда болады не жойылады.

Options қасиеті кестенің көрптен қасиеттерін анықтайды: бекітілген (goFixedVertLine мен goFixedHorzLine) және бекітілмеген (goVertLine и goHorzLine) үяшықтардағы тік және көлденең сызықтардың бар болуы, бағана мен жолдар үлкендігін өзгерту мүмкіндігі(goColSizing и goRowSizing), бағана мен жолдың орнын ауыстыру және т.б. Options қасиетінің маңызды элементі goEditing – кесте құрамын түзету мүмкіндігі.

Негізінен StringGrid компоненті қолданушы ұяшықтан қандайда бір мәндерді таңдау үшін қолданылады. Col мен Row қасиеттері бағана индексі мен ерекшеленген бағанды көрсетеді. Сонымен қатар қолданушының ұяшықтардың көп санын белгілеу мүмкіндігі бар.

StringGrid компонентінің көптеген оқиғаларының ішінен қолданушы ұяшықты таңдағанда пайда болатын OnSelectCell оқиғасын атап айтқан жөн. Осы оқиғаның өңдеушісіне белгіленген ұяшықтың жолы мен бағанасы ACol мен Arow, таңдаудың мүмкіндігі туралы логикалық жалауша CanSelect сияқты параметрлер жіберіледі. CanSelect параметрін ұышықты таңдауға рұқсат бермеуге болады, оның мәнін false деп.

Иерархиялық мәліметтер компоненттері – TreeView и ListView

TreeView компоненті иерархиялық мәліметті ағаш түрінде көрсетіп, қолданушыға өзіне қажетті тораптарды таңдауға мүмкіндік береді. Иерархиялық ақпарат әртүрлі болуы мүмкін: есептеу нәтижесінің, құжаттама немесе кәсіпорынның құрылымы. Ағаштың әр торабымен кейбір мәліметтер байланысуы мүмкін.

TreeView-дің негізгі қасиеті – ағаштың тораптары туралы ақпаратты қамтитын Items болып табылады. Жеке тораптардың ақпаратына қатынау, осы индекстік тораптар тізімі арқылы жүзеге асырылады. Мысалы: TreeView1.Items[1] – бұл ағаштың 1 индекспен торабы (ағаштың екінші торабы). Әр торап өз қасиеті мен әдістері бар, ТТгееNodes типті объект болып табылады.

Жобалау кезінде ағаштың қалыптастырылуы ағаш тораптарын түзетуші терезесінде іске асырылады. Әр жаңа торап үшін Item Properties панелінде бірқатар қасиеттерді белгілеуге болады. Бұл біріншіден Text қасиеті – тораптың қасынан пайда болатын жазу. Image Index пен Selected Index қасиеттері торап үшін көрсетілетін, пиктограммалар индексін анықтайды. Бұл индекстер ImageList жеке компонентінде сақталынатын, суреттер тізіміне сәйкес келеді. Осы компонентке бағдарды сіздер TreeView компонентінің Images қасиетінде жасай аласыз.

Біз жобалау кезінде ағашты құрастыруды қарастырдық. Алайда ағаш қосымшаның жұмыс істеуі кезінде де құрастырыла алады. Ол үшін TTreeNodes типті объектілердің әдістері қызмет жасап, ағашқа жаңа тораптарды қосуға мүмкіндік береді.

2.4-кесте-Жаңа мәндер

Add(Node; S); | Жаңа S мәтіні бар торапты Node торабы орналасқан соңғы торап ретінде кірістіреді.
AddFirst(Node, S); | Жаңа S мәтіні бар торапты Node торабы орналасқан деңгейдің бірінші торабы ретінде кірістіреді.
Insert(Node, S); | Жаңа S мәтіні бар торапты сол деңгейге Node торабынан кейін кірістіреді.
AddChild(Node, S); | S мәтіні бар торапты Nodeтың соңғы еншілес торабы ретінде қосады.
AddChildFirst(Node, S); | S мәтіні бар торапты Nodeтың бірінші еншілес торабы ретінде кірістіреді.

Аталған әдістердің әрқайсысы кірістірілген торапты қайтарады. Әр тораппен белглі объект байланысты болуы мүмкін. Мұндай тораптарды қосу жоғарыдағы әдістерге ұқсас, бірақ параметр ретінде объектіге сілтемесі бар AddObject, AddObjectFirst, InsertObject, AddChildObject, AddChildObjectFirst әдістерімен жүзеге асырылады.

Тораппен байланысқан объектіні оның Data қасиетінің көмегімен табуға болады–мысалы, TreeView1.Items.Item[1].Data.

Тораптарды жою үшін екі әдіс бар: ағашты тазартатын, Clear және ,белгіленген Node торабы мен оның барлық ұрпақтораптарын жоятын, Delete(Node).

Ағашты қайта құрумен байланысты көптеген тораптарды жасау не жоюлар нәтижесінде жарықтың жағымсыз жыпылықтауына әкелуі мүмкін. Мұндайды BeginUpdate және EndUpdate әдістерін қолданып, болдырмауға болады. Алғашқысы ағаштың қайта салынуына жол бермей, екіншісі рұқсат етеді. алдын алып, Избежать этого можно с помощью методов BeginUpdate и EndUpdate. Первый из них запрещает перерисовку дерева, а второй – разрешает. Осылайша, ағаш құрылымын өзгерту келесідей жүзеге асырылады:

TreeView1.Items.BeginUpdate;

<ағашты өзгерту операторлары>

TreeView1.Items.EndUpdate;

Егер BeginUpdate әдісі бірнеше рет қолданылса, онда ағаштың қайта салынуы соншалықты рет EndUpdate әдісі қолданылғаннан кейін жасалынады.

Тораптар қасиеті ішінен Count қасиетін (торап, басқармалы мәліметтер, еншілес тораптар саны) атап айтқан.

TreeView компонентінің маңызды қасиеті болып Selected табылады. ол қолданушы белгілеген торапты көрсетеді. Осы қасиетті пайдаланып, бнлгңленген торап үшін орындалуға тиіс операцияларды бағдарламалап қоюға болады. Егер ешқай торап таңдалмаса, онда Selected мәні тең nil.

TreeView компонентінің ReadOnly қасиеті қолданушыға көрсетілетін мәліметті өзгертуге тиым салуға мүмкіндік береді. Егер түзету рұқсат етілсе, түзету кезінде OnEditing мен OnEdited оқиғалары пайда болады. (OnEditing өңдеушідегі var AllowEdit: Boolean параметрі түзетуге тиым салуға мүмкіндік береді).

ShowButtons, ShowLines, ShowRoot сияқты TreeView компонентінің қасиеттер тізімі ағаштың бейнелеуіне жауап беріп, одан тораптың, сызықтардың ашылуын көрсететін батырмаларды қоюға не алып тастауға мүмкіндік береді. SortType қасиеті ағаштың бұтақтары мен тораптарын автоматты сұрыптауға мүмкіндік береді.

ListView компоненті Windows 95/98 стилінде жұмыс істеуге мүмкіндік беріп, мәліметтерді тізім, кесте, ірі және ұсақ пиктограммалар түрінде көрсетеді. Ақпаратты көрсету стилі ViewStyle қасиетімен анықталып, ол келесі мәндерді қабылдайды: vsIcon – ірі белгілер, vsSmallIcon – ұсақ белгілер, vsList – тізім, vsReport – кесте.

Көрсетілетін ақпараттың құрамын сипаттайтын, компоненттің негізгі қасиеті – Items. Әр торапқа Caption (пиктограмманың қасында пайда болатын жазу) қасиеті белгіленеді. ImageIndex қасиеті пиктограмма индексін анықтайды. Индекс ImageList жеке компоненттерінде сақталатын, суреттер тізіміне сәйкес келеді. Бұл компоненттерге сілтемені vsIcon пен SmallImages және vsList и vsReport режимдері үшін LargeImages қасиеттерінде беруге болады.

Columns қасиеті vsReport режимі және ShowColumnHeaders (тақырыптарды көрсету) қасиетінде кесте тақырыптарының тізімін анықтайды.

Chart көмегімен графиктер мен диаграммаларды жасау

Chart Компоненті түрлі диаграмма мен графиктерді құруға мүмкіндік береді. Ол TChartSeries типті Series объектілерінің қорабы болып табылады. Әр компонент бірнеше серияны кіргізе алады. Егер сіз графикті көрсеткіңіз келсе, онда әр серия графиктегі бір қисық сызыққа сәйкес келеді. Егер сіз диаграммаларды көрсеткіңіз келсе, онда Если диаграммалардың кей түрлеріне бірнеше серияны бірінің үстіне бірін қоюға болады.

Диаграмманың жасалуы мен түзетілуі Диаграмалар Редакторы көмегімен іске асырылады.

Диаграмма үшін мәліметті тек мәліметтер базасының кестесінен ғана емесғ сонымен қатар қолмен енгізуге болады. Ол үшін Series жаңа элементін Диаграмалар Редакторы арқылы (мысалы Bar мәліметтер сериясының типі) қосу керек және оқиғаны өңдеушіде Form1.OnCreate келесіні енгізіңіз:

Series1.Clear; { Очистить данные };

{ Добавить Значение, Метку, Цвет };

Series1.Add(25, 'Barcelona', clTeeColor);

Series1.Add(50, 'Rome', clTeeColor);

Series1.Add(30, 'San Francisco', clTeeColor);

Series1.Add(50, 'New York', clTeeColor);

Series1.Add(40, 'Los Angeles', clTeeColor);

Series1.Add(35, 'London', clTeeColor);

Бас меню –MainMenu компоненті

Delphiде менюді ұсынатын екі компонент: МаinMenu – бас меню, және PopupMenu – қалқымалы меню, екеуі визуалды емес компоненттер.

Әдетте формаға бір MainMenu компоненті орналастырылады, осы жағдайда оның атауы автоматты түрде форманың Menu қасиетіне енгізіледі. Компоненттің негізгі қасиеті – Items. Оның толтырылуы MainMenu компонентінен екі шерткенде шақырылатын Меню Конструкторы арқылы жасалады.

Caption қасиеті бөлім жазуын білдіреді (жазуға шапшаң қатынау үшін амперсайд белгісін қосуға болады). Егер Caption мәні ретінде минус «–» таңбасын енгізсе, онда менюда бөлім орнына бөлектегіш пайда болады. Name қасиеті менюдің сәйкес бөлімінің объектісіне атын береді.

Shortcut қасиеті қолданушының менюға кірмейақ берілген бөліммен байланысты процедураның орындалуын шақыратын, менюдің бөліміне шапшаң қатынау үшін батырмаларын анықтайды.

Break қасиеті ұзақ менюда бөлімдер тізімін бөлу үшін қолданылады. Break мүмкін мәні; mbNone – меню бөлінуінің жоқтығы, mbBarBreak пен mbBreak – менюға бөлімдердің алдыңғыдан (mbBarBreak) жолағы мен (mbBreak) пробелдарымен бөлінген жаңа бағанасы енгізіледі.

Checked қасиеті. trueдің белгіленуі менюдің бөлімінде осы бөлімнің таңдалғанын көрсететін жалауша маркері көрінеді.

Менюдің бөліміне маркерді енгізуге мүмкіндік беретін тағы бір қасиет RadioItem. trueда қойылған осы қасиет бұл бөлімнің радиобатырма режимінде жұмыс істеу керектігін көрсетеді GroupIndex.

Әр бөлім үшін жобалау не бағдарламалау кезінде Enabled (қолжетімді) жіне Visible (көрінетін) қасиеттері орнатылуы мүмкін. Егер Enabled = false деп қойса, онда бөлім сұр түске боялып, қолданушы сырт еткеніне жауап бермейді. Егер Visible = false деп қойса, онда бөлім мүлдем көрінбейді, ал қалған бөлімдер көрінбейтіннің орнын басып қосылады.

Біз менюдің бөлімдеріне сәйкес объектілердің барлық қасиеттерін қарастырдық. Бөлімнің негізгі оқиғасы қолданушы бөлімнен шерт еткенде не шапшаң қатынау батырмаларын басқанда пайда болатын OnClick.

Жүйелік диалогтар

Қосымшаларда жиі стандартты әрекеттерді жасауға тура келеді: файлдарды ашып, жабу, палитра түстерін таңдау, шрифттар атрибуттарын белгілеу, контекстік іздеу мен алмастыру, т.б. Delphi кітапханасына сәйкесдиалогтық терезелерін іске асыратын, қолдануға ыңғайлы компоненттер қосылған. Барлық диалогтар визуалды емес компоненттер болып табылады, сондықтан олардың формада орналасқан орны маңызды емес. Осы компоненттермен жұмыс істегенде стандартты диалогтар шақырылады.

Кезкелген диалогқа шақыру әдісі – Execute. Бұл қызмет диалогтық терезені ашады, ал егер қолданушы онда қандайда бір таңдауды жүзеге асырса, онда функция trueді қайтарады. Бұл жағдайда компонент-диалог қасиетінде қолданушы таңдауы еске сақталынып, оны келесі операцияларды қолдануға болады. Егер қолданушы диалогта Қайтару не Esc батырмасын басса, онда Ехеcute функциясы falseты қайтарады. Сондықтан диалогқа шақырудың стандартты формасы:

if <Диалог>.Execute then

<операторы, использующие выбор пользователя>;

Файлдарды ашу және сақтау диалогтары

Компоненттердің барлық қасиеттері бірдей, бірақ ашу және жабу үшін олардың мағынасы кішкене өзгеше. қолданушы таңдаған файл жол түрінде қайтып оралатын негізгі қасиет– FileName. Бұл қасиеттің мәнін диалогты шақырмастан бұрын белгілеуге болады.

Түсіп шығатын диалогта пайда болатын ізделетін файлдар Filter қасиетімен белгіленеді. Жобалау кезінде бұл қасиетті фильтрлар редакторынан белгілеген ыңғайлы.

InitialDir қасиеті қолданушының диалогпен жұмыс істеп бастағанда ашылатын бастапқы каталогты анықтайды. DefaultExt қасиеті файлдың кеңейтілу мәнін келісу бойынша анықтайды. Егер бұл қасиет мәні белгіленбесе, онда қолданушы диалогта файлдың толық атауы мен кеңейтілуін белглеуі керек. Title қасиеті диалогтық терезенің тақырыбын белгілеуге мүмкіндік береді. Options қасиеті файлды таңдау шарттарын анықтайды..

OpenDialog және SaveDialog диалогтарын қолданудың мысалдарын ұсынайық. Сіздің қосымшаңыздың Memo1 түзету терзесі бар болсын. Мысалы, сіз менюдің Открыть командасы бойынша мәтіндік файлды енгізуді қалайтын, ал қандайда бір өзгертулерден кейін осы файлда мәтінді сақтауға, ал Сохранить как... командасы бойынша файлда басқа атпен сақтағыңыз келеді.

Формаға OpenDialog және SaveDialog диалогтарын енгізіңіз. Файлдың оқылуынан кейін сізге оның атын есте сақтауға тура келетіндіктен, сіз ол үшін FName айнымалы атауды белгілеуіңізге болады.:

var FName : string;

Онда команданың өңделуі келесі операторға тіреледі:

if OpenDialogl.Execute then

begin

FName := OpenDialog1.FileName;

Memo1.Lines.LoadFromFile(FName);

end;

Бұл оператор диалогты шақырып, қолданушы файлды таңдағанын тексереді (егер таңдаса, онда Execute функциясы trueды қайтарады), одан кеін таңдалған файлдың атауы FName айнымалысында сақталынады және файл Memo1 мәтініне LoadFromFile әдісімен жүктелінеді.

Сохранить командасының өңделуі оператормен орындалады:

Memo1.Lines.SaveToFilel(FName);

Осы жағдайда қандай да бір диалогқа жүгінудің қажеті жоқ, себебі файл аты белгілі: ол FName айнымалысында сақталады.

Сохранить как... командасының өңделуі оператормен орындалады:

SaveDialog1.FileName := FName;

if SaveDialog1.Execute then

begin

FName := OpenDialog1.FileWame;

Memo1.Lines.SaveToFilel(FName);

end;

Сонымен қатар Delphiда графикалық файлдарды ашып, жабудың мамандандырылған диалогтары бар: OpenPictureDialog және SavePictureDialog.

Шрифтті таңдау диалогы – FontDialog компоненті

FontDialog Компоненті шриыт атрибуттарын таңдаудың диалогтық терезесін шақырады. Онда қолданушы шрифт атауын, оның стилін, үлкендігін, т.б. атрибуттарды таңдай алады.

Компоненттің негізгі қасиеті – TFont типінің Font, онда шрифт атрибуттарының бастапқы орнатылымларын белгілеуге, атрибуттар мәндерін оқуға болады.

Сіздің қосымшаңыздың Memo1 түзету терзесі бар болсын, ондағы шрифтті қолданушы менюдағы Шрифт командасымен таңдай алады. Қосымшаға FontDialog компоненті қосылады, оның атауы FontDialog1. Онда Шрифт командасының өңделушісі келесідей болады:

if FontDialog1.Execute then

Memo1.Font.Assign(FontDialog1.Font);

Түсті таңдау диалогы – ColorDialog компоненті

ColorDialog компоненті түсті таңдау диалог терезесін шақырады. Онда қолданушы Определить цвет пернесін басып, палитраның негізгі базасынан немесе түсттерді араластыруға мүмкіндік беретін қосымша панельді таңдай алады.

ColorDialog компонентінің негізгі қасиеті – Color. Бұл қасиет қолданушы диалогта тағдап алған түсіне сәйкес келеді. Түсті таңдағанның басында түстің бастапқы жақындауын орнатқан дұрыс, оны жобалау мен бағдаолаиалау кезінде Colorды қосып жасауға болады.

Жоғарыдағы мысал үшін Memo1 компонентінің фона түсін белгілеу:

if ColorDialog1.Execute then

Memo1.Color := ColorDialog1.Color;

Сабаққа дайындалуға арналған әдістемелік нұсқаулар

Әдебиеттер:

1 Покушалова, Л.В. Метод case - study как современная технология профессионально-ориентированного обучения студентов [Текст] / Л.В. Покушалова // Молодой ученый. —2011. —No5. Т.2. —С. 155-157.

2 Романов П.В. Стратегия кейс-стади в исследовании социальныхслужб//Социс,2005, No4, с 101-109.6.

3 Фливберг, Б. Кейс-стади в контексте качественно-количественнойпроблематики: Ст. из Дании] / Б. Фливберг // Социологические исследования. -2004. -No 9. -С. 15 –

4 Гагарина, Л.Г. Разработка и эксплуатация автоматизированных систем: учеб. пособие/ Л.Г. Гагарина, Д.В. Киселев, Е.Л. Федотова; ред. Л.Г. Гагарина. - М.: Форум: ИНФРА-М, 2011. - 384с. 2. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: учеб. пособие для вузов/ В.Ю. Пирогов. - СПб. : БХВ-Петербург, 2009. - 528 с. 3.

5 Фуфаев, Д.Э. Разработка и эксплуатация автоматизированных информационных систем : учеб. Для студ. сред. проф. образования/ Д.Э. Фуфаев, Э.В. Фуфаев. - М.: Академия, 2010. - 304 с.б)

6 Федорова, Г.Н. Информационные системы : учебник/ Г.Н. Федорова. - 2-еизд., испр. - М.: Академия, 2011. - 208 с.

Қосымша:

7 Ларман К. Применение UML и шаблонов проектирования. 2-е издание.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2002. – 624 с.: ил.

8 Калянов Г.Н. CASE-технологии: Консалтинг в автоматизации бизнес-процессов. 2-е изд. перераб. и доп. - М.-Горячая линия – Телеком, 2000.-320 с.

9 Вендров А.М. Проектирование программного обеспечения экономических информационных систем. Учебник. М.: Финансы и статистика, 2000.

10 Александров, Д.В. Инструментальные средства информационного менеджмента. CASE-технологии и распределенные информационные системы : учебное пособие / .В.Александров. -М. : Финансы и статистика, 2011. -225 с. -ISBN 978-5-279-03475-8;

11 http://www.bookwebmaster.narod.ru/uml.html

12 http://wm-help.net/books-online/book/57663/57663-53.html

Зертханалық жұмысы №4

Реттіліктер диаграммалары

Жұмыстың мақсаты:

1. Реттілік диаграммасын және кооперацияларды салып үйрену.

Өз бетінше дайындалуға арналған тапсырам:

1. Кеңсе тауарлары тапсырысы бойынша қолданба жобаны жасау мысалында қолданба кластарын анықтау және олардың тәртібін модельдеу технологиясын зерделеу (файл ппо (кп).doc қараңыз);

2. UML тілінде реттілік және кооперация Диаграммаларын әзірлеу технологиясын зерделеу;

3. Жобаланатын бағдарламалық жүйеге қойылатын «Техникалық тапсырма» құжатын дайындау.

## Жұмыстың мазмұны:

1. ПК-да № 2 жаттығуды орындау;

2. Жобаланатын бағдарламалық жүйе үшін нұсқа бойынша реттілік диаграммалары мен коопреацияларды құру.

##

## Есеп беру мазмұны:

1. Әзірленген реттілік диаграммалары мен коопреацияларды келтіру;

2. Берілген диаграммалардың әрбір элементін сипаттау.

##

## 1. Өзара әрекеттесуді модельдеу

Жоғарыда объектілік-бағдарланған қосымшалар құрылымының статикалық (ұйымдастырушылық) модельдері қарастырылды. UML әмбебап модельдеу тілімен таныстыру жүргізілді, прецедент диаграммалары мен класс диаграммаларын салу мақсаттары мен құрылымы анықталды.

Қазір объектілік-бағдарланған жүйелердің динамикалық (тәртіптік) модельдерін сипаттауға тоқталамыз, жүйе объектілері бірі-бірімен қалай өзара әрекеттесетініне және оның міндеттерін жүзеге асыру үшін қандай әрекеттер орындалуы тиіс екеніне басты назар аударамыз. Келесі сұрақтарды қарастырамыз:

· сценарийлер құру қажеттігі және олардың прецеденттердің функционалдық мүмкіндіктерін кеңейтудегі ролі;

· жүйе объектілерінің өзара әрекеттесуінің уақытша процестерін реттілік диаграммаларының көмегімен модельдеу;

· жүйеде объектілердің контекстік өзара әрекеттесуін коопреция диаграммаларының көмегімен модельдеу;

· графиктік интерфейс ролі мен қызметтері және оны объектілік-бағдарланған жобалауда қолдану.

Сценарийлер

Сценарийлер жүйе объектілері (кластардың даналары) арасында өзара әрекеттесуінің динамикалық процестерді беруді қамтамасыз етеді. Сценарий — бұл прецедент анықтаған кейбір функцияны жүзеге асыру кезінде жүйеде жүретін процестерді мәтіндік сипаттау. Прецедент сыртқы пайдаланушылар тұрғысынан жүйенің функционалдығын сипаттайтынын еске саламыз. Сценарийде прецеденттің ішкі (жасырын) мазмұны көрсетілген, яғни жүйеде оның объектілері орындауы тиіс әрекеттер сипатталған.

2.1-суретте уақытша пайдалануға берілетін компакт-дисктердің есебі бойыншақосымша әрекетінің реттілігін сипаттайтын компакт-диск беру прецедент көрсетілді.

3.1-сурет - Компакт-диск беру прецеденті

Төменде шектеулер көрсетілген осы прецедент сипатталған, олар прецедентті орындағанға дейін және одан кейін орындалуы тиіс.

· Алғышарт. Клиент керекті компакт-дискке тапсырыс береді және прокат пунктының қызметкеріне жеке сәйкестендірілген номері бар мүшелік билет береді. Ол деректерді монитор экранына шығарады, ал сосын клиенттен қандай да бір ереже бұзушылықтар байқалмағанын тексереді.

· Сипаттау. Қызметкер керекті компакт-дисктің болуы туралы растау алады. Берілетін дана туралы деректер жүйеге енгізіледі, бұдан кейін клиентке қайтару мерзімі туралы хабарлайды.

· Кейінгі шарт. Жоқ.

Келесі сценарий жүйе орындайтын Компакт-диск беру прецеденті процестері.

1. Керекті компакт-дисктің болуын тексереді;

2. Қолдағы компакт дисктердің бар саны туралы ақпарат түзетіледі;

3. Компакт-дискті қайтару мерзімі анықталады;

4. Берілетін компакт-диск туралы ақпарат жазылады: оның атауы, берілген дананың номері, ағымдағы күні және қайтару мерзімі;

5. Клиент компакт-дискті қайтару мерзімі туралы ақпараттанады.

Сценарийде прецедентті жүзеге асырудың ықтимал тәсілдердің ішінде ең жақсысына сипаттама берілген. Әрбір прецедентті орындау кезінде ойламаған жағдайлардың тууы мүмкін болуына байланысты сол бір прецедент бірнеше сценарий бере алады. Мысалы, қарастырылатын прецедент үшін басқа сценарий әзірлеуге болады, ол жүйе әрекетінің реттілігін керекті компакт-диск болмаған жағдайда сипаттайды.

Прецедент үшін қажетті сценарий дайындап, объектілердің қандай кластары нақты сценарийлерді орындау кезінде әрекетке енгізілетінін анықта үшін өзара әрекеттесу диаграммаларын құруға көшуге болады. Өзара әрекеттесу диаграммалары екі типті болады: Реттілік диаграммалары және ы Кооперация диаграммалары.

## Реттіліктер диаграммалары

Реттілік диаграммалары қосымшаны орныдау кезінде объект кластарының бір-бірімен өзара әрекеттесу процестерін көрсетуді қамтамасыз етеді. Реттілік диаграммалары — бұл белгілі бір сценарий негізінде салынған объектілердің өзара әрекеттесуінің графиктік екі өлшемді моделі. 2.2-суретте типтік Реттілік диаграммаларының мысалы келтірілген.

Мұнда объектілер жіберетін және қабылдайтын хабарламалар ағыны горизонталь ось бойымен бағдарланған. Уақыт бойынша реттелген хабарламалардың өздері вертикаль жоғарыдан төмен қарай орналасады. Өзара әрекеттесуге қатысатын объектілер горизонталь ось бойымен орналасқан. Олдардың әрқайсысынан вертикаль төмен қарай объектінің өмір сызығы деп аталатын үзік сызық жүргізіледі, ол оның әрекет ету кезеңін анықтайды. Осы сызықта орналасқан тік бұрыштар уақыт аралығын білдіреді, сол уақыт ішінде объект белгілі бір әрекет жасайды (оның белсенділену уақыты). Тік бұррыштың жоғарғы қыры әрекеттің басталғанын, табаны – оның соңын, ал тік бұрыштың биіктігі объектінің берілген операцияны орындаған уақытын көрсетеді.

3.2-сурет – Типтік Реттілік диаграммаларының мысалы

Объектілік-бағдарланған күш түсіруді орындаған кезде бағдарлама объектілерінің өзара әрекеттесуі хабарламаның көмегімен жүзеге асырылады. Осындай хабарламаларды жіберу жөнетуші-объектіден басталатын және алушы-объектіде аяқталатын стрелкамен бейнеленеді. Үзік стрелка кері бағытта жауап хабарламаны білдіреді. Реттілік диаграммасында берілген хабарлама класс әдістерін анықтау негізі болып табылады. Реттілік диаграммаларының мысалы компакт-диск беру сценарий үшін 2.3-суретте көрсетілген.

3.3-сурет - Компакт-диск беру сценарийі үшін реттілік диаграммасы

Реттілік диаграммасына талдау жүргізгеннен кейін деректерді бағдарламамен өңдеген кезде әрекетке енетін объектілер класын және құру және осы кластарға енгізу қажет болатын әдістерді анықтауға болады. Сосын кластар диаграммасында Реттілік диаграммасында бейнеленген кластар мен әдістерді модельдеу керек. Осы құжаттар айқаспалы сілтемелермен байланысқан және қажет болған кезде айқаспалы тексеруден өтеді.

Реттілік диаграммасы (23-сурет), компакт-дискті беру процесі сценарийінде төрт объект қатысатынын көрсетеді. Клиент объектісі Клиент класының данасы болып табылады және клиент туралы деректерді сақтау және өңдеу үшін қолданылады. Қызметкер объектісі — Қызметкер класының данасы. Бұл объект компакт-дискті беру кезінде орындалатын деректерді өңдеуді басқару үшін пайдаланылады. Компакт-диск объектісі — қолдағы компакт-дискке жататын деректер үшін жауап беретін Компакт-диск класының данасы. Прокатқа беру объектісі аттас кластың данасы болып табылады және уақытша пайдалануға берілетін компакт-диск туралы ақпаратты сақтау және өңдеу үшін қолданылады.

Хабарламалардың типтері

Реттілік диаграммасын талдағаннан кейін деректерге өңдеу жүргізетін объектілер қандай хабарламалармен алмасуы керек екенін анықтауға болады.

Объектілік-бағдарланған қолданбаларда хабарламаның екі типі - синхронды және асинхронды болады. Бірінші типті хабарламаны жібергеннен кейін жөнелтуші-объект деректер жұмысын тоқтатады және алушы-объектіден жауап ақпарат күтеді. Осындай хабарламалар диаграммада ұшы боялған үш бұрышты стрелкамен белгіленеді. Асинхронды хабарламалар олардан, оларды жібергеннен кейін объектінің жауап күтпей, жұмысын жалғастыратынымен ерекшеленеді. Осы хабарламалар ұшы боялмаған стрелкамен белгіленеді. Сонымен қатар, объект хабарламаны, деректерді өңдеуді басқаруды басқа объектіге беру мақсатында жібере алады. Осындай хабарлама қарапайым деп аталады және ұшы ашық стрелкамен белгіленеді. Стрелкасы бар үзік сызық, ережеге сай, жауап хабарламаға сәйкес келеді. 24-суретте хабарламаның әр түрлі типтері бейнеленген диаграмма көрсетілген.

3.4-сурет – Диаграммада хабарламалардың әр түрлі типтерін бейнелеу

Реттілік диаграммасын 2.3-суретте көрсетілген компакт-дисктер беру сценарийі үшін зерделеп, объектілер алмасатын хабарламалардың типтерін анықтауға болады. Мысалы, Қызметкер объектісі, қажетті компакт-дисктің болуы туралы ақпаратты сұрастырып, Компакт-диск объектісіне синхронды хабарлама жібереді. Өз кезегінде Компакт-диск объектісі,. Тапсырылған дананың бар екені туралы ақпаратпен Қызметкер объектісіне жауап хабар жібереді.

Рекурсивтік хабарламалар

Объекттілік-бағдарланған қолбандаларда, бір объект сол объектінің басқа данасы пайдаланылатын операцияны шақыратын жағдайлар сирек емес. Осындай процесс рекурсия деп аталады. Диаграммада рекурсия тұйықталған стрелкамен белгіленеді, ол жөнелтуші-объектіге қайтарылады. Стрелканың шеті активтеудің бірінші тік бұрышынан жоғары бейнеленген және объектінің екінші активтеуі болатын активтеудің шағын тік бұрышын көрсетеді (2.5-сурет). Мысалы, Шот объектісінің көмегімен қайтару мерзімін бұзғаны үшін есептелетін айыппұл шамасы (пайызбен) анықталады. Көп реттік бұзушылық кезіде айыппұл шамасын есептеу үшін Шот объектісі өзін-өзі бірнеше рет шақыруы керек.

3.5-сурет – Диаграммада рекурсиялық хабарламаны бейнелеу

Хабарламалар итерациясы

Кейде хабарламаны шақыру белгілі бір шарт орындалғанға дейін қайталанады. Сонымен прокат үшін төлемді есептеген кезде Add әдісі клиенттен әрбір компакт-диск прокаты үшін алынған барлық сома қосылғанша шақырылады. Осындай процесс итерациялық деп аталады. Реттілік диаграммасында хабарлама берудің итерациялық процесі тік бұрышпен белгіленеді, онда қайталанатын хабарламалар шектелген. Осытай тік бұрыштың жоғарғы сол жақ бұрышында итерацияның қайталану шарты көрсетіледі. Итерациялық процесс мысалы 2.6-суретте көрсетілген.

3.6-сурет - Хабарлама итерциясын бейнелеу

Хабарламаларды шектеу

Объектілер арасында хабарламаны жіберуге кейбір шектеулер қойылуы мүмкін. Мысалы, клиент компакт-дискті, егер онда қайтару мерзімін айтарлықтай бұзушылық болмаған жағдайда ғана алуына болады. Диаграммада шектеу шартын квадрат жашаларға орналастырған жөн ([]). Бұл жағдайда компакт-диск тапсырысы туралы хабарлама берілген жағдайда орындаған кезде ғана жөнелтіледі (2.7-сурет).

3.7 - сурет – Хабарлама жіберуге шартты шектеулер беру

Хабарламалардың тармақталуы

Хабарламаларды жіберуге шектеулер болған кезде, шартқа байланысты балама хабарламалардың бірі жіберілгенде хабарламаның тармақталуын ұйымдастыру қажеттігі жиі туады. 28-суретте компакт-дискті беруге сұраныс түскен кезде пайдаланылатын шартты шектеу бейнеленген. Егер сұралынатын компакт-диск қолда болса, жалға Беру объектісінің данасын жасау көрсетілген хабарламаны жалға Беру объектісі алады. Егер сұралынатын компакт-диск жалға беру пунктінде болмаса, Алдын ала тапсырыс объектісі - Алдын ала тапсырыс объектісі данасын жасау көрсетілген хабарлама алады.

3.8-сурет – Реттілік диаграммасында хабарламалардың тармақталуы

Жауап хабарламаларды бейнелеу кезінде шатасуды болдырмас үшін, объектінің өмір сызығын диаграммада бірнеше тармақтарға бөлу қажет және олардың әрқайсысы үшін жеке жауап хабарлама жасау керек. Егер бұны жасамаса, онда сол бір өмір сызығына қайтарылатын бірнеше жауап хабарлама бірінен соң бірі біртіндеп келген сияқты қате түсінідірілген болуы мүмкін.

Реттілік диаграммасында хабарламаның тармақталатын ағынын бейнелеп, сол бір прецеденттің түрлі сценарийлері нақты модельденеді. Алайда бір диаграммада бірнеше сценарийді бейнелеу қажет емес, себебі шатасуға алып келуі мүмкін. Ережеге сай, жеке Реттілік диаграммасында әрбір сценарийді модельдеудің мағынасы бар.

## Rational Rose ортасында реттілік диаграммасын әзірлеу

Реттілік диаграммасы келесі тәсілдердің бірімен активтелген болуы мүмкін:

· Инструменттердің стандартты панелінде реттілік диаграммасы бейнеленген батырманы шерту.

· Browse - Interaction Diagram (Браузер – Өзара әрекеттесу диаграммасы) меню пункті арқылы.

Диаграмма терезесінде аталған әрекеттерді орындағаннан кейін арнайы инструменттер панелінің көмегімен таңдалатын реттілік диаграммасы элементтерін орналастыру үшін таза бейне пайда болады.

3.9-сурет - Реттілік диаграммасына арналған арнайы инструменттер панелінің сыртқы түрі

Реттілік диаграммасын салу жеке объектілер мен хабарламаларды қосуға немесе алып тастауға, сонымен қатар олардың спецификациясына алып келеді. Осы элементтер спецификациясына жету немесе контекстік меню арқылы, немесе Browse - Specification (Браузер - Спецификация) меню пункті арқылы ұйымдастырылған. Реттілік диаграммасына хабарлама қосқан кезде олар келісім бойынша өзінің номерін реттілікпен алады. Төменде құрылған күй диаграммасының мысалы келтірілген (1.5-сурет).

3.10-сурет - Rational Rose ортасында диаграмманы графиктік бейнелеу мысалы

Қажет болғанда хабарламаның жүру тәртібін және олардың спецификациясын өзгертуге, сонымен қатар хабарламаны операциялармен салыстыруға болады. Қосымша түрде хабарламаға синхрондау орнатуға, скриптер көмегімен ескертуді (комментарийді) хабарламамен байланыстыруға болады.

## Кооперация диаграммасы (collaboration diagram)

Кооперация диаграммасы (Collaboration diagram) – өзара әрекеттесу диаграммасы, хабарламаны қабылдайтын және жөнелтетін объектілерді құрылымдық ұйымдастыруға басты назар аударады.

Кооперация диаграммасында немесе кооперативтік диаграммада (5.55-сурет ) объектілер данасы пиктограммалар түрінде көрсетілген. Реттілік диаграммасындағыдай, мұнда стрелкалар хабарламаларды белгілейді, олармен алмасуберілген пайдалану нұсқасы шеңберінде жүзеге асырылады. Олардың уақытша реттілігі, алайда хабарламаны номерлеу арқылы көрсетіледі.

Хабарламаны номерлеу олардың реттілігін қабылдауды, сызықтың бетте жоғарыдан төмен орналасу жағдайына қарағанда анағұрлым қиындатады. Екінші жағынан осындай кеңістікте орналасу кейбір басқа моменттерді анағұрлым оңай бейнелеуге мүмкіндік береді, мысалы, компоненттерді немесе басқа ақпаратты өзара жабатын объектілердің өзара байланысын көрсетуге болады.

UML-да номерлеудің ондық сұлбасы қолданылады, себебі бұл жағдайда қандай операция қандай операцияны шақыратыны түсінікті, дегенмен олардың жалпы реттілігін көру қиынырақ болуы мүмкін. Номерлеуде пайдаланылатын сұлбаға тәуелсіз диаграммада реттілік диаграммасындай түрдегі басқару ақпаратын орналастыруға болады.

СуреттеUMLд-да қабылданған объектілерді атау сұлбасының түрлі формаларын көруге болады. Жалпы форманың «Объект атауы: Класс атауы» түрі болады, ол немесе объект бола тұра, немесе класс бола тұра, болмауы мүмкі. Объект атауы болмаған кезде, бұл объекті емес, класс атауы екені түсінікті болу үшін қос нүкте қалады.

## Rational Rose ортасында кооперация диаграммасын әзірлеу

Кооперация диаграммасы модельде өзара әрекеттесуді көзбен шолудың басқа тәсілі болып табылады және реттілік диаграммасы сияқты объектілермен және хабарламалармен операциялайды. Rational Rose ортасында жұмыс істеу ерекшелігі, осы канондық диаграмма түрі реттілік диаграммасы құрылғаннан кейін және <F5> пернесін басқан соң автоматты түрде құрылатынымен шектеледі. Осы перненің көмегімен реттілік және копперация диаграммалары арасында ауыстырып-қосу жүзеге асырылады.

Копперация диаграммасы активтелгеннен кейін арнайы инструменттер панелі келесі түрге келеді (1.6-сурет).

3.11-сурет - Копперация диаграммасы үшін арнайы инструменттер панелінің сыртқы түрі

Осы панельде объектілер және хабарламалардың алуан типтерінің пиктограммалары бар батырмалар болады. Копперация диаграммасымен жұмыс объектілерді және хабарламаларды, сондай-ақ олардың спецификациялануын қосудан немесе алып тастаудан тұрады. Осы кезде копперация диаграммасына енгізілетін өзгерістер реттілік диаграммасына да автоматты түрде енгізіледі, бұны соңғысын <F5> пернесін басу арқылы активтендіріп, көруге болады.

Төменде копперация диаграммасының мысалы келтірілген (1.7-сурет), ол реттілік диаграммасын салғаннан кейін ортамен автоматты түрде генерацияланды (15-суретті қараңыз).

3.12-сурет - Бұрын салынған реттілік диаграммасына сәйкес келетін копперация диаграммасын графиктік бейнелеу мысалы

Реттілік диаграммасына арналғандай, копперация диаграммасы үшін хабарламалардың келу тәртібін өзгертуге, деректер ағынын қосуға, сәйкес спецификацияларды активтеу неігізінде объектілердің төзімділігін аықтауға болады.

## Өзара әрекеттесу диаграммаларын салыстыру

Өзара әрекеттесу диаграммаларын, бір пайдалану нұсқасы шеңберінде бірнеше объектінің тәртібін сипаттау керек болғанда пайдаланған жөн. Олар объектілер арасында өзара әрекеттесуді бейнелеуге жақсы және олардың тәртібін дәл сипаттауға онша жақсы емес.

Өзара әрекеттесу диаграммасының кез келген түрінің принципті қасиеттерінің бірі олардың қарапайымдылығы болып табылады. Диаграмманы көріп, барлық хабарламаларды оңай көруге болады. Алайда егер, ерекше шартты ауысуларсыз немесе циклдарсыз жалғыз ретілік процесіне қарағанда анағұрлым күрделі бірдемені бейнелеуге әрекеттенсе, осмындай тәсіл жұмыс істейді.

3.13-сурет – Телефонмен сөйлесуді содельдеу үшін кооперация диаграммасының нұсқасы

Өзара әрекеттесу жүйесінің динамикалық аспектілерін модельдеу кезінде екі жақты пайдаланады:

· Басқару ағындарының уақытша реттелгендігін модельдеу үшін (реттілік диаграммасы);

· Басқару ағындарын құрылымдық ұйымдастыруды модельдеу үшін (кооперация диаграммасы).

Реттілік диаграммасында нақ хабарламалар реттілігіне назар аударады: түрлі оқиғалар болатын тәртіпті бақылау оңай. Кооперативтік диаграммада объектілердің статикалықө өзара әрекеттесуін көрсету үшін кеңістіктік орналасуын пайдалануға болады.

Өзара әрекеттесу диаграммасы, қарапайым тәртіпте бейнелеген кезде анағұрлым жақсы; анағұрлым күрделі тәртіп кезінде олар өзінің айқындығы мен көрнектілігін жылдам жоғалтады. Егер жүйенің күрделі тәртібін бір диаграммада көрсету керек болса, онда қызмет ету диаграммасын пайдаланған жөн.

Қолдану варианта диаграммасын құру

Қолдану варианттар сызбасын құру үшін қарастырылып отырған банкомат моделіне келесі әрекет орындалуы тиіс:

1. Банкомат Банктын кейбір қызметтерін сервис ретінде қолданатынын білдіретін, Service ( Сервис )стереотипін таңдап, Банк атауымен актерды қосамыз .

2. Шот жағдайы туралы анықтама қолдану вариантын қосу ушін, Business Use Case ( Бизнес-қолдану варианты) стереотипын таңдаймыз.

3. Кредиттік карточканы оқшаулау қолдану вариантын қосыңыз.

4. Бизнес-актер Банкоматтың Клиенті қолдану вариантынан Шот жағдайы туралы анықтаманы алу қолдану вариантына бағытталған қауымдастық сызығын қосамыз.

5. Кредиттік карточка арқылы қолма-қол алу қолдану вариантынан Банк сервисіне бағытталған қауымдастық сызығын косамыз.

6. Шот жағдайы жайлы анықтаманы алу қолдану вариантынан Банк сервисіне бағытталған қауымдастықты қосамыз.

7. Шот жағдайы жайлы анықтаманы алу қолдану вариантынан ПИН-кодты тексеру қолдану вариантына <<include>> стереотипы арқылы тәуелділік қарым-қатынасын қосу.

8. Кредиттік карточканы оқшаулау қолдану вариантынан ПИН-кодты тексеру қолдану вариантына <<extend>> стереотипы арқылы тәуелділік қарым-қатынасын қосу.

Сонымен қоса <<extend>> стереотипімен тәуелділік қарым-қатынасы берілген диаграммада келесіні білдіреді. Егер ПИН-кодпен тексеру нәтижесіне кредиттік картаны оның иесі жолалтып алса немесе жарамсыз деп танылса гана Кредиттік картаны оқшаулау қолдану варианты қолданылады. Осылай тұрғызылған қолдану варианттарының диаграмма үлгісі келесідей түрге ие болады (сур. 3.10).

Рис. 3.10.Дайындалатын банкомат үлгілерінің қолдану варианттары диаграммасының ақырғы түрі