Смекни!
smekni.com

Основные сведения о СУБД (стр. 5 из 6)

Критерии отбора – это номер дома и месяц. Эти параметры задаются путем выбора значений из списков в верхней части экрана. При изменении текущих дома или месяца происходит автоматическое сохранение предыдущих данных в БД, после чего обновляется содержимое некоторых элементов управления.

При изменении номеров домов и квартир в случае, если такой номер уже имеется в БД, пользователь извещается об этом, и ему предлагается изменить значение поля.

При изменении данных, влияющих на расход электроэнергии за месяц, происходит перерасчет вычислимых полей в окне данных с информацией по квартирам дома.

Операции над домами:

- модификация. При изменении номера дома происходит немедленное автоматическое сохранение данных и обновление списка домов;

- удаление. При этом у пользователя запрашивается подтверждение на выполнение этой операции;

- добавление. При этом месяный тариф устанавливается равным значению по умолчанию (меню “Вид”->“Параметры”). Активным становится окно данных для ввода постоянной информации о доме. При выходе из него, т.е. когда оно теряет фокус ввода, производится запрос на сохранение введенных данных, т.е. добавление записей в соответствующие таблицы.

Операции над квартирами:

- модификация;

- удаление;

- добавление. При этом квартире присваивается номер, равный максимальному номеру среди всех остальных квартир плюс единица;

- сортировка. Выполняются при щелчке мышью на одном из заголовков столбцов в таблице квартир. Первый щелчок на заголовке приводит к выполнению сортировки по возрастанию данных (Ascending), а повторный – по убыванию (Descending).

Рядом с каждой записью с информацией по квартире находится кнопка “Приборы”, нажатие которой вызывает диалог редактирования приборов данной квартиры:

- в верхней его части отображаются номера квартиры и дома, а также месяц, для которого приводятся данные. В данном окне изменять можно только текущий месяц;

- при изменении месяца или выходе из диалога выводится запрос для подтверждения сохранения данных (если они были изменены);

- при модификации данных по приборам автоматически обновляется поле “кВ/ч в день”, отображающее суточное потребление энергии квартирой;

- кнопка “Копировать” осуществляет копирование информации о приборах в квартире для текущего месяца во все остальные месяцы года;

- кнопка “Undo” отменяет все изменения, сделанные в списке приборов текущего месяца. “Приборы” – работа со списком приборов, которые могут иметься в квартирах. Каждый прибор идентифицируется своим именем и потребляемой мощностью.

При удалении прибора из списка происходит перерасчет информации в БД, зависящей от расхода электроэнергии. Это необходимо делать потому, что удаляемый прибор может влиять на эти данные, если он имеется в списках приборов для квартир.

При выходе из этого диалогового окна программа проверяет, были ли сделаны изменения мощности имеющихся в БД приборов. В случае обнаружения такой ситуации также производится перерасчет данных для квартир (и, соответственно, домов), содержащих такие приборы.

3) “Отчет”

а) “Дома” – отчет по домам. Пользователь выбирает из списков в верхней части окна дом и месяц, по которым он желает получить отчет. Возможно также задание всех домов и (или)всех месяцев одновременно. В этом случае просмотр отчетных данных, которые в данный момент не отображаются, осуществляется с помощью полосы прокрутки.

Отображаемые данные:

информация о доме (его номер, число квартир и жильцов);

тариф и сумма, необходимая для погашения расходов на электроэнергию для дома в указанном месяце.

4) “Вид”

а) “Toolbar” – управление видимостью панели инструментов;

б) “Параметры” – изменение месячного тарифа, устанавливаемого по умолчанию при добавлении нового дома.

Программа и методика испытаний

Отладка программы

Простая истина состоит в том, что человек несовершенен, поэтому все мы допускаем ошибки, что является совершенно нормальным явлением как в повседневной жизни, так и в программировании. Редко кому удается с первого раза написать программу без ошибок. Их появление в программе заставляет программиста многократно проверять все с самого начала. Совокупность действий по обнаружению и устранению ошибок в программировании называется отладкой.

Процесс отладки в общем случае можно разделить на четыре этапа:

Обнаружение ошибки

Этот этап является наиболее очевидным. Компьютер либо "зависает" во время работы программы, либо происходит сбой, который проявляется в выдаче на экран бессмысленной информации. Однако, в некоторых случаях ошибка не проявляется так очевидно. Программа может работать хорошо до тех пор, пока не будет введено некоторое число ( например, 0 или отрицательное число ), или пока не будет тщательно проверена выдаваемая ею информация. Только после такой проверки можно обнаружить, что результат отличается от ожидаемого.

