бесплатные рефераты

Изучение и анализ рынка товаров, закупаемых и реализуемых торгово-закупочным предприятием (на примере Белгородского территориального фонда обязательного медицинского страхования) )

b) критерии, задаваемые заказчиками, ЛПУ (в листе заказа заказчика указывается требуемое для конкретного товара значение, соответствующее указанному критерию):

n   производитель товара, определяющий его качество (если нет товара указанного производителя, то ищется товар альтернативного производителя); 

n   срок годности товара – срок годности товара в позиции заказа заказчика должен быть меньше срока годности в позиции прайс-листа поставщика;

c) критерии, задаваемые торгово-закупочным предприятием, БТФОМС (критерии выбора поставщиков):

n   условия поставки товаров;

n   территория поставщика.

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

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

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

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

3) Формирование общего заказа для одного поставщика.

1.2.3 Требования к программному и аппаратному обеспечению.

Инструментальными средствами, используемыми при разработке, а далее, и при работе системы поддержки принятия решений для торгово-закупочного предприятия являются: Borland Delphi Client/Server Suite Version 3.0, СУБД Interbase 5.0.

Кроме инструментальных средств при разработке и работе создаваемого программного обеспечения частично использованию подлежат следующие программные средства: Microsoft Word для Windows 95, Microsoft Excel для Windows 95, Internet Explorer, архиватор rar.

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

В качестве аппаратного обеспечения работы системы поддержки принятия решений для торгово-закупочного предприятия должны использоваться IBM-совместимые персональные компьютеры с процессорами Pentium или, в крайнем случае, 486. Это обуславливается используемыми при разработке программными средствами и операционной системой соответственно. От быстродействия ЭВМ зависит скорость работы программного обеспечения, поэтому, чем мощнее ЭВМ, тем лучше.

1.2.4 Основные требования к разрабатываемому программному обеспечению.


СППР для торгово-закупочного предприятия должна  удовлетворять  следующим общим требованиям:

n   иметь  "дружественный" интерфейс, то есть интерфейс, рассчитанный на неподготовленного пользователя;

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

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

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

При проектировании и разработке информационного обеспечения необходимо решить такие задачи, как:

n   определение состава данных, используемых при решении комплексов задач и их формализация;

n   унификация входной и выходной информации, определение рациональных форм документооборота;

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

n   разработка способов контроля вводимой информации;

n   определение состава и структуры нормативно-справочной информации.

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



1.3 Выбор и обоснование математического метода решения задачи

1.3.1 Аналитический обзор состояния проблемы


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

Функция, составленная по нашей задаче, не является линейной. Поэтому для решения этой задачи не могут использоваться методы линейного программирования. При использовании метода нелинейного программирования, градиентного спуска (см. п.1.3.3), будет найдено неоптимальное решение, так как, достигнув локального экстремума алгоритм останавливается, и, следовательно, для поиска глобального оптимума потребуются дополнительные усилия. Поэтому для решения поставленной задачи требуется применение кокого-либо другого алгоритма.

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

1.3.2 Генетические алгоритмы

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

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

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

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

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

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

1.3.3 Возможные случаи применения генетического алгоритма


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

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

Но бывают случаи, когда генетический алгоритм не работает эффективно.

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

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

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



1.3.4 Символьная модель генетического алгоритма



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

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

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

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

Установить соответствие между генотипом и фенотипом закодированных особей можно, разделив соответствующее двоичное целое число на (). Например, 0000000000 соответствует 0/1023 или 0, тогда как 1111111111 соответствует 1023/1023 или 1. Оптимизируемая структура данных - N*10-битная строка, представляющая конкатенацию кодировок N переменных. Первая переменная размещается в крайних левых 10 разрядах, тогда как последняя – в правой части генотипа особи (N*10-битовой строке).

Генотип - точка в N*10-мерном хеммининговом пространстве, исследуемом генетическим алгоритмом. Фенотип - точка в N пространстве параметров.

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

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

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

1.3.5 Работа генетического алгоритма


