Модуль 1 Програмна інженерія: Призначення основні принципи та поняття Лекції 2-5 Загальний обсяг 8 год. Вступ до програмної інженерії.

Презентация:



Advertisements
Похожие презентации
Модель Виконали: студенти групи маг МІ-3 Волошин Андрій.
Advertisements

ТЕОРІЯ СОЦІАЛЬНОЇ РОБОТИ Гончар Л.К.. Предметом вивчення навчальної дисципліни є сутність, особливості та основні аспекти соціальної роботи як професійної.
З'єднайте стрілками ситуації з інформаційними процесами: Зберігання інформації Передавання інформації Обробка інформації Фотографу вання Гра за нотами.
Інформаційне забезпечення
Дипломний проект Виконав: студент гр. П Ярошенко Я.І. Керівник дипломного проекту Сібрін Ю.І. Розробка програми Продаж друкованої продукції.
І.Л.Володіна, В.В.Володін «Інформатика. 11 клас» Академічний рівень Рівень Стандарт.
фундаменталізація освіти; фундаменталізація освіти; навчання на основі власних відкриттів; навчання на основі власних відкриттів; практична спрямованість.
РОЗДІЛ 2 ОБ'ЄКТИ ТА ІНФОРМАЦІЙНІ СИСТЕМИ Інформатика 9 клас.
Особливості організації вивчення програмового матеріалу на уроках природознавства в першому класі.
Тема уроку: Проектування бази даних. Мета уроку:навчити створювати структуру нової бази даних на логічному та фізичному рівнях проектування, працювати.
Основи алгоритмізації і програмування. Тема 2. Моделі та моделювання (3 год) Етапи розв'язування задач на комп'ютері.
Лекція 1. Інформаційні системи в управлінні економікою. 1.Поняття інформаційної системи. 2.Класифікація інформаційних систем. 3.Структура інформаційної.
МОЖЛИВОСТІ ВИКОРИСТАННЯ ІНФОРМАЦІЙНО - КОМУНІКАЦІЙНИХ ТЕХНОЛОГІЙ.
Дипломний проект Виконав: студент гр. П Карачевцев О.М. Керівник дипломного проекту Висоцька О.І. Електронне замовлення обідів.
База даних (БД) це структурована сукупність взаємопов'язаних даних певної предметної області (реальних об'єктів, процесів, явищ тощо). це структурована.
L/O/G/O / Школа управлінської майстерності Критерії оцінки успішності педагога як один з ресурсів управління розвитком навчального.
Презентація на тему: Школа кількісного (економіко-математичного) підходу
Виконала: Пономарець Марія Група: МАГ-СІ 2. Проект-це унікальний процес, в ході якого отримується унікальний продукт.
Урок 10 5 клас. Комп'ютернні мережі. Локальна мережа. Використаннямережевих папок
Загальні відомості про системне, службове та прикладне програмне забезпечення. Класифікація, основні функції та складові операційних систем. Поняття про.
Транксрипт:

Модуль 1 Програмна інженерія: Призначення основні принципи та поняття Лекції 2-5 Загальний обсяг 8 год. Вступ до програмної інженерії _____________________________________________________

2 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ

3 из NN Передумови виникнення та історія Перша криза в програмуванні Дублювання програмного коду –Модульне програмування Зростання складності програм –Структурне програмування Модифікація програм –Обєктно-орієнтоване програмування Продовження кризи в програмуванні

4 из NN Дублювання програмного коду Проблема зростання вартості –Використання однакових фрагментів коду в різних програмах Модульне програмування –Виділення фрагментів в модулі –Повторне використання модулів –Створення бібліотек модулів

5 из NN Зростання складності програм Проблеми зростання вартості –Необхідність розробки складних програмних комплексів: великі об'єми коду; кількість зв'язків; кількість розробників; кількість користувачів –Поява життєвих циклів з високою вартістю впровадження та супроводу. Структурне програмування –«Правильне» проектування та кодування за принципами: Функціональне програмування на основі декомпозиції Застосування спеціальних мов проектування Висока дисципліна проектування та розробки: –Планування та документування проекту –Забезпечення відповідності коду проектній документації, включаючи процес внесення змін. Структурне кодування (лінійні блоки, If-then-else, цикли)

6 из NN Модифікація програм Проблема зростання вартості (проблема замовника, який не знає чого він хоче) –зміни в проекті і в програмі без зміни попередньо сформованого коду Обєктно-орієнтоване програмування –Клас – модуль зі своїми властивостями, поведінкою, обов'язками –Парадигми ООП: Інкапсуляція Унаслідування Поліморфізм Відділ 1 Відділ 2 Відділ 3 Зарплата Відділ 1 Відділ 2 Відділ 3 ЗарплатаЗарплата 1

