Практическое задание на тему База данных Компьютерный магазин

Изм.

Утв.

Н. контр.



Проверил

Разраб.





Лист





Алексеева Т.М.

Соловьева Л.В.





Соловьева Л.В.

Сахаров А.Н.

№ документа















Подпись















Дата





230105.2009.156.00.00 ПЗ

Вариант – 50

Практическое задание на тему:

БД «Компьютерный магазин»

ЧЮК

Отделение и ИТ

«Кафедра информатики и ВТ»



К



Лит.

Листов



Лист

2



Изм.





Лист





№ документа





Подпись





Дата





230105.2009.156.00.00 ПЗ

Лист

43





Министерство образования и науки Российской Федерации

Челябинский юридический колледж

		Отделение права и ИТ

Кафедра «Информатики и ВТ»











Курсовая работа

по дисциплине

«Технологии разработки программных продуктов»

Вариант – 50

Практическое задание на тему:

База данных «Компьютерный магазин» 











Работа защищена с оценкой:

________________________

«___» _____________ 2009 г







		Выполнил:_________________

Студент Сахаров А.Н.

«____»________________ 2009г.

Проверил:__________________

Преподаватель Соловьёва Л.В.

«___» _________________ 2009г.











Челябинск

2009


АННОТАЦИЯ

	Сахаров А.Н. Пояснительная записка к курсовой работе. Вариант –  50 . Практическое задание на тему: БД «Компьютерный магазин». Челябинск: ЧЮК, , 2009, (48 стр.). Библиография литературы наименований;

В работе представлены вопросы:

Анализ существующих аналогов и обоснование выбора темы

Этапы создания программного продукта «База данных Компьютерный магазин»

Первая глава содержит информацию о понятии “Оптимизация”

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

	СОДЕРЖАНИЕ



Оглавление

	ВВЕДЕНИЕ	3

	1 ОПТИМИЗАЦИЯ ПРОГРАММ	3

	1.1 НАЗНАЧЕНИЕ И ЦЕЛИ ОПТИМИЗАЦИИ	3

	1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК	3

	1.3 БЛОК (ЛИНЕЙНЫЙ УЧАСТОК)	3

	1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ	3

	1.5 СПОСОБЫ ОПТИМИЗАЦИИ	3

	1.6 РАЗГРУЗКА УЧАСТКОВ ПОВТОРЯЕМОСТИ	3

	1.7 СДВИГ ИНВАРИАНТНЫХ ОПЕРАТОРОВ	3

	1.8 ВСТАВКА ПСЕВДОБЛОКА	3

	2 ПРАКТИЧЕСКАЯ ЧАСТЬ	3

	2.1 АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ	3

	2.2 ОБОСНОВАНИЕ ВЫБОРА ТЕМЫ	3

	2.3 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ ACCESS	3

	2.4 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ DELPHI 7	3

	2.5 РУКОВОДСТВО ПО НАПИСАНИЮ ПРОГРАММЫ	3

	2.6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ	3

	ЗАКЛЮЧЕНИЕ	3

	СПИСОК ЛИТЕРАТУРЫ	3







ВВЕДЕНИЕ

Несмотря на все более широкое распространение языков программирования и интегрированных сред программирования, оптимизация программ остается актуальной темой дискуссий для программистов.

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

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



1 ОПТИМИЗАЦИЯ ПРОГРАММ

1.1 НАЗНАЧЕНИЕ И ЦЕЛИ ОПТИМИЗАЦИИ



Оптимизирующая часть выполняет следующие действия:

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

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

1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК

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

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

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

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

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

Строго сформулировать требования, предъявляемые к промежуточному языку, трудно. Однако уже из самого обоснования необходимости промежуточного языка видно, что:

 операторы языка не должны быть слишком мелкими;

 символы, идентификаторы и числа должны иметь фиксированный формат;

 в строении операторов желательно отсутствие рекурсивности;

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

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

Требования. "4" и "5" показывают, что разработать единый универсальный промежуточный язык для трансляции с любого языка программирования в коды любой вычислительной машины трудно. В качестве промежуточного языка можно использовать польскую запись, триады, синтаксические деревья.

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

Необходимо различать переменные,  введенные программистом (программные переменные), и переменные, генерируемые в процессе трансляции на промежуточный язык (mi - идентификаторы). Между определением программной переменной и ее использованием в качестве операнда существует следующая зависимость:

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

- если программная переменная определена и используется в

области, то внутри области существует путь между  определением

переменной и каждым ее использованием;

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

1.3 БЛОК

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

Блок (линейный участок) - выполняемая по порядку последовательность операторов, имеющая единственную точку входа - первый оператор с меткой, на который может быть передано управление, и единственную точку выхода - последний оператор.

Блок моделирует часть программы на промежуточном языке, которая содержит операторы присваивания.

Формально модель линейного участка может быть представлена следующим образом:

Блок B - это тройка вида (P,I,U),где 

P - список операторов S1,S2,...Sn (n>=0),

I - множество входных переменных,

U - множество выходных переменных.

Оператор S в программе называется входом в линейный участок, если он либо первый оператор в программе, либо помечен идентификатором, появляющимся в операторе перехода, либо непосредственно следует за условным оператором.

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

1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ

