
- •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
Прийоми рефакторингу
Прийоми, що дозволяють розбити код на дрібніші, зрозуміліші частини.
Відокремлення методу (Extract Method).
Відокремлення базового класу (Extract Superclass).
Прийоми, що дозволяють забезпечити додаткову абстракцію.
Інкапсуляція поля (Encapsulate Field) — замінює прямий доступ до поля на доступ через методи-аксесори (або властивості в C#).
Узагальнення типу (Generalize Type) — заміна типів, з якими працює клас, на більш узагальнені.
Заміна блоків перевірки типів на шаблони «Стан» (State) або «Стратегія» (Strategy).
Заміна умовних операторів поліморфізмом.
Створення поля або локальної змінної (Introduce Field/Introduce Local Variable).
Прийоми, що змінюють назви членів та їх розташування.
Переміщення методу/поля (Move Method/Field) в інші класи або файли коду.
Перейменування члена (Rename) — зміна імені, з автоматичною заміною всіх посилань на старе ім’я в коді.
Переміщення члену до базового/дочірнього класу (Pull Up/Push Down).
Автоматизований рефакторинг
На сьогоднішній день багато інтегрованих середовищ розробки містять вбудовані механізми рефакторингу коду. Крім інтегрованої функціональності, існує також багато продуктів сторонніх виробників, які, як правило, реалізовані у вигляді додатків (plugins) до відповідного IDE. Приклади таких пакетів:
Пакет |
Мова |
Середовище |
Microsoft Visual Studio |
C# |
Microsoft Visual Studio (вбудований) |
Java Development Tooklit |
Java |
Eclipse (вбудований) |
IntelliJ IDEA |
Java |
IntelliJ IDEA (вбудований) |
NetBeans |
Java |
NetBeans (вбудований) |
Visual Assist |
C#, C++, VB, VB.NET |
Microsoft Visual Studio |
Photran |
Fortran |
Eclipse |
Лекція №7
(Перша частина лекції оріентована на мову програмування Delphi, друга - міститьна матеріали для мови програмування С#)
Тема: Створення шаблонів і їх повторне використання при розробці програмних продуктів.
Мета: Придбання знань та практичних навичок при розробці шаблонів та повторниму їх використанні.
Перелік питань, що розглядаються на лекції:
Частина 1
1. Принципи повторного використання елементів програм.
2. Створення шаблонів форм у вигляді файлів.
3. Використання шаблонів форм у новому проекті.
4. Збереження шаблонів форм в репозитарії.
5. Використання шаблонів форм із депозитарію.
Частина 2
6. Шаблони класів на мові програмування С#.
7. Приклади шаблонів (класів шаблонів).
8. Виклик методів шаблонів.
1. Принципи повторного використання елементів програм
Розробка комп'ютерної техніки – одна з областей діяльності людини, що найбільше динамічно розвиваються,. У комп’ютерному світі відомий закон Мура, який говорить: «Потужність комп'ютерної техніки подвоюється кожні 1,5 роки». Із цього закону випливає, що як мінімум кожні 1,5 роки повинна виходити нова версія програми, яка буде оптимально використовувати можливості апаратного забезпечення. Однак сучасні програмні системи дуже великі й складні, над їхньою розробкою працюють десятки (сотні) програмістів. Усе це суттєво впливає на якість і строки виходу нових версій програм.
Одним з методів скорочення строків розробки програм є повторне використання раніше розроблених елементів. Даний метод припускає використання створених раніше наробкі при розробці нових програм.
Повторне використання коду використовувалося ще на етапі розвитку перших мов програмування. Саме в той час з'явилися перші підпрограми. Пізніше з'явилося модульне програмування, потім – об'єктно-орієнтоване. Усі ці технології були покликані полегшити повторне використання коду.
З появою технології візуального програмування з'явилася можливість повторного використання не тільки фрагментів коду, але й шаблонів форм, компонентів і навіть проектів.
У візуальному середовищі можна повторно використовувати:
шаблони форм. Форма розробляється під потреби одного проекту, а потім впроваджується в новий проект;
шаблони компонентів. Компонент настроюється під потреби проекту й зберігається як шаблон для використання в нових проектах;
шаблони проектів. Можна зберегти цілий проект як шаблон. На підставі цього шаблону можна створювати нові проекти, вносячи в них потрібні корективи;
модулі підпрограм. Набори підпрограм можна оформляти у вигляді бібліотек-модулів. Для використання потрібної підпрограми достатньо підключити цей модуль у новому проекті.