7 из NN Продовження кризи в програмуванні Криза програмування полягає в суттєвому знижені ефекту від виконання проектів Данні по проектах США %23%49% 26%28%46% 27%40%33% 16%31%53% УспішніПроблемніНевдалі

8 из NN Підсумки Головна мета програмної інженерії – зниження вартості ПЗ Сформувалися основні принципи та методи проектування ПЗ: –Життєвий цикл ПЗ –Модульне програмування –Структурне проектування та програмування –Обєктно-орієнтоване проектування та програмування

9 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ

10 из NN Визначення програмної інженерії Вперше термін появився в жовтні 1968р. на конференції підкомітету НАТО (Німеччина) Програмна інженерія – це –встановлення та використання обґрунтованих інженерних принципів та методів для економного отримання надійного ПЗ, яке функціонує на реальних машинах [Bauer 1972]. – форма інженерії, яка застосовує принципи комп'ютерних наук та математики для рентабельного розв'язку проблем ПЗ. [CMU/SEI-90- TR-003] –застосування систематичного дисциплінованого, вимірного підходу до розробки, використання та супроводу ПЗ [IEEE 1990]. –дисципліна, метою якої є створення високоякісного ПЗ, створення якого закінчується вчасно без перевищення бюджетних коштів і задовольняє висунутим вимогам [Schach, 99].

11 из NN Основні питання Що таке програмне забезпечення (software)? Що означає «програмна інженерія»? Чим програмна інженерія відрізняється від комп'ютерних наук? Чим програмна інженерія відрізняється від інших інженерій? Які складові вартості ПЗ?

12 из NN Програмне забезпечення? ПЗ - комп'ютерні програми і пов'язана із ними документація та данні (ISO/IEC 12207) Програмні продукти можуть розроблятися для конкретного замовника та для узагальненого ринку ПЗ Програмні продукти можуть бути –Коробковими (generic products, shrink-wrapped software), тобто для продажу багатьом замовникам –На замовлення (bespoke, custom), тобто розробленими для одного покупця за його специфікаціями

13 из NN Програмна інженерія? Інженерна дисципліна, яка пов'язана зі всіма аспектами виробництва ПЗ від початкових стадій створення специфікації до підтримки системи після введення в експлуатацію (Соммервіл) Інженерна дисципліна –Орієнтується на практичний результат –Застосування теорій, методів та способів для досягнення результату –Враховує найкращий практичний досвід (best practices) –Враховує обмежений ресурс часу, бюджету, обладнання, людський ресурс. Усі аспекти виробництва ПЗ –Управління програмними проектами –Розробка засобів, методів та теорій.

14 из NN Чим програмна інженерія відрізняється від комп'ютерних наук? Комп'ютерні науки вивчають теорію та методи обчислювальних та програмних систем Програмна інженерія вивчає практичні проблеми створення ПЗ Комп'ютерні науки є теоретичним фундаментом програмної інженерії –Не завжди достатнім –Не єдиним (фінанси, управління проектами, робота із замовником, тощо)

15 из NN Чим програмна інженерія відрізняється від інших інженерій? Питання: –Чому така велика доля невдалих проектів? –Чи можна застосовувати досвід інших інженерій? Етапи життєвого циклу продукту інженерії: –Проектування, створення зразку, випробовування, виробництво, експлуатація Програма – не матеріальний обєкт: –Етапи виробництва та виготовлення зразка відсутні –Вартість програми – це вартість проектування –В «коробкових» продуктів вартість розподіляється по копіях –У замовних продуктів вартість залишається високою.

16 из NN Інші відмінності від інженерій Програма – штучний об'єкт –Відсутні об'єктивні закони контролю проекту –Тестування – єдиний спосіб перевірки Програмна інженерія – молода дисципліна Детально –Коні Бюрер «Від ремесла до науки: пошук основних принципів розробки ПЗ»

17 из NN Які складові вартості ПЗ? Залежно від типу ПЗ, методології розробки та методу оцінки Типовий розподіл: –15% - специфікація –25% - проектування –20% - розробка –40% - інтеграція та тестування «Коробкове» ПЗ –Зростання частки тестування за рахунок специфікації Замовне ПЗ –Зростання частки тестування за рахунок проектування та розробки

18 из NN Наступні питання Що таке програмний процес? Що таке модель програмного процесу? Що таке методи програмної інженерії? Що таке CASE (Computer-Aided Software Engineering)? Які властивості «хорошої» програми? Які труднощі програмної інженерії?

