
- •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
Приклади шаблонів (класів шаблонів).
namespace SaturnRep
{
public static class ClassSerialiaze
{
public static void SerialiazeToXml<T>(ref T inObject, string inFileName)
{
try
{
System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(T));
System.IO.StreamWriter file = new System.IO.StreamWriter(inFileName);
writer.Serialize(file, inObject);
file.Close();
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}
public static void DeserializationFromXml<T>(ref T inObject, string inFileName)
{
if (System.IO.File.Exists(inFileName))
{
System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(T));
System.IO.StreamReader file = new System.IO.StreamReader(inFileName);
inObject = (T)reader.Deserialize(file);
file.Close();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Devart.Data.SQLite;
namespace Registratura
{
public class ClassDataBase
{
#region ExecuteNonQuery
public int ExecuteNonQuery(ref ClassSetupProgram setupProgram, string sSql, int where)
{
int n = 0;
try
{
using (SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0};", setupProgram.connectionToDBString)))
{
con.Open();
using (SQLiteCommand sqlCommand = con.CreateCommand())
{
sqlCommand.CommandText = sSql;
n = sqlCommand.ExecuteNonQuery();
}
con.Close();
}
}
catch (Exception ex)
{
n = 0;
}
return n;
}
#endregion
#region Execute
protected T GetObject<T>(params object[] args)
{
return (T)Activator.CreateInstance(typeof(T), args);
}
public void Execute<T>(ref ClassSetupProgram setupProgram, string sSql, ref List<T> listResult)
{
string result="";
try
{
string databaseName = setupProgram.connectionToDBString;
SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0};", databaseName));
con.Open();
SQLiteCommand command = new SQLiteCommand(sSql, con);
SQLiteDataReader dataReader = command.ExecuteReader();
if (dataReader.HasRows)
{
while (dataReader.Read())
{
result = "";
for (int i = 0; i < dataReader.FieldCount; i++)
{
result += dataReader.GetString(i) + "!";
}
if (result.Count() > 2) result = result.Remove(result.Count() - 1);
if (result != "") listResult.Add(GetObject<T>(result));
}
}
con.Close();
}
catch (Exception ex)
{
}
}
#endregion
}
}
Питання для самоконтролю
1. Які переваги повторного використання елементів програм?
2. Які елементи можна повторно використовувати в програмах?
3. Опишіть процедуру створення шаблона форми
4. Опишіть процедуру використання шаблона форми у новому проекті.
5. Що таке зв'язана форма?
6. Що таке депозитарій Delphi?
7. Як додати та видалити шаблон форми в депозитарію?
8. Які типи заполучення форм із депозитарію ви знаєте?
9. Дайте характеристику всіх типів заполучення форм із депозитарію.
10. Як видалити шаблон форми із допозитарію?
Лекція №8
Тема: Принципи одноманітних компонентів. Делегати, їх призначення та використання.
Мета: Придбати практичні навички у обробці одноманітних компонентів. Отримати знання з конструктції делгатів та їх використання при конструюванні програмних продутів.
Перелік питань, що розглядаються на лекції:
1. Використання підпрограм в оброблювачах подій
2. Звертання до активного компонента не за ім’ям
3. Обробка групи компонентів
4. Обробка компонентів як масиву
5. Сортування даних у компонентах