2.5 Стадии и этапы разработки
Стадии и этапы разработки, содержание работ и сроки выполнения приведены в таблице 2.1.
2.6 Порядок контроля и приемки
В процессе разработки программы «Обучающая программа построению запросов в процедурном виде» должны проводиться: 1) проектирование и отладка программы; 2) предварительные испытания; 3) опытная эксплуатация; 4) ввод в действие.
Предварительные испытания должны проводиться разработчиком в лабораториях кафедры системного программного обеспечения Одесского национального политехнического университета.
Опытная эксплуатация программы должна проводиться разработчиком в лабораториях кафедры системного программного обеспечения с целью опробования функционирования программы в реальных условиях эксплуатации и корректировки программ и программной документации с учетом потребностей пользователя.
Продолжительность опытной эксплуатации составляет 2 недели.
Таблица 2.1 Стадии и этапы разработки
Стадии разработки | Этапы работ | Содержание работ | Сроки выполнения |
Изучение предметной области | Изучение особенностей реляционных операций | Исследование основных составляющих запросов и способов их реализации в виде последовательности реляционных операций | 31.01.10 |
Техническое задание | Разработка технического задания | Разработка технического задания, экономическое обоснование | 01.03.10 |
Эскизный проект | Эскизное проектирование | Разработка функционального описания | 15.03.10 |
Рабочий проект | Разработка прикладных программ | Реализация и отладка программ Разработка программной документации | 15.04.10 |
Испытания программы | Проведение предварительных испытаний | 07.05.10 | |
Проведение опытной эксплуатации | 21.05.10 |
3 Проектирование программы обучения реляционной алгебре
3.1 Анализ предметной области
Программа предназначена для обучения применению реляционной алгебры Кодда, которая включает девять операций: объединение, пересечение, разность, произведение, выборка, создание проекций, соединение, деление и присвоение.
Первые четыре операции взяты из математической теории множеств и практически совпадают с операциями теории множеств. Что понятно, так как реляционные таблицы являются множествами. Следующие четыре – новые операции, относящиеся только к реляционной модели данных. Последняя – присвоение – стандартная операция компьютерного языка, дающая имя величине. В данном случае производится присвоение имени новой таблице, созданной из существующих таблиц.
При выполнении операций объединения, пересечения и разности участвующие в них отношения должны удовлетворять свойству совместимости по объединению. Два отношения совместимы по объединению (или просто совместимы), если они имеют одну и ту же степень (т.е. одно и то же число атрибутов) и совпадающие атрибуты, причем значения атрибутов в каждой паре одинаковых атрибутов из обоих отношений должны быть элементами одного и того же домена.
Объединением двух совместимых таблиц R1 и R2 называется таблица R, состоящая из всех строк, принадлежащих хотя бы одной из таблиц R1, R2.
Пересечением двух совместимых таблиц R1 и R2 называется таблица R, состоящая из всех строк, являющихся общими для таблиц R1, R2.
Разностью двух совместимых таблиц R1 и R2 называется таблица R, состоящая только из тех строк таблицы R1, которые отсутствуют в таблице R2.
Декартовым произведением двух таблиц R1 и R2 (необязательно совместимых) называется таблица R, состоящая из всех таких строк, каждая из которых есть конкатенация двух строк, по одной из таблиц R1 и R2, причем на первом месте должна быть строка из R1.
Операции объединения, пересечения и декартова произведения могут быть обощены на произвольное число участвующих в них таблиц.
Выборка - это операция реляционной алгебры, производящая отбор строк из таблицы на основании некоторого условия.
Создание проекций - операция реляционной алгебры, создающая новую таблицу путем исключения столбцов из существующей таблицы.
Проекция - реляционная таблица, полученная в результате создания проекций.
Соединение - операция реляционной алгебры, связывающая таблицы. У нее есть несколько версий:
Естественное соединение - операция соединения, связывающая таблицы, когда общие столбцы имеют равные значения.
Тета-соединение - это соединение с определенным условием, в котором участвуют столбцы из каждой таблицы. Оператор сравнения может быть любой:
JOIN (A,B: X d Y), где d обозначает операцию сравнения.
Если используется операция «=», то соединение также называется эквисоединением.
Внешнее соединение – расширяет естественное соединение, гарантируя, что каждая запись из обеих исходных таблиц будет представлена в результирующей таблице хотя бы один раз. Внешнее соединение выполняется в два этапа. Сначала выполняется обычное соединение. Затем, если какая-либо строка одной из исходных таблиц не подходит ни к какой строке второй таблицы, она включается в таблицу соединения, а все дополнительные столбцы заполняются пустыми значениями. Обозначение: OUTER JOIN (A,B). Возможно также левое и правое соединения, при которых в результирующую таблицу включаются только строки из одной таблицы.
Деление – операция реляционной алгебры, создающая новую таблицу путем выбора строк одной таблицы, соответствующих каждой строке другой таблицы.
Программа может работать в двух режимах: обучающем и контролирующем.
В обоих режимах необходимо наличие множества вопросов. Таким образом, необходим еще один компонент программы – формирования вопросов.
Каждый вопрос представляет собой текст запроса к учебной БД. Пользователю для ввода ответа на вопрос необходимо представить текст запроса и информацию о БД, к которой направляется запрос. Удобно представлять информацию о БД в виде графической схемы данных.
Ответ на вопрос должен вводиться в виде последовательности операций реляционной алгебры.
Особенностью данной предметной области является то, что один и тот же результат запроса может быть получен различными способами. Это могут быть последовательности различных операций реляционной алгебры. Либо это могут быть различные последовательности одних и тех же операций.
Например, пусть БД состоит из таблиц Товар (Идентификатор, Название) и Продажа (Дата, Идентификатор товара, Количество, Цена).
Необходимо получить результат запроса «Какой товар продавали в количестве более 100». Ответ можно представить в виде следующих последовательностей.
Первая последовательность:
R1=JOIN (Товар, Продажа, Идентификатор товара=Товар)
R2= s (R1, Количество>100)
R3=p (R2, Название)
Вторая последовательность:
R1= s (Продажа, Количество>100)
R2=JOIN (Товар, R1, Идентификатор товара=Товар)
R3=p (R2, Название)
Необходимо получить результат запроса «Какой товар ни разу не продавали». Ответ можно представить в виде следующих последовательностей.
Первая последовательность:
R1= LEFT JOIN (Товар, Продажа, Идентификатор товара=Товар)
R2= s (R1, Идентификатор товара=NULL)
R3=p (R2, Название)
Вторая последовательность:
R1=p (Продажа, Идентификатор товара)
R2=p (Товар, Идентификатор)
R3=R2-R1
R4=JOIN (Товар, R3, Товар.Идентификатор = R3.Идентификатор)
R5=p (R4, Название)
При этом во второй последовательности возможны варианты порядка следования операций, например, можно поменять местами первую и вторую операцию, при этом измениться третья операция, так как для операции разности существенен порядок операндов.
Проверка правильности введенного ответа может выполняться двумя способами.
Первый способ предполагает сравнение ответа с эталонным множеством ответов. При этом важное значениек5 имеет полнота введенных ответов, то есть качество заполнения внутренней БД.
Вторым способом проверки является выполнение введенного ответа и эталонного запроса. Здесь также важным является качество заполнения учебной БД, так как некоторые запросы могут давать верный результат при одном наборе данных, но оказываться неверными при других данных. Поэтому в этом случае также важным является качество заполнения исходных данных.
Таким образом, администратор программы должен обеспечить следующее.
Должна быть учебная БД с заполненными таблицами. Таблицы должны быть заполнены такими данными, чтобы можно было проверить правильность выполнения запроса в любом случае.
Для выполнения запроса к БД должна быть возможность соединения с учебной БД.
Учебных БД может быть несколько.
К каждой БД может быть составлено множество запросов, на каждый запрос может быть множество ответов.
Пользователь должен иметь удобный интерфейс для ввода последовательности операций.
Ему должна быть предоставлена возможность выбрать требуемую операцию. В зависимости от выбранной операции должен быть предусмотрен ввод одного или двух операндов, а также дополнительной информации.
В качестве дополнительной информации используется следующая. Для операции выборки – условие выбора; для операции проекции – множество полей таблицы, которые попадут в результирующую таблицу; для операции соединения – условие соединения.
При вводе условий необходимо предоставить возможность выбора операции сравнения и множества стандартных констант типа TRUE, FALSE, NULL.
При проверке правильности ответа необходимо учесть зависимость и независимость порядка операндов.
Например, для операции объединения порядок операндов несущественен, для операции внутреннего соединения тоже, но при выполнении операции левого соединения порядок существенен. При этом эквивалентны операции:
R1= LEFT JOIN (A, B, условие соединения)
и
R1= RIGHT JOIN (B, A, условие соединения).
Таким образом, проверка правильности введенного ответа не может выполняться простым сравнением эталона и введенного текста.
Необходимы алгоритмы интеллектуального сравнения с учетом особенностей предметной области.
При вводе очередной n-й операции последовательности ее результату присваивается стандартное имя Rn. Это имя добавляется в список возможных операндов следующей операции.
При вводе ответа пользователь также должен иметь возможность изменять порядок введенных операций. При этом должны изменяться имена результирующих таблиц во всех операциях, в том числе использованных как операнды.
В режиме обучения пользователь должен иметь возможность просматривать результат запроса в целом, или результат выбранной операции в введенной им последовательности.
Для этого программа должна уметь преобразовывать операцию (последовательность операций) в запрос к БД.
В режиме контроля должен формироваться балл за введенный ответ. При этом администратор должен иметь возможность установить максимальный балл для каждого введенного во внутреннюю БД вопроса. Программа должна оценивать ответ не только по принципу Верно/Неверно, но выставлять оценку как процент от максимального балла в зависимости от качества введенного ответа.
Введенные ответы должны сохраняться во внутренней БД с указанием полученного за них балла.
Пользователь должен иметь возможность просмотреть полученные им вопросы, введенные ответы и полученные результаты. Эта информация должна распечатываться на принтере.
... Сэл.эн.каб.=n*b*Pлам*Сквт/ч, где Сэл.эн.каб. - затраты на электроэнергию для освещения кабинета (руб.) n - количество часов, необходимых для разработки одной программы = 98 b - количество ламп в кабинете= 24 Рлам - мощность, потребляемая 1 лампочкой за 1 час. При разработке программы составила 0,04 квт Сквт/ч - стоимость 1 квт/ч, равна 1,45 руб. Подставив значения в формулу, получим: Сэл ...
... свободного пространства Видео: Любое ОC: Windows'95 – XP SP2 Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется. 2. Разработка рабочего проекта 2.1 Разработка программы Для разработки приложения «Helpopr» используется среда программирования Turbo Pascal 7.0. Проект программы содержит основное окно выбора «Меню»[8]; Список глобальных переменных ...
... ) ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ И ПРИБОРОСТРОЕНИЯ КАФЕДРА КЭС группа Э-92 ДАТА ЗАЩИТЫ апреля 1997 г. Отзыв на дипломную работу студента гр.Э-92 Сорокина Ю.В. “Разработка программы контроллера автоматически связываемых объектов для управления конструкторской документацией в среде Windows 95/NT”. Широкое использование вычислительной техники в народном хозяйстве требует увеличения производства и ...
... продукта и создание удобных карточек заполнения атрибутов БД: простота создания связей и их модернизация. Глава II. Разработка программы для автоматизации деятельности таксопарка 2.1 Анализ требований заказчика Программа Автоматизированное рабочее место диспетчера такси разработана по спиральной модели жизненного цикла автоматизированных информационных систем. На каждом этапе создания ...
0 комментариев