19 из NN Програмний процес? Життєвий цикл програмного процесу неперервний процес з моменту прийняття рішення про створення ПЗ до вилучення його з експлуатації. Процес – сукупність дій та задач націлених на досягнення значущого результату. Основні процеси та етапи ЖЦ: –Специфікація вимог –Розробка проекту програми –Кодування –Тестування –Документування –Супровід

20 из NN Програмний процес? Додаткові (не функціональні) процеси: –Створення інфраструктури, керування конфігурацією, керування якістю, навчання, усунення протиріч, тощо. Встановлення процесу: –Опис процесу –Навчання процесу –Введення метрик –Контроль виконання –Удосконалення

21 из NN Модель програмного процесу? Модель програмного процесу це спрощений опис програмного процесу, представлений з деякої точки зору. Моделі життєвого циклу: –Водоспадна (каскадна) модель –Спіральна (циклічна) модель –Компонентна модель –Формальна модель –Комбіновані моделі Моделі організації робіт: –Модель потоку робіт (workflow model) –Модель потоків даних (data flow model) –Рольова модель

22 из NN Методи програмної інженерії? Метод програмної інженерії це структурний підхід до створення ПЗ: –Як високоякісного продукту –Економічно ефективним способом. Найбільш відомі методи: –Структурного аналізу та проектування Том Де Марко (1978), –Сутність - зв'язок проектування КІС Чен (1976) –Об'єктно - орієнтованого аналізу та проектування Буч (1994), Рамбо (1991).

23 из NN Методи програмної інженерії? Мета - створення та поетапне перетворення моделей ПЗ (приклади моделей)приклади моделей Методи повинні включати такі компоненти: –Опис моделей системи та нотації –Правила та обмеження –Рекомендації –Керівництво для застосування методу –Не існує ідеальних методів, не існує абсолютних методів

24 из NN Модель вимог (прецедентів) Опис прецеденту «Вибір курсів для викладача» Прецедент починає виконуватися, коли викладач підключається до системи. Викладач вводить певний семестр. Система пропонує обрати необхідну операцію: додати (Add), вилучити (Delete), переглянути (Review), надрукувати (Print) або вийти (Quit). Якщо вибрана операція Add, S-1: виконується потік додати навчальний курс (Add a Course Offering). Якщо вибрана операція Delete, S-2: виконується потік (Delete a Course Offering). Якщо вибрана операція Review, S-3: виконується потік переглянути розклад (Review Schedule). Якщо вибрана операція….

25 из NN Модель (діаграма) класів

26 из NN Модель сутність - зв'язок

27 из NN Нотації моделі Посада Код посади. Назва Оклад Нотація Мартіна Співробітник Код співроб. ФІП Дата народж. Відділ Код відділу. Назва ……. Працює вЗаймає Нотація IDEF1X Код співроб. Співробітник ФІП Дата народ. Код посади Посада Назва Оклад Код відділу Відділ Назва ….. Z P P Працює вЗаймає Посада # Код посади. Назва Оклад Співробітник # Код співр. ФІП Дата народ. Відділ # Код відділу Назва ……. Працює вЗаймає Нотація Баркера ФІП ПосадаПрацівникВідділ Код прац Дата народ Оклад Назва Код віддл.Назва ЗаймаєПрацює у від Код посади Нотація Чена

28 из NN Що таке CASE? Визначення Классифікація засобів CASE: –За рівнем застосування: Upper CASE –засоби аналізу вимог Middle CASE – засоби проектування Low CASE - засоби разробки доповнень –Спеціалізовані Засоби проектування БД Засоби реінжинирінгу –Допоміжні Планування та управління проектом Конфігураційного управління Тестування Інтегровані CASE Головне правило: спочатку метод – потім CASE

29 из NN Визначення CASE Використання компютерів для підтримки процесу створення програм. Може включати інструментальні програмні засоби для проектування ПЗ, формування вимог, кодування, тестування, документування та інших дій по створенню ПЗ. Еволюція CASE –Ассемблери, компілятори, інтерпретатори –Трасувальники, символічні відлагожувачі –Текстові редактори, системи анализу вихідних текстів –Засоби для аналізу вимог та проектування –Засоби візуального програмування –Засоби генерування вихідних кодів –Засоби підтримки повного життєвого циклу ПЗ

30 из NN Властивості «хорошої» програми? Задовільняє функціональним вимогам Нефункціональні вимоги: –Супровідність (maintainability) Можливість подальшого розвитку. –Надійність (dependability) Відмовостійкість, безпека, захищеність. –Ефективність (efficiency) Память, процесорний час, канали звязку. –Зручність у користуванні (usability) Зрозумілість користувачу