Для каждого  блока B=(P,I,U) можно найти ориентированный ациклический граф , представляющий этот блок. При этом каждый лист  графа (концевая вершина) соответствует одной входной переменной в I, а каждая его внутренняя вершина - оператору  из P. Граф отражает порядок выполнения операторов программы и дает более наглядное представление, чем линейная последовательность операторов.

Если вершины i и j графа соответствуют участкам i и j программы, то дуга идет из i в j, если:

 последний оператор участка i является оператором перехода на метку L, которой помечен первый оператор участка j.

Сильно связанной областью направленного графа называется такое множество его вершин, что для любых двух вершин x и y (x! = y) существует путь из x в y.

Будем рассматривать сильно связанные области Ri, обладающие следующими свойствами:

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

2.Ri != Rj;

3. для каждого i<j или пересечение Ri и Rj пусто, или Ri является подобластью Rj (включена в нее).

1.5 СПОСОБЫ ОПТИМИЗАЦИИ 

Различают две категории оптимизирующих преобразований:

преобразования исходной программы в ее внутренней форме, которые не зависят от объектного языка (машинно-независимые) и преобразования, осуществляемые на уровне объектной программы

(машинно-ориентированные).

Методы первой категории применимы почти к любому алгебраическому языку - FORTRAN, ALGOL, PL/1 и.т.д.

На практике используется весьма широкий набор машинно-независимых оптимизирующих преобразований, что связано с большим разнообразием неоптимальностей. К ним относятся:

- разгрузка участков повторяемости;

- упрощение действий;

- реализация действий;

- чистка программы;

- экономия памяти;

- сокращение программы.

1.6 РАЗГРУЗКА УЧАСТКОВ ПОВТОРЯЕМОСТИ

Такое название получил способ оптимизации, состоящий в вынесении вычислений из многократно проводимых (исполняемых ) участков программы на участки программы , редко проходимые.

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

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

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

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

1.7 СДВИГ ИНВАРИАНТНЫХ ОПЕРАТОРОВ

Рассмотрим подробнее преобразование сдвига инвариантных операторов, входящее в группу преобразований по разгрузке участков повторяемости.

Оператор инвариантен и может быть вынесен из блока, если он удовлетворяет следующим условиям:

Cдвиг оператора не приводит к тому, что результат сдвигаемого оператора перемещается через оператор, в котором результат используется.

Например, для блока (mi) * A,B .

(mk) := C,(mi), если ни A, ни B не определяются в области, то оператор mi может быть сдвинут вниз, но не может быть поставлен после опе-

ратора mk.

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

(mi) := A,1

(mj) := A,10

(mk) := C,A

Если больше никакой оператор после mj не присваивает значение переменной A, то оператор mj может быть сдвинут вниз, но не может быть поставлен после оператора mk, операторами mi, а также вверх, но не выше оператора, использующего значение переменной A, присвоенное оператором mi.

сдвиг оператора не нарушает связи между сдвигаемым оператором и оператором, использующим результат сдвигаемого в качестве операнда.

Таким образом, оператор инвариантен в области, если его операнды не зависят от места определения переменных в данной области.

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

Необходимо также отметить, что перед сдвигом инвариантных операторов нужно устранить идентичные операторы (об этом  речь пойдет позже), так как они могут оказаться препятствием для сдвига операторов.

Рассмотрим условия, достаточные для сдвига операторов

I. Сдвиг оператора,  не являющегося оператором присваивания, из области назад (на его входные пути) производится, если операнды оператора не зависят от места определения переменных в области, т.е.:

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

программные  переменные  оператора не определены в области. Если оба эти условия выполняются, то операнды оператора не зависят от места определения переменных в области.

II. Сдвиг оператора присваивания, из области назад (на его

входные пути) производится, если:

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

программные переменные, используемые в качестве операнда оператора не определены в области;

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

не существует другого определения или использования программной переменной на любом пути от входа в область до этого определения.



III. Сдвиг оператора, не являющегося оператором присваивания, из области вперед (на его выходные пути) производится, если:

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

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

mi - указатель, являющийся результатом действия оператора, не используется на пути между оператором и концом блока.

IV. Сдвиг оператора присваивания, из области назад (на его входные пути) производится, если:

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

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

блок является артикуляционным пунктом области;

не существует другого определения программной переменной ни на одном пути между определением и точкой выхода из области;

программная переменная не используется в области.

1.8 ВСТАВКА ПСЕВДОБЛОКА

В процессе оптимизации операторы, сдвигаемые из блоков, собираются в псевдоблок. После оптимизации области Rk операторы псевдоблока должны быть вставлены в программу так, чтобы они выполнялись до (после) выполнения операторов области Ri.

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

Вставка операторов в существующие блоки или формирование из псевдоблока фактического блок  выполняется по следующему алгоритму (алгоритм рассматривается для операторов, сдвинутых назад на входные пути, для операторов, сдвинутых вперед, алгоритм аналогичен ):

1) операторы вставляются во все блоки, непосредственно предшествующие области, которые имеют только один непосредственно следующий блок. Вставляемые операторы записываются перед оператором перехода.

2) из псевдоблока создается формальный блок, который вставляется на всех входных путях, идущих от непосредственно предшествующих блоков, имеющих несколько преемников.

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

