- •Роль та місце та місце програмної інженерії серед інших комп’ютерних дисциплін
- •Історія розвитку пі
- •Трикутник залежностей
- •Кризи програмування
- •Перша криза програмування
- •Друга криза програмування
- •Третя криза
- •Сучасний стан пі
- •Аспектно-орієнтоване програмування
- •Хмаркові технології
- •Особливості пі
- •Розвиток обчислювальних машин
- •Нульове покоління обчислювальних машин
- •Перше покоління електронно-обчислювальних машин
- •Закон Мура(засновник Intel) 1965 рік
- •Закон Мірвольда
- •Покоління мов програмування
- •Способи написання програм
- •Основні та неосновні процеси
- •Типові фази жз пц
- •Технічне завдання srs (Software Requirement Specification)
- •Супроводжуваність
- •Проектування
- •Реалізація
- •Тестування та верифікація пз (Software testing )
- •Основні визначення стандартів
- •Eng: Інженерні процеси
- •Sup: Допоміжні процеси
- •Man: Управлінські процеси
- •Org: Організаційні процеси
- •Поняття про модель процесу
- •Моделі жц пз
- •До найбільш відомих моделей жц пх відносяться
- •Характерні властивості моделі життєвого циклу пз:
- •До моделей організації робіт:
- •Каскадна та спіральна моделі
- •Концепція – загальне бачення чогось
- •Основні принципи каскадної моделі
- •Переваги каскадної моделі
- •Застосовність каскадної моделі
- •Основні причини таких повернень:
- •Пояснення схеми
- •Особливості спіральної моделі
- •Прототип
- •Застосовність спіральної моделі
- •Переваги спіральної моделі
- •1. Специфікація вимог:
- •2. Аналіз:
- •3. Проектування:
- •4. Реалізація:
- •5. Тестування і верифікація:
- •6. Експлуатація і супровід:
- •Тестування програм жц пз (лаба 2)
Закон Мура(засновник Intel) 1965 рік
Кількість транзисторів на одній мікросхемі збільшується на 60% щорічно. Приблизна дія закону до 2020 року. Цей закон говорить про основну тенденцію розвитку нанотехнологій.
Мікро-мінімітюризація та підвищення рівня інтеграції елементів мікросхем, основні тенденції розвитку мікроелектроніки; в цій тенденції супутня проблема тепловиділення. Розвиваються комп’ютери 5-го покоління які використовують нові рішення в архітектурі та принципи штучного інтелекту!!! (почитати про штучний інтелект).
Програмне забезпечення розвивається згідно рівня розвитку апаратного забезпечення, за так званим законом НАТАНА МІРВОЛЬД (Microsoft).
Закон Мірвольда
Програмне забезпечення подібно газу має тенденцію до заповнення резервуарів, які представляються апаратним забезпеченням. (Програмне забезпечення буде так само розвиватися як і апаратне забезпечення)
Покоління мов програмування
Перше покоління 40-50-ті роки «машинні коди» Алгоритми представляються двійковими та шістнадцятковими кодами.
Друге покоління 50-60-ті роки « Мови Асемблера» Асемблер це програма для перекладу програм написаних мнемонічною мовою у зрозумілі машинні команди. Відмінність між мовами першого і другого покоління лише у синтаксисі. Далі програмісти використовують машинні терміни: регістр , команда процесора, адреса комірки пам’яті. Ввелось поняття ідентифікатор. Перше і друг покоління це машино залежні мови програмування.
Третє покоління з 60ч років ХХ ст.. «реалізувати машинну незалежність» Теоретично програма виконувалася на будь-якій ЕОМ за рахунок використання відповідного компілятора. В дійсності при розробці компілятора враховувалися певні обмеження, які накладалися архітектурою ЕОМ. Найпопулярніші мови програмування у той час це : FORTRAN, COBOL.
Четверте покоління мов програмування з 80-х «мови абстракції» Об’ктноорієнтовані мови програмування та декларативні мови програмування. Кінцева мета цього покоління створювати мови програмування близькою до людської мови.
Способи написання програм
Імперативне – наказові команди, також називають процедурне програмування ООП.
Декларативне – описові команди.
Основна ідея ООП - абстрактні типи даних, тобто тип даних - клас за змістом ближчий до реального світу, Ніж до комп’ютерної реалізації. Об’єкт змінна типу клас є активним, оскільки містить не лише просто дані, а й набір методів для опрацювання цих даних. Роль програміста в декларативному програмуванні заключається в точному формулюванні задачі спеціальною мовою, а не в пошуку алгоритму розв’язування задачі. Функціональне програмування має за мету кожну програму представити в математичній інтерпретації. В основі логічних мов програмування лежить мат. логіка. Імперативне - програма + структура даних. Програма - це логіка + керування.
Основний принцип ПІ
Основна задача ПІ - створювати програмні продукти, що відповідають заданим вимогам замовника у визначенні терміни не перевищуючи виділених коштів. ,трикутник обмежень проекту з розробки ПЗ
1.Функціональність 2.Терміни 3.Кошти
Дані про завершені програмні проекти:
45% - перевищили бюджет,
63% - перевищили терміни,
67% - середній об’єм реалізованої функціональності.
Основний принцип ПІ полягає в тому, що програмні продукти ,створюються в результаті виконання декількох взаємопов’язаних етапів(визначення та аналіз вимог, проектування, реалізація, тестування, впровадження, супровід - ці етапи складають ЖЦ ПЗ).
Думка провідних фахівців галузі ПІ така: для вирішення проблем ПІ недостатнє використання лише технологій, потрібно раціонально комбінувати технологічні знання , процеси, людські ресурси для досягнення бізнес цілей організацій. Це завдання вирішується на основі ЖЦ ПЗ.
Історія терміну ЖЦ ПЗ. SLC. (Software Lifetime Cycle)
Вперше вжито в 60 роках у Лондоні на засіданні керівників Програмних проектів. Термін запозичено з промислового виробництва. Концепція ЖЦ викликала багато суперечок серед фахівців, поки не було здійснено ідентифікацію декількох фаз у типовому ЖЗ ПЗ.
1970р Ройс. Припущення, що контроль над виконання цих фаз призведе до підвищення якості ПЗ та скорочення термінів та вартості розробки.
ЖЗ ПЗ - це безперервний період ,що починається з моменту ухвалення рішення про створення ПЗ і закінчується зняттям ПЗ з експлуатації.
ЖЗ ПЗ складається з процесів.
Процес - це сукупність дій на виконання певного завдання ,який має за мету досягненння значимого результату. Важливі процеси ще називаються етапами чи фазами ЖЦ.
