Глава 6. Общие правила написания кода программы

advertisement
Областное государственное образовательное учреждение
среднего профессионального образования
«Северский промышленный колледж»
Утверждаю
Директора по УМР
Н.Н. Лазаренко
«___» _____________ 2008 г.
С.П. Колотовкин
СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОЙ
И ДИПЛОМНОЙ РАБОТЫ
Руководство по выполнению курсовых и дипломных работ
специальности 2203
Северск – 2008
Утверждено ОМС
____________2008 г.
УДК 681.51.001:681.3 (075.8)
Колотовкин С.П. Структура и содержание курсовой и дипломной работы/ Руководство
по выполнению курсовых и дипломных работ специальности 2203. - Северск: Изд. СГТИ,
2005. – 25 с.
Руководство предназначено в помощь студентам колледжа по специальности 2203
«Программное обеспечение вычислительной техники и автоматизированных систем».
В
руководстве приведены требования к структуре и содержанию каждого из разделов, а где
необходимо и подразделов пояснительной записки курсовой и дипломной работы.
В руководстве приведен пример разработки и описания не большого приложения в
соответствии со структурой и содержанием данного руководства и необходимый в процессе
разработки приложения теоретический материал.
Рассмотрено на заседании комиссии программирования протокол № __ от _____2008г.
Рецензент: Зав. каф. ЭАФУ, к.т.н., доцент
В.Я. Дурновцев
Редактор:
Л.М. Трухина
Подписано к печати
Формат бумаги 60*84/16
Тираж __ экз.
Печать RICON
Заказ
Объем
п.л.
Издательская лаборатория СГТИ лиц. ИД № 00407 от 02.11.1999 г.
636070, Томская обл., г. Северск, пр. Коммунистический, 65
Отпечанано в СГТИ
2
Содержание
Глава 1. Структура и содержание раздела «Введение» …………………………
4
Глава 2. Структура и содержание основного раздела пояснительной записки..
4
Глава 3. Структура и содержание раздела «Заключение» ………………………
7
Глава 4. Структура и содержание раздела «Литература» ………………………
7
Глава 5. Структура и содержание раздела «Приложения» ……………………..
8
Глава 6. Общие правила написания кода программы …………………………..
8
Глава 7. Тактика программирования ……………………………………………..
9
Глава 8. Как уменьшить количество ошибок в коде программы ……………….
9
Глава 9. Оптимизация приложений ………………………………………………
10
Глава 10. Оптимизация скорости …………………………………………………
11
Глава 11. Оптимизация памяти …………………………………………………..
13
Глава 12. Оптимизация размера графики ………………………………………..
14
Глава 13. Четыре правила нормализации таблиц ……………………………….
14
Глава 14. Пример разработки приложения ………………………………………
15
Глава 15. Тестирование приложения …………………………………………….
24
3
Глава 1. Структура и содержание раздела «Введение»
Введение должно содержать:
- характеристика современного состояния решаемой технологической проблемы в
нашей стране и за рубежом;
- основные требования научно-технического прогресса к расширению
производства продукции, улучшению ее качества, совершенствованию технологии и т.п.;
- формулировка цели проекта и пути решения поставленной задачи;
- назначение и область применения проектируемого ПО, актуальность разработки;
- краткая характеристика существующих программных продуктов данного
функционального назначения в нашей стране и за рубежом, их недостатки;
- основные пути решения поставленной задачи;
- оценка народно-хозяйственной потребности.
Примечание. Разделы: СОДЕРЖАНИЕ, ВВЕДЕНИЕ, НАИМЕНОВАНИЕ ТЕМЫ ДП
(ДР) , ЛИТЕРАТУРА, ПРИЛОЖЕНИЕ Х на листах содержания и в тексте ПЗ не нумеруются и
должны быть отцентрованы. Все буквы прописные (заглавные).
Глава 2. Структура и содержание основного раздела пояснительной записки
Предлагаемая
ниже
структура
ПЗ
предполагает
использование
объектно-
ориентированных языков программирования, например: VB, Access, Delphi и т.п.
1 Наименование темы (КП или ДП)
1.1 Постановка задачи
1.1.1 Характеристика комплекса задач(и)
- цель, назначение, технико-экономическая сущность комплекса задач и обоснование
целесообразности его решения;
- описание процедур использования выходной информации (см. п. 1.1.2);
- периодичность решения и ограничения по срокам выдачи выходной информации;
- требования к организации сбора и передачи в обработку входной информации,
порядку ее контроля и корректировки.
4
1.1.2 Выходная информация
Перечень и описание выходных сообщений. В описании по каждому выходному
сообщению следует указывать:
- идентификатор;
- форму представления (документ, видеограмма);
- периодичность выдачи;
- сроки выдачи;
- получателей информации.
1.1.3 Входная информация
Перечень и описание входных сообщений. В описании по каждому входному
сообщению следует указывать:
- наименование;
- требуемую точность ее числового значения (при необходимости);
- форму представления сообщения и частоту поступления;
- источник информации (документ, видеограмма).
1.1.4 Организация и ведение информационной базы (Актуализация БД)
- перечень баз данных и массивов информации с указанием логических связей между
ними. (Описание выполняют в соответствии с требованиями выбранной СУБД);
- последовательность процедур при создании и обслуживании базы с указанием (при
необходимости) регламента выполнения процедур и средств защиты базы от разрушения и
несанкционированного доступа, а также с указанием связей между массивами баз данных и
массивами входной информации.
5
1.1.5 Технологический процесс обработки данных
- состав и последовательность выполнения операций по сбору, регистрации, обработке,
контролю и передаче данных на ВЦ;
- перечень документации, сопровождающей данный технологический процесс;
- состав и последовательность выполнения операций по приему, контролю, обработке,
и других операций, выполняемых техническими средствами ВЦ;
- перечень документации, сопровождающей данный технологический процесс.
В приложение
включают
чертежи форм документов для входной и выходной
информации, а также другие материалы по усмотрению разработчика.
1.2 Проектирование
1.2.1 Создание информационной модели данных (на основе ручной технологии)
-
определить: задачи, объекты, процессы;
-
схема взаимодействия задач, объектов и процессов;
-
укрупненная схема приложения на основе схемы взаимодействия
задач .
1.2.2
Создание модели объектов
-
представление требований заказчика в форме моделей, которые
включают объекты приложения и связанные с ним свойства, методы и
события.
1.2.3
1.2.4
Создание технического проекта (выполняется параллельно с п. 1.2.4)
-
учет требований к аппаратно-программному обеспечению заказчика;
-
возможность экспорта данных по ЭП (в ЛВС, по )
-
возможность импорта данных из других источников БД.
Создание концептуального прототипа (Заготовка рабочая)
-
графический интерфейс пользователя;
-
укрупненная схема алгоритма приложения;
-
написание кода программы (с необходимыми коментариями);
6
-
схема (ы) алгоритмов процедур;
-
разработка тестовой БД;
-
тестирование (отладка);
-
выводы по результатам тестирования.
Глава 3. Структура и содержание раздела «Заключение»
Заключение должно содержать:
 краткие выводы по результатам выполненной работы (достигнута ли цель,
поставленная в постановке задачи?);
 краткие выводы по результатам отдельных этапов работы (если ДР по данной
теме выполнялась более чем одним студентом);
 возможность внедрения;
 оценку технико-экономической эффективности;
 методы повышения эффективности разработки (включение новых функций,
свойств и т.п.);
 технические
