- •1. Пряма, зворотна, емпірична інженерія програмного забезпечення.
- •2. Емпіричні та теоретичні дослідження.
- •3. Напрями емпіричних досліджень.
- •4. Методи пізнання: загально наукові, конкретно наукові.
- •5. Теоретичні загально наукові методи пізнання.
- •6. Емпіричні загально наукові методи пізнання.
- •7. Конкретно наукові методи пізнання (в загальному).
- •8. Місце емпіричної інженерії програмного забезпечення в іпз.
- •9. Емпірична інженерія програмного забезпечення – суть, предмет та методи.
- •10. Методи емпіричної інженерії (загально наукові, конкретно наукові).
- •Непрямі методики збору даних.
- •Незалежні методики збору даних.
- •Збір даних. Автоматизація збору даних. Використання засобів збору даних.
- •Збір даних. Вимірювання пз. Автоматизація вимірювань.
- •Lines of Code (кількість стрічок коду)
- •Maintainability Index (індекс зручності підтримки):
- •Цикломатична складність:
- •Зв’язність класів:
- •Глибина наслідування:
- •Аналіз даних. Автоматизація аналізу даних.
- •Caese-засоби: структура, процеси та призначння.
- •Порівняння case та caese-засобів.
- •Порівняння моделей процесів case та caese-засобів.
- •Кроки проведення емпіричних досліджень.
- •Проведення кращих емпіричних досліджень. Основні принципи.
- •Компоненти емпіричних досліджень.
- •Середовище досліджень
- •Гіпотези
- •План експерименту
- •Визначення предмету досліджень
- •Побудова взаємозв’язків між досліджуваними величинами
- •Проведення довгострокових (в природних умовах) та короткострокових (в лабораторних умовах) досліджень
- •Способи отримання даних.
- •Отримання даних на протязі часу
- •Моделювання
- •Статичне отримання даних
- •Паралельне проведення декількох досліджень.
- •Загально наукові емпіричні методи: спостереження та описання, експеримент, вимірювання.
- •Ціленаправленість;
- •Активність
- •Загально наукові теоретичні методи: ідеалізація, мисленний експеримент, формалізація.
- •Ідеалізація
- •Мисленний експеримент
- •Формалізація
- •Загально наукові теоретичні методи: абстрагування, аксіоматичний метод, метод гіпотези.
- •Абстрагування
- •Аксіоматичний метод
- •Метод гіпотези
- •Кількісні та якісні емпіричні дослідження. Відмінності в методах.
- •Кількісні емпіричні дослідження.
- •Якісні емпіричні дослідження.
- •Контрольовані експерименти.
- •Дослідження ситуацій (case studies).
- •Дослідження ситуацій (survey).
- •Інші методи емпіричних досліджень пз: кінцевий аналіз (post mortem analysis), етнографії, дослідження дій.
- •Вимірювання пз. Підходи до вимірювань.
- •Моделі вимірювань.
- •Мета-модель. Використання мета-моделі в iPlasma.
- •Шкали вимірювань.
- •Помилки при вимірюваннях
- •51. Види вимірювань
- •52. Вимірювання розміру.
- •53. Вимірювання функціональності.
- •54. Вимірювання складності.
- •55. Оцінка зусиль.
- •56. Вимірювання дефектів.
- •57. Надійність пз та прогнозування. Відмови.
- •58. Час відгуку та робото придатність.
- •59. Вимірювання прогресу.
- •60. Фінансові вимірювання.
- •Метрики програмного забезпечення. Види метрик.
- •Прямі та непрямі метрики.
- •Метрики розміру.
- •Недоліки розмірно-орієнтованих метрик.
- •Метрики складності потоку управління.
- •Метрики складності потоку даних.
- •Об’єктно-орієнтовані метрики.
- •Метрики Хольстеда.
- •Метрики Чепіна.
- •Метрики цикломатичної складності Мак-Кейба.
- •71. Попередня оцінка складності
- •72. Вимірювання зусиль
- •73. Вимірювання дефектів
- •75. Метрики якості продукту:
- •76. Метрики якості процесів:
- •77. Метрики якості супроводження
- •78. Застосування засобів контролю якості
- •79. Виявлення дефектів
- •80. Метрики процесів для тестування
- •Вимірювачі програмного забезпечення.
- •Особливості використання вимірювачів пз
- •Використання iPlasma для вимірювань.
- •Використання Analist4j для вимірювань.
- •Використання cccc для вимірювань.
- •Використання Visual Studio для вимірювань.
- •Пояснення основних метрик iPlasma.
- •Пояснення основних метрик Visual Studio.
- •Пояснення основних метрик Analist4j.
- •Структура iPlasma.
- •Візуалізація в iPlasma.
- •Призначення та послідовність проведення первинного статистичного аналізу.
- •Призначення та послідовність проведення кореляційного аналізу.
- •Призначення та послідовність проведення регресійного аналізу.
- •Описати, пояснити використання Statistica для первинного статистичного аналізу (або іншого засобу).
- •Описати, пояснити використання Statistica для кореляційного аналізу (або іншого засобу).
- •Описати, пояснити використання Statistica для регресійного аналізу (або іншого засобу).
- •Описати та пояснити використання Visual Studio для проведення рефакторингу.
-
Загально наукові теоретичні методи: абстрагування, аксіоматичний метод, метод гіпотези.
-
Абстрагування
-
В процесі абстрагування відбувається відхід від конкретних об’єктів, які чуттєво сприймаються, до абстрактного “мисленнєвого” придставлення про них.
-
Перехід від чуттєвого до абстрактного завжди пов’язаний зі спрощенням дійсності.
В програмуванні, абстрагування — спосіб та метод відокремлення деталей з метою отримання можливості зосередитись на найважливіших особливостях об'єкта. Грубо кажучи, в програмуванні, абстрагування може бути або керування, або даних. Абстрагування керування є абстрагуванням від деталей дій, а абстрагування даних є абстрагуванням структур даних. Наприклад, абстрагування керування в структурному програмуванні полягає у використанні підпрограм та визначених керівних конструкцій. Абстрагування даних дозволяє обробляти одиниці даних у змістовний спосіб. Наприклад, абстрагування є основною мотивацією створення типів даних. Об'єктно-орієнтоване програмування може розглядатись як спроба абстрагувати як керування так і дані.
-
Аксіоматичний метод
-
При аксіоматичному виведенні теоретичного знання спочатку задається набір вихідних положень, які не потребують доведень, а далі за визначеними правилами будуються виведення.
-
Аксіоми – це твердження, доведення істинності яких непотрібне.
Аксіоматичний метод — спосіб побудови наукової теорії, при якому в основу теорії кладуться деякі вихідні положення, що їх називають аксіомами теорії, а всі інші положення теорії випливають як логічні наслідки аксіом. Більшість напрямків сучасної математики, теоретична механіка, ряд розділів фізики побудовані на основі аксіоматичного методу. В математиці аксіоматичний метод дає можливість створення закінчених, логічнозавершиних наукових теорій. Не менше значення має й те, що математична теорія, побудована аксіоматично, часто знаходить застосування в інших науках.
-
Метод гіпотези
Класичний метод гіпотез (рос. классический метод гипотез, англ. classic hypotheses method, нім. klassische Hypothesenmethode f – у широкому розумінні К.м.г. – один із загальних підходів до розкриття внутрішніх законів спостережуваних явищ, побудови їхньої теорії.
При користуванні цим методом наукове розуміння досліджуваного об’єкта досягається побудовою відповідної йому моделі на основі припущень про внутрішню структуру об’єкта і форми зв’язків між його елементами. Таким чином, спостережувані явища розглядаються як результат дії цілком визначеного механізму причинно-наслідкових зв’язків.
Емпіричною базою методу гіпотез є результати відомих спеціальних та технологічних досліджень розглядуваного процесу. Цей метод передбачає розгляд фізичних процесів (субпроцесів) за схемою: вихідна експериментальна основа - формування наукового припущення (гіпотези) - виведення наслідків з цього припущення – перевірка наслідків (висновків) дослідами або шляхом порівняння їх з існуючими даними, доведеними положеннями.
Підтверджені припущення складають наукові положення розглядуваного процесу.
-
1-а стадія. Ознайомлення з емпіричним матеріалом, який потрібно теоретично пояснити.
-
2-а стадія. Висунення здогадки про причини та закономірності даних явищ.
-
3-а стадія. Оцінка серйозності здогадки та відбір з множини здогадок найбільш ймовірної.
-
4-а стадія. Розгортання висунутої здогадки та та дедуктивне виведення з неї наслідків, які можна емпірично перевірити.
-
5-а стадія. Експериментальна перевірка виведених із гіпотези наслідків.
-
Всі спроби побудувати ефективну логіку підтвердження та заперечення теоретичних пояснювальних гіпотез поки не увінчалися успіхом.
-
Загально наукові емпірико-теоретичні методи: аналіз та синтез, індукція та дедукція, аналогія та моделювання.\
Аналіз – розділення об’єкта (мисленно чи реально) на складові частини з метою їх окремого вивчення. Аналіз (від грец. розклад) — розчленування предмета пізнання, абстрагування його окремих сторін. Метод дослідження, який включає в себе вивчення предмета за допомогою мисленого або практичного розчленування його на складові елементи (частини об'єкта, його ознаки, властивості, відношення). Кожна із виділених частин аналізується окремо у межах єдиного цілого. Протилежне — синтез.
Синтез. В процесі синтезу відбувається з’єднання складових частин об’єкта, розділених в результаті аналізу. Синтез не означає простого механічного з’єднання роз’єднаних елементів в єдину систему. Синтез — процесс (как правило — целенаправленный) соединения или объединения ранее разрозненных вещей или понятий в целое или набор. Термин происходит от греч. — совмещение, помещение вместе (с, вместе и положение, место). Синтез есть способ собрать целое из функциональных частей как антипод анализа - способа разобрать целое на функциональные части. Возможен синтез решений. В кибернетике процесс синтеза тесно связан с процессом предшествующего анализа. Синтез — инжиниринговое построение сложных систем из предварительно подготовленных блоков или модулей разных типов. Низкоуровневое, глубокое структурное объединение компонентов разных типов. В дополнении к анализу, метод синтеза позволяет получить представления о связях и потоках между составляющими объекта исследования.
Індукція – формальне логічне мисленнєве виведення, яке приводить до отримання загального висновку на основі конкретних посилань.
Індукція — 1) метод наукового пізнання, який полягає в дослідженні руху знань від одиничного до часткового або й загального; 2) вид опосередкованого умовиводу, в якому з одиничних суджень-засновків виводять часткове або й загальне судження-висновок.
Це рух мислення від конкретного до загального.
Наукова індукція може реалізовуватися у вигляді наступних методів:
1. Метод єдиної схожості.
2. Метод єдиної відмінності.
3. Поєднаний метод схожості та відмінності.
4. Метод супутніх змін.
5. Метод залишків.
Дедукція – отримання конкретних висновків на основі знання деяких загальних положень. Це рух мислення від загального до конкретного.
Дедукція — процес виведення висновку, що гарантовано слідує, якщо вихідні припущення істинні та висновок на їх підставі є чинним. Висновок повинен базуватись винятково на основі попередньо наведених доказів та не повинен містити нової інформації про предмет що досліджується. Дедукція була вперше описана у працях давньогрецьких філософів, таких як Арістотель. Процес виведення дедуктивно вірний тоді і лише тоді, коли з точки зору логіки за умови вірності вихідних припущень висновки також вірні; або, логічно неможливі хибні висновки за вірних припущень.