31 из NN Основні труднощі? Головна проблема: пошук універсального методу та процесу придатних для створення ПЗ будь якого типу та за змінних умов. Головні труднощі: –Унаслідковування раніше створеного ПЗ (legacy systems). Супровід – підтримка та розвиток старого ПЗ. –Різнорідність програмних систем. Разподілені мережі, різнорідне обладнання, різні середовища, різні ОС –Скорочення часу на розробку. Скоротити час розробки ПЗ без зниження його якості. Труднощі часто взаємоповязані між собою

32 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ

33 из NN Професійні та етичні вимоги Розвиток IT індустрії все більше впливає на суспільство –Internet, телекомунікації, IP телефонія, компютерні ігри … IT специалісти працюють в правовому та соціальному оточені, під дією міжнародних, національних та місцевих законодавств.

34 из NN Професійні та етичні вимоги Більш жорсткі професійні обовязки: –Конфіденційність Нерозголошення відомостей про своїх працедавців чи замовників не залежно чи підписувалася ними відповідна угода. –Компетентність не повинен завищувати свій рівень компетентності та братися за роботу, яка не відповідає його рівню –Захист інтелектуальної власності Дотримуватися законодавства при використанні чужої інтелектуальної власності захищати інтеллектуальну власність працедавця та клієнта –Зловживання компютером від компютерних ігр на робочому місці до розповсюдження вірусів і т.п.

35 из NN Кодекс етики IEEE-CS/ACM ACM, IEEE и British Computer Society –IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practices – Кодекс етики і професійної практики програмної інженерії. Члени цих організацій приймают на себя цей кодекс Кодекс включає вісім принципів, повязаних із поведінкою та рішеннями, які приймають професійні програмісти Кодекс поширюється також на студентів, які вивчають та здобувають дану професію Кодекс має коротку та повну версії

36 из NN Кодекс етики - Преамбула Коротка версія кодекса –узагальнює напрямленість кодекса на високому рівні абстракції. –Повна версія показує як та напрямленість відбивається на діяльності професійних програмістів. –без вищих принципів деталі кодекса стануть казуїстичними та нудними; –без деталей наміри залишаться високими, але пустими; –разом вони утворюють цілісний кодекс. Програмні інженери повинні докладати зусиль, щоб аналіз, специфікація, проектування, розробка, тестування та супровід програмного забезпечення стали корисною та поважною професією. Відповідно з їх переконаннями щодо безпеки та благополуччя суспільства програмні інженери будуть керуватися такими восьми принципами

37 из NN Кодекс етики: 8 принципів 1. СУСПІЛЬСТВО –Програмні інженери будуть діяти відповідно до суспільних інтересів. 2. КЛІЄНТ ТА ПРАЦЕДАВЕЦЬ –Програмні інженери будут працювати задля інтересів клієнтів та своїх працедавців, відповідно до суспільних інтересів. 3. ПРОДУКТ –Програмні інженери будут докладати зусиль, щоб вироблені ними продукти та їхні модифікації відповідали найвищим професійним стандартам.

38 из NN Кодекс этики: 8 принципов 4. СУДЖЕННЯ –Програмні інженери будуть прагнути чесності та незалежності в своїх професійних судженнях. уждениях 5. МЕНЕДЖМЕНТ –Менеджери та лідери програмних інженерів будут керуватися етичним підходом до керівництва, розробки та супроводу ПЗ, а також будуть просувати та розвивати цей підхід 6. ПРОФЕСІЯ –Програмні інженери будут покращувати цілісність та репутацію своєї професії відповідно до інтересів суспільства

39 из NN Кодекс этики: 8 принципов 4. КОЛЕГИ –Програмні інженери будут честними у відношеннях зі своїми колегами та будуть всіляко їх підтримувати. 8. ОСОБИСТІСТЬ –Програмні інженери протягом свого життя будуть навчатися практиці своєї професії та будуть просувати етичний підхід до практики своєї професії. Повна версія кодексу: IEEE-CS/ACM Software Engineering Ethics and Professional Practices.

40 из NN Питання В чому відмінність між програмою та програмним продуктом? За що відповідає фахівець з програмної інженерії? Що означає best practices і яка їх роль в програмній інженерії? У чому специфіка ПІ як інженерної діяльності? Основні методи в ПІ та їх особливості. Назвіть три основних групи процесів ЖЦ Назвіть основні етапи розробки ПЗ? Що таке ЖЦ розробки ПЗ? Який вид мають продукти ПІ? Основні властивості якісного програмного продукту. Типові моделі в ПІ Основні ресурси ПІ, які визначають ефективність розробок ПЗ. Назвіть вісім принципів етики програмних інженерів. Основні рівні CASE. В чому суть еволюції CASE.