Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 4792 Методичні вказівки до лабораторної роботи №1 на тему Планування емпіричних досліджень

Методичні вказівки до лабораторної роботи №1 на тему Планування емпіричних досліджень

« Назад

Методичні вказівки до лабораторної роботи №1 на тему Планування емпіричних досліджень

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

Завдання:

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

  2. Знати етапи емпіричних досліджень програмного забезпечення.

  3. Знати основні методики збору даних та вміти їх використовувати.

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

  5. Зробити короткий аналіз та описання програмного забезпечення, поставити мету для дослідження отриманого програмного забезпечення. 

ТЕОРЕТИЧНІ ВІДОМОСТІ 

Емпіричні дослідження програмного забезпечення

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

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

Визначають чотири основних напрями емпіричних досліджень:

- дослідження, пов’язані з технічною частиною (дослідження середовища розробки, дослідження використовуваних програмних методів в розробці, дослідження самого програмного продукту);

- дослідження процесів розробки індивідуально кожного розробника (все, що робить розробник);

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

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

Кроки проведення емпіричного дослідження:

- формулювання гіпотези,

- дослідження даних,

- збір даних, аналіз,

- формулювання висновків.

Основні принципи, яким повинне відповідати емпіричне дослідження програмного забезпечення: зміст дослідження, гіпотеза для підтвердження, проектування дослідження, можливі проблеми, аналіз та представлення даних, висновки. 

Методики збору даних

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

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

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

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

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

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

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

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

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

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

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

Віддалене спостереження – методика, призначена також для аналізу використання програмного забезпечення. Предметом дослідження даної методики виступає невелика частина виконуваної роботи інженера програмного забезпечення. Ця методика передбачає використання відео та аудіо апаратури. Дослідник спостерігає за учасниками експерименту й може задавати певні запитання й уточнення.

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

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

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

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

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

МЕТОДИЧНІ ВКАЗІВКИ 

З відкритих джерел отримати для наступних досліджень програмний код 3-х проектів. Вимоги:

  1. Проекти повинні різнитися за об’ємністю: 1-й повинен містити більше 200 класів, 2-й – близько 100, 3-й – більше 10.

  2. Код повинен бути написаний на java.

  3. Проекти не повинні повторюватися.

Підготувати коротке описання кожного з проектів: призначення, можливості застосування, внутрішній устій.

Дослідивши таким чином проект, висунути гіпотезу про можливі недоліки чи «вузькі» частини в проекті. Обґрунтувати припущення. Запропонувати шляхи вирішення проблеми. 

КОНТОЛЬНІ ЗАПИТАННЯ 

  1. Що таке інженерія програмного забезпечення?

  2. Що таке пряма інженерія програмного забезпечення?

  3. Що таке зворотна інженерія програмного забезпечення?

  4. Що таке емпірична інженерія програмного забезпечення?

  5. Чим відрізняються емпіричні та теоретичні дослідження?

  6. Які ви знаєте теоретичні методи пізнання?

  7. Які ви знаєте емпіричні методи пізнання?

  8. Які ви знаєте етапи емпіричних досліджень?

  9. Які ви знаєте методики збору даних при емпіричних дослідженнях програмного забезпечення?

З повагою ІЦ "KURSOVIKS"!