Простой генетический алгоритм случайным образом генерирует начальную популяцию структур. Работа генетического алгоритма представляет собой итерационный процесс, который продолжается до тех пор, пока не выполнятся заданное число поколений или какой-либо иной критерий остановки. На каждом поколении генетического алгоритма реализуется отбор пропорционально приспособленности, одноточечный кроссовер и мутация. Сначала, пропорциональный отбор назначает каждой структуре вероятность Ps(i) равную отношению ее приспособленности к суммарной приспособленности популяции:

Затем происходит отбор (с замещением) всех n особей для дальнейшей генетической обработки, согласно величине Ps(i). Простейший пропорциональный отбор - рулетка Голдберга – отбирает особей с помощью n "запусков" рулетки. Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-ого сектора пропорционален соответствующей величине Ps(i). При таком отборе члены популяции с более высокой приспособленностью с большей вероятностью будут чаще выбираться, чем особи с низкой приспособленностью.

После отбора, n выбранных особей подвергаются кроссоверу (иногда называемому рекомбинацией) с заданной вероятностью Pc. n строк случайным образом разбиваются на n/2 пары. Для каждой пары с вероятность Pc может применяться кроссовер. Соответственно с вероятностью 1-Pc кроссовер не происходит и неизмененные особи переходят на стадию мутации. Если кроссовер происходит, полученные потомки заменяют собой родителей и переходят к мутации.

Одноточечный кроссовер работает следующим образом. Сначала, случайным образом выбирается одна из n-1 точек разрыва (участок между соседними битами в строке). Обе родительские структуры разрываются на два сегмента по этой точке. Затем, соответствующие сегменты различных родителей склеиваются и получаются два генотипа потомков.  На рисунке 1.4 представлен одноточечный кроссовер с точкой разрыва, равной 2.

               








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

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

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

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

2  РАЗРАБОТКА СИСТЕМЫ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ДЛЯ ФОРМИРОВАНИЯ ЗАКАЗА НА ТОРГОВО-ЗАКУПОЧНОМ ПРЕДПРИЯТИИ

2.1 Обоснование выбора инструментальных и аппаратных средств


В процессе обучения по специальности ПО ВТиАС в БелГТАСМ мною были изучены такие языки высокого уровня как Turbo Pascal (Турбо Паскаль) , Turbo C (самостоятельное изучение), Delphi Client/Server Suite, системы управления базами данных: FoxPro, dBase, Paradox, InterBase.

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



2.1.1 Языки программирования

2.1.1.1 Язык Turbo Pascal

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

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

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

Язык содержит ряд изобразительных средств таких как case, repeat, if, while, помогающих организовать ветвление в программе без использования операторов перехода, что способствует простому пониманию алгоритма.

Некоторые из основных расширений Паскаль-стандарта и дополнительные возможности Турбо Паскаля:

*                     Введены типы данных word, byte, string.

*  Введены понятия типизированного и нетипизированного файлов и разработаны соответствующие процедуры.

*  В Турбо Паскале разработаны процедуры и функции ввода-вывода для работы с любыми файлами.

*  Предусмотрены процедуры и функции для работы с переменными типа string.

В Турбо Паскале разработаны программные средства для построения графических изображений на экране компьютера; создана интегрированная Среда разработчика (ИСР), то есть ряд специализированных средств и возможностей, позволяющих создавать на экране персональной ЭВМ так называемые “окна”. В рамках этих окон, рабочих областей, пользователь может задавать те или иные действия. ИСР является средством, используемым при создании, редактировании, компиляции, выполнении и отладке Паскаль-программ.

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

Начиная с версии 5.5 Турбо Паскаль еще один современный метод проектирования программ —  объектно-ориентированное программирование.

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

2.1.1.2 Язык Turbo С



Язык Си разрабатывался как язык системного программирования. Его развитие шло по пути повышения надежности программ.

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

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

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

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

Например:

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

В Си нет строк переменной длины. В Си нет средств средств ввода и вывода, но функции ввода и вывода входят в стандартную библиотеку.

В Турбо Си, также как и в Турбо Паскале есть нововведения, такие как интегрированная среда разработчика, дополнительные операторы и типы, функции и т.д.

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

·      язык Турбо Паскаль используется в учебных целях и мое знание его проверено преподавателями в процессе написания лабораторных работ и сдачи экзаменов;

·      удобочитаемость программ Турбо Паскаль лучше, чем программ Турбо Си;

