СУЧАСНІ ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ / 3.Програмне забезпечення

 

К. т. н. Радельчук Г. І.

Хмельницький національний університет, Україна

ПРАКТИКА МОДЕЛЮВАННЯ ПРИ ВИКЛАДАННІ КУРСУ ОСНОВИ ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

 

Напрям підготовки “Програмна інженерія” було введено постановою Кабінету міністрів України № 1719 у 2006 році. У 2015 році цей напрям отримав назву Інженерія програмного забезпечення (постанова Кабінету міністрів України № 266 [1]). У навчальні плани університетів, які готують фахівців за цим напрямом згідно галузевого стандарту [2], входить дисципліна “Основи програмної інженерії” (тепер, згідно нової освітньої програми, – “Основи інженерії програмного забезпечення”).

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

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

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

Більше того, у таких концепціях, як MDA (Model Driven Architecture – архітектура на основі моделей) і MDD (Model Driven Development – розробка на базі моделей), моделям приділяється центральна роль у процесі створення програмного продукту. Основною ідеєю цих концепцій є представлення процесу створення ПЗ у вигляді ланцюжка трансформацій його вихідної моделі у готову програмну систему.

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

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

Загалом, моделювання дозволяє вирішувати наступні важливі задачі:

-     одержувати візуалізоване представлення архітектури програмної системи;

-     специфікувати структуру та поведінкові аспекти системи;

-     одержувати шаблон, що дозволяє в деякій мірі генерувати систему;

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

З огляду на це, при викладанні курсу Основи інженерії програмного забезпечення” вже на першому курсі навчання значна увага приділяється практиці моделювання ПЗ. У межах лабораторного практикуму розглядаються наступні питання [3]:

-     структурно-функціональний аналіз та моделювання (за методологією SADT та стандартами IDEF0, IDEF3);

-     моделювання потоків даних (DFD-моделювання в нотації Гейна-Сарсона);

-     інфологічне моделювання (моделювання даних в нотації IDEF1X);

-     вивчення основ уніфікованої мови UML та об’єктно-орієнтоване моделювання;

-     вивчення інструментальних засобів моделювання та проектування (Case-засобів) – All Fusion Process Modeller (BPwin), All Fusion Data Modeller (ERwin), IBM Rational Rose;

-     набуття початкових навиків аналізу вимог до ПЗ та проектування ПЗ середньої складності.

Кожна лабораторна робота умовно складається з двох частин.

1) Студентам пропонується наскрізна тема на всі виконувані лабораторні роботи, для якої слід виконати етапи: бізнес-аналізу, бізнес-моделювання, проектування архітектури, і, звичайно ж, документування зазначених етапів (при вивченні структурно-функціонального та інфологічного моделювання автором пропонується тема: “Обробка замовлень сервісного центру по гарантійному і постгарантійному обслуговуванню комп’ютерної техніки”; при вивченні об’єктно-орієнтованого моделювання автором була обрана тема: “Банкомат”).

2) Індивідуальні теми (згідно варіанта) для самостійного виконання (також наскрізні на всі виконувані лабораторні роботи). Завдання включає в себе спрощеному вигляді) весь комплекс робіт з аналізу, моделювання та проектування ПЗ з певної предметної галузі.

Перша частина виконується студентами безпосередньо на лабораторних заняттях і забезпечується методичними вказівками до кожної лабораторної ро­бо­ти з детальним описом послідовності їх виконання [3]. В результаті цього студенти мають засвоїти відповідні методології, нотації, технології моделю­ван­ня та отримати практичні навики роботи в середовищах відповідних Case-засобів.

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

– вироблення у студентів навичок самостійної роботи з наявною вихідною інформацією;

– практичну реалізацію студентами теоретичних знань з використанням інструментальних інформаційних систем і технологій (Case-засобів);

– формування і розвиток у студентів науково-дослідницьких навичок пошуку, вибору, аналізу та обробки інформації;

– комплексне застосування компетенцій, теоретичних знань, практичних навичок і вмінь, набутих студентами при вивченні дисципліни.

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

Як показує досвід автора при викладанні дисципліни Основи інженерії програмного забезпечення така практика моделювання дозволяє досягти наступних цілей:

-     засвоєння студентами сучасних методологій, методів, нотацій та інструментальних засобів моделювання і проектування;

-     набуття початкових навиків самостійного аналізу предметної області, вимог до ПЗ, моделювання та проектування ПЗ середньої складності;

-     отримання базових знань та оволодіння практичним інструментарієм для вивчення інших дисциплін (згідно структурно-логічної схеми): Моделювання та аналіз ПЗ, Аналіз вимог до ПЗ, Архітектура та проектування ПЗ, Об’єктно-орієнтований аналіз та проектування тощо.

Література

1. Постанова Кабінету Міністрів України “Про затвердження переліку галузей знань і спеціальностей, за якими здійснюється підготовка здобувачів вищої освіти” від 29.04.2015 № 266 [Електронний ресурс] // Веб-портал Верховної Ради України. – Режим доступу: http://zakon5.rada.gov.ua/laws/show/266-2015-%D0%BF

2. Галузевий стандарт вищої освіти України. Напрям підготовки 6.050103 “Програмна інженерія”. – К.: Міністерство освіти і науки України, 2010. – 26 с.

3. Основи програмної інженерії: лабораторний практикум для студентів напряму підготовки “Програмна інженерія” / Г. І. Радельчук. – Хмельницький: ХНУ, 2012. – 108 с.