4).Набор и последовательность оптимизирующих преобразований.

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

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

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

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

Можно дать некоторые частные рекомендации по оптимизации циклов и линейных участков.

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

1) анализ циклов - выявление циклов, подлежащих оптимизации и получение необходимой для оптимизации информации;

2) вынесение за границу циклов инвариантных операций;

3) замена сложных операций.

Свертка или исключение лишних операций на линейных участках осуществляются непосредственно перед или в процессе обработки инвариантных операций.



2 ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ

1.Компьюлиб

Учет компьютеров, устройств, программ с распределением по административным отделам, доменам, месторасположению, помещениям, ответственным лицам. Учет гарантийных сроков, расчет сроков окончания гарантии. Учет ремонтов, перемещений и других событий по компьютерам и устройствам. Учет стоимости компьютеров. Импорт данных из программ сбора сведений об оборудовании (Sysinfo Lab ASTRA, AIDA32). Гибкий настраиваемый интерфейс просмотра данных. Быстрый удобный ввод информации. Мощные механизмы поиска, фильтрации, сортировки, группировки (в том числе автофильтр a-la Excel и Quick Search). Развернутые отчеты. Экспорт в Word, Excel, HTML, текстовые файлы. Работа в сети. Возможность работы с несколькими независимыми базами данных. На рисунке 1 изображена рабочая область программы 

Рисунок.1 рабочая область программы

2.Hardware inspector

Инвентарный учет компьютеров и оргтехники на предприятии. Возможность автоматизированного заполнения базы данных об устройствах (из отчетов ASTRA, ASTRA32, EVEREST и AIDA32). На все устройства заводятся паспорта. Отслеживается история перемещения устройств, их ремонт и профилактика. Составление отчетности о проделанной работе за период времени. Поддерживается функционирование в сетевом режиме. Гибкое разграничение доступа к данным. Мощная система поиска устройств. Большой набор отчетов с возможностью предпросмотра, печати и вывода в текстовый файл. Экспорт отчетов в MS Excel на основе шаблонов. Программа жизненно необходима руководителям отделов компьютеризации, администраторам сети, лицам, ответственным за компьютерную технику своего участка или организации. Она значительно облегчит вашу жизнь, избавив от головной боли, связанной с учетом и планированием компьютерного (и иного) аппаратного обеспечения. На рисунке 2 изображена рабочая область программы.





Рисунок.2 рабочая область программы

2.2 ОБОСНОВАНИЕ ВЫБОРА ТЕМЫ

Я выбрал для написания курсовой работы в качестве практического задания – создание программы «База данных компьютерного магазина» именно потому, что меня привлекает работа с компьютерами, а теоретического – Оптимизация программ из-за желания более подробно понять процесс оптимизации компьютерных программ.



Техническое задание

Функции программы компьютерного магазина:

Возможность распечатки документа

Возможность выбора шрифта

Возможность выбора цвета фона

Узнать данные о покупателе

Узнать вид упаковки данного компьютера 

Выбрать компьютер

2.3 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ ACCESS

Access — система управления базами данных (СУБД).  Использование Access для хранения и поиска данных, представления информации в удобном виде и автоматизации выполнения повторяющихся задач.  Разработка с помощью Access простых и удобных форм ввода данных, обрабатки данных и генерации сложных отчетов.  Применение Access 97 для размещения форм Access в виде документов HTML на Web-страницах и обмена данными с узлами Internet/Intranet. 

 Поддержка в Access механизма Запроса по образцу (Query by Example — QBE), обеспечивающая выборку, сортировку и поиск данных.  Создание приложений без программирования с использованием макросов Access. Пользователи электронных таблиц и баз данных должны быть знакомы со многими ключевыми понятиями, используемыми в Access.  Прежде чем приступить к работе с каким-либо программным продуктом, важно понять его возможности и типы задач, для решения которых он предназначен. Microsoft Access 97 (далее — просто Access) — это многогранный продукт, использование которого ограничено только воображением пользователя. 

Access — это, прежде всего, система управления базами данных (СУБД). Как и другие продукты этой категории, она предназначена для хранения и поиска данных, представления информации в удобном виде и автоматизации часто повторяющихся операций (таких, как ведение счетов, учет, планирование и т.п.). С помощью Access можно разрабатывать простые и удобные формы ввода данных, а также осуществлять обработку данных и выдачу сложных отчетов. 

Access— мощное приложение Windows; впервые производительность СУБД органично сочетается с теми удобствами, которые имеются в распоряжении пользователей Microsoft Windows. Поскольку оба эти продукта— детища компании Microsoft, они прекрасно взаимодействуют между собой. Система Access работает под управлением Windows 95 или Windows NT, так что при работе с ней пользователю доступны все преимущества Windows. Можно вырезать, копировать и вставлять данные из любого приложения Windows в Access и наоборот; можно создать проект формы в Access и вставить его в конструктор форм.  С помощью объектов OLE (Object Linking and Embedding — связывание и внедрение объектов) в Windows 95 и компонентах Microsoft Office 97 (Excel, Word, PowerPoint и Outlook) можно превратить Access в настоящую операционную среду баз данных. С помощью новых расширений для Internet можно создавать формы, которые будут напрямую взаимодействовать с данными из World Wide Web, и транслировать их в представление на языке HTML, обеспечивающее работу с такими продуктами, как Internet Explorer и Netscape Navigator.  При всем этом Access — не просто СУБД. Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и позволяет использовать одновременно несколько таблиц базы данных. При этом можно существенно упростить структуру данных, облегчая тем самым выполнение поставленных задач. Таблицу Access можно связать с данными, хранящимися на большой ЭВМ или на сервере. С другой стороны, можно использовать таблицы, созданные в среде Paradox или dBASE. Полученные результаты можно быстро и легко связать и объединить с данными из электронных таблиц Excel. Работая в среде Microsoft Office 97, пользователь получает в свое распоряжение полностью совместимые между собой Access и Word, Excel и PowerPoint. 

