Слайд 2Технологія програмування
Технологією програмування називають сукупність методів і засобів, що використовуються в процесі
розробки програмного забезпечення.
Як будь-яка інша технологія, технологія програмування являє собою набір технологічних інструкцій, що включають:
вказівки послідовності виконання технологічних операцій;
перерахування умов, при яких виконується та чи інша операція;
опису самих операцій, де для кожної операції визначено вихідні дані, результати, а також інструкції, нормативи, стандарти, критерії та методи оцінки і т. п.
Слайд 4Перший етап розвитку
Перший етап - «стихійне» програмування. (етап охоплює період від моменту
появи перших обчислювальних машин до середини 60-х років XX ст. )
У цей період практично були відсутні сформульовані технології, і програмування фактично було мистецтвом.
Перші програми:
мали найпростішу структуру;
складалися з програми на машинній мові і оброблюваних даних.
Складність програм в машинних кодах обмежувалася здатністю програміста одночасно подумки відстежувати послідовність виконуваних операцій і місцезнаходження даних при програмуванні.
Слайд 5Другий етап розвитку
Другий етан - структурний підхід до програмування (60- 70-ті роки
XX ст.).
Структурний підхід до програмування являє собою сукупність рекомендованих технологічних прийомів, що охоплюють виконання всіх етапів розробки програмного забезпечення. В основі структурного підходу лежить декомпозиція (розбиття на частини) складних систем з метою подальшої реалізації у вигляді окремих невеликих (до 40-50 операторів) підпрограм. З появою інших принципів декомпозиції (об'єктного, логічного і т. д.) Даний спосіб отримав назву процедурної декомпозиції.
Слайд 6Третій етап розвитку
Третій етап - об'єктний підхід до програмування (з середини 80-х
до кінця 90-х років XX ст.). Об'єктно-орієнтоване програмування визначається як технологія створення складного програмного забезпечення, яке базується на уявленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного типу (класу), а класи утворюють ієрархію з успадкуванням властивостей.
Об'єктна структура програми вперше була використана в мові імітаційного моделювання складних систем Simula, який з'явився ще в 60-х роках XX ст. Природний для мов моделювання спосіб представлення програми отримав розвиток в іншому спеціалізованому мові моделювання - мовою Smalltalk (70-ті роки XX ст.), А потім був використаний в нових версіях універсальних мов програмування, таких як Pascal, C ++, Modula, Java.
Слайд 7Четвертий етап розвитку
Четвертий етап - компонентний підхід і CASE-технологни (з середини 90-х
років XX ст. до нашого часу).
Компонентний підхід передбачає побудову програмного забезпечення з окремих компонентів - фізично окремо існуючих частин програмного забезпечення, які взаємодіють між собою через стандартизовані виконавчі інтерфейси.
На відміну від звичайних об'єктів об'єкти-компоненти можна зібрати в бібліотеки, що викликаються динамічно або виконувані файли, поширювати в двійковому вигляді (без вихідних текстів) і використовувати в будь-якій мові програмування, що підтримує відповідну технологію. На сьогодні ринок об'єктів став реальністю, так в Інтернеті існують вузли, що надають велику кількість компонентів.
Це дозволяє програмістам створювати продукти, хоча б частково складаються з повторно використаних частин, тобто використовувати технологію, яка добре зарекомендувала себе в області проектування апаратури.
Слайд 8Життєвий цикл розробки
Терміном життєвий цикл (ЖЦ) прийнято відображати сукупність процесів і етапів розвитку організмів
живої природи, технічних систем, продуктів виробництва від моментів зародження або появи потреби їх створення і використання до припинення функціонування або застосування.
Слайд 9Життєвий цикл розробки
Програмні засоби служать для виконання певних функцій систем на комп'ютерах.
Слайд 10Життєвий цикл розробки
Модель життєвого циклу системи зазвичай поділяють на послідовні періоди реалізації
- стадії або етапи.
Кожен подібний період включає основні реалізовані в ньому процеси, роботи і завдання, при завершенні яких може знадобитися перехід до наступного періоду реалізації.
Слайд 11Життєвий цикл розробки
Загальну модель життєвого циклу складної системи поділяють на такі основні
етапи:
визначення потреб;
дослідження і опис основних концепцій;
проектування і розробка;
випробування системи;
створення і виробництво;
розповсюдження та продаж;
експлуатація;
супровід і моніторинг;
зняття з експлуатації (утилізація).
Слайд 14Життєвий цикл розробки
За особливостями і властивостями життєвого циклу програм їх доцільно ділити
на ряд класів і категорій, з яких найбільш розрізняються є два великих класів - малі і великі.
Слайд 15Життєвий цикл розробки
Перший клас складають відносно невеликі програми, що створені одинаками або невеликими
колективами (3-5) фахівців, які:
створюються переважно для отримання конкретних результатів автоматизації наукових досліджень або для аналізу щодо простих процесів самими розробниками програм;
не призначені для масового тиражування і розповсюдження як програмного продукту на ринку, їх оцінюють якісно і інтуїтивно переважно як «художні твори»;
не мають конкретного незалежного замовника-споживача, що визначає вимоги до програм і їх фінансування;
не обмежуються замовником допустимої вартістю, трудомісткістю і термінами їх створення, вимогами заданої якості і документування;
не підлягають незалежному тестуванню, гарантування якості і / або сертифікації.
Слайд 16Життєвий цикл розробки
Другий клас складають великомасштабні комплекси програм для складних систем управління та
обробки інформації, що оформляються у вигляді програмних продуктів з гарантованою якістю, і відрізняються наступними особливостями і властивостями їх життєвого циклу:
велика розмірність, висока трудомісткість і вартість створення таких комплексів програм визначають необхідність ретельного аналізу економічної ефективності всього їх життєвого циклу і можливої конкурентоспроможності на ринку;
від замовника, що фінансує проект програмного засобу та / або бази даних, розробникам необхідно отримувати кваліфіковані конкретні вимоги до функцій і характеристикам проекту і продукту, відповідні виділеному фінансуванню і кваліфікації виконавців проекту;
Слайд 17Життєвий цикл розробки
для організації та координації діяльності фахівців-розробників при наявності єдиної, великої
цільової завдання, створення і вдосконалення програмного продукту необхідні кваліфіковані менеджери проектів;
в проектах таких складних програмних засобів і баз даних з великою кількістю різних функціональних компонентів беруть участь фахівці різної кваліфікації та спеціалізації, від яких потрібна висока відповідальність за якість результатів діяльності кожного з них;
від розробників проектів потрібні гарантії високої якості, надійності функціонування та безпеки застосування компонентів, що поставляються з програмними продуктіами, в які неприпустиме пряме втручання замовника і користувачів для змін, не передбачених експлуатаційною документацією розробників;
необхідно застосовувати індустріальні, регламентовані стандартами процеси, етапи та документи, а також методи, методики і комплекси, засоби автоматизації, технології забезпечення життєвого циклу комплексів програм.
Слайд 18Архітектура процесів життєвого циклу
Процес програмної інженерії має ієрархічну архітектуру, включаючи безліч процесів життєвого
циклу програмної системи.
Вимоги до процесів ЖЦ ПС визначає міжнародний стандарт ISO/IEC 12207.
Потрібно відзначити, що в Україні прийнятий стандарт ДСТУ 3918-99 - аналог ISO/IEC 12207, затвердженого ISO в 1995 році.
Однак з часу свого виходу, стандарт ISO/IEC 12207 піддавався перегляду, і в «поточної» редакції має розширений склад процесів ЖЦ, сформований з урахуванням потреб інших міжнародних стандартів.
Слайд 19Архітектура процесів життєвого циклу
Процеси ЖЦ розподілені на три групи, що відображає функціональну спрямованість
видів діяльності, які ці процеси регламентують:
основні процеси;
процеси, що підтримують життєвий цикл;
організаційні процеси.
Слайд 20Основні процеси ЖЦ
Основні процеси ЖЦ охоплюють дії з розроблення, постачання, придбання, експлуатації і
супроводу програмних продуктів.
Основні процеси ЖЦ:
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. Випуск продукту (релізу)
Слайд 22Основні процеси ЖЦ
1.3. Розробка
1.3.1. Виявлення вимог
1.3.2. Аналіз вимог до системи
1.3.3. Проектування архітектури
системи
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. Супровід
Слайд 24Процеси, що підтримують ЖЦ
Процеси, що підтримують ЖЦ, інтегруються з будь-якими іншими процесами, вирішуючи завдання,
допоміжні по відношенню до завдань цих процесів, і забезпечуючи якість їх вирішення в конкретних проектах.
Процеси, що підтримують процеси ЖЦ:
документування
управління конфігурацією
забезпечення гарантії якості
верифікація
валідація
спільний перегляд
аудит
управління рішенням проблем
управління запитами на зміну
забезпечення застосування продукту (підтримка користувача)
оцінювання продукту
Слайд 25Організаційні процеси ЖЦ
Організаційні процеси спрямовані на формування виробничої структури, що включає безліч процесів
ЖЦ і персонал, а також на її підтримку і вдосконалення.
Організаційні процеси ЖЦ:
1. Управління
1.1. Організаційне будівництво (формування корпоративної політики, цілей, процесів, стандартів, етики)
1.2. Управління організацією
1.3. Управління проектом
1.4. Управління якістю
1.5. Управління ризиком
1.6. Вимірювання
Слайд 26Організаційні процеси ЖЦ
2. Підтримка інфраструктури
3. Удосконалення
3.1. Установа процесів
3.2. Оцінювання процесів
3.3. Поліпшення процесів
4.
Забезпечення трудовими ресурсами
4.1. Управління кадрами
4.2. Навчання
4.3. Управління знаннями (поширення знань)
Слайд 27Організаційні процеси ЖЦ
5. Управління надбанням (активами організації)
6. Управління програмою повторного використання
7. Доменна
інженерія