
- •Задание на работу
- •1.1. Разработать проект каркаса для работы со спецификациями изделий
- •1.2. Содержание работы
- •Аннотация
- •Введение
- •2. Описание выполненной работы
- •2.1. Разработка функциональных требований к подсистеме
- •2.2. Разработка проектной модели классов
- •2.4. Разработка модели хранения
- •2.5. Разработка поддерживающих процедур
- •2.5.1. Процедура, создающая запись в таблице «acceptable_components»:
- •2.5.2. Процедура, создающая запись в таблице «prod_position_union»:
- •2.5.3. Процедура, удаляющая запись в таблице «prod_position_union»:
- •2.5.4. Процедура, удаляющая запись в таблице «acceptable_components»:
- •2.5.5. Процедура, меняющая количество в таблице «prod_position_union»:
- •2.5.6. Процедура наследование допустимых составов в таблице «acceptable_components»:
- •2.5.7. Процедура получения списка допустимых компонентов для данного класса из таблицы «acceptable_components»:
- •2.5.8. Процедура рекурсивного получения списка допустимых компонентов нижнего уровня для данного класса из таблицы «acceptable_components»:
- •2.5.9. Процедура получения списка компонентов для данного объекта (продукции) из таблицы «prod_position_union»:
- •2.5.10. Процедура рекурсивного получения списка компонентов нижнего уровня для данного объекта (продукции) из таблицы «prod_position_union»:
- •2.5.11. Процедура получения списка компонентов определенного класса для данного объекта (продукции) из таблицы «prod_position_union»:
- •2.5.12. Процедура рекурсивного получения списка компонентов нижнего уровня и определенного класса для данного объекта (изделия) из таблицы «prod_position_unioin»:
- •2.5.13. Процедура получения списка объектов, которые могут быть компонентами данного объекта (продукции):
- •2.5.14. Процедура рекурсивного получения списка объектов, которые могут быть компонентами нижнего уровня данного объекта (продукции):
- •2.6. Тестирование процедур
- •2.6.1. Тестирование процедуры, создающей запись в таблице «acceptable_components»:
- •2.6.2. Тестирование процедуры, создающей запись в таблице «prod_position_union»:
2.6. Тестирование процедур
За основу возьмем работу прошлого семестра, где уже реализована часть функционала.
Для наших тестов добавим к категории “столы” следующие подкатегории:
итог:
Также добавим следующую
продукцию к уже имеющимся:
итог:
2.6.1. Тестирование процедуры, создающей запись в таблице «acceptable_components»:
Для класса с id = 3 (столы) применим:
create_acceptable_component(3, 24) # для стола - ножка стола
create_acceptable_component(3, 27) # для стола - столешница стола
итог:
Добавим так же составные части ножки и столешницы:
create_acceptable_component(24, 25) # для ножки стола - основание ножки
create_acceptable_component(24, 26) # для ножки стола - крепление ножки
create_acceptable_component(27, 28) # для столешницы стола - основание столешницы
create_acceptable_component(27, 29) # для столешницы стола - крепление столешницы
Итог:
2.6.2. Тестирование процедуры, создающей запись в таблице «prod_position_union»:
Создадим записи в таблице prod_position_union:
create_prod_position_union(1, 13, 4) # ножки стола
create_prod_position_union(13, 14, 4) # основание ножки стола
create_prod_position_union(13, 15, 4) # крепление ножки стола
create_prod_position_union(1, 16, 1) # столешница стола
create_prod_position_union(16, 17, 1) # основание столешница стола
create_prod_position_union(16, 18, 4) # крепление столешница стола
итог:
2.6.3. Тестирование процедуры, удаляющей запись в таблице «prod_position_union»:
delete_prod_position_union(1, 13) # у стол_arizone уберем ножка_стола_стальная
2.6.4. Тестирование процедуры, удаляющей запись в таблице «acceptable_components»:
delete_acceptable_component(4, 24) # у категории категория столы-металл удалим ножка стола
2.6.5. Тестирование процедуры, меняющей количество в таблице «prod_position_union»:
edit_prod_position_union_quantity(1, 13, 2345)
итог:
2.6.6. Тестирование процедуры наследования допустимых составов в таблице «acceptable_components»:
inherit_acceptable_components(4) # работает, унаследовали от 3 категории (стол) компоненты для 4 (категория столы-металл)
итог:
2.6.7. Тестирование процедуры получения списка допустимых компонентов для данного класса из таблицы «acceptable_components»:
find_acceptable_components_by_class(3) # для категории столы найдем допустимые компоненты по классу
итог:
2.6.8. Тестирование процедуры рекурсивного получения списка допустимых компонентов нижнего уровня для данного класса из таблицы «acceptable_components»:
Делаем то же самое, но рекурсивно
find_acceptable_components_by_class_recursive(3) # для категории столы найдем допустимые компоненты по классу РЕКУРСИВНО
Видно, что показало еще компоненты и для составных частей
2.6.9. Тестирование процедуры получения списка компонентов для данного объекта (продукции) из таблицы «prod_position_union»:
find_components_by_object(1) # для стол_arizone (объект) найдем компоненты
итог:
2.6.10. Тестирование процедуры рекурсивного получения списка компонентов нижнего уровня для данного объекта (продукции) из таблицы «prod_position_union»:
Для того же стола найдем рекурсивно
find_components_by_object_recursive(1) # для стол_arizone (объект) найдем компоненты РЕКУРСИВНО
итог:
2.6.11. Тестирование процедуры получения списка компонентов определенного класса для данного объекта (продукции) из таблицы «prod_position_union»:
Для этого же стола найдем компоненты по id объекта и id класса (смотрим по столешнице)
find_components_by_object_and_class(1, 27) # class_id: 24 - ножка; 27 - столешница
итог:
2.6.12. Тестирование процедуры рекурсивного получения списка компонентов нижнего уровня и определенного класса для данного объекта (изделия) из таблицы «prod_position_unioin»:
Сделаем то же самое рекурсивно (снова посмотрим по столешнице):
find_components_by_object_and_class_recursive(1, 27) # class_id: 24 - ножка; 27 - столешница
итог:
2.6.13. Тестирование процедуры получения списка объектов, которые могут быть компонентами данного объекта (продукции):
find_existing_acceptable_components_by_object(1) # для стола arizone получим список объектов, которые могут быть компонентами данного объекта
итог:
2.6.14. Тестирование процедуры рекурсивного получения списка объектов, которые могут быть компонентами нижнего уровня данного объекта (продукции):
find_existing_acceptable_components_by_object_recursive(1) # для стола arizone получим список объектов, которые могут быть компонентами данного объекта рекурсивно
итог:
Список используемых источников
1. Data Definition Guide : файл DataDef.pdf
2. Language Reference Guide: файл LangRef.pdf
3. Архитектура информационных систем. Учебник. М.,Издательский центр «Академия», 2012
4. Информационное обеспечение жизненного цикла изделий. Учебное пособие: СПб, Издательство Политехнического университета, 2012
5. Приемы объектно-ориентированного проектирования. Паттрны проектирования: Изд-во «ПИТЕР», 2008
6. Проектирование корпоративных информационных систем.: СПб, Изд-во СПбГЭТУ «ЛЭТИ», 2013
7. В.А.Дубенецкий, А.Г. Кузнецов Использование объектных моделей при создании информационных систем: учебно-методическое пособие. СПбГЭТУ «ЛЭТИ», 2016. 220 с.
8. В.А.Дубенецкий, А.Г. Кузнецов Проектирование информационных систем с использованием UML: учебно-методическое пособие. СПбГЭТУ «ЛЭТИ», 2016. 62 с.