Поиск ее местонахождения

Этот этап иногда является самым трудным. Он заключается в том, чтобы найти место в программе, где находится ошибка. Просто невозможно держать в голове всю программу сразу ( если эта программа не очень маленькая ). Лучший подход – это "разделяй и властвуй", т.е.разбивать программу на части и отлаживать их отдельно друг от друга.

Определение причины ошибки

Этот этап, выяснение причины ошибки, возможно, является второй наиболее трудной стадией отладки. После того, как будет определено местонахождение ошибки, обычно становится несколько проще определить причину неправильной работы программы. Например, если программист определил, что ошибка находится в какой-то конкретной функции, то ему достаточно просмотреть текст только этой процедуры, а не всей программы. Но даже в этом случае ошибка может оказаться настолько "неуловимой", что придется немного поэкспериментировать, прежде удасться ее локализовать.

Исправление ошибки

Этот этап заключается в исправлении ошибки. Вооружившись знанием языка программирования и знанием местонахождения ошибки, разработчик устраняет ее. После этого он снова запускает программу, с трепетом ожидая появления следующей ошибки.

Отладка программы велась в течение в течение всего срока разработки. Возникавшие в ее ходе ошибки можно разделить на три группы:

- ошибки в алгоритмах вычислений;

- ошибки, заключающиеся в неправильном выборе критериев для получения информации из БД;

- ошибки, связанные с некорректным взаимодействием элементов управления между собой.

Средством отладки являлся интегрированный отладчик среды разработки приложений Power Builder 7.0. Его возможности отладки не, безусловно, не могут сравниться с полноценными отладчиками, такими как Turbo Debugger, Soft-Ice, Codeview, но, при этом, он реализует набор отладочных функций, позволяющих достаточно быстро локализовать и устранить ошибку:

- просмотр программных объектов в виде дерева с возможностью выбора текста сценария обработки события или пользовательской функции;

- возможность просмотра значений переменных, как объектов, т.е. с иерхическим представлением их структуры;

- автоматическое отображение переменных следующих типов:

- глобальные;

- локальные;

- переменные экземпляра объекта;

- переменные родительского класса;

- разделяемые переменные – данные, которые доступны всем объектам, содержащимся внутри объекта-контейнера (например, окна);

- объекты в памяти;

- средства просмотра значений выражений, а также модификация значений переменных;

- возможность просмотра стека вызовов и переключения контекста для просмотра значений переменных на любом уровне вложенности вызовов функций;

- установка точек останова, а также задание условий для их срабатывания;

- при возникновении ошибки отладчик выдает на экран сообщение о ее местонахождении в коде программы;

- возможность удаленной отладки.

Тестирование программы

По окончании разработки, программное средство подверглось тщательному тестированию. Оно заключалось в следующем:

а) Выполнение стандартных действий по работе с данными.

С помощью программы выполнялись операции добавления – удаления – редактирования данных о расходе электроэнергии. При этом не было замечено никаких отклонений от нормального хода выполнения программы, т.е. все ее действия были предсказуемы. Также не наблюдалось никаких неточностей, касающихся вычислительных алгоритмов, т.е. суммы расходов электроэнергии в кВ/ч и денежное их выражение соответствовали предварительно вычисленным.

Тестирование выполнялось на довольно значительном массиве данных – количество домов достигало 20-ти, и количество квартир в них варьировалось от 10 до30-ти. При этом каких-то значительных временных задержек при загрузке или сохранении информации в БД замечено не было.

Однако при редактировании списка приборов (изменении мощности или их удалении) время обработки иногда доходило до 7-8 сек. Это можно объяснить особенностями формата представления данных о приборах в таблице FLAT_V.

б) Создание нестандартных ситуаций, требующих особой обработки.

Создавались исключительные ситуации типа ввода неправильных данных в поля числового типа, ввода отрицательных значений и т.п. При этом программа корректно обрабатывала эти ситуации, выдавая пользователю сообщения об ошибке и передавая фокус ввода тому элементу управления, который содержит неправильные данные.

Другой исключительной ситуацией является оставление незаполненными тех полей данных, которые должны содержать информацию. Это событие обрабатывается аналогичным образом.

При вводе номеров дома и квартиры пользователь, умышленно или случайно, может ввести значения, которые уже содержатся в БД. При этом он будет предупрежден о возникшей ситуация и программа оставит данные без изменения, даже если пользователь сразу после изменения значения поля захочет выйти из диалогового окна.