Слайд 2Технологія програмування
Технологією програмування називають сукупність методів і засобів, що використовуються в процесі
![Технологія програмування Технологією програмування називають сукупність методів і засобів, що використовуються в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-1.jpg)
розробки програмного забезпечення.
Як будь-яка інша технологія, технологія програмування являє собою набір технологічних інструкцій, що включають:
вказівки послідовності виконання технологічних операцій;
перерахування умов, при яких виконується та чи інша операція;
опису самих операцій, де для кожної операції визначено вихідні дані, результати, а також інструкції, нормативи, стандарти, критерії та методи оцінки і т. п.
Слайд 4Перший етап розвитку
Перший етап - «стихійне» програмування. (етап охоплює період від моменту
![Перший етап розвитку Перший етап - «стихійне» програмування. (етап охоплює період від](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-3.jpg)
появи перших обчислювальних машин до середини 60-х років XX ст. )
У цей період практично були відсутні сформульовані технології, і програмування фактично було мистецтвом.
Перші програми:
мали найпростішу структуру;
складалися з програми на машинній мові і оброблюваних даних.
Складність програм в машинних кодах обмежувалася здатністю програміста одночасно подумки відстежувати послідовність виконуваних операцій і місцезнаходження даних при програмуванні.
Слайд 5Другий етап розвитку
Другий етан - структурний підхід до програмування (60- 70-ті роки
![Другий етап розвитку Другий етан - структурний підхід до програмування (60- 70-ті](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-4.jpg)
XX ст.).
Структурний підхід до програмування являє собою сукупність рекомендованих технологічних прийомів, що охоплюють виконання всіх етапів розробки програмного забезпечення. В основі структурного підходу лежить декомпозиція (розбиття на частини) складних систем з метою подальшої реалізації у вигляді окремих невеликих (до 40-50 операторів) підпрограм. З появою інших принципів декомпозиції (об'єктного, логічного і т. д.) Даний спосіб отримав назву процедурної декомпозиції.
Слайд 6Третій етап розвитку
Третій етап - об'єктний підхід до програмування (з середини 80-х
![Третій етап розвитку Третій етап - об'єктний підхід до програмування (з середини](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-5.jpg)
до кінця 90-х років XX ст.). Об'єктно-орієнтоване програмування визначається як технологія створення складного програмного забезпечення, яке базується на уявленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного типу (класу), а класи утворюють ієрархію з успадкуванням властивостей.
Об'єктна структура програми вперше була використана в мові імітаційного моделювання складних систем Simula, який з'явився ще в 60-х роках XX ст. Природний для мов моделювання спосіб представлення програми отримав розвиток в іншому спеціалізованому мові моделювання - мовою Smalltalk (70-ті роки XX ст.), А потім був використаний в нових версіях універсальних мов програмування, таких як Pascal, C ++, Modula, Java.
Слайд 7Четвертий етап розвитку
Четвертий етап - компонентний підхід і CASE-технологни (з середини 90-х
![Четвертий етап розвитку Четвертий етап - компонентний підхід і CASE-технологни (з середини](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-6.jpg)
років XX ст. до нашого часу).
Компонентний підхід передбачає побудову програмного забезпечення з окремих компонентів - фізично окремо існуючих частин програмного забезпечення, які взаємодіють між собою через стандартизовані виконавчі інтерфейси.
На відміну від звичайних об'єктів об'єкти-компоненти можна зібрати в бібліотеки, що викликаються динамічно або виконувані файли, поширювати в двійковому вигляді (без вихідних текстів) і використовувати в будь-якій мові програмування, що підтримує відповідну технологію. На сьогодні ринок об'єктів став реальністю, так в Інтернеті існують вузли, що надають велику кількість компонентів.
Це дозволяє програмістам створювати продукти, хоча б частково складаються з повторно використаних частин, тобто використовувати технологію, яка добре зарекомендувала себе в області проектування апаратури.
Слайд 8Життєвий цикл розробки
Терміном життєвий цикл (ЖЦ) прийнято відображати сукупність процесів і етапів розвитку організмів
![Життєвий цикл розробки Терміном життєвий цикл (ЖЦ) прийнято відображати сукупність процесів і](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-7.jpg)
живої природи, технічних систем, продуктів виробництва від моментів зародження або появи потреби їх створення і використання до припинення функціонування або застосування.
Слайд 9Життєвий цикл розробки
Програмні засоби служать для виконання певних функцій систем на комп'ютерах.
![Життєвий цикл розробки Програмні засоби служать для виконання певних функцій систем на комп'ютерах.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-8.jpg)
Слайд 10Життєвий цикл розробки
Модель життєвого циклу системи зазвичай поділяють на послідовні періоди реалізації
![Життєвий цикл розробки Модель життєвого циклу системи зазвичай поділяють на послідовні періоди](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-9.jpg)
- стадії або етапи.
Кожен подібний період включає основні реалізовані в ньому процеси, роботи і завдання, при завершенні яких може знадобитися перехід до наступного періоду реалізації.
Слайд 11Життєвий цикл розробки
Загальну модель життєвого циклу складної системи поділяють на такі основні
![Життєвий цикл розробки Загальну модель життєвого циклу складної системи поділяють на такі](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-10.jpg)
етапи:
визначення потреб;
дослідження і опис основних концепцій;
проектування і розробка;
випробування системи;
створення і виробництво;
розповсюдження та продаж;
експлуатація;
супровід і моніторинг;
зняття з експлуатації (утилізація).
Слайд 14Життєвий цикл розробки
За особливостями і властивостями життєвого циклу програм їх доцільно ділити
![Життєвий цикл розробки За особливостями і властивостями життєвого циклу програм їх доцільно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-13.jpg)
на ряд класів і категорій, з яких найбільш розрізняються є два великих класів - малі і великі.
Слайд 15Життєвий цикл розробки
Перший клас складають відносно невеликі програми, що створені одинаками або невеликими
![Життєвий цикл розробки Перший клас складають відносно невеликі програми, що створені одинаками](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-14.jpg)
колективами (3-5) фахівців, які:
створюються переважно для отримання конкретних результатів автоматизації наукових досліджень або для аналізу щодо простих процесів самими розробниками програм;
не призначені для масового тиражування і розповсюдження як програмного продукту на ринку, їх оцінюють якісно і інтуїтивно переважно як «художні твори»;
не мають конкретного незалежного замовника-споживача, що визначає вимоги до програм і їх фінансування;
не обмежуються замовником допустимої вартістю, трудомісткістю і термінами їх створення, вимогами заданої якості і документування;
не підлягають незалежному тестуванню, гарантування якості і / або сертифікації.
Слайд 16Життєвий цикл розробки
Другий клас складають великомасштабні комплекси програм для складних систем управління та
![Життєвий цикл розробки Другий клас складають великомасштабні комплекси програм для складних систем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-15.jpg)
обробки інформації, що оформляються у вигляді програмних продуктів з гарантованою якістю, і відрізняються наступними особливостями і властивостями їх життєвого циклу:
велика розмірність, висока трудомісткість і вартість створення таких комплексів програм визначають необхідність ретельного аналізу економічної ефективності всього їх життєвого циклу і можливої конкурентоспроможності на ринку;
від замовника, що фінансує проект програмного засобу та / або бази даних, розробникам необхідно отримувати кваліфіковані конкретні вимоги до функцій і характеристикам проекту і продукту, відповідні виділеному фінансуванню і кваліфікації виконавців проекту;
Слайд 17Життєвий цикл розробки
для організації та координації діяльності фахівців-розробників при наявності єдиної, великої
![Життєвий цикл розробки для організації та координації діяльності фахівців-розробників при наявності єдиної,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-16.jpg)
цільової завдання, створення і вдосконалення програмного продукту необхідні кваліфіковані менеджери проектів;
в проектах таких складних програмних засобів і баз даних з великою кількістю різних функціональних компонентів беруть участь фахівці різної кваліфікації та спеціалізації, від яких потрібна висока відповідальність за якість результатів діяльності кожного з них;
від розробників проектів потрібні гарантії високої якості, надійності функціонування та безпеки застосування компонентів, що поставляються з програмними продуктіами, в які неприпустиме пряме втручання замовника і користувачів для змін, не передбачених експлуатаційною документацією розробників;
необхідно застосовувати індустріальні, регламентовані стандартами процеси, етапи та документи, а також методи, методики і комплекси, засоби автоматизації, технології забезпечення життєвого циклу комплексів програм.
Слайд 18Архітектура процесів життєвого циклу
Процес програмної інженерії має ієрархічну архітектуру, включаючи безліч процесів життєвого
![Архітектура процесів життєвого циклу Процес програмної інженерії має ієрархічну архітектуру, включаючи безліч](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-17.jpg)
циклу програмної системи.
Вимоги до процесів ЖЦ ПС визначає міжнародний стандарт ISO/IEC 12207.
Потрібно відзначити, що в Україні прийнятий стандарт ДСТУ 3918-99 - аналог ISO/IEC 12207, затвердженого ISO в 1995 році.
Однак з часу свого виходу, стандарт ISO/IEC 12207 піддавався перегляду, і в «поточної» редакції має розширений склад процесів ЖЦ, сформований з урахуванням потреб інших міжнародних стандартів.
Слайд 19Архітектура процесів життєвого циклу
Процеси ЖЦ розподілені на три групи, що відображає функціональну спрямованість
![Архітектура процесів життєвого циклу Процеси ЖЦ розподілені на три групи, що відображає](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-18.jpg)
видів діяльності, які ці процеси регламентують:
основні процеси;
процеси, що підтримують життєвий цикл;
організаційні процеси.
Слайд 20Основні процеси ЖЦ
Основні процеси ЖЦ охоплюють дії з розроблення, постачання, придбання, експлуатації і
![Основні процеси ЖЦ Основні процеси ЖЦ охоплюють дії з розроблення, постачання, придбання,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-19.jpg)
супроводу програмних продуктів.
Основні процеси ЖЦ:
1.1. Придбання
1.1.1. Підготовка придбання
1.1.2. Вибір постачальника
1.1.3. Моніторинг діяльності постачальника
1.1.4. Приймання споживачем
Слайд 21Основні процеси ЖЦ
1.2. Поставка
1.2.1. Участь в тендері
1.2.2. Укладання договору
1.2.3. Випуск продукту (релізу)
![Основні процеси ЖЦ 1.2. Поставка 1.2.1. Участь в тендері 1.2.2. Укладання договору 1.2.3. Випуск продукту (релізу)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-20.jpg)
Слайд 22Основні процеси ЖЦ
1.3. Розробка
1.3.1. Виявлення вимог
1.3.2. Аналіз вимог до системи
1.3.3. Проектування архітектури
![Основні процеси ЖЦ 1.3. Розробка 1.3.1. Виявлення вимог 1.3.2. Аналіз вимог до](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-21.jpg)
системи
1.3.4. Аналіз вимог до ПЗ системи
1.3.5. Проектування ПЗ
1.3.6. Програмування (кодування) ПЗ
1.3.7. Інтеграція ПЗ
1.3.8. Тестування ПЗ
1.3.9. Системна інтеграція
1.3.10. Системне тестування
1.3.11. Інсталяція ПЗ
Слайд 23Основні процеси ЖЦ
1.4. Експлуатація
1.4.1. Функціональне використання
1.4.2. Підтримка споживача
1.5. Супровід
![Основні процеси ЖЦ 1.4. Експлуатація 1.4.1. Функціональне використання 1.4.2. Підтримка споживача 1.5. Супровід](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-22.jpg)
Слайд 24Процеси, що підтримують ЖЦ
Процеси, що підтримують ЖЦ, інтегруються з будь-якими іншими процесами, вирішуючи завдання,
![Процеси, що підтримують ЖЦ Процеси, що підтримують ЖЦ, інтегруються з будь-якими іншими](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-23.jpg)
допоміжні по відношенню до завдань цих процесів, і забезпечуючи якість їх вирішення в конкретних проектах.
Процеси, що підтримують процеси ЖЦ:
документування
управління конфігурацією
забезпечення гарантії якості
верифікація
валідація
спільний перегляд
аудит
управління рішенням проблем
управління запитами на зміну
забезпечення застосування продукту (підтримка користувача)
оцінювання продукту
Слайд 25Організаційні процеси ЖЦ
Організаційні процеси спрямовані на формування виробничої структури, що включає безліч процесів
![Організаційні процеси ЖЦ Організаційні процеси спрямовані на формування виробничої структури, що включає](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-24.jpg)
ЖЦ і персонал, а також на її підтримку і вдосконалення.
Організаційні процеси ЖЦ:
1. Управління
1.1. Організаційне будівництво (формування корпоративної політики, цілей, процесів, стандартів, етики)
1.2. Управління організацією
1.3. Управління проектом
1.4. Управління якістю
1.5. Управління ризиком
1.6. Вимірювання
Слайд 26Організаційні процеси ЖЦ
2. Підтримка інфраструктури
3. Удосконалення
3.1. Установа процесів
3.2. Оцінювання процесів
3.3. Поліпшення процесів
4.
![Організаційні процеси ЖЦ 2. Підтримка інфраструктури 3. Удосконалення 3.1. Установа процесів 3.2.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-25.jpg)
Забезпечення трудовими ресурсами
4.1. Управління кадрами
4.2. Навчання
4.3. Управління знаннями (поширення знань)
Слайд 27Організаційні процеси ЖЦ
5. Управління надбанням (активами організації)
6. Управління програмою повторного використання
7. Доменна
![Організаційні процеси ЖЦ 5. Управління надбанням (активами організації) 6. Управління програмою повторного використання 7. Доменна інженерія](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1086589/slide-26.jpg)
інженерія