Система Access — это набор инструментов конечного пользователя для управления базами данных. В ее состав входят конструкторы таблиц, форм, запросов и отчетов. Эту систему можно рассматривать и как среду разработки приложений. Используя макросы или модули для автоматизации решения задач, можно создавать ориентированные на пользователя приложения такими же мощными, как и приложения, написанные непосредственно на языках программирования. При этом они будут включать кнопки, меню и диалоговые окна. Программируя на языке VBA, можно создавать такие мощные программы, как сама система Access. По сути дела, многие инструментальные средства Access (например, мастера и конструкторы) написаны именно на VBA. Мощность и доступность  Access  делают эту систему лучшей СУБД из представленных сегодня на рынке. 

Что предлагает Access 

1.Настоящая реляционная модель баз данных 

В Access в полной мере реализовано управление реляционными базами данных. Система поддерживает первичные и внешние ключи и обеспечивает целостность данных на уровне ядра (что предотвращает несовместимые операции обновления или удаления данных). Кроме того, таблицы в Access снабжены средствами проверки допустимости данных, предотвращающими некорректный ввод вне зависимости от того, как он осуществляется, а каждое поле таблицы имеет свой формат и стандартные описания, что существенно облегчает ввод данных. Access поддерживает все необходимые типы полей, в том числе текстовый, числовой, счетчик, денежный, дата/время, MEMO, логический, гиперссылка и поля объектов OLE. Если в процессе специальной обработки в полях не оказывается никаких значений, система обеспечивает полную поддержку пустых значений. 

Реляционная обработка данных в Access за счет гибкой архитектуры системы способна удовлетворить любые потребности. При этом Access может использоваться как автономная СУБД в режиме файл-сервера или клиентского компонента таких продуктов, как SQL Server. Кроме того. Access поддерживает протокол ODBC (Open Database Connectivity), что позволяет подключаться к базам данных множества различных форматов, таких как SQL Server, Oracle, Sybase и даже DB/2 для больших ЭВМ фирмы IBM. 

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

Контекстно-зависимая справка и Office Assistant 

Организация справочной системы фирмы Microsoft — по-прежнему лучшая в отрасли, причем как для новичков, так и для опытных пользователей. В Access предусмотрена контекстно-зависимая справка, для получения которой достаточно нажать <F1>, и на экране сразу же появится справочная информация по тому вопросу, который интересует пользователя в текущий момент. При этом можно легко перейти к оглавлению справочной системы, конкретной информации, журналу предыдущих обращений и закладкам. 

В Access 97 компания Microsoft ввела Office Assistant (ассистента) и Screen Tips (всплывающие подсказки). Всплывающие подсказки содержат короткие объяснения чего-либо. В системе предусмотрена целая галерея из десяти возможных персонажей ассистентов (выбрать можно любого во своему вкусу). Если ассистент вам надоест, можете его отключить. 

Простые в использовании мастера и конструкторы 

Мастер (Wizard) может превратить часы работы в считанные минуты. Мастера задают наводящие вопросы относительно содержания, стиля и формата создаваемого объекта; затем они автоматически строят нужный объект. В составе Access около ста мастеров, помогающих конструировать базы данных, приложения, таблицы, формы, отчеты, диаграммы, почтовые наклейки, элементы управления и свойства. Допускается даже настройка мастеров для решения разных задач. 

Импортирование, экспортирование и связывание внешних файлов 

Access позволяет импортировать и экспортировать файлы многих известных форматов, включая dBASE, FoxPro, Excel, SQL Server, Oracle, Btrieve, многие текстовые форматы ASCII (в том числе с фиксированной длиной строки или заданным ограничителем), а также данные в формате HTML. В результате импортирования создается таблица Access; в результате экспортирования таблицы Access создается файл в заданном формате. 

Связывание (ранее именовавшееся присоединением) означает, что можно использовать внешние данные без создания таблицы Access. Можно устанавливать подобную связь с данными dBASE, FoxPro, Excel, ASCII и SQL. Очень мощная возможность — связывание таблиц Access с их внешними таблицами с последующим совместным использованием; это относится к таблицам Access, dBASE, FoxPro и SQL Server. 

Формы и отчеты WYSIWYG 

Окна конструкторов форм и отчетов имеют одинаковый интерфейс и предоставляют пользователю много возможностей. Форма или отчет конструируется по принципу WYSIWYG (What You See Is What You Get — что видишь, то и получишь). Добавляя очередной элемент управления, пользователь видит, как при этом изменяется создаваемая форма. 

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

