- •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 для проведення рефакторингу.
-
Пояснення основних метрик Analist4j.
В Analyst4j визначено наступні метрики для програмного забезпечення, що написане на мові Java :
-
Об’єктна-орієнтовані метрики(Object Oriented Metrics)
Програми розвивали використання об’єктно-орієнтовані мови програмування подібно до Java, при чому поставало питання про відношення та зв’язки між об’єктами заради досягнення потрібної функціональності. Взаємодія між об'єктами створює взаємовідношення між ними. Об'єктно-орієнтована метрика, запропонована Chidamber та Kemerer та іншими, забезпечує методи для виміру якості об'єктного проекту, взаємовідношення між окремими об’єктами, їх залежності та інші принципи об’єктна-орієнтованого програмування. До даних метрик відносять :
-
Weighted Methods Complexity ( WMC)
-
Response For Class (RFC)
-
Lack Of Cohesive Methods (LCOM)
-
Coupling Between Objects (CBO)
-
Depth of Inheritance Tree (DIT)
-
Number of Children (NOC)
-
Метрики складності(Complexity Metrics)
Складність системи або його компонентів визначається як міра, до якої система / компоненти змодельовані або виконання, яке важке розуміння та перевірки. Взагалі програмна складність може бути класифікована в трьох категоріях: логічна складність, психологічна складність і структурна складність:
-
Cyclomatic Complexity (McCabe)
-
Essential Complexity (EC)
-
Halstead Complexity Metrics (Halstead Effort, Volume)
-
Метрика індексу ремонтопридатності (Maintainability Index Metric)
Кількісний вимір ремонтопридатності програмного забезпечення бажаний як миттєвий захід, так і як оцінка ремонтопридатності через якийсь час. Даний індекс дає можливість зменшити кодову ентропію або погіршення цілісності програмних конструкцій, що в свою чергу дає можливість визначити проміжки часу, на протязі яких можна досить вдало вдосконалювати без надмірних витрат програмний продукт.
Вимір і використання MI - технологія процесу, полегшена простими інструментами, що у виконанні стає частиною повного розвитку процесу розробки програмного забезпечення. Це вказує на те, що вимір МІ, застосований протягом розробки програмного забезпечення, може допомогти скоротити витрати на протязі життєвого циклу розробки програмного забезпечення.
-
Метрики коду(Code Metrics)
Загальні кодові метрики мають своє використання, коли вони використовуються в комбінації одна з одною або з спеціалізованими метриками, такими як обєктно-орієнтовані метрики, або метрики складності. Дані метрики дають загальну картину про написаний код програмного продукту, дають краще розуміння інших метрик.
Analyst4j автоматизує наступні кодові метрики через чотири рівня (Метод, Клас, Файл і Пакет):
Method Level
-
Number of lines of Code (NLOC_MTD)
-
Percentage of comments (POC_MTD)
-
Number of Variables (NOV_MTD)
-
Number of Unused Variables (NOUV_MTD)
-
Number of comment lines (CL_MTD)
-
Number of Parameters (NOP_MTD)
-
Number of Unused Parameters (NOUP_MTD)
Class Level
-
Number of Lines of Code(NLOC_CLS)
-
Number of Parents (NOPNT_CLS)
-
Number of Fields (NOFLD_CLS)
-
Percentage of Non-Private Fields (NPFP_CLS)
-
Percentage of Non-Private Methods (NPMP_CLS)
-
Number of Inner Classes (NOIC_CLS)
File Level
-
Number of Lines of Code (NLOC_FIL)
-
Halstead Effort / Volume (HE_FIL, HV_FIL)
-
SEI Maintainability Index (MI_FIL)
Package Level
-
Number of Lines of Code (NLOC_PKG)
-
Number of Classes (NOCLS_PKG)
-
Number of Interfaces(NOIFC_PKG)
-
Number of Files (NOF_PKG)