
- •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
1. Принципи модульного програмування
Модуль – фрагмент програмного коду, який є будівельним блоком для створення систем.
Модульне програмування стало продовженням розвитку структурного програмування. Підпрограми, що з'явилися в структурному програмуванні, мали низку переваг:
полегшували розуміння коду;
спрощували процес налагодження й тестування;
забезпечували простоту внесення змін у програму.
Однак підпрограми мають істотний недолік: їх складно повторно використовувати в нових проектах. Для повторного використання підпрограм розроблювач повинен відкривати код «старого проекту» і копіювати з нього потрібні підпрограми в «новий» проект. Такий підхід має ряд недоліків:
якщо «старий» і «новий» проект створюються різними людьми, то розроблювач може ненавмисно внести в код «старого» проекту зміни, які приведуть до помилок. Тому давати доступ до коду проекту неприпустимо;
можливо, що скопіювати потрібно буде невеликий фрагмент програми, а реальний проект має величезний розмір і знайти потрібний шматок коду буде непросто.
Тому з'явилася реальна необхідність забезпечувати повторне використання підпрограм в інших проектах. Для вирішення проблеми був запропонований підхід, при якому код підпрограм оформляється й зберігається в окремому файлі на диску. Будь-яка програма, якій потрібний доступ до підпрограм, може звернутися до цього файлу й прочитати з нього потрібний фрагмент коду.
Основним принципом модульного програмування є принцип «розділяй і пануй». Модульне програмування – це організація програми як сукупності невеликих незалежних блоків, які називаються модулями, структура й поведінка яких підпорядковуються певним правилам.
Використання модульного програмування дозволяє спростити тестування програми й виявлення помилок. Крім того, модульні програми значно легше розуміти, а модулі можуть використовуватися як будівельні блоки в інших програмах.
Кількість модулів повинна визначатися декомпозицією завдання на незалежні підзадачи. Кількість модулів впливає на складність програми. У загальному випадку, кількість модулів не повинна перевищувати 10-ти. Це число пов'язане з «магічним» числом 7, яке базується на положеннях психології й, особливо, на теорії «шматків» інформації. Короткочасна пам'ять людини має обмежені здатності збереження «шматків» інформації. Психологічні експерименти показали, що здатність нашої короткочасної пам'яті перебуває в межах 5-9 «шматків» (у середньому – 7). Вона може одночасно оперувати близько 7 «шматками» інформації. Коли людей перевищує цю межу, віна більше схильна до помилок.
2. Принцип «приховання даних»
Принцип інформаційної закритості (автор Д. Парнас, 1972) стверджує, що вміст модулів повинен бути прихованим друг від друга. Модуль повинен проектувати так, щоб його вміст (процедури й дані) були недоступні іншим модулям (програмам, підсистемам, клієнтам).
Кожний модуль має інтерфейсну частину, яка містить тільки імена змінних і імена процедур і функцій, які можна використовувати в інших підсистемах. Також дається докладний опис типів змінних і призначення процедур і функцій із вказівкою їх параметрів.
Інші локальні змінні, текст самих процедур і функцій перебуває в «секретній» частині й недоступний для інших клієнтів.
Інформаційна закритість модуля означає наступне:
усі модулі незалежні й обмінюються тільки інформацією, необхідної для роботи;
доступ до структури модуля заборонений або обмежений.
Достоїнства інформаційної закритості:
забезпечується можливість розробки модулів незалежними колективами;
забезпечується можливість легкої модифікації системи (ймовірність внесення помилок у модуль стороннім розроблювачами мала, тому що ніхто крім авторів не має доступу до тексту модуля).
Ідеальний модуль являє собою «чорну шухляду», уміст якої невидимий клієнтам. Він простий у використанні й керуванні, але усередині це може бути досить складна система.