Формы и отчеты можно просматривать в режиме предварительного просмотра, обеспечивая взгляд "с высоты птичьего полета" путем изменения масштаба. В режиме конструирования отчет можно просматривать с фиктивными данными, чтобы не дожидаться обработки большого реального файла. 

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

Многотабличные запросы и отношения 

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

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

Графики и диаграммы 

В Access используется то же самое графическое приложение, что и в Microsoft Word, Excel, PowerPoint и Project. Оно позволяет создавать сотни типов графиков и диаграмм, настраивая их, исходя из конкретных потребностей. Можно создавать гистограммы, линейчатые, круговые, поверхностные и другие диаграммы, причем как двух-, так и трехмерные. Их можно произвольно сопровождать текстом, оформлять разными цветами и узорами. Значения могут отображаться в столбцах или секторах круговых диаграмм. Можно разворачивать изображения диаграмм так, чтобы они воспроизводились под любым удобным углом зрения. Все это обеспечивает программа Access Graph. 

Возможности DDE и OLE 

С помощью DDE (Dynamic Data Exchange — динамический обмен данными) и OLE (Object Linking and Embedding — связывание и внедрение объектов) в формы и отчеты Access можно добавлять всевозможные новые объекты. Такими объектами могут быть звук, рисунки, диаграммы и даже видеоклипы. Можно внедрять объекты OLE (например, растровые изображения) или документы текстовых процессоров (Word или WordPerfect) или устанавливать связи с электронными таблицами Excel. Связывая эти объекты со своей базой данных, пользователь может создавать динамические формы и отчеты, а также использовать одну и ту же информацию в разных приложениях Windows. 

Доступ к Internet 

В Access теперь предусмотрены все возможности, обеспечивающие связь приложении с Internet/intranet. Одним щелчком кнопкой мыши можно сохранить таблицы, запросы, формы и отчеты в формате HTML. Соответствующий мастер позволяет даже новичку перенести коды HTML из объекта на Web-страницу, делая их доступными для использования всем, кто путешествует по Internet! Гиперссылки позволяют получать доступ к данным, которые размещены на Web-странице, прямо из форм Access. 

Многие считают, что размещение данных на Web-страницах должно осуществляться Web-администраторами. Access 97 с полной определенностью доказывает, что эта операция может быть с успехом выполнена любым пользователем. А поможет ему в этом мастер размещения на Web-странице, обеспечивающий преобразование выбранных объектов базы данных в формат HTML и перенос их уже в таком виде на Web-страницу. С помощью этого мастера можно создать статические либо динамические страницы, перенести их на Web-сервер, создать свою начальную страницу и даже использовать шаблоны для получения стандартного внешнего вида всех HTML-страниц! 

Встроенные функции 

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

Макросы: программирование без программирования 

Для непрограммистов (или опытных пользователей, которые просто не желают программировать) в Access предусмотрены макросы. Они позволяют автоматизировать выполнение некоторых задач. Около пятидесяти макросов дают возможность манипулировать данными, создавать меню и диалоговые окна, открывать формы и отчеты, словом, автоматизировать выполнение практически любой задачи. С помощью макросов можно решить порядка 90% всех задач обработки данных. 

Модули: Visual Basic for Applications программирование баз данных 

Access— это серьезная среда разработки приложений с полнофункциональным языком программирования. Язык VBA (ранее известный как Access Basic) реализует объектно-ориентированный подход к программированию и позволяет программисту делать практически все, что только можно себе представить. Это мощный язык структурного программирования. Он является полностью расширяемым и поддерживает процедуры API в любых динамических библиотеках (DLL) операционных систем Windows 95 и Windows NT. 

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

Для реализации программы для начала необходимо создать базу данных в Access. 

Запускаем Access, и выбираем Новая база данных(рисунок 4).



Рисунок 4 - Новая база данных.

Затем указываем путь где будет храниться база данных и кликнем по кнопки Создать (рисунок 5).



Рисунок 5 - Создание и сохранение базы.

Далее открывается окно, и кликнем по режимам и перейдем в режим конструктор (рисунок 6).



Рисунок 6 - Кликнем по режимам.

Затем заполняем имя поля и выставляем тип данных (рисунок 7).



Рисунок 7 заполнение имя поля и выставление типа данных

Далее переходим в режим таблица (рис.8)



Рисунок 8 режим таблица

Далее заполняем таблицу данными (рис.9)



Рисунок 9 Заполнение таблицы данными

Переходим на вкладку создать, и выбираем таблицу (рисунок 10).



Рисунок 10 Создание новой таблицы

Затем повторяем все операции, как с таблицей.”О товаре” В результате всего у нас появится три таблицы О товаре, Дата поступления товара, О покупателе (рисунок 11). 



Рисунок 11 3 таблицы

На этом разработка Базы данных в среде Access закончена.

2.4 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ DELPHI 7

