Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемРостислав Лубенский
1 Модуль 1 Програмна інженерія: Призначення основні принципи та поняття Лекції 2-5 Загальний обсяг 8 год. Вступ до програмної інженерії _____________________________________________________
2 2 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ
3 3 из NN Передумови виникнення та історія Перша криза в програмуванні Дублювання програмного коду –Модульне програмування Зростання складності програм –Структурне програмування Модифікація програм –Обєктно-орієнтоване програмування Продовження кризи в програмуванні
4 4 из NN Дублювання програмного коду Проблема зростання вартості –Використання однакових фрагментів коду в різних програмах Модульне програмування –Виділення фрагментів в модулі –Повторне використання модулів –Створення бібліотек модулів
5 5 из NN Зростання складності програм Проблеми зростання вартості –Необхідність розробки складних програмних комплексів: великі об'єми коду; кількість зв'язків; кількість розробників; кількість користувачів –Поява життєвих циклів з високою вартістю впровадження та супроводу. Структурне програмування –«Правильне» проектування та кодування за принципами: Функціональне програмування на основі декомпозиції Застосування спеціальних мов проектування Висока дисципліна проектування та розробки: –Планування та документування проекту –Забезпечення відповідності коду проектній документації, включаючи процес внесення змін. Структурне кодування (лінійні блоки, If-then-else, цикли)
6 6 из NN Модифікація програм Проблема зростання вартості (проблема замовника, який не знає чого він хоче) –зміни в проекті і в програмі без зміни попередньо сформованого коду Обєктно-орієнтоване програмування –Клас – модуль зі своїми властивостями, поведінкою, обов'язками –Парадигми ООП: Інкапсуляція Унаслідування Поліморфізм Відділ 1 Відділ 2 Відділ 3 Зарплата Відділ 1 Відділ 2 Відділ 3 ЗарплатаЗарплата 1
7 7 из NN Продовження кризи в програмуванні Криза програмування полягає в суттєвому знижені ефекту від виконання проектів Данні по проектах США %23%49% 26%28%46% 27%40%33% 16%31%53% УспішніПроблемніНевдалі
8 8 из NN Підсумки Головна мета програмної інженерії – зниження вартості ПЗ Сформувалися основні принципи та методи проектування ПЗ: –Життєвий цикл ПЗ –Модульне програмування –Структурне проектування та програмування –Обєктно-орієнтоване проектування та програмування
9 9 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ
10 10 из NN Визначення програмної інженерії Вперше термін появився в жовтні 1968р. на конференції підкомітету НАТО (Німеччина) Програмна інженерія – це –встановлення та використання обґрунтованих інженерних принципів та методів для економного отримання надійного ПЗ, яке функціонує на реальних машинах [Bauer 1972]. – форма інженерії, яка застосовує принципи комп'ютерних наук та математики для рентабельного розв'язку проблем ПЗ. [CMU/SEI-90- TR-003] –застосування систематичного дисциплінованого, вимірного підходу до розробки, використання та супроводу ПЗ [IEEE 1990]. –дисципліна, метою якої є створення високоякісного ПЗ, створення якого закінчується вчасно без перевищення бюджетних коштів і задовольняє висунутим вимогам [Schach, 99].
11 11 из NN Основні питання Що таке програмне забезпечення (software)? Що означає «програмна інженерія»? Чим програмна інженерія відрізняється від комп'ютерних наук? Чим програмна інженерія відрізняється від інших інженерій? Які складові вартості ПЗ?
12 12 из NN Програмне забезпечення? ПЗ - комп'ютерні програми і пов'язана із ними документація та данні (ISO/IEC 12207) Програмні продукти можуть розроблятися для конкретного замовника та для узагальненого ринку ПЗ Програмні продукти можуть бути –Коробковими (generic products, shrink-wrapped software), тобто для продажу багатьом замовникам –На замовлення (bespoke, custom), тобто розробленими для одного покупця за його специфікаціями
13 13 из NN Програмна інженерія? Інженерна дисципліна, яка пов'язана зі всіма аспектами виробництва ПЗ від початкових стадій створення специфікації до підтримки системи після введення в експлуатацію (Соммервіл) Інженерна дисципліна –Орієнтується на практичний результат –Застосування теорій, методів та способів для досягнення результату –Враховує найкращий практичний досвід (best practices) –Враховує обмежений ресурс часу, бюджету, обладнання, людський ресурс. Усі аспекти виробництва ПЗ –Управління програмними проектами –Розробка засобів, методів та теорій.
14 14 из NN Чим програмна інженерія відрізняється від комп'ютерних наук? Комп'ютерні науки вивчають теорію та методи обчислювальних та програмних систем Програмна інженерія вивчає практичні проблеми створення ПЗ Комп'ютерні науки є теоретичним фундаментом програмної інженерії –Не завжди достатнім –Не єдиним (фінанси, управління проектами, робота із замовником, тощо)
15 15 из NN Чим програмна інженерія відрізняється від інших інженерій? Питання: –Чому така велика доля невдалих проектів? –Чи можна застосовувати досвід інших інженерій? Етапи життєвого циклу продукту інженерії: –Проектування, створення зразку, випробовування, виробництво, експлуатація Програма – не матеріальний обєкт: –Етапи виробництва та виготовлення зразка відсутні –Вартість програми – це вартість проектування –В «коробкових» продуктів вартість розподіляється по копіях –У замовних продуктів вартість залишається високою.
16 16 из NN Інші відмінності від інженерій Програма – штучний об'єкт –Відсутні об'єктивні закони контролю проекту –Тестування – єдиний спосіб перевірки Програмна інженерія – молода дисципліна Детально –Коні Бюрер «Від ремесла до науки: пошук основних принципів розробки ПЗ»
17 17 из NN Які складові вартості ПЗ? Залежно від типу ПЗ, методології розробки та методу оцінки Типовий розподіл: –15% - специфікація –25% - проектування –20% - розробка –40% - інтеграція та тестування «Коробкове» ПЗ –Зростання частки тестування за рахунок специфікації Замовне ПЗ –Зростання частки тестування за рахунок проектування та розробки
18 18 из NN Наступні питання Що таке програмний процес? Що таке модель програмного процесу? Що таке методи програмної інженерії? Що таке CASE (Computer-Aided Software Engineering)? Які властивості «хорошої» програми? Які труднощі програмної інженерії?
19 19 из NN Програмний процес? Життєвий цикл програмного процесу неперервний процес з моменту прийняття рішення про створення ПЗ до вилучення його з експлуатації. Процес – сукупність дій та задач націлених на досягнення значущого результату. Основні процеси та етапи ЖЦ: –Специфікація вимог –Розробка проекту програми –Кодування –Тестування –Документування –Супровід
20 20 из NN Програмний процес? Додаткові (не функціональні) процеси: –Створення інфраструктури, керування конфігурацією, керування якістю, навчання, усунення протиріч, тощо. Встановлення процесу: –Опис процесу –Навчання процесу –Введення метрик –Контроль виконання –Удосконалення
21 21 из NN Модель програмного процесу? Модель програмного процесу це спрощений опис програмного процесу, представлений з деякої точки зору. Моделі життєвого циклу: –Водоспадна (каскадна) модель –Спіральна (циклічна) модель –Компонентна модель –Формальна модель –Комбіновані моделі Моделі організації робіт: –Модель потоку робіт (workflow model) –Модель потоків даних (data flow model) –Рольова модель
22 22 из NN Методи програмної інженерії? Метод програмної інженерії це структурний підхід до створення ПЗ: –Як високоякісного продукту –Економічно ефективним способом. Найбільш відомі методи: –Структурного аналізу та проектування Том Де Марко (1978), –Сутність - зв'язок проектування КІС Чен (1976) –Об'єктно - орієнтованого аналізу та проектування Буч (1994), Рамбо (1991).
23 23 из NN Методи програмної інженерії? Мета - створення та поетапне перетворення моделей ПЗ (приклади моделей)приклади моделей Методи повинні включати такі компоненти: –Опис моделей системи та нотації –Правила та обмеження –Рекомендації –Керівництво для застосування методу –Не існує ідеальних методів, не існує абсолютних методів
24 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 25 из NN Модель (діаграма) класів
26 26 из NN Модель сутність - зв'язок
27 27 из NN Нотації моделі Посада Код посади. Назва Оклад Нотація Мартіна Співробітник Код співроб. ФІП Дата народж. Відділ Код відділу. Назва ……. Працює вЗаймає Нотація IDEF1X Код співроб. Співробітник ФІП Дата народ. Код посади Посада Назва Оклад Код відділу Відділ Назва ….. Z P P Працює вЗаймає Посада # Код посади. Назва Оклад Співробітник # Код співр. ФІП Дата народ. Відділ # Код відділу Назва ……. Працює вЗаймає Нотація Баркера ФІП ПосадаПрацівникВідділ Код прац Дата народ Оклад Назва Код віддл.Назва ЗаймаєПрацює у від Код посади Нотація Чена
28 28 из NN Що таке CASE? Визначення Классифікація засобів CASE: –За рівнем застосування: Upper CASE –засоби аналізу вимог Middle CASE – засоби проектування Low CASE - засоби разробки доповнень –Спеціалізовані Засоби проектування БД Засоби реінжинирінгу –Допоміжні Планування та управління проектом Конфігураційного управління Тестування Інтегровані CASE Головне правило: спочатку метод – потім CASE
29 29 из NN Визначення CASE Використання компютерів для підтримки процесу створення програм. Може включати інструментальні програмні засоби для проектування ПЗ, формування вимог, кодування, тестування, документування та інших дій по створенню ПЗ. Еволюція CASE –Ассемблери, компілятори, інтерпретатори –Трасувальники, символічні відлагожувачі –Текстові редактори, системи анализу вихідних текстів –Засоби для аналізу вимог та проектування –Засоби візуального програмування –Засоби генерування вихідних кодів –Засоби підтримки повного життєвого циклу ПЗ
30 30 из NN Властивості «хорошої» програми? Задовільняє функціональним вимогам Нефункціональні вимоги: –Супровідність (maintainability) Можливість подальшого розвитку. –Надійність (dependability) Відмовостійкість, безпека, захищеність. –Ефективність (efficiency) Память, процесорний час, канали звязку. –Зручність у користуванні (usability) Зрозумілість користувачу
31 31 из NN Основні труднощі? Головна проблема: пошук універсального методу та процесу придатних для створення ПЗ будь якого типу та за змінних умов. Головні труднощі: –Унаслідковування раніше створеного ПЗ (legacy systems). Супровід – підтримка та розвиток старого ПЗ. –Різнорідність програмних систем. Разподілені мережі, різнорідне обладнання, різні середовища, різні ОС –Скорочення часу на розробку. Скоротити час розробки ПЗ без зниження його якості. Труднощі часто взаємоповязані між собою
32 32 из NN Питання Передумови виникнення та історія Програмна інженерія: Основні поняття Професійні та етичні вимоги до фахівців в ПІ
33 33 из NN Професійні та етичні вимоги Розвиток IT індустрії все більше впливає на суспільство –Internet, телекомунікації, IP телефонія, компютерні ігри … IT специалісти працюють в правовому та соціальному оточені, під дією міжнародних, національних та місцевих законодавств.
34 34 из NN Професійні та етичні вимоги Більш жорсткі професійні обовязки: –Конфіденційність Нерозголошення відомостей про своїх працедавців чи замовників не залежно чи підписувалася ними відповідна угода. –Компетентність не повинен завищувати свій рівень компетентності та братися за роботу, яка не відповідає його рівню –Захист інтелектуальної власності Дотримуватися законодавства при використанні чужої інтелектуальної власності захищати інтеллектуальну власність працедавця та клієнта –Зловживання компютером від компютерних ігр на робочому місці до розповсюдження вірусів і т.п.
35 35 из NN Кодекс етики IEEE-CS/ACM ACM, IEEE и British Computer Society –IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practices – Кодекс етики і професійної практики програмної інженерії. Члени цих організацій приймают на себя цей кодекс Кодекс включає вісім принципів, повязаних із поведінкою та рішеннями, які приймають професійні програмісти Кодекс поширюється також на студентів, які вивчають та здобувають дану професію Кодекс має коротку та повну версії
36 36 из NN Кодекс етики - Преамбула Коротка версія кодекса –узагальнює напрямленість кодекса на високому рівні абстракції. –Повна версія показує як та напрямленість відбивається на діяльності професійних програмістів. –без вищих принципів деталі кодекса стануть казуїстичними та нудними; –без деталей наміри залишаться високими, але пустими; –разом вони утворюють цілісний кодекс. Програмні інженери повинні докладати зусиль, щоб аналіз, специфікація, проектування, розробка, тестування та супровід програмного забезпечення стали корисною та поважною професією. Відповідно з їх переконаннями щодо безпеки та благополуччя суспільства програмні інженери будуть керуватися такими восьми принципами
37 37 из NN Кодекс етики: 8 принципів 1. СУСПІЛЬСТВО –Програмні інженери будуть діяти відповідно до суспільних інтересів. 2. КЛІЄНТ ТА ПРАЦЕДАВЕЦЬ –Програмні інженери будут працювати задля інтересів клієнтів та своїх працедавців, відповідно до суспільних інтересів. 3. ПРОДУКТ –Програмні інженери будут докладати зусиль, щоб вироблені ними продукти та їхні модифікації відповідали найвищим професійним стандартам.
38 38 из NN Кодекс этики: 8 принципов 4. СУДЖЕННЯ –Програмні інженери будуть прагнути чесності та незалежності в своїх професійних судженнях. уждениях 5. МЕНЕДЖМЕНТ –Менеджери та лідери програмних інженерів будут керуватися етичним підходом до керівництва, розробки та супроводу ПЗ, а також будуть просувати та розвивати цей підхід 6. ПРОФЕСІЯ –Програмні інженери будут покращувати цілісність та репутацію своєї професії відповідно до інтересів суспільства
39 39 из NN Кодекс этики: 8 принципов 4. КОЛЕГИ –Програмні інженери будут честними у відношеннях зі своїми колегами та будуть всіляко їх підтримувати. 8. ОСОБИСТІСТЬ –Програмні інженери протягом свого життя будуть навчатися практиці своєї професії та будуть просувати етичний підхід до практики своєї професії. Повна версія кодексу: IEEE-CS/ACM Software Engineering Ethics and Professional Practices.
40 40 из NN Питання В чому відмінність між програмою та програмним продуктом? За що відповідає фахівець з програмної інженерії? Що означає best practices і яка їх роль в програмній інженерії? У чому специфіка ПІ як інженерної діяльності? Основні методи в ПІ та їх особливості. Назвіть три основних групи процесів ЖЦ Назвіть основні етапи розробки ПЗ? Що таке ЖЦ розробки ПЗ? Який вид мають продукти ПІ? Основні властивості якісного програмного продукту. Типові моделі в ПІ Основні ресурси ПІ, які визначають ефективність розробок ПЗ. Назвіть вісім принципів етики програмних інженерів. Основні рівні CASE. В чому суть еволюції CASE.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.