Professional Documents
Culture Documents
Лаб 3-4
Лаб 3-4
Лабораторна робота №3
з дисципліни “Компоненти програмної інженерії”
тема “Проектування архітектури ПЗ”
Виконали
студенти 3 курсу
групи КП-61
Казимиров Данило
Карпенко Олена
Київ 2019
Мета роботи:
Уточнення даних, інтерфейсів, алгоритму функціонування,
архітектури програми. Розроблення технічного проекту, яке охоплює
проектування системи, що включає проектування архітектури системи і
детальне проектування.
Завдання на лабораторну роботу
Проаналізувати та спроектувати архітектуру програмного забезпечення
для реалізації Національного реєстру ОВКП. Створити документації із
результатами проектування. Спроектувати та створити реляційну БД
Національного реєстру ОВКП.
Структура системи
Структурно система складається із ізольованих один від одного
рівнів абстракцій, вона побудована за паттерном багаторівневневої
архітектури. Їх можно представити, як ієрархічну структуру (див рис. 1),
кожна частина якої взаємодії лише із рівнем, що знаходиться нижче за
ієрархією. Засобом спілкування рівнів слугує прикладний програмний
інтерфейс (API) яке надає відповідний рівень.
рис 2. ER-модель БД
Таблиці:
init-db.sql
CREATE TYPE LOG_TYPE AS ENUM (
'UPDATE_PCCO',
'DEACTIVATE_PCCO',
'ACTIVATE_PCCO',
'CREATE_PCCO'
);
COMMENT ON COLUMN pccos.work_place IS 'місце роботи на час вчинення корупційного або пов’язаного
з корупцією правопорушення;
';
COMMENT ON COLUMN pccos.residence IS 'місце проживання (для іноземців, осіб без громадянства -
місце проживання за межами України);';
insert_personal_pccos.sql
START TRANSACTION;
INSERT INTO pccos (first_name,
last_name,
surname,
personal_code,
passport_series,
passport_code,
dob,
place_of_birth,
passport_issuing_authority,
judicature_decision_date,
judicature_decision_number,
judicature_name,
litigation_number,
judicature_decision_applying_date,
criminal_action_type,
criminal_code_article,
offence_description,
work_position,
work_place,
residence,
offence_method,
is_personal)
VALUES ('Іванов', 'Петро', 'Васильович', '87654321', 'ВК', '123456', '1986-02-10', 'м. Житомир',
'1997-02-13 ДМА у м. Житомир', '2019-05-29',
'01/05/2019-3',
'Київський міський суд у Печерському районі', '1234567AD', '2019-05-30', 'вимагання
хабаря', 34,
'вимагав у громадянина Іванова Василя Петровича хабар в розмірі 1000$',
'сільрада с. Соковики',
'голова сільради с. Соковики', 'громадянин України',
'Дисциплінарне взискання, вилучення особистого майна, 5 років тюрми загального режиму',
TRUE);
COMMIT;
search_personal_pccos.sql
SELECT id,
first_name,
last_name,
surname,
personal_code,
passport_series,
passport_code,
dob,
place_of_birth,
passport_issuing_authority,
judicature_decision_date,
judicature_decision_number,
judicature_name,
litigation_number,
judicature_decision_applying_date,
criminal_action_type,
criminal_code_article,
offence_description,
work_position,
work_place,
residence,
offence_method,
is_personal
FROM pccos
WHERE pccos.first_name LIKE '%Іван%'
AND pccos.last_name LIKE '%Петров%'
AND pccos.is_personal = TRUE
AND pccos.is_active
deactivate_pccos.sql
UPDATE pccos
SET is_active= FALSE
WHERE id = 1
Таблиця 5. Створення запису логу про оновлення відомостей про ОВКП
insert_pccos_updates_log.sql
START TRANSACTION;
INSERT INTO pccos_updates_logs (user_id, affected_record_id, old_values, new_values, type,
updation_reason)
VALUES (1234, 4321, '{
"first_name": "Іван"
}', '{
"first_name": "Григорій"
}', 'UPDATE_PCCO', 'Постанова районого суду міста Київ № 123')
END;