характеристики
разработки
(минимальное
аппаратно
-
программное обеспечение для надежной работы программы).
Глава 4. Структура и содержание раздела «Литература»
Раздел “Литература” пояснительной записки оформляется списком, включающим в
себя библиографические сведения о печатных изданиях, использованных автором проекта, на
которые в тексте имеются прямые ссылки. Наиболее часто используют список с алфавитным
расположением записей или нумерованных в последовательности первых упоминаний
произведений в тексте записки. Последняя форма записи облегчает работу преподавателей и
руководителей проектов по сверке основного текста, со списком литераторы, поэтому для
студенческих работ желательна именно эта форма.
Библиографические сведения о печатном издании приводят в установленной стандартами
последовательности в объеме, необходимом для идентификации и разыскания оригинала
этого издания В студенческих проектах, как правило, приводят только обязательные элементы
библиографического описания. (см. руководство «Выполнение курсовой и дипломной
работы» с. 23)
7
Глава 5. Структура и содержание раздела «Приложения»
Приложения оформляют как продолжение ПЗ на последующих его листах и должны
иметь общую с основным текстом нумерацию. В тексте документа на все приложения должны
быть ссылки.
Каждое приложение следует начинать с новой страницы с указанием вверху слова
"Приложение А" и отцентровать. Под словом "Приложение А" в скобах пишется слово
"обязательное" для обязательного или слово "справочное" для информационного. После чего
записывается заголовок и отцентровать его. (см. руководство «Выполнение курсовой и
дипломной работы» с. 26)
Все приложения должны быть перечислены в содержании с указанием их заголовка и
номера страницы приложения.
В приложения включают чертежи форм (или ксерокопии) документов для входной и
выходной информации, схемы алгоритмов и программ, текст программы (процедур) с
комментариями, а также другие материалы по усмотрению разработчика.
При необходимости в приложения следует включать вспомогательный материал,
необходимый для полноты отчета:
- промежуточные математические доказательства, формулы и расчеты;
- таблицы вспомогательных цифровых данных;
- иллюстрации вспомогательного характера;
- протоколы и акты испытаний.
Глава 6. Общие правила написания кода программы
В
мире
программирования
существуют
общие
правила,
которых
стараются
придерживаться все программисты, независимо от используемых языка и среды разработки.
Эти правила касаются написания программного кода (исходного текста программы) и имеют
целью повысить его легкость для чтения, и в конечном счете снизить число ошибок.
а) Необходимо писать код программы как можно более простым и обязательно
снабжать его комментариями.
1) Каждая процедура или функция должна сопровождаться комментарием,
поясняющим,
что
эта
функция
или
процедура
делает.
Необходимо
8
комментировать смысл и назначение параметров, а также любые особенности
реализации, кроме очевидных.
2) Комментировать следует объявление тех переменных, которые играют
существенную роль в работе программы.
3) Все фрагменты кода, важные для понимания алгоритма работы программы,
тоже должны быть прокомментированы.
б) Код должен быть отформатирован так, чтобы прояснять структуру и логику
выполняемых действий. Это достигается вставкой пустых строк и регулированием отступа.
в) Функционально или логически связанные переменные и константы следует
объединять в группы.
Глобальные константы желательно объявлять в отдельном
модуле.
г) При объединении строк использовать операцию &.
д) При вводе строковых значений разбивать длинные строки на более короткие.
Строковые значения могут быть очень длинными (например, при вызове API-функций или в
случае SQL-выражений). Желательно, чтобы строка кода программы была видна целиком.
Глава 7. Тактика программирования
Есть много способов решить одну и ту же задачу с помощью различных по структуре и
методам алгоритмов программы, но не все они одинаково удачны. Программисту,
работающему над проектом в среде VB или Access, следует учитывать ряд обстоятельств,
влияющих на качество конечного продукта, и придерживаться ряда правил, позволяющих это
качество повысить. Речь идет, во-первых, об ошибках в программе и о том, как их избежать.
Если программа предназначена для использования многими пользователями, ее стоит
оптимизировать, а так же решить вопросы совместимости между VB, VBA и VBScript.
Глава 8. Как уменьшить количество ошибок в коде программы
а) Тщательно планировать проект. Заранее в точности определить, что программа
должна делать и как она должна себя вести. Продумать каждое возможное событие и реакцию
на него. И только после этого приступайте к созданию программы.
б) Использовать всегда, когда это возможно, явно заданные ссылки на объекты,
определяемые типами Variant и Object.
9
в) Придерживаться соглашений об именах и о коде. Это особенно важно при работе
над коллективным проектом.
г) Необходимо помещать оператор Option Explicit в начало любого модуля, что
позволит уменьшить количество ошибок, связанных с неверными именами переменных и
управляющих элементов. Оператор Option Explicit будет автоматически помещаться в раздел
глобальных объявлений каждого созданного вами модуля, если вы установите флажок
Require Variable Declaration (Инструменты – Опции – Editor).
Глава 9. Оптимизация приложений
Вопросы оптимизации
Смысл вопроса оптимизации приложения заключен в выборе одной из целевых
функции:
- скорость выполнения;
- объем используемой памяти;
- скорость выполнения и объем используемой памяти.
Для реализации требований любой из целевых функций необходимо оптимизировать
код программы, количество форм и управляющих элементов в формах, способы встраивания
в формы и отчеты графических объектов, математические методы в задачах сортировки,
поиска и вычислений, …
Рекомендации по оптимизации приложений
а) Начинать оптимизацию следует еще на этапе планирования.
Когда код программы уже написан, оптимизацию начинать поздно
б) Приступая к оптимизации, следует ясно представлять себе, в чем состоит проблема и
что следует модифицировать, чтобы ее устранить. При этом нельзя забывать о
функциональных возможностях. Программа не должна снижать свих потребительских свойств
в результате оптимизации.
в) Определить цель оптимизации (память или скорость).
10
Меры, которые можно принять для увеличения скорости работы программы,
отличаются (а иногда и прямо противоречат) мерам, ведущим к экономии памяти. Лишь в
некоторых случаях и в некоторой степени удается улучшить и то, и другое.
г) Выбирая алгоритмы обработки данных, необходимо учитывать их скоростные
параметры
д) Нет смысла выполнять оптимизацию ради оптимизации
Бывает, что результат не стоит трудозатрат программиста. Не стоит, например,
стремиться к высокой эффективности алгоритма поиска, если речь идет о поиске в небольшом
массиве данных. И напротив, если программа должна работать с базой данных большого
объема, то алгоритмам доступа к данным следует уделить максимальное внимание. Всегда
следует соотносить время, потраченное на оптимизацию, с ожидаемым выигрышем.
Если программы, работают в ОС Windows следует различать три скорости:
- реальная скорость программы;
- скорость работы интерфейса пользователя;
- субъективная скорость.
Глава 10. Оптимизация скорости
Реальная скорость программы
Реальная скорость программы — это скорость, с которой выполняется ее код.
Для ее увеличения существует ряд возможностей.
а) Следует избегать применения переменных типа Variant. Если нет особых причин
для выбора типа Variant, используйте только простые типы — обращение к ним происходит
быстрее и, кроме того, это дает возможность избавиться от неявных преобразований типов,
которые также расходуют время.
11
б) Для математических вычислений рекомендуемым типом является тип Long — он
соответствует формату чисел, с которым работает процессор, и вычисления с ним
выполняются с максимальной скоростью. Если тип Long no каким-то причинам не
подходит, попробуйте использовать Byte или Integer, прежде чем переходить к другим
вариантам.
в) Значения часто используемых свойств следует передавать в переменные, особенно
это важно, если значение свойства используется в цикле - обращение к значению
переменной происходит существенно быстрее.
г) Для фиксированных значений следует использовать именованные константы.
д) Вместо того, чтобы выделять некоторый код в отдельную процедуру, можно просто
поместить его в то место, где он требуется. Этим вы экономите время на вызов процедуры
и возврат из нее — в циклах такая экономия может оказаться весьма существенной. Если
речь идет о часто используемом коде, то вы при этом жертвуете прозрачностью текста ради
скорости.
е) При передаче параметров процедуре или методу отдавайте предпочтение способу
ByVal (передача по значению). По умолчанию в Visual Basic принят способ ByRef
(передача по ссылке).
Скорость работы интерфейса
Скорость работы интерфейса – это скорость, с которой элементы окна (формы)
приложения реагируют на действия пользователя.
В графической среде Windows это представляет собой проблему. (Связано с ОЗУ)
а) Если в программе используются графические методы, то большое влияние на
скорость их работы оказывает значение свойства ClipControls (им обладают форма и
элемент Picture). Чтобы графические методы не перерисовывали управляющие элементы
целиком, а ограничивались только изменившейся их частью, свойство ClipControls формы
должно содержать значение False (по умолчанию его значение — True)
б) Перед тем как несколько раз подряд изменить значение свойства видимого
управляющего элемента, его можно отключить. При этом он не будет перерисовываться
каждый раз при новом значении свойства — таким образом можно достичь некоторой
экономии времени, которая в случае больших по площади элементов или большого числа
присваиваний может оказаться значительной.
12
в) Наконец, способ, который позволяет убить сразу двух зайцев, — повысить скорость
и сократить требуемую память Он очень прост: везде, где это возможно, используйте вместо
картинки PictureBox графический образ Image В большинстве случаев его «способностей»
вполне достаточно, а ресурсов он расходует значительно меньше.
Субъективная скорость
Субъективная скорость - это впечатление о скорости работы программы, которое
возникает у пользователя.
Впечатления — не та область, где возможны точные измерения и конкретные
алгоритмы, но все же некоторые меры к увеличению субъективной скорости программы
принять можно:
а) Следует стремиться к тому, чтобы (насколько позволяет память) все формы
приложения загружались (но не показывались на экране) сразу при старте программы.
Пользователю во время загрузки следует показывать какую-нибудь заставку с картинкой.
Стартовым объектом такой программы должна быть процедура Main(), а первой загруженной
(и сразу показанной) формой — форма, содержащая заставку.
б) Не выгружать (или не закрывать - Close) формы, а делать их невидимыми (метод
Hide вместо метода Unload в VB и метод Visible вместо метода Close в СУБД Access), но это
приводит к увеличению объема требуемой памяти (ОЗУ), потребляемый программой. Загрузка
и выгрузка формы представляет собой сравнительно длительный процесс.
в) Если в процессе своей работы программа должна загружать данные из файлов, то
следует за один «сеанс» загрузиь как можно большее число файлов — одна длительная
задержка раздражает меньше, чем постоянно случающиеся короткие.
Глава 11. Оптимизация памяти
а) Цель оптимизации – это уменьшение объема памяти, потребляемого программой.
Методы, которыми это достигается, в значительной степени противоположны методам
оптимизации скорости.
б) Следует минимизировать число форм, одновременно находящихся в памяти, т. е.
загружать каждую форму по мере необходимости и сразу выгружать, как только она не нужна.
13
Следует минимизировать количество управляющих элементов на той форме, на которой их
размещено больше всего.
в) Если текстовое поле используется только для вывода текста, заменить его этикеткой.
г) Заменить, где это возможно, Variant-переменные на переменные простых типов.
Например, переменная типа Variant, содержащая значение типа Integer, занимает в памяти 16
байт, в то время как переменная типа Integer —только 2 байта.
Глава 12. Оптимизация размера графики
При использовании точечных рисунков загружать их из графических файлов в
процессе выполнения программы, а не помещать на форму на этапе визуального
программирования. Если рисунок требуется использовать многократно, то загрузить его в
невидимый элемент Image.
Глава 13. Четыре правила нормализации таблиц
Нормализация позволяет организовать поля данных в группы таблиц. В основе
нормализации таблиц лежит математическая теория, и для практического применения ее
можно сформулировать в виде 4-х правил.
Правило 1: Уникальность полей
Неэффективное
использование
памяти
является
основным
недостатком
ненормализованных таблиц, поэтому удаление избыточных полей из таблиц является одним из
решений этой проблемы.
Правило 1: Каждое поле любой таблицы должно быть уникальным.
Это правило означает, что вы должны избавиться от повторяющихся полей в таблице. Этого
можно достичь созданием отдельных таблиц для повторяющихся данных и установлением
связей между новыми таблицами и исходной.
Правило 2: Первичные ключи
База данных хорошо спроектирована тогда, когда каждая запись в любой таблице
является уникальной. Это означает, что значение некоторого поля (или нескольких полей) не
повторяется ни в одной записи в таблице. Такой идентификатор называется первичным
ключом (или просто ключом).
14
Правило 2: Каждая таблица должна иметь уникальный идентификатор, или первичный
ключ, который может состоять из одного или нескольких полей. В таблице Students поле
StudentID по всей видимости является уникальным и поэтому может быть первичным ключом
этой таблицы (рис.).
Правило 3: Функциональная зависимость
Если вы определили для каждой таблицы первичный ключ, то можно проверить
включены ли в таблицы все сведения, относящиеся к соответствующим объекта. Кроме того,
следует убедиться, что каждое поле функционально зависит от первичного ключа таблицы.
Правило 3: Для каждого значения первичного ключа значения в столбцах данных
должны относиться к объекту таблицы и полностью его описывать. Это правило используется
двояко. Во-первых, в таблице не должно быть данных, не относящихся к объекту,
определяемому первичным ключом.
Например, не следует включать поле Average TestScore в таблицу Student-Colle Во-вторых,
данные в таблице должны полностью описывать объект. некоторые из студентов имеют
дополнительно почтовый адрес, то в таблице Students одного поля для адреса будет
недостаточно.
Правило 4: Независимость полей
Последнее правило позволяет проверить, не возникнут ли у проблемы при изменении
данных в таблицах.
Правило 4: Вы должны иметь возможность изменять значения любого поля (не
входящего в первичный ключ) без воздействия на данные других полей,
Глава 14. Пример разработки приложения
Пример разработки приложения иллюстрирует применение правил нормализации
таблиц
Постановка задачи. Разработать приложение «Учет ежедневной посещаемости детей в
детском учреждении» с учетом правил нормализации таблиц.
15
Четыре правила нормализации таблиц
1) Каждое поле любой таблицы должно быть уникальным.
2) Каждая таблица должна иметь уникальный идентификатор (первичный ключ), состоящий из
одного или нескольких полей таблицы. Каждая запись должна быть уникальной
3) Для каждого значения первичного ключа значения в столбцах данных должны относиться к
объекту таблицы и полностью его описывать.
4) Мы должны иметь возможность изменять значения любого поля (не входящего в
первичный ключ) без воздействия на данные других полей.
Исходные данные
1) Аппаратно-программное обеспечение: Pentium 200, ОЗУ-32, HDD-4.3 Gb, монитор цв. 15’’,
принтер струйный формата А4. ОС Windows 98, Office 2000.
По штатному расписанию: групп - 10, кол-во детей в группе - 20
Признаки фактической посещаемости: болен, отпуск, неуважительная причина
В конце месяца автоматический расчет по признакам фактической посещаемости по каждой
группе и по всем группам с выдачей на печать Табеля посещаемости
Сохранять в архиве Табеля посещаемости в течении 1-го года
Поиск записей в Табели посещаемости выполняется по номеру группы, по ФИО Воспитателя,
по ФИО ребенка, по дате.
Заполним рабочий бланк приложения для поставленной задачи
Рабочий бланк приложения № 1 - Задачи
Наименование задачи
Учет ежедневной посещаемости детей в детском учреждении
Краткое описание:
Ежедневный учет посещаемости детей по группам
Ежемесячный учет и расчет фактической посещаемости по
группам по признакам: болен, отпуск, неуважительная
причина
Ввод списочного состава групп
Ввод списочного состава воспитателей
Ежедневный ввод признаков фактической посещаемости
Поиск по ФИО Воспитателя, по ФИО ребенка, по дате
Ежемесячная печать Табеля посещаемости
Сохранять в архиве Табеля посещаемости ежемесячно
Описание
Объект
Номер группы
Воспитатель
Номер группы
ФиоДети
Связанные задачи:
Элемент данных
NГруппа
NГруппа
Использование
I, O
I, O
Если свести в 1 таблицу, то обнаруживаются следующие недостатки
16
1) Многократно повторяются фамилии воспитателей (нарушено правило 2 - Первичные
ключи Каждая запись в любой таблице должна быть уникальной. из табл.1 видно, ключевым
полем может быть только поле ФиоДети, т.к значения в этом поле не повторяются)
2) Неэффективно используется память (с точки зрения информативности
поле
Воспитатель лишнее, кроме того значения повторяются)
Таблица 1 - Структура БД Дети
Воспитатель
Котова И.П.
Котова И.П.
Садова К.С
Садова К.С.
NГруппа
1
1
2
2
ФиоДети
Иванов Ж
Петров К
Сидорова О
Гуров И
Болен
Б
О
Дата
29.11.99
29.11.99
29.11.99
29.11.99
Н
Разделим Табл. 1 на две таблицы
Таблица 2 - Структура БД Воспитатели
NГруппа
1
2
3
Воспитатель
Котова И.П.
Доронина И.П.
Садова К.С.
Таблица 3 - Структура БД Дети
NГруппа
1
1
2
2
ФиоДети
Иванов Ж
Петров К
Сидорова О
Гуров И
Болен
Б
О
Н
Дата
29.11.99
29.11.99
29.11.99
29.11.99
Заполним рабочий бланк приложения для объекта ФиоДети
Рабочий бланк приложения № 2 - Объекты
Имя объекта:
ФиоДети
Краткое описание:
Связанные объекты:
Фамилия и имя
ребенка
NгруппаФиоДети
МногиеМногие
Элемент данных
Использование
Описание
Условие на значение
Применение и создание справочников (Полей со списком)
В терминологии Access Справочник - это Поле со списком или Список
Справочники рекомендуется применять при разработке приложения в следующих случаях:
17
1) когда используется ГОСТовское или общепринятое наименование (например Коды и
наименование промышленных или продовольственных товаров, наименование городов, улиц,
индекс города,...)
2) Чтобы уменьшить количество ошибок при вводе данных в БД (таблицу) и обеспечить
единообразный ввод данных независимо от конкретного Пользователя.
В нашем примере в таблице Дети для ввода признака: Б, О, Н применим поле со списком, но
для того, чтобы его использовать необходимо предварительно создать таблицу (справочник),
содержащую эти признаки.
Таблица 4 - Признаки
Код
Вид
1
2
3
Б
О
Н
Алгоритм создания Поля со списком (см. таблицу 3 - Дети)
Таблица с признаками или любой другой справочник должны быть предварительно
созданы, затем введены данные.
Выделить нужную таблицу (Дети)
2) Нажать кн. Конструктор (режим редактирования)
3) Щелкнуть по полю (Болен), где необходимо вызывать справочник
4) Щелкнуть по вкладке Подстановка
5) В правой части окна Тип элемента управления щелкнуть мышкой и выбрать строку Поле со
списком
6) В правой части окна Тип источника строк щелкнуть мышкой и выбрать строку
Таблица/запрос
7) В правой части окна Источник строк щелкнуть мышкой и выбрать таблицу, которая будет
использоваться в качестве справочника
8) В строке Присоединенный столбец ввести 1
9) В строке Число столбцов ввести 2
10) 7) В правой части окна Заглавия столбцов Щелкнуть мышкой и выбрать Нет
11) В строке Ширина столбцов ввести 0см;1см
12) В строке Число строк списка ввести 3
13) Выйти из редактирования (Х)
18
Теория создания связи «Один ко многим» между таблицами
Условия целостности данных
Условиями целостности данных называют систему правил, используемых в Access для
поддержания связей между записями в связанных таблицах. Эти правила делают
невозможным случайное удаление или изменение связанных данных. Условия целостности
данных можно наложить при выполнении следующих условий:
1) Связанное поле главной таблицы является ключевым полем или имеет
уникальный индекс.
2) Связанные поля имеют один тип данных.
Обе таблицы принадлежат одной БД Access.
Главная таблица - это таблица на стороне Один при связи 2-х таблиц отношением «один-комногим». В главной таблице должен быть ключ, все записи должны быть уникальными.
Поля внешнего ключа - это поля таблицы на стороне «многие», связанные с ключевыми
полями
на стороне «один».
Ключевое поле(я) - одно или несколько полей, комбинация значений которых однозначно
определяют запись в таблице. Ключевые поля используются для связи с полями из другой
таблицы.
После
наложения
условий
целостности
данных
действуют
следующие
ограничения:
1) Невозможно ввести в поле НГруппа внешнего ключа связанной таблицы "tblДети"
значение
поля,
не
содержащееся
в
ключевом
поле
НГруппа
Главной
таблицы
19
"tblВоспитатель". Это означает, что после ввода записи (в связанную таблицу "tblДети"), в
которой был введен номер группы (поле НГруппа) отсутствующий в Главной таблице
"tblВоспитатель", то такую запись сохранить нельзя. На экран будет выдано соответствующее
сообщение.
2) Не допускается удаление записи из главной таблицы, если в существуют связанные с
ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы
"tblВоспитатель", если в таблице "tblДети" имеются дети, относящиеся к данному
воспитателю.
3) Невозможно изменить (удалить) значение ключевого поля (НГруппа)в главной
таблице, если имеются записи, связанные с этой записью. Например, невозможно изменить
(удалить) номер группы в Главной таблице "tblВоспитатель", если в таблице "tblДети"
имеются дети, относящиеся к данному номеру группы. Фамилию воспитателя удалить можно
удалить или изменить (т.к. не ключевое поле), но это и верно т.к. фамилия воспитателя может
измениться.
Для того чтобы наложить условия целостности данных для конкретной связи
(выполняется через вызов Схемы данных), следует при создании связи установить флажок
"Обеспечение целостности данных". После наложения условий целостности данных любая
попытка выполнить действие, нарушающее перечисленные выше запреты (1-3), приведет к
выводу окна диалога с предупреждением, а само действие выполнено не будет.
Для того чтобы преодолеть ограничения на удаление или изменение связанных записей,
сохраняя при этом целостность данных, следует включить режимы каскадного обновления и
каскадного удаления. При установленном флажке "Каскадное обновление связанных полей"
изменение значения в ключевом поле главной таблицы приводит к автоматическому
обновлению соответствующих значений во всех связанных записях. При установленном флажке
"Каскадное удаление связанных записей" удаление записи в главной таблице приводит к
автоматическому удалению связанных записей в подчиненной таблице.
Связь между таблицами создается с помощью Схемы данных: Сервис - Схема
данных или кнопка «Схема данных»
В большинстве случаев любые две таблицы связаны отношением «один-ко-многим».
Это означает, что любая запись в первой таблице может быть связана с несколькими записями
во второй, однако любая запись второй таблицы связана только с одной записью в первой. В
нашем проекте БД, например, для каждого Воспитателя может быть несколько записей в
таблице tblДети, но каждая из них будет относиться только к одному Воспитателю.
Иногда возникает необходимость разбить одну таблицу на две и более. Например в
случаях когда сведения из нее используются не слишком часто, или в том, что какие-то
20
данные должны быть защищены от всеобщего доступа (например отметки о поощрении,
выплатах премиальных, и т.п.).
Создание связей между таблицами
Последний этап проектирования БД заключается в создании связей между таблицами.
Для каждого объекта вы должны рассмотреть столбец «Связь» в рабочем бланке и обратить
внимание
на
случаи,
когда
связь
помечена
как
«многие».
Проверьте,
чтобы
у
соответствующего объекта была указана связь стороны «один».
В процессе создания БД особое значение имеет схема данных, которая наглядно
отображает ее структуру. Схема данных задает логическую структуру БД. В ней определяются
и заполняются связи между таблицами. Графически в Схеме данных таблицы представлены
списками полей, а связи между ними - линиями между полями разных таблиц. Создание
схемы данных позволяет упростить конструирование многотабличных форм, запросов,
отчетов.
При построении схемы данных Access автоматически определяет по выбранному полю
тип связи между таблицами. Рассмотрим связи на примере нашей курсовой работы. Если поле,
по которому нужно установить связь, является уникальным, как в главной таблице, так и в
подчиненной, то устанавливается связь "один к одному". Если поле, по которому нужно
установить связь, является уникальным только в главной таблице, то устанавливается связь
"один ко многим".
Установить связь между таблицами
1) Нажать кн. Схема данных
2) Нажать пр. Кл. м. и выбрать Показать таблицу...
3) Выбрать связываемые таблицы (Лев. Ctrl+ лев. кл. м.)
4) Нажать кн. Добавить, затем Закрыть
5) Нажать [Х] и кн. Да
6) Создать запрос (кн. Создать)
7) Выбрать Простой запрос и Ок
8) Выбрать в окне Таблицы/Запросы 1-ю таблицу и нажать [>>] и нажать кн. Далее
(Если необходимо удалить одиночные поля, то выделить и нажать [<], затем кн. Далее)
9) Ввести имя Запроса (qryИмя) и нажать кн. Готово
10) Закрыть запрос нажав [X]
11) Отредактировать нажав кн. Конструктор
12) В поле, где таблица, нажать пр. Кл. м. и выбрать Добавить таблицу
13) Выбрать таблицу и нажать кн. Добавить, затем Закрыть
14) Из добавленной таблицы выбрать необходимые поля и нажать [X], затем кн. Да
21
Если ключевые поля заданы и тип связываемых полей одинаков, то должна появиться
связь между таблицами.
Если вы обнаружите «многие» с обеих сторон отношения, то придется создать
дополнительную таблицу пересечения, с помощью которой одна связь «многие-ко-многим»
будет сведена к двум связям типа
«один-ко-многим».
Пример создания связи между таблицами и создание Запроса со связанными
таблицами
Заполнить Рабочие бланки:
Заполним рабочий бланк приложения для объекта Воспитатель
Рабочий бланк приложения № 2 - Объекты
Имя объекта:
Краткое описание:
Воспитатель
Номер группы. Фамилия и имя воспитателя
Связанные объекты: Nгруппа
ФИО
Элемент данных
Использование
Связь (один)
Связь (один)
Описание
Условие на значение
НГруппа
Байт (десятичн. Зн. Номер группы
=0)
Обязат. поле
>=1 And <=20
Воспитатель
Текстовое (25)
Маска ввода
>L<????????????
ФИО Воспитателя
Обязат. Поле
Разработать на основе рабочего бланка структуру таблицы (БД) tblВоспитатель
Таблица 1 - Структура БД Воспитатель
Nгруппа
1
2
3
Воспитатель
Котова И.П.
Доронина И.П.
Садова К.С.
Результаты тестирования после установления связи «один-ко-многим» БД Воспитатель
и БД Дети показывают, что:
Невозможно ввести значения вне дипазона 1<=НГруппа<=20
Невозможно удалить запись из таблицы tblВоспитатель , если есть соответствующие ей
записи в другой таблице tblДети. Если удалить связь в схеме данных, то удаление записи
будет возможным
22
Невозможно оставить пустым поле Воспитатель, но можно ввести ФИО с любыми
лидирующими знаками (-, пробел, #, ...,) в этом случае поиск по ФИО не даст результата.
Необходима маска ввода >L<???..., где
> - ввод только заглавных букв
L - только буквы - ввод обязателен
< - ввод строчных букв
? - ввод только букв - ввод необязателен
Заполним рабочий бланк приложения для объекта ФиоДети
Рабочий бланк приложения № 2 - Объекты
Имя объекта:
ФиоДети
Краткое описание:
Фамилия и имя ребенка
Связанные объекты: NГруппа
ФиоДети
Элемент данных
Использование
Многие
Многие
Описание
Условие на значение
НГруппа
Байт (десятичн. Зн. Номер группы
=0)
Обязат. поле
>=1 And <=20
ФиоДети
Текстовое (25)
Болен
Текстовое (1)
Фамилия и имя
детей.Обязат. Поле
Признак отсутствия.
Поле со списком
Маска ввода
>L<????????????
Нет
Дата
Дата/Время
Текущая дата. =Date()
Обязат. Поле
Нет
Разработать на основе рабочего бланка структуру таблицы (БД) tblДети
Таблица 3 - Структура БД Дети
NГруппа
1
1
2
2
ФиоДети
Иванов Ж
Петров К
Сидорова О
Гуров И
Болен
Б
О
Н
Дата
29.11.99
29.11.99
29.11.99
29.11.99
б) Главная таблица - tblВоспитатель (см. Табл. 1) (т.к. Ключевое поле)
г) Подчиненная таблица - tblДети (см. Табл. 2)
23
Глава 15. Тестирование приложения
Программа и методика испытаний требования к содержанию и оформлению (гост
19.301-79*)
Документ "Программа и методика испытаний" (Тестирование программы-приложения)
должен содержать следующие разделы:
а) объект испытаний;
б) цель испытаний;
в) требования к программе;
г) средства и порядок испытаний;
д) методы испытаний.
Объект испытаний
Указывают наименование, область применения и обозначение испытуемой программы.
Цель испытаний
Должна быть указана цель проведения испытаний
Требования к программе
Должны быть указаны требования, подлежащие проверке во время испытаний и
заданные в ТЗ на программу.
Средства и порядок испытаний
Должны быть указаны технические и программные средства, используемые во время
испытаний, а также порядок проведения испытаний.
Методы испытаний
Должны быть приведены описания используемых методов испытаний.
В методах
испытаний должны быть приведены описания проверок с указанием результатов проведения
испытаний (перечней тестовых примеров, контрольных распечаток тестовых примеров и т.п.)
24
Рекомендации по количеству записей в тестируемой БД
Количество записей в тестируемой БД определяется количеством возможных
вариантов возникающих в процессе эксплуатации программы.
Например: варианты поиска записей, выборка и печать записей. Если при
редактировании или вводе записей выполняется проверка условий, то проверить ввод
допустимых и недопустимых записей и значений полей
25
Download