Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАбРАБОТА1-5.doc
Скачиваний:
52
Добавлен:
08.11.2018
Размер:
629.25 Кб
Скачать

Лабораторна робота № 2. Проектування пв при об’єктно-орієнтованому підході до програмування. Стадія "Ескізний проект"

Мета роботи: познайомити студентів з методом проектування системи шляхом CRC -карт.

Лабораторна робота розрахована на 8 академічних годин.

Теоретична частина.

Основи UML - проектування

Важливим етапом створення програмного забезпечення вважається проектування. На цьому кроці закладається архітектура системи.

Одним із способів проектування є метод CRC - карток. Цей метод проектування є складовою UML -проектування.

Крок перший. Для первинного розуміння структури програми будується діаграма варіантів використання: виявляються актори (люди або системи, між якими відбувається взаємодія), прецеденти системи (дії, що виконуються системою для реалізації спілкування акторів).

UML включає дев'ять видів діаграм:

1) діаграми класів;

2) діаграми об'єктів;

3) діаграми Use Case (діаграми прецедентів);

4) діаграми послідовності;

5) діаграм співпраці (кооперації);

6) діаграм схем станів;

7) діаграм діяльності;

8) компонентних діаграм;

9) діаграм розміщення (розгортання).

Діаграма класів показує набір класів, інтерфейсів, співпраці і їх стосунків. При моделюванні об'єктно-орієнтованих систем діаграми класів використовуються найчастіше. Діаграми класів забезпечують статичне проектне представлення системи. Діаграми класів, що включають активні класи, забезпечують статичне представлення процесів системи.

Діаграма об'єктів показує набір об'єктів і їх відношення. Діаграма об'єктів представляє статичний "моментальний знімок" з екземплярів предметів, які знаходяться в діаграмах класів. Як і діаграми класів, ці діаграми забезпечують статичне проектне представлення або статичне представлення процесів системи (але з точки зору реальних або фототипових випадків).

Діаграма Use Case (діаграма прецедентів) показує набір елементів Use Case, акторів і їх стосунків. За допомогою діаграм Use Case для системи створюється статичне представлення Use Case. Ці діаграми особливо важливі при організації і моделюванні поведінки системи, завданні вимог замовника до системи.

Діаграми послідовності і діаграми співпраці - це різновиди діаграм взаємодії.

Діаграма взаємодії показує взаємодію, що включає набір об'єктів і їх стосунків, а також повідомлення, що пересилаються між об'єктами. Діаграми взаємодії забезпечують динамічне представлення системи.

Діаграма послідовності - це діаграма взаємодії, яка виділяє впорядкування повідомлень за часом.

Діаграма співпраці (діаграма кооперації) - це діаграма взаємодії, яка виділяє структурну організацію об'єктів, які відправляють і приймають повідомлення. Діаграми послідовності і діаграми співпраці ізоморфні, що означає, що одну діаграму можна трансформувати в іншу діаграму.

Діаграма схем станів показує кінцевий автомат, представляє стани, переходи, події і дії. Діаграми схем станів забезпечують динамічне представлення системи. Вони особливо важливі при моделюванні поведінки інтерфейсу, класу або співпраці. Ці діаграми виділяють таку поведінку об'єкту, яка управляється подіями, що особливо корисно при моделюванні реактивних систем.

Діаграма діяльності - спеціальний різновид діаграми схем станів, який показує потік від дії до дії усередині системи. Діаграми діяльності забезпечують динамічне представлення системи. Вони особливо важливі при моделюванні функціональності системи і виділяють потік управління між об'єктами.

Компонентна діаграма показує організацію набору компонентів і залежності між компонентами. Компонентні діаграми забезпечують статичне представлення реалізації системи. Вони пов'язані з діаграмами класів в тому сенсі, що в компонент зазвичай відображується один або декілька класів, інтерфейсів або кооперацій.

Діаграма розміщення (діаграма розгортання) показує конфігурацію оброблювальних вузлів періоду виконання, а також компоненти, які містяться в ній. Діаграми розміщення забезпечують статичне представлення розміщення системи. Вони пов'язані з компонентними діаграмами в тому сенсі, що вузол зазвичай включає один або декілька компонентів.

Приклад "Банкомат".

Діаграма варіантів використання для прикладу "Банкомат" приведена на рис. 2.1.

Рис. 2.1. Діаграма варіантів використання "Банкомат"