·      синтаксис языка безопасен;

·      больше примитивных типов данных, чем в Турбо Си;

·      трактовка типов данных более строгая, чем в Турбо Си.

Но структурированный подход к программированию уже устарел, и большей популярностью и удобством пользуется объектно-ориентированный подход. Хотелось бы получить возможность намного более быстрого и легкого написания программ, чем в Турбо Паскаль, облегчить процесс создания баз данных и объединения их с программой.  Поэтому рассмотрим другие программные средства, такие как Delphi Client/Server Suite и С++Builder.

2.1.1.3 Язык Delphi Client/Server Suite



Говоря о том или ином средстве разработки приложений всегда хочется понять какие тенденции приводят к его появлению. Borland Delphi не является исключением из

правил.

Одно направление - объектно-ориентированный подход, хорошо структурирующий

задачу, как таковую, так и ее решение в виде прикладной системы.

Другое направление, возникшее во многом благодаря объектной ориентации, -

визуальные средства быстрой разработки приложений (RAD - Rapid Application

Development), основанные на компонентной архитектуре.

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

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

отчуждаемости готовых систем, так как отпадает необходимость "таскать за собой" сам

интерпретатор (run-time), выполненный обычно в виде динамической библиотеки и

занимающий в лучшем случае несколько сотен килобайт (а большинстве случаев -

два-три мегабайта). Отсюда и меньшая ресурсоемкость у скомпилированных систем.

Четвертая тенденция - возможность работы с базами данных универсальными

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

файл-серверных данных к архитектуре клиент-сервер.

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

подходов.

Система объектно-ориентированного программирования Delphi Client/Server Suite производства корпорации Borland предназначена для операционных систем Windows 95 и NT. Интегрированная среда Delphi обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств Delphi, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

Интегрированная среда разработки объединяет Редактор форм, Инспектор объектов, Палитру компонент.

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

Конструирование по способу "drag-and-drop " позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонент из Палитры на форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и событиями компонент, автоматически создавая заготовки функций обработки событий, которые наполняются кодом и редактируются в процессе разработки.

Свойства, методы и события - это именно те элементы языка, которые обеспечивают быструю разработку приложений в рамках объектно-ориентированного программирования. Свойства позволяют легко устанавливать разнообразные характеристики объектов. Методы производят определенные, иногда довольно сложные, операции над объектом. События связывают воздействия пользователя на объекты с кодами реакции на эти воздействия. События могут возникать при таких специфических изменениях состояния объектов как обновление данных в интерфейсных элементах доступа к базам данных. Работая совместно, свойства, методы и события образуют среду RAD быстрого и интуитивного программирования надежных приложений для Windows.

Исходные тексты Библиотеки Визуальных Компонент облегчают разработку новых компонент на базе готовых примеров.

Borland Database Engine (BDE) обеспечивает единообразную работу с локальными данными (Paradox, dBase) и серверами БД (Oracle, Sybase, MS SQL Server, InterBase и т.д.), за счет применения навигационных методов доступа к серверным СУБД двунаправленные курсоры, закладки и т.п.) и SQL - к локальным форматам (подмножество Local SQL).

Компилятор Delphi является самым быстрым; имеет общий генератор кода с Borland C++. Компилятор Delphi (точнее, Object Pascal) является продолжением линии компиляторов Turbo Pascal / Borland Pascal.

Открытые интерфейсы Delphi - Open Tools API - обеспечивают контроль над средой разработки "извне" и доступ к информации о проекте.

Система Delphi 3 Client/Server Suite предоставляет в распоряжение программистов-профессионалов высокопродуктивные средства разработки 16- и 32-разрядных приложений для операционных систем Windows 95, NT.

2.1.1.4 Язык C++ Builder

Среда С++ Builder производства корпорации Borland во многом похожа на среду Delphi Client/Server Suite. C++Builder и Delphi скомпилируют и соберут готовое приложение с одинаковым успехом.

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

Профессиональные C++ разработки пользуются гораздо большим спросом, нежели продукты системы Delphi, да и оплачиваются C++ программисты несколько выше.

