
- •Роль та місце та місце програмної інженерії серед інших комп’ютерних дисциплін
- •Історія розвитку пі
- •Трикутник залежностей
- •Кризи програмування
- •Перша криза програмування
- •Друга криза програмування
- •Третя криза
- •Сучасний стан пі
- •Аспектно-орієнтоване програмування
- •Хмаркові технології
- •Особливості пі
- •Розвиток обчислювальних машин
- •Нульове покоління обчислювальних машин
- •Перше покоління електронно-обчислювальних машин
- •Закон Мура(засновник Intel) 1965 рік
- •Закон Мірвольда
- •Покоління мов програмування
- •Способи написання програм
- •Основні та неосновні процеси
- •Типові фази жз пц
- •Технічне завдання srs (Software Requirement Specification)
- •Супроводжуваність
- •Проектування
- •Реалізація
- •Тестування та верифікація пз (Software testing )
- •Основні визначення стандартів
- •Eng: Інженерні процеси
- •Sup: Допоміжні процеси
- •Man: Управлінські процеси
- •Org: Організаційні процеси
- •Поняття про модель процесу
- •Моделі жц пз
- •До найбільш відомих моделей жц пх відносяться
- •Характерні властивості моделі життєвого циклу пз:
- •До моделей організації робіт:
- •Каскадна та спіральна моделі
- •Концепція – загальне бачення чогось
- •Основні принципи каскадної моделі
- •Переваги каскадної моделі
- •Застосовність каскадної моделі
- •Основні причини таких повернень:
- •Пояснення схеми
- •Особливості спіральної моделі
- •Прототип
- •Застосовність спіральної моделі
- •Переваги спіральної моделі
- •1. Специфікація вимог:
- •2. Аналіз:
- •3. Проектування:
- •4. Реалізація:
- •5. Тестування і верифікація:
- •6. Експлуатація і супровід:
- •Тестування програм жц пз (лаба 2)
Третя криза
Проблема у модифікації програм
Метод вирішення даної проблем: Об’єктно орієнтоване програмування
Етап ПІ – Проблема у модифікації програм.
Опис проблеми: Проблема полягала в тому, що замовник не знає що він хоче перед початком розробки ПЗ. Потрібно було проектувати і створювати програми так, щоб забезпечити можливість внесення змін в програму яка не є ще остаточним програмним продуктом, причому не руйнуючи раніше написаного коду.
Метод:
Суть ООП в тому вводить поняття класу як розвиток поняття модуля з визначеними властивостями та поведінкою. Властивості задаються змінними (атрибути), а поведінка – методами.
Принципи ООП: успадкування, інкапсуляція, поліморфізм.
Успадкування – це коли один клас успадковує клас батька і має ще й свої властивості.
Інкапсуляція – це приховані дані.
Поліморфізм – це одна змінні які мають однаковий запис, а можуть виконувати різні дії.
Сучасний стан пі
Дані про кризу в ПІ на сучасному етапі (статистика США):
32% - успішні (задовольняє усім поставленим вимогам)
44% - проблемні; порушення термінів, перевитрата бюджету або виконано не все, що було потрібно.
24% - провальні; не були доведенні до завершення через перевитрати коштів, часу і незабезпечення потрібної якості програмного продукту.
Галузь ІТ розвивається найдинамічніше за всі інші. Кожні 10 років фіксують так звану інформаційно-технічну революцію; з’являються нові технології розробки ПЗ, платформи, технічні пристрої, які потребують нових знань фахівців галузі ПІ. Розробка ПЗ – це масова діяльність яка залучає близько 7 млн. людей. ПЗ користуються фахівці різних сфер діяльності(економіка, медицина, бізнес, промисловість, наука і т.д.). Також ПЗ користуються і в повсякденному житті не фахівці. Знання розробників ПЗ згідно існуючих вимог є неповними, неузгодженими. Фахівці ПІ в великій мірі орієнтуються на свій досвід, а не лише на знання. Ядро стабільних знань з ПІ становить максимум 75% від тих знань які необхідні в практичній діяльності. Для того щоб вирішити проблему залежності якості ПЗ від досвіду розробників пропонувалося перейти до «програмування без програмістів». Суть цієї ідеї така:
Розробники ПЗ мають описувати задачу спеціальною мовою ( наприклад математична логіка відома усім), а не розробляти методи розв’язування задач базуючись на імперативному підході(алгоритмічне + ООП). Імперативному програмування альтернативне декларативне. В історії відомі приклади часткової реалізації ідеї переходу до нового стилю програмування, це : японський проект ЕОМ 5го покоління, комп’ютери з серію «МИР» (СРСР), фабрика програм типу складальний конвеєр проекти «АПРОМ» та «ПРИЗ», методи математичного доведення правильності програм і т.д.
Аспектно-орієнтоване програмування
Переворот у програмування щодо вивільнення програмістів від програмування так і не стався, а навпаки методи та засоби розробки ПЗ постійно розвиваються. Це пов’язано з новими можливостями платформ, розподілених середовищ, концепцією хмарних обчислень.
Нові розвиваючі методи ПІ це : компонентний, аспектний, агентний, сервісний.
Аспектно-орієнтований підхід розглядає програму, як набір модулів кожен з яких реалізує певний аспект. Під аспектом розуміють деяку корисність, ціль функціонування систем. АОП вважається розвитком ООП. АОП забезпечує оптимальну модульність програми, що досягається локалізацією наскрізних вимог у аспектах. АОП спрощує супровід програмного забезпечення. На даний момент АОП не достатньо практично реалізоване; АОП може паралельно використовуватись з ООП на платформі Java .Net.