Delphi 7 содержит развитые библиотеки и инструменты для создания приложений электронного бизнеса и веб-сервисов, полностью интегрирует соответствующие технологии и качественно повышает производительность разработчиков, предоставляя все необходимое для исследования вопросов перехода на Microsoft .NET. При помощи включенного в комплект поставки Kylix 3 для Delphi разработчики могут переносить свои приложения на Linux, повышая отдачу своих инвестиций и расширяя спектр платформ, на которых доступны их приложения. Интегрируя ведущие приложения разработки в единый и легкий в использовании пакет, Delphi 7 сокращает жизненный цикл разработки приложений и ускоряет вывод создаваемых с его помощью продуктов на рынок ПО.

Ключевые возможности, появившиеся в Delphi 7: предварительный вариант средств для работы с Microsoft .NET Framework; Kylix 3.0 для Linux в составе пакета; бесплатная лицензия на развертывание многозвенных приложений (которая до этого была платной), использующих технологию DataSnap (прежнее название - MIDAS); полное решение проектирования и развертывания корпоративных приложений по технологии Model Driven Architecture (MDA); мощные и удобные средства разработки WEB-приложений; средства создания качественных кроссплатформенных отчетов Rave Reports; среда моделирования ModelMaker (по технологии UML).

Компания Borland первой предоставила разработчикам возможность перехода на .NET при помощи Delphi 7. Поддержка компанией Borland платформы .NET позволяет разработчиками, использующим Delphi, быстро и продуктивно создавать приложения для .NET с сохранением существующих инвестиций в информационные технологии. Теперь работа в Delphi 7 позволяет программистам легко переносить имеющиеся у них знания, навыки и ресурсы на платформу .NET.

Delphi 7 обладает возможностями проектирования и развертывания корпоративных приложений. Это позволяет разработчикам быстрее воспользоваться преимуществами разработки корпоративных приложений от концепции до коммерческой версии при помощи новой системы проектирования UML и технологии Model Driven Architecture (MDA).

Визуальная среда WEB-разработки Delphi 7 позволяет визуально строить WEB-приложения и кардинально уменьшает обычные временные затраты, связанные с созданием серверной составляющей приложений, включая управление сессиями в многопользовательском режиме доступа. Разработка корпоративных приложений по технологии модельно-управляемой архитектуры (MDA) ускоряет процесс разработки, обеспечивая весь цикл разработки приложений - от проектирования до развертывания и радикально сокращает объем кода и требуемое время.

Включённая в состав Delphi 7 технология проектирования и моделирования приложений UML позволяет эффективно проектировать свои приложения при помощи средств визуального моделирования и реорганизации кода (refactoring). Возможности Delphi 7 по интеграции, реинжинирингу и мгновенной визуализации позволяют создавать высококачественные проекты и тексты программ, применяя готовые шаблоны проектирования и создавая более крупные модели.

Kylix 3 в составе Delphi 7 является первой высокопроизводительной визуальной интегрированной средой разработки (IDE), предназначенной для быстрого создания приложений баз данных, программ с графическим пользовательским интерфейсом (GUI), Internet-приложений и WEB-сервисов для операционной системы Linux. Возможность создания в Delphi 7 корпоративных кроссплатформенных отчетов обеспечивает высокую эффективность работы приложения. Новые правила лицензирования Delphi 7 на развертывание многозвенных приложений (DataSnap) дают возможность беспрепятственно масштабировать одноуровневые и клиент/серверные приложения до многоуровневых без дополнительных затрат, связанных с развертыванием систем. Delphi 7 включает также поддержку тем Windows XP, позволяя разработчикам создавать приложения, пользующиеся возможностями тем пользовательского интерфейса Windows XP.

Далее запускаем Delphi 7 .

Для реализации подобной программы для начала на первой форме разместим компоненты (рисунок 12)





Рисунок 12 Компоненты программы.

Так будут выглядеть компоненты расположенные на форме (рис.13)



Рисунок 13Расположение компонентов на первой форме

На второй форме будут следующие компоненты (рис.14)



Рисунок 14 Компоненты второй формы

Так будут выглядеть компоненты расположенные на второй форме (рис.15).



Рисунок 15 Расположение компонентов на второй форме

Данная программа была разработана на следующем программном обеспечении – операционная система Microsoft Windows XP версии 2003 Service Pack 2, и протестирована на аппаратном обеспечении – Intel(R) Celeron(R) CPU 2.00GHz, 512 МБ ОЗУ, графическая карта 256 MB GeeForce FX 5600

2.5 РУКОВОДСТВО ПО НАПИСАНИЮ ПРОГРАММЫ

Для начала расположим на форме компонент «Main Menu» , расположенные на вкладке «Standard» (рисунок 16).



Рисунок 16 компонент «Main Menu»

Компонент Menu предназначен для отображения трех вкладок  меню «Файл», «Настройки» и «Помощь». После  вызова пункта меню «О программе» вкладки «Помощь» будет отображена вторая форма и для невозможности изменения ее размеров и отображения в заголовке окна только его названия и кнопки «Закрыть» необходимо в свойстве формы «Border Style» выбрать значение «bsDialog» (рис.17)



Рисунок 17 Свойство Border Style

Далее кликнем по значку  два раза, и откроется окно (рисунок 18).



Рисунок 18 Окно Main Menu

Затем заполняем меню (рисунок 19).



Рисунок 19 Заполненное меню

Потом добавляем на форму «Color Dialog» расположенный на вкладке «Dialogs» (рисунок 20).



