
- •1. Основні терміни технології програмування
- •2. Класифікація програмного забезпечення
- •Поняття життєвого циклу розробки програмного забезпечення.
- •Етапи розробки
- •Базові моделі розробки програмних продуктів.
- •Вимоги до методології та технології розробки пп
- •Каскадна модель
- •3. Модель прототипування програмного продукту
- •4. Спіральна модель
- •5. Модель rad
- •6. Модель екстремального програмування (xp)
- •7. Модель msf (Microsoft Solutions Framework)
- •Принципи й види налагодження.
- •Аксіоми налагодження.
- •Автономне налагодження модуля.
- •Комплексне налагодження програмного засобу.
- •Інструменти розробки програмних засобів.
- •Інструментальні середовища розробки й супроводу програмних засобів.
- •Інструментальні середовища програмування.
- •Поняття комп'ютерної технології розробки програмних засобів і її робочі місця.
- •Інструментальні системи технології програмування.
- •Приклад реалізації класу Log.
- •Розробка програмного продукту з двома потоками
- •Визначення крапок контролю програмного продукту.
- •Визначення кількості викликів
- •Визначення ступеня покриття
- •Фундаментальні проблеми профілювання.
- •Причини рефакторингу
- •Підстави для проведення рефакторингу
- •Прийоми рефакторингу
- •Автоматизований рефакторинг
- •1. Принципи повторного використання елементів програм
- •2. Створення шаблонів форм у вигляді файлів
- •3. Використання шаблонів форм у новому проекті
- •4. Збереження шаблонів форм в депозитарії
- •5. Використання шаблонів форм із депозитарію
- •Шаблони класів на мові програмування с#.
- •Приклади шаблонів (класів шаблонів).
- •1. Використання підпрограм в оброблювачах подій
- •2. Звертання до активного компонента не за ім’ям
- •2. Обробка групи компонентів
- •4. Обробка компонентів як масиву
- •5. Сортування даних у компонентах
- •1. Принципи модульного програмування
- •2. Принцип «приховання даних»
- •3. Поняття модуля в Object Pascal
- •4. Структура модульного файлу
- •5. Створення модуля в Object Pascal
- •6. Створення модуля з переліком стандартних діалогів
- •7. Використання текстових констант у модулях
- •8. Створення підпрограм для обробки компонентів
- •1. Поняття dll
- •2. Створення dll бібліотеки в Delphi
- •3. Внесення форм в dll
- •4. Використання dll бібліотеки
- •Питання для самоконтролю
- •Використання регулярних виразів у програмах.
- •1. Призначення зовнішніх компонентів
- •2. Установка й видалення зовнішніх компонентів
- •3. Установка й видалення бібліотек компонентів
- •4. Запуск зовнішніх програм і файлів
- •Питання для самоконтролю
- •1. Загальні принципи технології com
- •2. Робота з com-сервером Microsoft Word
- •Робота з документами в Microsoft Word
- •Використання шаблону для формування документів
- •Робота з таблицями
- •Вставка малюнків і їх форматування
- •1. Операції з Com-Сервером Microsoft Excel
- •Робота із книгами в Microsoft Excel
- •Робота з аркушами книги в Microsoft Excel
- •Використання шаблону для формування книги
- •Формування таблиці
- •6. Форматування чарунок
- •Види довідкових систем
- •Інші засоби підтримки користувача
- •2.Формати довідників
- •3.Створення довідки у форматі html Help
- •4.Створення контекстної довідки
- •5.Інтеграція довідкового файлу в додаток
- •Перелік шаблонів, що породжують
- •Перелік структурних шаблонів
- •Перелік шаблонів поведінки
- •Призначення патерну Singleton
- •Реалізація патерну Singleton
- •Результати застосування патерну Singleton
- •Призначення патерна Observer
- •Постановка проблеми, що вирішується за допомогою патерна
- •Структура патерна Observer
- •Приклад патерна Observer
- •Реалізація патерна Observer
- •Реалізація патерну Observer: до та після
- •Призначення патерну Strategy
- •Опис патерну Strategy
- •Реалізація патерну Strategy
- •Призначення патерна Factory Method
- •Опис патерну Factory Method
- •Реалізація патерна Factory Method
Інструментальні системи технології програмування.
Для комп'ютерної підтримки розробки й супроводу більших ПЗ із тривалим життєвим циклом використовуються інструментальні системи технології програмування. Інструментальна система технології програмування - це інтегрована сукупність програмних і апаратних інструментів, що підтримує всі процеси розробки й супроводи більших ПЗ протягом усього його життєвого циклу в рамках певної технології. Із цього визначення випливають наступні основні риси цього класу комп'ютерної підтримки: ·
комплексність, ·
орієнтованість на колективну розробку, ·
технологічна визначеність, ·
інтегрованість.
Комплексність комп'ютерної підтримки означає, що вона охоплює всі процеси розробки й супроводу ПЗ і що продукція цих процесів погоджена й взаємопов'язана. Тим самим, система в стані забезпечити, по-крайній мері, контроль повноти (комплектності) створюваної документації (включаючи набір програм) і погодженості її зміни (версионности). Той факт, що комп'ютерна підтримка охоплює й фазу супроводу ПЗ, означає, що система повинна підтримувати роботу відразу з декількома варіантами ПЗ, орієнтованими на різні умови застосування ПЗ і на різну пов'язану з ним апаратуру, тобто повинна забезпечувати керування конфігурацією ПЗ.
Орієнтованість на колективну розробку означає, що система повинна підтримувати керування (management) роботою колективу й для різних членів цього колективу забезпечувати різні права доступу до різних фрагментів продукції технологічних процесів.
Технологічна визначеність комп'ютерної підтримки означає, що її комплексність обмежується рамками якої-небудь конкретної технології програмування. Інструментальні системи технології програмування являють собою досить більш і дорогі ПЗ, щоб якось була виправдана їхня інструментальна перевантаженість. Тому набір інструментів, що включаються в них, ретельно відбирається з урахуванням потреб предметної області, використовуваних мов і обраною технологією програмування.
Інтегрованість комп'ютерної підтримки означає·
інтегрованість по даним, ·
інтегрованість по користувальницькому інтерфейсі, ·
інтегрованість по діях (функціям),
Інтегрованість за даними означає, що інструменти діють відповідно до фіксованої інформаційної схеми (моделлю) системи, що визначає залежність різних використовуваних у системі фрагментів даних (інформаційних об'єктів) друг від друга. Інтегрованість по користувальницькому інтерфейсі означає, що всі інструменти об'єднані єдиним користувальницьким інтерфейсом. Інтегрованість по діях означає, що, по-перше, у системі є загальні частини всіх інструментів і, по-друге, одні інструменти при виконанні своїх функцій можуть звертатися до інших інструментів.
З урахуванням обговорених властивостей інструментальних систем технології програмування можна виділити три їхні основні компоненти:·
база дані розробки (репозиторій),·
інструментарій, ·
інтерфейси.
Репозиторій - центральне комп'ютерне сховище інформації, пов'язаної із проектом (розробкою) ПЗ у плині всього його життєвого циклу. Інструментарій - набір інструментів, що визначає можливості, надавані системою колективу розроблювачів. Звичайно цей набір є відкритим: крім мінімального набору (убудовані інструменти), він містить засоби свого розширення (імпортованими інструментами), - і структурованим, що складається з деякої загальної частини всіх інструментів (ядра) і структурних (іноді ієрархічно зв'язаних) класів інструментів. Інтерфейси розділяються на користувальницький і системні. Користувальницький інтерфейс забезпечує доступ розроблювачам до інструментарію (командна мова й т.п.), реалізується оболонкою системи. Системні інтерфейси забезпечують взаємодія між інструментами і їхніми загальними частинами. Системні інтерфейси виділяються як архітектурні компоненти у зв'язку з відкритістю системи - їх зобов'язані використовувати нові (імпортовані) інструменти, що включаються в систему.
Сама загальна архітектура інструментальних систем технології програмування представлена на мал.
Розрізняють два класи інструментальних систем технології програмування: інструментальні системи підтримки проекту і мовно - залежні інструментальні системи. Інструментальна система підтримки проекту - це відкрита система, здатна підтримувати розробку ПЗ на різних мовах програмування після відповідного її розширення програмними інструментами, орієнтованими на обрану мову. Така система містить ядро (обеспечивающее, зокрема, доступ до репозиторию), набір інструментів, що підтримують керування (management) розробкою ПЗ, незалежні від мови програмування інструменти, що підтримують розробку ПЗ (текстові й графічні редактори, генератори звітів і т.п.), а також інструменти розширення системи. Мовно-залежна інструментальна система - це система підтримки розробки ПЗ на якому-небудь одній мові програмування, що істотно використовує в організації своєї роботи специфіку цієї мови. Ця специфіка може позначатися й на можливостях ядра (у тому числі й на структурі репозиторія), і на вимогах до оболонки й інструментів. Прикладом такої системи є середовище підтримки програмування на Аді (APSE).
Загальна
архітектура інструментальних систем
технології програмування.
Практична робота №4
Тема: Налагодження багатопоточних програмних продуктів. Створення класу log.
Мета: Придбання практичних навичок по налагодженню багатопоточних програмних продуктів. Розробка класу log та створення та налагодження програмного продукту з використанням даного класу.
Перелік питань, що розглядаються на практичному занятті:
Визначення видів повідомлень та їх оптимальної струтури.
Реалізація класу log.
Розробка програмного продукту з двома потоками.
Визначення крапок контролю програмного продукту.
Створення класу config для керування виводом повідомлень у log файл.
Налагодження програного продукту.
Визначення видів повідомлень та їх оптимальної струтури.
1 Повідомлення поділяют на наступні категорії:
Error – помилки, що виникають при иконання програмного продукту.
Warning – попередження, що поточна дія не викликака помилки та позаштатної ситуації, але у подальшому може призвести до збою або помилки.
Info – інформаційне повідомлення розробнику, про поточній стан виконання програми.
2 Рекомендована структура повідомлення.
Дата та час – назва функції, модуля чи сервіса – текст повідомлення