Насправді прецедентів може бути дуже багато. Припустимо: перевірити пароль, контролювати транзакції передачі даних, видати інформацію на екран і т. д.

Ця діаграма дає зрозуміти, що робитиме система, як вона функціонуватиме. Діаграма використання буває також дуже корисна для спілкування із замовником - вона дозволяє показати найбільш значущі дії системи і перевірити, чи правильно ви зрозуміли замовника і значущість окремих функцій для нього.

Крок другий. На цьому етапі виявляють класи, які необхідно буде створити в програмі для реалізації системи. У разі банкомату це: клієнт, банк, служба безпеки банку, сам банкомат і т. д.

Придумати можна багато (таймер, лічильник купюр, картка і т. д.).

Далі оформляються CRC -карти. Це листки паперу 10 х 15. Вони розділені на три частини і виглядають таким чином - рис. 2.2.

На прикладі того ж банкомату - рис. 2.3.

Назва класу

Дії, які він виконує (завжди починаються з дієслова)

Класи, з якими цей клас обмінюється інформацією

Рис. 2.2. Оформлення CRC -карти

Клієнт

1. Вставляє картку в банкомат.

2. Вводить пароль.

3. Вказує тип операції (зняти гроші, проглянути залишок).

4. Вводить суму.

5. Отримує гроші.

6. Виймає картку

Банкомат

а

Банкомат

1. Відображує інформацію для клієнта.

2. Передає інформацію в банк.

3. Відлічує купюри.

4. Роздруковує рахунок

Клієнт

Банк

Служба безпеки банку

б

Служба безпеки банку

1. Перевіряє пароль.

2. Перевіряє достовірність картки.

3. Ідентифікує клієнта.

4. Стежить за правильністю транзакцій операцій з грошима

Банк Банкомат

в

Банк

1. Перевіряє можливість видачі засобів.

2. Повідомляє про наявність грошей.

3. Видає інформацію про залишок.

4. Зберігає інформацію про рахунок клієнта

Банкомат

Служба безпеки банку

Рис. 2.3. Приклади CRC –карт

Крок третій. Для перевірки достатності або надмірності придуманих класів, а також коректності їх взаємодії будується діаграма взаємодії (рис. 2.4).

Рис. 2.4. Діаграма взаємодії

Метод CRC -карток дозволяє провести також інсценіровку роботи системи. Для цього досить роздати картки з класами учасникам проекту. Після цього почати ролеву гру. Перший учасник встає і читає дію, що здійснюється його класом. Інші учасники, виходячи зі своїх карток, повідомляють про реакцію у відповідь інших класів. Якщо в якийсь момент реакції не послідує, то це ознака недосконалості проекту системи. Така гра може підказати і про надмірність проекту.

Порядок виконання роботи

  1. На основі технічного завдання з лабораторної роботи № 1 виконати аналіз функціональних і експлуатаційних вимог до програмного продукту.

  2. Визначити основні технічні рішення (вибір мови програмування, структура програмного виробу, склад функцій ПВ, режими функціонування) і занести результати в документ "Ескізний проект".

  3. Відповідно до варіанту завдання, визначити дійових осіб (акторів) системи.

  4. Визначити варіанти використання системи і описати їх в короткій або повній формі.

  5. Побудувати діаграму варіантів використання системи.

  6. Визначити класи проектованої системи.

  7. Створити CRC -карти для усіх класів системи.

Захист звіту по лабораторній роботі

Звіт по лабораторній роботі повинен складатися з:

  1. Постановки завдання.

  2. Документу "Ескізний проект", що містить:

  • вибір методу рішення і мови програмування;

  • описи дійових осіб і прецедентів системи;

  • діаграми прецедентів;

  • CRC –карти;

  • діаграми взаємодії;

  • специфікації процесів.

Захист звіту по лабораторній роботі полягає в представленні викладачеві отриманих результатів (на екрані монітора), демонстрації отриманих навичок у відповідях на питання викладача.

Контрольні питання

  1. Назвіть етапи розробки програмного забезпечення.

  2. Що таке життєвий цикл програмного забезпечення?

  3. У чому полягає постановка завдання і передпроектні дослідження?

  4. Назвіть функціональні і експлуатаційні вимоги до програмного продукту.

  5. Перерахуєте складові ескізного проекту.

  6. Охарактеризуйте специфікації і моделі.