Рисунок 20 Расположение компонента «Color Dialog».

Этот компонент  «Color Dialog» предназначен для определения цвета.

С этой же вкладке добавим на форму «font dialog» (рисунок 21).



Рисунок 21 Расположение компонента «Font Dialog»

«Print Dialog».Он отображает стандартное окно печати Windows. (рис.22)



Рисунок 22 Компонент «Font Dialog».

Далее на вкладке «System» добавим на форму «Timer» (рисунок 23).



Рисунок 23 Расположение компонента «Timer»

Компонент «Timer» предназначен для показания времени в программе.

Добавляем на форму три «Data Source» (рисунок 24).



Рисунок 24 Расположение компонента «Data Source»

Этот компонент служит посредником между таблицами СУБД и экранными элементами управления.

Далее на вкладке «ADO» располагаем компонент «ADO Connection» (рисунок 25).



Рисунок 25 Расположение компонента «ADO Connection»

Компонент «ADO Connection»  предназначен для соединения с БД. 

Добавим компонент «TADO Table» располагаемый на вкладке «ADO» (рисунок 26) .



Рисунок 26 Расположение компонента «ADO Table»

И последние четыре компонента добавляем на форму это «Radio Group» и «Label» (расположенный на вкладке Standart), а так же «DB Navigator» на вкладке «Data Controls» и на этой же вкладке «DB Grid».

Теперь перейдём к нашей базе данных и её процедурам:

Процедуры пунктов меню «Файл»:

procedure TForm1.N3Click(Sender: TObject);

begin

 PrintDialog1.Execute;

end;

Выход: 

procedure TForm1.N5Click(Sender: TObject);

begin

Form1.Close;

end;

Процедуры пунктов меню «Настройки»:

Шрифт:

procedure TForm1.N6Click(Sender: TObject);

begin

 FontDialog1.Execute;

DBGrid2.Font:=FontDialog1.Font;

end;

Цвет:

procedure TForm1.N7Click(Sender: TObject);

begin

 ColorDialog1.Execute;

DBGrid2.Color:=ColorDialog1.Color;

end;

Процедуры пунктов меню «Помощь»:

О программе:

procedure TForm1.N9Click(Sender: TObject);

begin

Form2.showmodal;

end;

О создателе:

procedure TForm1.N10Click(Sender: TObject);

begin

ShowMessage('ñîçäàë Ñàõàðîâ Àíäðåé Íèêîëàåâè÷');

end;

Руководство пользоваетля:

procedure TForm1.N11Click(Sender: TObject);

 begin

  ShellExecute(Handle, nil, 'Ðóêîâîäñòâî ïîëüçîâàòåëÿ ÁÄ.docx', nil, nil, SW_SHOW);

Процедура «RadioGroup»:

if RadioGroup1.ItemIndex=0 then

begin

DBGrid1.Visible:=True;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

DBNavigator1.DataSource:=DataSource1;

end;

if RadioGroup1.ItemIndex=1 then

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=True;

DBGrid3.Visible:=False;

DBNavigator1.DataSource:=DataSource2;

end;

if RadioGroup1.ItemIndex=2 then

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=True;

DBNavigator1.DataSource:=DataSource3;

end;

2.6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

После запуска приложения вы увидите главное окно программы (рисунок 27):



Рисунок 27 Главное окно базы данных «Компьютерный магазин».

Для того чтобы распечатать таблицу необходимо кликнуть по «Файл» и «Печать» (рисунок 28).



Рисунок 28 Для печати таблицы

Для выхода из программы необходимо кликнуть «Файл» и «Выход» (рисунок 29).



Рисунок 29 Для выхода из программы

Чтобы изменить шрифт необходимо кликнуть «Настройки» и  «шрифт» (рисунок 30).



Рисунок 30 Выбор шрифта.

Чтобы узнать о программе необходимо, кликнуть «Помощь» «о программе» (рисунок 31).



Рисунок 31 О программе

Для того чтобы узнать «о создателе» необходимо кликнуть «Помощь» «о создателе» (рисунок 32).



Рисунок 32 О создателе.

Чтобы узнать о «руководстве пользователя»  необходимо кликнуть «Помощь» «руководство пользователя» (рисунок 33).



Рисунок 33– Руководство пользователя.

Чтобы переключаться между таблицами, необходимо кликнуть по выбранной базе данных (рисунок 34).



Рисунок 34 – Перемещение между таблицами.

Для перемещения из начала таблице в конец необходимо кликнуть по  а если на оборот то . Также можно добавить в таблицу данные при нажатии кнопки,  а если удалить то . 

А эти кнопки   предназначены для перехода построчно.

Изменить 

Сохранить 

Удалить  

Обновить 



ЗАКЛЮЧЕНИЕ

В теоретической части была рассмотрена достаточно актуальная тема среди программистов – оптимизация программ. В ней были рассмотрены методы и подходы к различным средам программированиям в современной операционной системе.

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

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

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

1. Компьюлиб.

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

Недостатки данной программы в том, что она платная и имеет очень громоздкий и непонятный интерфейс.

2.Hardware inspector.