C++Builder является более мощной системой, чем Delphi, однако, хорошо известно, что опытные разработчики способны справиться с поставленной задачей на Паскале лучше, чем большинство рядовых C++ программистов. Также, Delphi предоставляет более гибкие средства для разработки компонент, хотя созданные компоненты предназначены для внедрения в обе системы.


На основании приведенного выше описания языков Delphi и С++Builder и на основании того, что Delphi использует язык Объектный Паскаль, мой выбор остановился на  Delphi Client/Server Suite (версии 3.0).

2.1.2 Системы управления базами данных

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

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

SQL Links – драйверы для работы с удаленными "промышленными" СУБД, такими как Sybase, MS SQL Server, Oracle. Для работы с SQL -сервером Borland InterBase устанавливать SQL Links нет необходимости. Доступ к таблицам локальных СУБД типа Paradox, dBase также осуществляется BDE без использования SQL Links.

BDE Administrator – утилита для установки псевдонимов (имен) баз данных, параметров баз данных и драйверов баз данных на конкретном компьютере.

Database Desktop (DBD) – средство для создания, изменения и просмотра БД. Эта утилита прежде всего ориентирована на работу с таблицами локальных ("персональных") СУБД, таких как Paradox и dBase. В ряде случаев может использоваться и для работы с таблицами удаленных СУБД. Например, из DBD можно с некоторыми ограничениями создавать таблицы БД, работающие под управлением InterBase, Oracle, и просматривать их содержимое.

Database Explorer (SQL Explorer) – утилита для конфигурирования псевдонимов БД, просмотра структуры БД, таблиц БД, выдачи запросов к БД, создания словарей данных.

SQL Monitor – средства для трассировки выполнения SQL-запросов.

Visual Query Builder – средство в составе интегрированной среды Delphi для автоматического создания SQL-запросов методом QBE (Query by Example, запрос по образцу).

Data Dictionary – словарь данных. Средство для хранения атрибутов полей таблиц БД отдельно от самих БД и приложений. Информация о полях может использоваться различными приложениями.

Data Module – невизуальные компоненты типа TDataModule применяются для централизованного хранения наборов данных в приложении, работающем с БД. Одним из главных удобств является приписывание каждому набору данных правил по управлению данными. Такие правила называются бизнес-правилами. Они обычно определяют реакцию системы при добавлении, изменении, удалении данных, при вводе ошибочных значений и реализует блокировку действий, которые могут разрушить ссылочную и смысловую целостность БД. Такие бизнес-правила, хранящиеся централизованно на уровне приложения, при использовании одного и того же набора данных в разных формах приложения, позволяют унифицировать поведение набора данных на уровне всего приложения.

Object Repository – репозиторий объектов Delphi. Будучи единожды разработанными для какого-либо приложения, формы с визуальными и невизуальными компонентами, а также компоненты TDataModule могут сохраняться в репозитории. Тогда они могут использоваться другими, вновь создаваемыми приложениями. Таким образом устраняется необходимость повторного написания идентичного или схожего кода в приложениях.

Data Migration Wizard – средство для перемещения данных между БД различных типов.

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

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

Компоненты для построения отчетов – около двадцати компонентов для построения отчетов.

Local InterBase Server – локальная однопользовательская версия SQL-сервера Borland InterBase. Поддерживает два активных соединения клиентов с сервером. Используется в основном для создания БД, отладки клиентских приложений, которые будут работать с удаленными БД. В дальнейшем, после отладки, БД переносятся на действительно удаленный сервер, а приложение клиентского места перенастраивается для работы с удаленной БД.

InterBase Server для Windows 95 –  4-пользовательская версия SQL-сервера Borland InterBase, которая может устанавливаться на компьютерах, работающих под управлением Windows 95. Используется для тех же целей, что и Local InterBase Server, однако на InterBase для Windows 95 можно производить отладку в многопользовательском режиме, что важно для проверки корректности изменений, одновременно вносимых пользователями БД при параллельной работе с ней.

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

BDE содержит драйверы, позволяющие работать с файлами dBase, Paradox, Local InterBase, InterBase (не входит в поставку Delphi). Для работы с другими СУБД имеются необходимые средства поддержки ODBC.

Страницы: 1, 2, 3, 4, 5


© 2010 РЕФЕРАТЫ