Тема: ПРИКЛАДИ ПОБУДОВИ ДІАГРАМ ТА СПЕЦИФІКАЦІЇ ПРОЦЕСІВ

Лекція 11.

Контрольні питання і завдання

1. У чому сутність структурного підходу до проектування? Які етапи охоплює даний підхід?

2. Що розуміють під терміном «специфікації»? У чому складність їх уточнення? Назвіть моделі, що використовуються як функціональні специфікації при структурному підході. Які характеристики проектованого програмного забезпечення описує кожна з них?

3. У яких випадках доцільно використовувати діаграми переходів станів?

4. У чому полягає основна відмінність між функціональними діаграмами і діаграмами потоків даних? У яких випадках використання діаграм потоків даних є переважним?

5. Що показують ER-діаграми?


 

Розглянемо завдання складання розкладу занять студентів в університеті. Спершу визначимо сутності, які беруть участь в процесі:

· СТУДЕНТИ, для яких складають розклад занять;

· ВИКЛАДАЧІ, які проводять заняття;

· НАВЧАЛЬНИЙ ПЛАН, який надає список дисциплін, що вивчаються студентами в поточному семестрі для складання розкладу.

Для спрощення завдання зробимо припущення, що в нашому випадку завжди є вільні викладачі та вільні аудиторії.

Нарисуємо контекстну діаграму (рис.11.1).

Далі потрібно провести деталізацію процесу:

1. Визначити список предметів, що вивчаються групою.

2. Знайти викладача на предмет.

3. Знайти вільний час викладача.

4. Знайти вільний час групи.

5. Знайти вільну аудиторію у вільний час викладача і групи.

Тепер нарисуємо 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 – Використання проміжної сутності ВИКЛАДАЧІ_ПРЕДМЕТИ