Инвентарный учет компьютеров и оргтехники на предприятии. Возможность автоматизированного заполнения базы данных об устройствах (из отчетов ASTRA, ASTRA32, EVEREST и AIDA32). На все устройства заводятся паспорта. Отслеживается история перемещения устройств, их ремонт и профилактика.

Недостатки программы заключаются в том, что программа очень устарела по отношению к нашей базе данных и имеет очень большой клиент – 40 мегабайт.





СПИСОК ЛИТЕРАТУРЫ



Боэм Б. У. Инженерное проектирование программного обеспечения. М.: Радио и связь, 2003. 511 с.

Липаев В. В. Отладка сложных программ: Методы, средства, технология. М.: Энергоатомиздат, 1999. 384 с.

Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 2004. 176с.

Орлов С. А. Принципы объектно-ориентированного и параллельного программирования на языке Ada 95. Рига: TSI, 2006. 327 с.

Чеппел Д. Технологии ActiveX и OLE. M.: Русская редакция, 2008. 320 с.

Abreu, F. В., Esteves, R., Goulao, M. The Design of Eiffel Programs: Quantitative Evaluation Using the MOOD metrics. Proceedings of the TOOLS'96. Santa Barbara, California 20 pp. July 1999.

Albrecht, A. J. Measuring Application Development Productivity. Proc. IBM Application Development Symposium, Oct. 2005, pp. 83-92.

Ambler, S. W. The Object Primer. 2nd ed. Cambrige University Press, 2006. 541 pp.

Beck, K., and Cunningham, W. A Laboratory for Teaching Object-oriented Thinking. SIGPLAN Notices vol. 24 (10), October 2005, pp 1-7.

Beck, K. Embracing Change with Extreme Programming. IEEE Computer, Vol. 32, No. 10, October 2006, pp. 70-77.

Beck, K. Extreme Programming Explained. Embrace Change. Addison-Wesley, 1999.211pp.

Beck, K, Fowler, M. Planning Extreme Programming. Addison-Wesley, 2004. 156pp.

Beizer, B. Software Testing Techniques, 2nd ed. New York: International Thomson Computer Press, 1999. 503 pp.

Beizer, B. Black-Box Testing: Techniques for Functional Testing of Software and Systems. New York: John Wiley & Sons, 2006. 320 pp.

Bieman, J. M. and Kang, B-K. Cohesion and Reuse in an Object-Oriented System. Proc. ACM Symposium on Software Reusability (SSR'95), pp. 259-262, April 2008.

Binder, R. V. Testing object-oriented systems: a status report. American Programmer 7 (4), April 1999, pp. 22-28.

Binder, R. V. Design for Testability in Object-Oriented Systems. Communications of the ACM, vol. 37, No 9, September 2009, pp. 87-101.

Binder, R. V. Testing Object-Oriented Systems. Models, Patterns, and Tools. Ad-dison-Wesley, 2006. 1298 pp.



ПРИЛОЖЕНИЕ

Исходный текст программы база данных «Компьютерный магазин»

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, jpeg, Menus,

  StdCtrls, ShellAPI;

type

  TForm1 = class(TForm)

    ADOConnection1: TADOConnection;

    ADOTable1: TADOTable;

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    ADOTable2: TADOTable;

    ADOTable3: TADOTable;

    DataSource2: TDataSource;

    DataSource3: TDataSource;

    DBGrid2: TDBGrid;

    DBGrid3: TDBGrid;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    RadioGroup1: TRadioGroup;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    FontDialog1: TFontDialog;

    ColorDialog1: TColorDialog;

    PrintDialog1: TPrintDialog;

    procedure RadioGroup1Click(Sender: TObject);

    procedure N6Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure N10Click(Sender: TObject);

    procedure N11Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

 if RadioGroup1.ItemIndex=0 then

begin

DBGrid1.Visible:=True;

DBGrid2.Visible:=False;

DBGrid3.Visible:=False;

DBNavigator1.DataSource:=DataSource1;

end;

if RadioGroup1.ItemIndex=1 then

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=True;

DBGrid3.Visible:=False;

DBNavigator1.DataSource:=DataSource2;

end;

if RadioGroup1.ItemIndex=2 then

begin

DBGrid1.Visible:=False;

DBGrid2.Visible:=False;

DBGrid3.Visible:=True;

DBNavigator1.DataSource:=DataSource3;

end;



end;

procedure TForm1.N6Click(Sender: TObject);

begin

 FontDialog1.Execute;

DBGrid2.Font:=FontDialog1.Font;

end;



procedure TForm1.N7Click(Sender: TObject);

begin

 ColorDialog1.Execute;

DBGrid2.Color:=ColorDialog1.Color;

end;



procedure TForm1.N3Click(Sender: TObject);

begin

 PrintDialog1.Execute;

end;



procedure TForm1.N9Click(Sender: TObject);

begin

Form2.showmodal;

end;



procedure TForm1.N10Click(Sender: TObject);

begin

ShowMessage('Создал Сахаров Андрей Николаевич');

end;



procedure TForm1.N11Click(Sender: TObject);

 begin

  ShellExecute(Handle, nil, ‘Руководство пользователя БД.docx’, nil, nil, SW_SHOW);

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form1.Close;

end;

end.



Лист

42

230105.2009.156.00.00 ПЗ