- •Лекція 0. Вступ. Цілі, завдання і місце курсу
- •1. Мета викладання курсу
- •2. Завдання вивчення курсу
- •3. Дисципліни, засвоєння яких необхідне при вивченні курсу
- •4. Характеристика курсу
- •5.1. Література
- •5.2. Інформаційні ресурси мережі Інтернет
- •Лекція 1. Введення у технологію програмування
- •1. Термінологія індустрії ПЗ
- •1.1. Програмування
- •1.2. IT-проекти
- •1.3. Програми і програмне забезпечення (програмні продукти)
- •2. Бізнес і IT-проекти. Ринок ПЗ.
- •3. Про предмет
- •5. Виникнення Технології розробки ПЗ
- •5.1. Коротка історія програмування
- •5.2. Терміни “Технологія”, “Методологія” і “Програмна інженерія”
- •5.3. Стратегії розробки ПЗ
- •6. Огляд технологій програмування
- •6.1. Структурне програмування
- •6.2. Модульне програмування
- •6.4. Компонентне програмування
- •6.5. Висновки з лекції
- •Лекція 2. Елементи програмної інженерії
- •1. Програмна інженерія, основні поняття
- •1.1. Інженери і програмні інженери
- •1.2. Програмна інженерія як інженерна дисципліна
- •1.3. Область дії програмної інженерії
- •2. Цілі програмних інженерів
- •2.1. Поняття “якості” програмного продукту
- •2.2. Створення ПЗ повинно вкладатися до бюджету
- •2.3. Створення ПЗ повинно вкладатися в терміни
- •3. Забезпечення надійності розробки ПЗ
- •3.1. Забезпечення точності інтерпретації
- •3.2. Подолання бар'єру між користувачем і розробником
- •3.3. Контроль ухвалюваних рішень
- •3.4. Програмні інженери і наукове середовище
- •4. Складність програмної системи
- •4.1. Методи боротьби зі складністю
- •5. Моделі якості процесів розроблення ПЗ
- •Лекція 3. Організація технологічного процесу розробки ПЗ
- •1. Процес створення програмного забезпечення
- •1.1. Основні стадії типового процесу створення ПП
- •2. Життєвий цикл та моделі процесу розробки ПЗ
- •2.1. Каскадна модель (Waterfall model)
- •2.2. Макетування (прототипіювання)
- •2.3. Інкрементна модель
- •2.4. Модель Швидкої Розробки (RAD)
- •2.5. Спіральна модель
- •3. “Важкі” і “полегшені” процеси
- •4. ХР-процесс
- •Лекція 4. Оцінка програмного проекту по СОСОМО
- •1. Процес управління проектом
- •1.1. Початок проекту
- •1.2. Оцінювання, заходи і метрики
- •1.3. Процес оцінки
- •1.4. Аналіз ризиків
- •1.5. Планування
- •1.6. Трасування і контроль
- •2. Планування проектних завдань
- •3. Розмірно-орієнтовані метрики
- •4. Функціонально-орієнтовані метрики
- •5. Оцінка проекту на основі LOC- і FP-метрик
- •Лекція 5. Проектування програмних систем
- •1. Особливості процесу синтезу програмних систем
- •2. Особливості етапу проектування
- •3. Структуризація системи
- •4. Моделювання управління
- •5. Декомпозиція підсистем на модулі
- •6. Модульність
- •7. Інформаційна закритість
- •8. Зв'язність модуля
- •8.1. Функціональна зв'язність
- •8.2. Інформаційна зв'язність
- •8.3. Комунікативна зв'язність
- •8.4. Процедурна зв'язність
- •8.5. Часова зв'язність
- •8.7. Випадкова Зв'язність
- •8.8. Визначення зв'язності модуля
- •9. Зчеплення модулів
- •10. Складність програмної системи
- •11. Характеристики ієрархічної структури програмної системи
- •Лекція 6. ПОБУДОВА АРХІТЕКТУРИ ПП
- •1. Поняття архітектури програмного засобу.
- •2. Основні принципи проектування архітектури
- •3. Основні питання архітектора ПП
- •4. Архітектурні стилі (шаблони) ПП
- •5. Поєднання архітектурних стилів
- •6. Основні класи архітектур ПП
- •6.1. Цілісна програма
- •6.2. Архітектура ППП
- •6.3. Архітектура, заснована на шині повідомлень
- •6.4. Архітектура клієнт/сервер
- •6.6. Багатошарова архітектура
- •6.8. Компонентна архітектура
- •6.10. Сервісно-орієнтована архітектура
- •7. 4. Контроль архітектури ПП
- •Лекція 7. Розробка Програм, Модульне Програмування
- •1. Поняття модульного програмування
- •1.1. Основні характеристики програмного модуля.
- •1.2. Методи розробки структури програми.
- •1.3. Контроль структури програми.
- •2. Розроблення програмних модулів
- •2.1. Порядок розробки програмного модуля
- •2.2. Структурне програмування модуля
- •2.3. Покрокова деталізація і поняття про псевдокод.
- •Лекція 8. Тестування і відлагодження ПЗ
- •1. Основні поняття тестування і відлагодження
- •2. Основні підходи і принципи відлагодження.
- •2.1. Заповіді відлагодження.
- •2.2. Автономна відладка модулів
- •2.3. Проміжна відладка програмного засобу
- •2.4. Комплексна відладка програмного засобу.
- •3. Організація процесу тестування ПЗ
- •3.1. Тестування елементів
- •3.2. Інтегральне Тестування ПП
- •3.3. Низхідне тестування інтеграції
- •3.4. Висхідне тестування інтеграції
- •3.5. Порівняння низхідного і висхідного тестування інтеграції
- •4. Види Тестування
- •4.1. Тестування правильності
- •4.2. Системне тестування
- •4.3. Тестування відновлення
- •4.4. Тестування безпеки
- •4.5. Стресове тестування
- •4.6. Тестування продуктивності
Лекція 1. Введення у технологію програмування.
Лекція 1. Введення у технологію програмування
У даній лекції вводиться поняття програмного продукту; приводиться узагальнена статистика успішності IT-проектів; дається огляд можливих причин невдач проектів з розробки ПЗ, розглядається еволюція розвитку технології програмування.
1. Термінологія індустрії ПЗ
1.1.Програмування
Довгий час людство хвилює питання про те, до якого роду діяльності відноситься програмування. У 60-х - 70-х роках XX століття дане питання активно обговорювалося на наукових конференціях. Існувало 2 популярних точки зору: "програмування це мистецтво" і "програмування це наука". До єдиної думки придти так і не вдалося. Зараз ми можемо додати до цих популярних трактувань ще одну: "програмування це бізнес". Щоб зрозуміти, що програмування це бізнес, досить подивитися, якими числами виражаються доходи сучасних IT-компаній. Так, наприклад, по даним www.microsoft.com дохід корпорації Microsoft за 2005 фінансовий рік склав 39,70 млрд. $.
1.2.IT-проекти
Під IT-проектами – розуміємо проекти в області інформаційних технологій. Далі розглядатимемо лише ті IT-проекти, метою яких є розробка програмного забезпечення.
Задамося наступними питаннями: Що таке програмне забезпечення (ПЗ)? Що таке програмний продукт (ПП)?
Чим ПЗ та ПП відрізняються від звичайної програми?
Вчора ми з другом написали "Калькулятор". Безумовно, це програма. Чи є вона ПЗ, ПП?
1.3.Програми і програмне забезпечення (програмні продукти)
Програмне забезпечення (Software) - набір комп'ютерних програм, процедур і пов'язаної з ними документації і даних (ISO/IEC 12207).
Таким чином, програмне забезпечення - це не просто програма. Це ще і документація і інструкції користувача.
Замість словосполучення "програмне забезпечення" часто використовують інше - "програмний продукт". Ці поняття близькі за змістом, але це не одне і те ж. Програмне забезпечення, в загальному випадку, є частиною інформаційної системи, наприклад – САПР. До складу таких систем крім програмного, входять ще й інші види забезпечень – інформаційне, математичне, техніне, методичне, тощо. Пограмне забезпечення не є завершеним рішенням, це лише одна з частин системи.
А програмний продукт – це закінчене рішення. Одна з головних властивостей програмного продукту – його здатність бути проданим (і купленим). Можливість продавання ПП – основа бізнесу по розробці програмного забезпечення. Якщо ви збираєтеся щось розробити, це повинно бути затребувано на ринку. Інакше ви витратите гроші на розробку (зарплата співробітників, накладні витрати, податки, оренда приміщення...), але нічого замість цього не отримаєте. Ви можете написати чудову програму. Реалізувати там новий швидкий алгоритм. Вона може прекрасно працювати, але якщо вона нікому не потрібна, то ви (як компанія) на шляху до банкрутства. Допустимо, в таких програмах, як ваша, дійсно є потреба. Допустимо, ви рік наполегливо працювали, і ось, здавалося б, настала ваша зоряна година: все готово, всі модулі написані, відлагоджені, зібрані разом і, як вам здається – коректно працюють. Один "маленький" момент псує всю картину - якщо у вас немає хорошої (!) інструкції користувача, то ваш ПП ніхто не купить. Якщо у вас все є, але немає фахівців з реклами, то про ваш ПП ніхто не дізнається. Якщо ... дуже багато таких “якщо”…
Підсумуємо: програмний продукт - це програма зі всією супутньою документацією, програма, яку можна продати, або іншим чином отримати з неї фінансову вигоду.
5
