
- •Лекція 1. Тема: ядра знань swebok
- •1.1. Аналіз і характеристика областей знань swebok
- •1.1.1 Основи програмних вимог (Software Requirements)
- •1.1.2. Проектування пз (Software design)
- •1.1.3. Конструювання пз (Software Construction)
- •1.1.4 Тестування пз (Software Testing)
- •1.1.5 Супровід пз (Software maintenance)
- •1.1.6. Управління конфігурацією пз (Software Configuration Management– scm)
- •1.1.7. Управління інженерією пз (Software Engineering Management)
- •1.1.8. Процес інженерії пз (Software Engineering Process)
- •1.1.9. Методи і засоби інженерії пз (Software Engineering Tools and Methods)
- •Лекція 2. Тема: життєвий цикл і етапи розробки програмного забезпечення
- •Лекція 3. Тема: еволюція моделей життєвого циклу програмного забезпечення
- •1.6. Прискорення розробки пз.
- •Лекція 4. Тема: оцінка якості процесів створення програмного забезпечення
- •Лекція 5. Тема: визначення вихідних даних для проектування програмного забезпечення
- •5.1 Визначення вимог до пз
- •5.2 Формування і аналіз вимог
- •5.2.1 Опорні точки зору
- •5.2.2 Сценарії
- •5.2.3 Етнографічний метод
- •5.3 Специфікація вимог
- •5.4 Атестація вимог
- •5.5 Класифікація програмних продуктів за функціональною ознакою
- •5.6 Основні експлуатаційні вимоги до програмних продуктів
- •5.7 Передпроектні дослідження предметної області
- •Лекція 6. Тема: розробка технічного завдання
- •2. Підстави для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •5. Вимоги до програмної документації
- •1. Вступ
- •2. Підстава для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •4.1. Вимоги до функціональних характеристик
- •Лекція 7. Тема: принципові рішення початкових етапів проектування
- •Контрольні питання і завдання
- •Аналіз вимог і визначення специфікацій програмного забезпечення при структурному підході
- •Лекція 8. Тема: Специфікації програмного забезпечення при структурному підході
- •Flow-форми
- •Діаграми Насси-Шнейдермана
- •Контрольні питання та завдання:
- •Лекція 9. Тема: діаграми потоків даних
- •Словник даних
- •Вміст словника даних
- •Лекція 10. Тема: діаграми «сутність-зв’язок»
- •Лекція 11. Тема: приклади побудови діаграм та специфікації процесів
- •Лекція 12 Тема: діаграми переходів станів
- •13.1. Структурна схема майбутнього програмного забезпечення
- •13.2 Використання методу покрокової деталізації для проектування структури програмного забезпечення
- •13.3 Структурні карти Константайна
- •13.4.Структурні карти Джексона
- •13.5 Характеристики хорошої моделі реалізації
- •Зчеплення
- •Зв’язаність
- •13.6 Функціональна схема
- •Лекція 14. Тема: методології структурного аналізу і проектування
- •Контрольні питання та завдання
- •Лекція 15. Тема: синтаксис діаграм
- •Контрольні питання та завдання
- •Лекція 16. Тема: Синтаксис діаграм
- •Збір інформації
- •Контрольні питання та завдання:
- •Лекція 17. Тема: побудова sadt-діаграм
- •17.2. Побудова sadt-діаграми для процесу “Побудова таблиць/графіків функцій однієї змінної”
- •Типи зв'язків між функціями
- •Лекція 18. Тема: доповнення до діаграм і моделей
- •Критерії оцінки і вибору
- •Функціональні характеристики
- •3. Загальні функції:
Лекція 11. Тема: приклади побудови діаграм та специфікації процесів
Розглянемо завдання складання розкладу занять студентів в університеті. Спершу визначимо сутності, які беруть участь в процесі:
СТУДЕНТИ, для яких складають розклад занять;
ВИКЛАДАЧІ, які проводять заняття;
НАВЧАЛЬНИЙ ПЛАН, який надає список дисциплін, що вивчаються студентами в поточному семестрі для складання розкладу.
Для спрощення завдання зробимо припущення, що в нашому випадку завжди є вільні викладачі та вільні аудиторії.
Нарисуємо контекстну діаграму (рис.11.1).
Далі потрібно провести деталізацію процесу:
Визначити список предметів, що вивчаються групою.
Знайти викладача на предмет.
Знайти вільний час викладача.
Знайти вільний час групи.
Знайти вільну аудиторію у вільний час викладача і групи.
Тепер нарисуємо DFD-діаграму 1-го порядку (рис.11.2).
Рисунок 11.1 – Контекстна діаграма процесу складання розкладу для студентів
Рисунок 11.2 – DFD-діаграма 1-го порядку
Опишемо тепер потоки даних, використовуючи словник даних:
1.
@ІМ’Я=СПИСОК ГРУП
@ТИП=дискретний потік
@БНФ=ПІБ+НОМЕР ГРУПИ
2.
@ІМ’Я=СПИСОК ВИКЛАДАЧІВ
@ТИП=дискретний потік
@БНФ=ПІБ+ПРЕДМЕТ+ВІЛЬНИЙ ЧАС
3.
@ІМ’Я=СПИСОК ПРЕДМЕТІВ
@ТИП=дискретний потік
@БНФ=НАЗВА ПРЕДМЕТУ
4.
@ІМ’Я=СПИСОК АУДИТОРІЙ
@ТИП=дискретний потік
@БНФ=НОМЕР Аудиторії+(КОРПУС)+ДАТА+ЧАС
5.
@ІМ’Я=ВІЛЬНИЙ ЧАС СТУДЕНТІВ
@ТИП=дискретний потік
@БНФ=НОМЕР Групи+дата+час
6.
@ІМ’Я=ВІЛЬНИЙ ЧАС ВИКЛАДАЧА
@ТИП=дискретний потік
@БНФ=ПІБ Викладача+дата+час
7.
@ІМ’Я=ВИКЛАДАЧІ ПРЕДМЕТУ
@ТИП=дискретний потік
@БНФ=ПІБ+ПРЕДМЕТ
8.
@ІМ’Я=СПИСОК ПРЕДМЕТІВ ДЛЯ ГРУПИ
@ТИП=дискретний потік
@БНФ=ГРУПА+ПРЕДМЕТ
9.
@ІМ’Я=РОЗКЛАД
@ТИП=дискретний потік
@БНФ=ДАТА+ЧАС+АУДИТОРІЯ+ПРЕДМЕТ+ВИКЛАДАЧ+ГРУПА
Опишемо тепер специфікацію процесів, представлених на DFD-діаграмі 1-го рівня.
1.1
@ВХІД=СПИСОК ПРЕДМЕТІВ
@ВХІД=СПИСОК ГРУП
@ВИХІД=СПИСОК ПРЕДМЕТІВ ДЛЯ ГРУПИ
@СПЕЦПРОЦ 1.1 ВИЗНАЧИТИ СПИСОК ПРЕДМЕТІВ ДЛЯ ГРУПИ
ВИКОНАТИ скласти СПИСОК ПРЕДМЕТІВ ГРУПИ, які вивчаються в поточному семестрі згідно навчального плану
КІНЕЦЬВИКОНАТИ
@ КІНЕЦЬ СПЕЦИФІКАЦІЇ ПРОЦЕСУ 1.1
1.2
@ВХІД=СПИСОК ВИКЛАДАЧІВ
@ВХІД=СПИСОК ПРЕДМЕТІВ ДЛЯ ГРУПИ
@ВИХІД=ВИКЛАДАЧІ ПРЕДМЕТУ
@СПЕЦПРОЦ 1.2 ЗНАЙТИ ВИКЛАДАЧА НА ПРЕДЕМЕТ
ВИКОНАТИ скласти СПИСОК ВИКЛАДАЧІВ предмету згідно інформації про викладачів
КІНЕЦЬВИКОНАТИ
@ КІНЕЦЬ СПЕЦИФІКАЦІЇ ПРОЦЕСУ 1.2
1.3
@ВХІД=ВИКЛАДАЧІ ПРЕДМЕТУ
@ВХІД=ВІЛЬНИЙ ЧАС ВИКЛАДАЧІВ (список всіх викладачів з вільним часом)
@ВИХІД=ВІЛЬНИЙ ЧАС ВИКЛАДАЧА (конкретний викладач з вільним часом)
@СПЕЦПРОЦ 1.3 ЗНАЙТИ ВІЛЬНОГО ВИКЛАДАЧА
ВИКОНАТИ
ДОКИ є викладач в списку викладачів
ВИКОНАТИ
ЯКЩО викладач зайнятий
ТО узяти іншого викладача
ІНАКШЕ запам'ятати викладача і його вільний час
КІНЕЦЬЯКЩО
КІНЕЦЬДОКИ
КІНЕЦЬВИКОНАТИ
@КІНЕЦЬ СПЕЦИФІКАЦІЇ ПРОЦЕСУ 1.3
1.4
@ВХІД=СПИСОК ГРУП
@ВИХІД=ВІЛЬНИЙ ЧАС ГРУП
@СПЕЦПРОЦ 1.4. ЗНАЙТИ ВІЛЬНИЙ ЧАС ГРУПИ
ВИКОНАТИ
ЯКЩО є вільний час групи
ТО запам'ятати вільний час
КІНЕЦЬЯКЩО
КІНЕЦЬВИКОНАТИ
@КІНЕЦЬ СПЕЦИФІКАЦІЇ ПРОЦЕСУ 1.4
1.5
@ВХІД=ВІЛЬНИЙ ЧАС ГРУПИ
@ВХІД=ВІЛЬНИЙ ЧАС ВИКЛАДАЧА
@ВХІД=СПИСОК АУДИТОРІЙ
@ВИХІД=РОЗКЛАД
@СПЕЦПРОЦ 1.5 ЗНАЙТИ ВІЛЬНУ АУДИТОРІЮ У ВІЛЬНИЙ ЧАС ВИКЛАДАЧА І ГРУПИ
ВИКОНАТИ
ДОКИ є вільні аудиторії в списку аудиторій
ВИКОНАТИ
ЯКЩО викладач і студенти вільні в той час, коли вільна аудиторія
ТО запам'ятати розклад, що складається з групи, викладача, назви предмету, дати і часу проведення заняття
ІНАКШЕ вибрати іншу аудиторію
КІНЕЦЬЯКЩО
КІНЕЦЬДОКИ
КІНЕЦЬВИКОНАТИ
@КІНЕЦЬ СПЕЦИФІКАЦІЇ ПРОЦЕСУ 1.5
Оскільки тепер ми описали специфікації процесів, необхідно провести деталізацію сховищ даних або, іншими словами, побудувати діаграми "сутність-зв'язок" або ERD-діаграми.
Оскільки, наш розклад складається для студентів, то першою сутністю буде сутність "студенти" (рис.11.3).
Рисунок 11.3 – Сутність СТУДЕНТИ та її атрибути
П
роте
можна відмітити, що така сутність
надмірна, оскільки для студентів однієї
групи в таблиці буде повторюватися
назва групи. Необхідно нормалізувати
дану табличку. Для цього введемо ще одну
сутність (асоціативну) – ГРУПА (рис.
11.4). Тоді, отримаємо:
Рисунок 11.4 – Зв’язок між сутностями СТУДЕНТИ та ГРУПИ
Далі, у нас є сутність ВИКЛАДАЧІ і ПРЕДМЕТИ, ще виділимо АУДИТОРІЇ, НАВЧАЛЬНИЙ ПЛАН і РОЗКЛАД. Побудуємо тепер ERD-діаграму (рис.11.5).
Рисунок 11.5 – Початкова ERD-діаграма
Як видно із отриманої схеми у нас є тимчасове відношення ВИКЛАДАЧІ-ПРЕДМЕТИ. Вирішимо це питання, використовуючи проміжну сутність (рис.11.6).
Рисунок 11.6 – Використання проміжної сутності ВИКЛАДАЧІ_ПРЕДМЕТИ