Автоматизированная справочно-информационная система учета и контроля поставок на предприятии 1. Состояние проблемы учета поставок на предприятие. Введение
Хозяйство Украины представляет собой совокупность предприятий и организаций отдельных отраслей народного хозяйства различных форм собственности. Предприятия государственной формы собственности находятся в ведении различных министерств и ведомств, а также в ведении местных исполкомов. Производственная деятельность как и хозяйственная, направлены на выпуск предметов культурно-бытового назначения, хозяйственного обихода и др. Таким образом, в состав хозяйства Украины входят предприятия и организации, как сферы материального производства, так и сферы обслуживания, как хозрасчетные, так и состоящие на государственном бюджете. Наибольшее число госбюджетных организаций находится в ведении Министерства образования и науки Украины: школы, детские сады, педагогические институты, техникумы, училища и т. п. (около 30% общего количества организаций); министерства здравоохранения Украины–больницы, санатории, госпитали и др. лечебные учреждения (около 20%); министерства культуры и просвещения Украины– театры, библиотеки, музеи и др. (более 25% общего количества организаций) [3]. Руководство местным хозяйством страны организовано как по отраслевому принципу (через соответствующие министерства и ведомства), так и по территориальному (через местные органы управления).
Предприятия хозяйства Украины производят разнообразную продукцию. В ее числе можно найти средства производства: станки, машины, металлопродукцию, товары народного потребления, предметы бытовой химии и т. п.
Для производства всей вышеперечисленной продукции предприятия, независимо от форм собственности, для своего нормального и стабильного функционирования нуждаются в сырье, комплектующих, запчастях и т. п. Иными словами для организации своей деятельности предприятия сталкиваются с проблемой своевременной поставки продукции. Для этих целей предприятия государственной формы собственности используют снабженческие организации (в настоящее время данными организациями пользуются специализированные государственные предприятия), предприятия же частных форм собственности проводят соответствующие мероприятия, направленные на своевременное и непрерывное обеспечение необходимым сырьем или материалами. Но в настоящее время практически все предприятия любой формы собственности самостоятельно занимаются поиском предприятий-поставщиков, а также по мере необходимости организацией поставок.
Одним из показателей характеризующих работу предприятия является товарооборот, который представляет собой планово организационный процесс обращения средств производства[2], от которого во многом зависят и другие экономические показатели. В общий объем товарооборота включают все товары, реализованные предприятием, т. е. полученные от предприятий поставщиков продукции. Также товарооборот показывает насколько быстро предприятие использует полученную продукцию, т. е. какими темпами оно осуществляет свою деятельность, чем больше на предприятие осуществляется поставок, тем более стабильно работает данное предприятие.
При осуществлении поставок на предприятие производится обработка и хранение большого количества информации, связанной с поставками, которая в себя включает:
своевременное и правильное оформление документов и контроль за каждой операцией поступления товаров от поставщиков, из переработки и других источников, выявление расхождения фактического наличия и количества, указанного в сопроводительных документах;
контроль за своевременным, полным и правильным оприходованием поступивших товаров;
своевременное и правильное оформление документации и контроль за каждой операцией отпуска, отгрузки или реализации товара; контроль за соблюдением нормативов запаса товаров.
В связи с этим для надежного функционирования системы поставок необходимо вести их систематический и непрерывный учет, что и будет выполнять разрабатываемое ПО.
Разрабатываемый программный продукт будет отличаться от аналогичного программного обеспечения возможностью применения на современной электронно-вычислительной технике [1], удобным интерфейсом, низкой стоимостью, возможностью его использования на любом предприятии. 1. 1 Общая характеристика проблемы
При осуществлении поставок предприятия изготовители продукции производственно-технического назначения вступают в договорные отношения с предприятиями потребителями (покупателями) как поставщики заключают прямые договора с предприятиями потребителями для сбыта продукции и комплексного снабжения предприятий-заказчиков.
Договоры о поставках необходимо заключать своевременно. В них указываются условия поставки товаров, их количество, ассортимент, качество, комплектность и сроки поставки. Кроме того, в договорах предусмотрены цены на товары, общая сумма, порядок расчетов, платежные и отгрузочные реквизиты поставщика и получателя продукции. Договора подлежат обязательному выполнению по всем указанным в них пунктам. Нарушение сроков договоров и обязательств влечет ответственность, предусмотренную “Положением о поставке продукции производственно-технического назначения” и “Особыми условиями поставки. ” Контроль за выполнением договоров осуществляют товарные отделы. Рациональная организация приемки продукции от поставщиков имеет важное значение для своевременного, полного, комплексного снабжения предприятий сырьем, материалами, топливом, инструментами, оборудованием и другими средствами производства.
Правильная приемка и оформление документами поступивших товаров Является надежной основой сохранности товарно-материальных ценностей. Общий порядок приемки товарно-материальных ценностей установлен “Положением о поставке продукции производственно-технического назначения”. Порядок и сроки приемки товарно-материальных ценностей в определенном количестве и качестве, оформление актов приемки и предъявление претензий определены инструкцией о порядке приемки продукции производственно-технического назначения и товаров народного потребления по количеству и инструкцией о порядке приемки продукции производственно-технического назначения по качеству. Особенности приемки отдельных видов продукции определяются в ГОСТах [12. 01. 005-89], технических условиях, Особых условиях поставки и договорах поставки, предусматривающих особые порядки приемки продукции при поставках.
На предприятиях государственной формы собственности осуществлением всех действий связанных с поставками и оформлением необходимых документов , при наличии соответствующего программного обеспечения, занимается определенное количество персонала предприятия, но , как правило, разработка такого программного обеспечения велась на языках низкого уровня программирования, а за последние 6-8 лет развитие машинных средств (ПЭВМ), программных средств резко увеличилась, поэтому ранее разработанное ПО не отвечает более высоким требованиям, предъявляемым к современным программным продуктам. Что же касается предприятий, фирм различный форм частной собственности, то они зачастую не имеют вовсе соответствующего программного обеспечения, что значительно увеличивает трудоемкость процесса контроля и учета проведения поставок. Разрабатываемый программный продукт и призван решать данные проблемы. 1. 2 Формулировка задач
Любое предприятие, осуществляя свою деятельность, для получения продукции от поставщиков должно заключить с последними договор на поставку продукции. Обычно на одноименную продукцию предприятие-заказчик заключает несколько договоров с предприятиями-поставщиками. Затем заказчик по мере потребности в определенной продукции высылает поставщику заявку на поставку продукции и получает от последнего счет-фактуру, в котором указано наименование продукции и ее отпускная цена. На основании этих счетов предприятие-заказчик определяет оптимальную заявку и высылает поставщику заказ на поставку продукции. После получения заказанной продукции заказчик отправляет счет в бухгалтерию, которая оплачивает его в банке в течении срока, предусмотренного договором. Поэтому для документального обеспечения процесса поставок на предприятие программа должна создавать (распечатывать) следующие необходимые документы:
бланк договора предприятия-заказчика с фирмой-поставщиком (с указанием наименования и юридических адресов сторон, ассортимента продукции для поставок, ее количества и предположительной стоимости, а так же условия и сроки действия договора);
заказ на поставку необходимой продукции (указывается количество, наименование, номенклатура, сроки поставки).
Также создаваемая автоматизированная система по имеющимся данным о поставщиках и вновь полученным данным должна определять оптимальный счет-фактуру с точки зрения количество-цена.
Любую поставку предприятие-заказчик обязано оплатить в установленные договором сроки, поэтому АС должна осуществлять подсчет суммы долга (денег к выплате) на текущую дату. 1. 3 Мотивация задач.
Предприятие или фирма, производя свою продукцию, нуждается в поставках сырья от других предприятий. Но на одно и тоже сырье у разных производителей-поставщиков различная отпускная цена, поэтому в целях снижения себестоимости выпускаемой продукции предприятие заказчик заключает договора с большим количеством поставщиков и затем высылает поставщикам заявку на поставку продукции с указанием типа и ее количества. Поскольку предприятие-заказчик при получении грузов так или иначе связано с документами, с документальным оформлением поставок, то проектируемая АСИС должна создавать все бланки документов, связанных с поставками.
Поскольку все поставщики высылают заказчику счета-фактуры (прейскурант цен на заказанную продукцию), то среди их множества необходимо определить наиболее выгодное для предприятия-заказчика, как по цене, так и по качеству, что и должна выполнять создаваемая АС.
Так как договора с поставщиками заключаются на определенный срок, предполагаемое количество поставляемой продукции и на определенную сумму, то при осуществлении заказа на поставку продукции, в договоре оговаривается срок, в течении которого заказ должен быть оплачен, поэтому необходимо знать сумму к оплате на указанное число, как общую так и по различным поставщикам в отдельности.
Так как все вышеперечисленные действия осуществляются на протяжении длительного времени, то при приятии решения о продлении срока действия договора целесообразно принимать во внимание следующие факторы: качество поставок конкретными поставщиками (имеется ввиду выполнение сроков осуществления поставок, соответствие номенклатуры поставленной продукции заказанной, отсутствие или процент брака), его терпимость по отношению к оплате по поставкам. Поэтому необходимо сохранять всю информацию о поставках на предприятие, что бы в дальнейшем ее можно было бы использовать. 1. 3. Техническое задание. Введение.
Автоматизированная справочно-информационная система (АСИС) “Учет поставок” будет использоваться на предприятиях различных форм собственности и обеспечивать контроль и учет поставок производимых на предприятие. Также при использовании данного ПО будет иметься возможность составления отчетности о поставках на предприятие, выявление задолженности по оплате поставок. Разрабатываемое ПО может быть использовано как руководителем предприятия, для осуществления контроля производимых поставок на предприятие, так и начальниками цехов, для ведения учета поставок. 1. 3. 1. Основания для разработки.
Основанием для выполнения работы является приказ о базе преддипломной практики от 10 июня 1999 г. № 270 по Государственному аэрокосмическому университету и приказ о дипломном проектировании от 26 июня 2000 г. № 271. 1. 3. 2. Назначение разработки.
Целью дипломного проектирования является разработка и создание программного продукта “Учет поставок”. Данный программное обеспечение предназначено для контроля, учета, автоматизации и систематизации информации о поставках различного вида продукции на предприятие любой формы собственности, занимающимся любым видом производства или деятельности.
Разрабатываемый программный продукт должен обеспечивать создание информационной базы об осуществленных поставках на предприятие, а также осуществлять создание следующих документов :
бланк договора предприятия заказчика с фирмой-поставщиком (с указанием наименования и юридических адресов сторон, участвующих в договоре, ассортимента продукции для поставок, ее количества, предположительной стоимости, условия и сроки действия договора);
заявку на поставку необходимой продукции (указывается количество, наименование, номенклатура, сроки поставки, сумма поставки); заказ на поставку.
Коммерческая версия программного продукта позволит производить: более полный контроль и организацию учета о поставках на предприятие; автоматизировать процесс оформления поставок на предприятие; уменьшит временные затраты на оформление документов, связанных с поставками; вычислять задолженность по оплате осуществленных поставок на указанный период; обеспечить пользователя системой помощи как по понятиям предметной области, так и по пользованию программным продуктом.
Разрабатываемый автоматизированная система должна будет реализовать следующие функции: Обеспечение ввода данных о поставках на предприятие; Анализ введенной информации;
Подсчет задолженности предприятия за осуществленные поставки; Определять оптимальный счет-фактуру с точки зрения “количество-цена”; Производит печать документации, связанной с организацией поставок (бланк договора, заказа, заявки). 1. 3. 3. Исходные данные и источники.
Данная работа базируется на теме преддипломной практики и является ее продолжением с учетом рекомендаций по улучшению ранее разработанного ПО, предложенных руководителем практики от предприятия и группой сотрудников этого предприятия и рассмотренных руководителем практики от института. 1. 3. 4. Исходные требования к конечному результату. Требования по функциональности.
Разрабатываемая АСИС должен обеспечивать автоматизированный контроль, а так же учет поставок на предприятие (цех этого предприятия), для этого создаваемая система должна:
Обеспечивать ввод, связанных с поставками на предприятие и обработку этих данных;
Создавать отчетные документы и документы для организации грузопоставок; ( Приложение А) Иметь систему помощи по программе;
При вводе данных об наименовании товаров должен использоваться справочник “Номенклатура товаров”;
Создаваемые документы должны отвечать отраслевым стандартам, принятым на предприятии. Условия эксплуатации
Создаваемый программный продукт должен будет использоваться директором предприятия, начальником цеха, начальником склада, в зависимости от места эксплуатации продукта. Заданные характеристики функционирования должны обеспечиваться при условиях, которые определяются конкретным носителем данных, на котором хранятся данные. Наиболее распространенными носителями данных в настоящее время являются жесткие диски, для которых оптимальным является функционирование при температурах от 5 до +35оС и относительной влажности от 10 до 60 процентов. Требования к составу и параметрам технических средств
Программа должна функционировать на персональных компьютерах со следующей конфигурацией: IBM PC/AT совместимых ПЭВМ не ниже Pentium 100; с объемом ОЗУ не менее 16 мегабайт;
Объем необходимого дискового пространства - не менее 10 мегабайт. Требования к информационной и программной совместимости
Создаваемая программа должна функционировать, легко инсталлироваться, настраиваться и корректно работать при выполнении следующих требований: наличие операционной системы типа Windows 95, Windows 98, Windows NT 4. x, Windows 2000 и совместимых с ними; наличие базы данных LocalInterBase или совместимых с ней; ввод даты обязателен в форме маски; ввод цифр обязателен. Требования по защите.
Для обеспечения защиты от несанкционированного доступа к информации, связанной с поставками на предприятие будет предусмотрена система паролей при загрузке программы в оперативную память. Для обеспечения защиты данных про сбое в сети питания ПК либо аварийном завершении работы программы будет предусмотрен режим автосохранения. 1. 3. 5. Этапы проведения работ. Этапы проведения работы представлены в таблице 1. 2. Таблица 1. 2. Этапы проведения работы. № Этапы Сроки выполнения Отчетность 1 Изучение принципов системы грузопоставок на предприятие 07. 07. 1999 – 14. 07. 1999 2 Ознакомление с ранее проделанной работой 01. 09. 1999– 08. 09. 1999 3 Определение требований к разработке 9. 09. 2000– 19. 09. 1999 Техническое задание 4
Разработка информационной модели предметной области (построение концептуальной модели) 20. 09. 200– 09. 10. 1999 5 Выбор алгоритмических средств 10. 10. 1999– 28. 10. 1999 6 Определение программных средств 29. 10. 99– 07. 11. 1999 7 Выбор методики испытания и тестирования 08. 11. 1999– 15. 11. 1999 Техническое предложение 8
Разработка алгоритмов, связанных с реализацией учета поставок 16. 11. 1999– 9. 12. 1999 9
Проектирование алгоритмов, связанных с формированием тестовых заданий 10. 12. 1999 – 20. 12. 1999 10
Определение средств проведения тестирования и анализа его результатов 11. 12. 1999– 30. 12. 1999 11
Разработка программного обеспечения связанного с реализацией учета поставок на предприятие 31. 12. 1999– 15. 02. 2000 12
Разработка программного обеспечения связанного с формированием тестовых заданий 16. 02. 2000– 3. 03. 2000 13
Реализация программного обеспечения проведения тестирования и анализа его результатов 4. 03. 2000– 4. 04. 2000 14
Проведение тестирования и испытаний разработанного программного обеспечения 5. 04. 2000– 19. 04. 2000 16 Написание расчетно-пояснительной записки 20. 04. 2000– 21. 05. 2000 Расчетно-пояснительная записка 17 Подготовка плакатов 22. 05. 2000– 29. 05. 2000 Плакаты 18 Подготовка доклада 29. 05. 2000– 11. 06. 2000 Доклад 19 Предзащита дипломного проекта 12. 06. 2000 20 Защита дипломного проекта 20. 06. 2000 1. 3. 6. Планируемые показатели эффективности.
В результате выполненной работы предполагается достигнуть следующих эффектов: уменьшение времени необходимого для учета поставок произведенных на предприятие; автоматизация контроля поставок;
возможность длительного хранения информации о поставках на предприятие большого срока давности, для возможности более полного расчета эффективности деятельности предприятия;
постоянная известность о сроках оплаты осуществленных поставок. 1. 3. 7. Порядок приемки результатов работы.
Приемка результатов работы осуществляется в соответствии с планом приемки, утвержденным на кафедре и согласованным с руководителем практики. Этот план включает следующие пункты:
Сдача технического задания, технического предложения, журнала по преддипломной практике и содержания расчетно-пояснительной записки после прохождения преддипломной практики. Сдача программы.
Предзащита дипломного проекта. Предоставляются : расчетно-пояснительная записка, плакаты, доклад, рецензия, отзыв руководителя.
Защита дипломного проекта. Предоставляются: дипломный проект с документами, замечания, допуск на защиту, карточка учета деканата, демонстрационный образец. 1. 3. 8. Документация, предъявляемая по окончанию работы.
После окончания работы предоставляется следующая документация: Техническое задание; Расчетно-пояснительная записка; Описание применения; Руководство системного программиста; Руководство оператора; Также предоставляются: Плакаты; Доклад; Рецензия; Текст программы;
Дискета с программным продуктом и сопроводительной документацией. 2. Моделирование. 2. 1 Анализ представления моделей данных.
Для эффективного функционирования разрабатываемой АСИС “Учет поставок” будет разработана СУБД [24]. Поэтому ниже рассмотрены логические и концептуальные модели данных. 2. 2 Выбор логической модели данных. 2. 2. 1 Иерархическая модель данных.
Иерархическая модель [6] данных представляет собой иерархию в виде дерева. Данная модель данных базируется на сегменте, который представляет собой совокупность полей, характеризующих данный сегмент. Сегменты различаются по типу, а каждый тип характеризуется фиксированной длиной и конкретным разбиением на поля данных. Два связанных сегмента, расположенных на смежных уровнях называются исходным (более высокого уровня) и порожденным (более низкого). Иерархическая запись–система взаимосвязанных сегментов, в которой каждый порожденный сегмент представлен столько раз, сколько необходимо для полного раскрытия данного сегмента. В иерархической структуре есть сегмент, который не имеет исходного и называется головным или корневым. В этом сегменте обычно располагается идентификатор объекта, свойства которого раскрываются в сегментах второго и более низких уровней иерархии.
Для реализации данной модели на физическом уровне используется ряд стандартных методов размещения данных на запоминающих устройствах, которые могут размещать сегменты следующими иерархическими способами доступа: последовательный, индексно-последовательный, прямой, индексно-прямой. В соответствии со способами размещения сегментов устанавливается порядок доступа к ним. Установленный порядок доступа к сегментам обуславливает процедурность языка запросов и требует от пользователя знания путей доступа к данным, проходящим по ветвям дерева иерархической записи. Что является одним из недостатков данной модели. В качестве других недостатков можно отметить следующие:
Сложность реализации “многие ко многим”, требующая избыточности данных на физическом уровне, что приведет к нежелательному и не оправданному увеличению БД;
требование повышенной корректности к операции удаления, поскольку удаление исходного сегмента влечет за собой удаление порожденных;
доступ к любому порожденному сегменту возможен только через исходный, что увеличивает время ответа а запрос к БД.
В связи с тем, что иерархическая модель обладает большим количеством недостатков она не будет применятся для моделирования разрабатываемой АСИС. 2. 2. 2 Сетевая модель данных.
Сеть [5] –более общая структура в сравнении с иерархией. Узлами сети являются отдельные экземпляры записи. Узлы записи являются единицей доступа к БД. Поскольку отдельный узел может иметь несколько непосредственно старших узлов, так же, как и несколько непосредственно подчиненных, то данная структура обеспечивает прямое представление отношения “многие ко многим”. Для связи между записями-узлами существует связующая запись, все экземпляры которой помещаются в цепочку для связи двух экземпляров.
Основной конструкцией сетевой модели данных является набор. Для каждого типа набора, определяемого в схеме, должен быть указан определенный тип записи владельца набора, а так же произвольное число типов записи членов набора. Каждый экземпляр набора состоит из одного экземпляра-владельца и одного или более экземпляров записей-членов.
Каждый экземпляр записи-набора представляет иерархические связи между экземпляром записи-владельца и соответствующими экземплярами записей-членов. Это является следствием того ограничения, что ни один экземпляр записи-члена из набора на может принадлежать более, чем одному экземпляру набора. Способ, которым каждый экземпляр записи владельца связывается с соответствующими экземплярами записей-членов, определяется в схеме сети. Одним из способов организации таких связей является установление цепочки указателей, выходящих из экземпляра записи-владельца, проходящих через все экземпляры записей-членов и возвращающихся обратно к экземпляру записи-владельца, что обеспечивает высокую скорость обработки запросов.
Главный недостаток сетевой модели заключается в сложности структур памяти. Пользователь должен знать, какие цепочки существуют и какие отсутствуют. В результате язык запросов процедурный и требует программистских навыков. 2. 2. 3 Реляционная модель данных.
Реляционная модель –множественное отношение которое представляет собой подмножество декартова произведения списка доменов [27, 20]. Домен–это множество значений, из которого извлекаются значения для данного атрибута. Другими словами в основе реляционной модели лежат простые таблицы, которые удовлетворяют определенным ограничениям, а потому могут рассматриваться как математические отношения. Строки таких таблиц называются кортежами, имена столбцов–атрибутами. Следует отметить, что все кортежи различны, а порядок столбцов произволен, чем упрощается процесс обработки кортежей. В отношении (таблице) выделяется несколько атрибутов, однозначно идентифицирующих кортежи и называемых ключами.
Особенность реляционной модели заключается в том, что в отличии от сетевой и иерархической моделей реальные объекты и взаимосвязи между ними представляются в базе данных единообразно в виде нормализованных отношений [24]. Основной недостаток реляционной модели данных связывается с низкой производительностью реляционной СУБД. Но разработка современных СУБД таких как, ORACLE, InterBase, Acsses и др. позволило преодолеть и этот недостаток. Достоинства реляционной модели можно разделить на две группы: достоинства для пользователя:
реляционная БД представляет собой набор таблиц с которыми пользователь привык работать;
не нужно помнить пути доступа к данным и строить алгоритмы и процедуры обработки своего запроса;
реляционные языки легки для изучения и освоения, в то время как языки общения с иерархической и сетевой моделями предназначены для программистов и мало пригодны для пользователей; достоинства обработки данных реляционной БД:
связность. Реляционное представление дает ясную картину взаимосвязей атрибутов из различных отношений;
точность. Направленные связи в реляционной БД отсутствуют. Отношения по своей природе обладают более точным смыслом и поддаются манипулированию с использованием таких средств, как алгебра и исчисление отношений [5], обеспечивающих наглядность и гибкость модели данных;
гибкость. Операции проекции и объединения [17] позволяют разрезать и склеивать отношения, так что программист может получать разнообразные файлы в нужной форме; секретность. Контроль секретности упрощается. Для каждого отношения имеется возможность задания правомерности доступа, засекреченные показатели можно выделить в отдельные отношения с проверкой прав доступа.
Простота внедрения. Физическое размещение однородных (табличных) файлов намного проще, чем размещение иерархических и сетевых структур.
Независимость данных. БД должна допускать возможность расширения, т. е. добавления новых атрибутов и отношений.
Вывод: поскольку среди перечисленных логических моделей данных реляционная обладает значительными преимуществами и малыми недостатками, то она и будет взята в основу для построения СУБД. 2. 3 Выбор концептуальной модели.
Для выбора концептуальной модели данных рассмотрим три их разновидности: Семантическая модель; Фреймы; Модель “сущность-связь”.
Семантическая модельосновывается на построении семантической сети. Под семантической сетью понимают ориентированный граф, состоящий из помеченных вершин и дуг и задающий объекты и отношения предметной области. Семантические сети обладают рядом достоинств, а именно:
Описание объектов предметной области происходит естественным языком; Все записи, поступающие в БД накапливаются в относительно однородной структуре. Но несмотря на эти преимущества, семантическая модель данных обладает рядом недостатков, один из которых и наиболее существенный, заключается в том, что построение реляционной модели данных на основе семантических сетей затруднено. Фреймывыражаются структурами данных с привязанными процедурами обработки этих данных. Фреймы могут быть следующих видов: событийные, характеристики, логические предикаты. Использование фреймовой модели так же нецелесообразно, поскольку данная модель не отражает типы связей [14] в реляционной модели данных. Модель “сущность-связь” описывается в терминах сущность, связь, значение. Сущность – понятие которое может быть идентифицировано. Связь –соединение сущностей. Для представления связей и сущностей введен специальный метод: ER-диаграма [27]. Различаются сущности трех основных классов: стержневые, ассоциативные и характеристические. Стержневая сущность –это независимая сущность (ей свойственно независимое существование). Ассоциативная сущность или ассоциация рассматривается как связь между двумя или более сущностями типа "многие -ко- многим" или подобные им. Характеристическая сущность (или характеристика) представляет собой сущность, единственная цель которой, в рамках рассматриваемой предметной области, состоит в описании или уточнении некоторой другой сущности. ER-диаграма –графическое представление взаимосвязей сущностей. Каждое множество сущностей представляется прямоугольником, а множество связей–ромбом. Связи могут быть трех типов: “один к одному”, “один ко многим”, “многие ко многим”. данные типы связи присущи реляционной модели, как и сущности, которым в реляционной модели соответствуют таблицы.
Вывод: в связи с тем, что модель “сущность-связь” наиболее близка по принципам организации к реляционной модели и реализация последней на основе первой наиболее удобна, то в качестве концептуальной модели выбрана модель “сущность-связь”. 2. 4 Процесс моделирования. 2. 4. 1 Выделение сущностей.
Сущность “поставщик” является стержневой сущностью разрабатываемой модели. С поставщиком заключается договор, на основании которого ведется вся остальная деятельность предприятии по поставкам, отправление заявки поставщикам, получение от них счета-фактуры, отправление заказа на поставку, получение товара, оплата поставки. В качестве ключа для данной сущности вводится атрибут № Поставщика.
Все сущности , их атрибуты и ключи представлены в табл. 2. 1. Таблица 2. 1 Название сущности Атрибут Ключ Договор №Договора, дата договора, сумма договора, срок действия. №Договора Поставщик №Поставщика, наименование поставщика, адрес, телефон. №Поставщика Ассортимент товаров №Товара, наименование товара. №Товара Заявка №Заявки, ассортимент заявки, номер договора, дата заявки. №Заявки Заказ
№Заказа, №Договора, ассортимент заказа, дата заказа, номер счета. №Заказа Счет-фактура
№Счета, ассортимент счета, цена за единицу товара, сумма счета. №Счета 2. 5 Построение логической модели.
Выполнив анализ сущностей и связей меду ними построим логическую модель, в виде отношений (таблица 2. 2) Таблица 2. 2 Название сущности Атрибут Ключ Договор №Договора, дата договора, сумма договора, срок действия. №Договора Поставщик №Поставщика, наименование поставщика, адрес, телефон. №Поставщика Ассортимент товаров №Товара, наименование товара. №Товара Заявка №Заявки, номер договора, дата заявки. №Заявки Заявка №Заявки, №товара, количество. №Заявки, №Товара Ассортимент заявки №Заказа, №Договора, дата заказа, номер счета. №Заказа Ассортимент заказа №Заказа, №Заявки, №товара. №Заказа, №Заявки, №товара. Счет-фактура №Счета, сумма счета. №Счета Цены поставщика №Счета, №Заявки, №Товара. №Счета, №Заявки, №Товара.
Для построения логической модели данных использовалось case - средство [17] ER-Win, которое позволяет проектировать реляционные модели данных как на физическом уровне (ER-диаграмы), так и на физическом (проектирование таблиц БД).
Логическая модель данных представлена в виде ER-диаграмы на рис. 2. 2. Рис 2. 2 ER-диаграмма модели данных АСИС “Учет поставок”
3. Проектирование алгоритмов справочно-информационной системы учета и контроля поставок на предприятие.
Алгоритмизация в самом общем виде может быть определена как процесс направленного действия проектировщика (группы проектировщиков), необходимый для выработки алгоритмов, достаточных для реализации создаваемого объекта (системы), удовлетворяющего заданным требованиям [19]. Завершающим этапом алгоритмизации является выпуск набора алгоритмов, отображающий решения, принятые проектировщиком, в форме, необходимой для производства объекта (системы). При проектировании системы я использовал три класса алгоритмов: Алгоритмы, связанные с проектированием АСИС;
Алгоритмы реляционной алгебры, необходимые для работы с БД; Алгоритмы расчета необходимых показателей (вычисление задолженности предприятия по оплате поставок, определение оптимального счета-фактуры). 3. 1 Выбор метода проектирования АСИС.
Метод —это последовательный процесс создания моделей, которые описывают вполне определёнными средствами различные стороны разрабатываемой программной системы [18]. Методы важны по нескольким причинам. Во-первых , они упорядочивают процесс создания сложных программных систем. Во-вторых , они позволяют менеджерам в процессе разработки оценить степень продвижения и риск. Обычно методы проектирования делятся на три основные группы; Метод проектирования сверху вниз; Метод потоков данных; Объектно-ориентированное проектирование.
Для структурного проектирования характерна алгоритмическая декомпозиция. Следует отметить , что большинство программ написано в соответствии с этим методом. Тем не менее структурный подход не позволяет выделить абстракции и обеспечить ограничение доступа к данным; он также не предоставляет достаточных средств для организации параллелизма. Структурный метод не может обеспечить создание предельно сложных систем , и он, как правило, неэффективен в объектных и объектно-ориентированных языках программирования. Поэтому данный метод не использовался для проектирования АСИС “Учет поставок”.
В методе потоков данных программная система рассматривается как преобразователь входных потоков в выходные. Метод потоков данных с успехом применялся при решении ряда сложных задач, в частности , в системах информационного обеспечения, где существуют прямые связи между входными и выходными потоками системы и где не требуется уделять особого внимания быстродействию. Но поскольку одним из основных требований предъявляемых к проектируемой АСИС является увеличение скорости автоматизации учета поставок и уменьшение временных затрат на оформление поставок на предприятии, то применение данного метода также нецелесообразно для проектирования АСИС.
Объектно-ориентированное проектирование (object-oriented design, OOD)—это подход в основе которого лежит представление о том , что программную систему нужно проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определённого класса, причём классы образуют иерархию. Объектно-ориентированный подход отражает топологию новейших языков высокого уровня , таких как Object Pascal, C++, Smalltalk [23] и др. Модели, для проектирования которой используется вышеназванный подход проектирования присущи четыре главных элемента: Абстрагирование; Инкапсуляция; Модульность; Иерархия.
Абстрагирование позволяет выделить существенные характеристики проектируемого объекта, отличающие его от других объектов;
Инкапсуляция –процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение. Она позволяет изолировать контрактные обязательства абстракции от их реализации.
Модульность –свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули.
Иерархия – упорядочивание абстракций, расположение их по уровням. Абстракция и инкапсуляция дополняют друг друга. Абстрагирование направлено на наблюдение поведения объекта извне, а инкапсуляция определяет четкие границы между различными абстракциями, т. е. наблюдение за поведением объекта изнутри. Использование этих элементов проектирования и позволяет значительно увеличить производительность любой проектируемой системы.
Таким образом, для проектирования АСИС используется объектно-ориентированный подход. 3. 2. Анализ алгоритмов работы с базой данных
Система управления разработанной БД использует реляционный подход для построения базы данных [20]. Подобные системы основаны на реляционной модели данных, которые используются для моделирования взаимосвязей между объектами реального мира и для хранения данных об этих объектах. Применение реляционной модели данных [27] обусловлено использованием реляционной алгебры и соответствующих алгоритмов и операций для выполнения действий над данными. Использование алгоритмов реляционной алгебры [20] позволяет обеспечить высокую производительность работы с базой данных.
Основные операции реляционной алгебры были впервые предложены Коддом [26]. Он доказал, что запросы, формулируемые с помощью языка исчисления могут быть сформулированы в языках реляционной алгебры и наоборот [18], т. е запросы представленные с помощью языка реляционной алгебры могут быть использованы для выполнения запросов к разработанной БД. Ниже приведен ряд запросов к БД:
SELECT nomer_dogovora, postav. nomer_postav, dogovor. nomer_postav, naimen_post FROM postav, dogovor WHERE postav. nomer_postav=dogovor. nomer_postav SELECT select nomer_zajavki, zajavka. nomer_dogovora, dogovor. nomer_dogovora, naimen_post, postav. nomer_postav, dogovor. nomer_postav FROM from zajavka, dogovor, postav WHERE (zajavka. nomer_dogovora=dogovor. nomer_dogovora) AND (postav. nomer_postav=dogovor. nomer_postav)
SELECT nomer_zakaza, zakaz. nomer_dogovora, dogovor. nomer_dogovora, naimen_post, postav. nomer_postav, dogovor. nomer_postav FROM zakaz, dogovor, postav WHERE (zakaz. nomer_dogovora=dogovor. nomer_dogovora) AND (postav. nomer_postav=dogovor. nomer_postav) Рассмотрим четыре операции над отношениями [20]: Селекция; Проекция; Теоретико-множественное объединение; Соединение.
Селекция (selected_on –подвергнутые селекции по) уменьшает количество строк в таблице, и ее можно представить как результат разрезания таблицы по горизонтали и удаления ненужных кортежей. Формально селекция записывается так:
R selected_on [] {синтаксис языка запросов (SQL)} Здесь - это логическое выражение, которое может содержать сравнения значений одних атрибутов со значениями других в том же кортеже или с константами. В результате сохраняются только строки, удовлетворяющие .
Операция селекции соответствует программам, которые выбирают записи из файлов и печатают эти записи. Однако условия отбора могут относится только к отдельно взятым записям. Например, невозможно выбрать запись, исходя из того, что значение какого-либо ее поля равно или больше, чем значение этого поля в предидущей записи. В действительности почти невозможно смоделировать поведение автомата с конечным числом состояний, который изменяет свое состояние для каждой записи, изменяя тем самым критерии отбора для следующей записи. Проекция (projected_to –спроецированное на) уменьшает количество столбцов в таблице; данную операцию можно представить себе как разрезание по вертикали название операции имеет своим источником понятие проекции множества точек N-мерного пространства в пространство с меньшим количеством измерений. Например, в результате проекции множества точек плоскости (Х, У) на ось Х получается множество точек, расположенных на этой оси. К сожалению, значения проекций некоторых “точек” могут совпадать; это произойдет в том случае, когда проекция удалит столбец, входящий в ключ, так что оставшиеся части двух “укороченных” кортежей могут быть идентичными. Тогда придется удалить дубликаты и тем самым уменьшить количество строк, т. е. размер БД. Если хотя бы один из возможных ключей при выполнении проекции останется незатронутым, то дубликатов не будет. Формально проекция записывается следующим образом: R projected_to {, }
Где список означает имена сохраняемых столбцов. Операция проекции соответствует программе отбора несколько иного рода, чем операция селекции, а именно, она печатает определенные поля из каждой записи. Удаление дубликатов обычно достигается в результате сортировки записей по требуемым полям, после чего записи пропускаются до тех пор, пока не изменится значение поля. На практике при одном просмотре файла операция проекции обычно происходит с операцией селекции.
Теоретико-множественное объединение (union) имеет два операнда; она берет строки двух таблиц и размещает их друг за другом, формируя одну длинную таблицу. Это возможно лишь в том случае, когда обе таблицы имеют один и тот же тип, т. е. имеют совпадающие названия (имена) и типы столбцов. Такие таблицы называют “совместимыми по объединению”. Все дубликаты строк должны быть удалены из отношения-результата. Данная операция аналогична объединению множеств в алгебре, но она является дополнительной по отношению к ограничению, так как имеется возможность восстановить отношение путем объединения двух дополняющих друг друга результатов операции селекции. Операция теоретико-множественного отношения соответствует известной операции “слияния” файлов. Если известно, что файлы не пересекаются, и если порядок записей не играет роли, то достаточно скопировать один файл в конце другого. Однако, как правило, файлы поддерживаются в порядке первичных ключей, и тогда используются простые алгоритмы слияния. , считывающие поочередно записи из каждого файла в зависимости от того, в каком из файлов запись имеет ключ с меньшим значением полей, так что в новый файл записи также будут помещаться в порядке первичных ключей.
Соединение (joined_to –соединение с) имеет два операнда; она определена для любых двух таблиц. Если эти две таблицы не имеют столбцов с совпадающими именами, то соединение ведет себя, как декартово произведение, соединяя каждую строку первой таблицы поочередно с каждой строкой второй таблицы. Если имена всех столбцов этих двух таблиц совпадают, то соединение ведет себя как теоретико-множественное пересечение, и создает таблицу, состоящую из тех строк, которые встречаются в каждой из рассматриваемых двух таблиц (такая таблица может быть и пустой, аналогично пустому множеству). Если у двух таблиц-операндов совпадают лишь некоторые имена столбцов, то в результате соединения получается таблица, содержащая все имена столбцов первой таблицы, а также все те имена столбцов второй таблицы, которые не встретились в первой. Строки результата выбираются из первой таблицы, а дополнительные значения конкатенируются (присоединяются) из тех строк второй таблицы, у которых значения в общих столбцах совпадают. До некоторой степени соединения является дополнением проекции, если осуществить проекцию “исходного” отношения так, чтобы получился набор отношений, каждое из которых сохраняет первичный ключ исходного, то соединение этого отношения восстановит исходное при дополнительном условии, что каждый столбец исходного отношения встречается хотя бы в одной из проекций.
При формулировании запросов операция соединения является решающей, если в запросе используется более одного отношения. Как правило, для формирования запроса используется соединение нескольких таблиц, а затем селекция требуемых строк, и , наконец, проекция на требуемые столбцы при печати. Операция соединения больше всего соответствует операции “селективной выборки”, при выполнении которой список ключей представлен в виде записей в файле транзакций [19], и требуется выбрать или записать в выходной файл соответствующие записи из основного файла. Ключи в файле транзакций могут совпадать, например, с посторонним ключом в основном файле или же с частью первичного ключа, и в этих случаях для каждой записи в файле транзакций может быть выбрано несколько записей из основного файла. Таким образом, используется соединение как обобщенное пересечение [20].
Алгоритмы, которые выполняют вышеперечисленные операции, реализуются на уровне системы управления базой данных. Их содержание формируется на основе определений этих операций. Для их реализации используются или стандартные функции языка программирования , или формируется SQL-запрос. Более подробно реализация будет рассмотрена в следующей главе.
3. 3. Проектирование алгоритмов расчёта задолженности по оплате поставок и определения оптимальной заявки.
4. Выбор средств для разработки АСИС, описание структуры АСИС. 4. 1 Выбор аппаратных средств.
При выборе аппаратных средств для разработки АСИС наибольшую роль играет фактор быстродействия работы ПЭВМ. Поскольку именно от него зависит время разработки ПО, а соответственно затрат на разработку и его себестоимости. Скорость функционирования ПЭВМ в основном определяется следующими параметрами: Объемом оперативной памяти (ОП); Быстродействием процессора; Объемом видеопамяти (ВП).
Исходя из требований предъявляемых к используемым программным средствам разработки (Delpi 3. 0 InterBase 4. 2) минимальное значение вышеперечисленных параметров составляет ОП– 12 Мб, процессор – на базе Intel 486, ВП – 1 Мб. При минимальных значениях параметров функцмонирование разработанной АСИС малоэффективно, поэтому рекомендуемым является компьютер со следующими значениями параметров: Процессор – intel 586-100 МГц; Оперативная памть – 16 Мб; Видеопамять – 1 Мб; 4. 2. Анализ и выбор программных средств разработки АСИС.
Современные средства разработки ПО характеризуются большим разнообразием критериев, используюя которые разработчик имеет возможность автоматизировать процесс разработки приложений. Так, в настоящее время инструментальные средства позволяют: создавать интерфейс испльзуя стандартные компоненты;
передавать управление различным процессам, в зависимости от состояния системы; создавать оболочки для баз данных, как и сами базы данных;
разрабатывать более надежное ПО, путем обработки исключительных ситуаций возникающих при некорректной работе ПО.
Современные средства разработки характеризуются следующими параметрами: поддержка объектно-ориентированного стиля программирования; возможность использования CASE-технологий, как для проектирования разрабатываемой системы, так и для разработки моделей реляционных баз данных; использование визуальных компонент для наглядного проектирования интерфейса; поддержка БД;
возможность использования алгоритмов реляционной алгебры для управления реляционными базами данных;
возможность синхронизации составных частей проекта (предоставляется при разработке больших программных комплексов).
Вышеперечисленными свойствами обладают языки программирования, например: Delphi, Visual C++, Borland С++ Biulder, Visual FoxPro и другие. Каждое из этих средств содержит весь спектр современного инструментария, который был перечислен ранее. Главное отличие состоит в области использования рассматриваемых средств. Так Visual C++ обычно используется при разработке приложений предназначенных для работы с ОС Windows, использующих основные свойства ОС [1], а так же выполняющих большое количество вычислений. [12] Одним из недостатков данного средства разработки приложений является высокое требование к аппаратным ресурсам при разработке программного обеспечения, недостаточно высокая скорость компиляции программного кода и при реализации конечного продукта (ПО), используя этот продукт необходимо большее дисковое пространство, чем при создании аналогичного ПО другими средствами разработки. Borland С++ Biulder по своим недостаткам аналогичен Visual C++, но обладает еще одним–разработка баз данных на базе языка SQL и их поддержка ограничена. Система разработки Visual FoxPro предъявляет наименьшие требования к системным ресурсам, но ее применение ограничено неудобством в визуальном создании интерфейса разрабатываемого приложения. Недостатком Delphi состоит в том, что при его использовании нет достаточного доступа к функциям ОС, но данный недостаток несущественен, поскольку разрабатываемое приложение ориентировано на поддержку БД, а не на работу с ОС. Немалое значение при выборе Delphi в качестве средства для разработки АСИС играет возможность использования большого количества встроенных визуальных компонент, как для разработки интерфейса, так и для создания СУБД.
При создании программного продукта АСИС “Учет поставок” главным критерием выбора программных средств разработки являлись: скорость разработки приложений; возможность быстрого внесения изменений в программу;
возможность редактирования и просмотра БД, используя средства разработки. Как дополнение к перечисленному, можно указать, что время разработки зависит от: поддержки выбранным инструментарием ОС, аппаратной поддержки, необходимой для их оптимального функционирования; наличия предварительного опыта у разработчиков в использования соответствующих программных средств. Обеспечить минимальное время разработки можно только при выполнении этих условий. Исходя из приведенных требований, выделим следующие характеристики средств разработки программного обеспечения:
Наличие опыта разработки с использованием данного программного продукта; Требования по ресурсам; Поддержка операционной системы; Наглядность разработки интерфейса; Предоставляемые возможности работы с базами данных; Доступность; Скорость работы разработанного программного обеспечения; Обработка исключительных ситуаций; Время создания разработанного программного обеспечения; Удобство эксплуатации;
Для вышеперечисленных средств для разработки АСИС воспользуемся методом вариантных обоснований. Этот метод предназначен для выбора наилучшего варианта из нескольких предложенных и состоит из следующих этапов:
Определение критериев, по которым будет произведено сравнение и степени их важности.
Каждый вариант оценивается по полученному перечню критериев. Получается численное значение– оценка.
Нахождение общего количества баллов для каждого из вариантов ( можно учитывать важность критериев ).
Лучшим считается вариант, который набрал максимальное количество баллов. Для решения поставленной задачи будем использовать перечень характеристик, приведенный выше. Результаты приведены в таблице 4. 1 Таблица 4. 1 Средство разработки Характеристика средств разработки Delpi Visual C++ Borland C++ Buielder Visual FoxPro
Наличие опыта разработки с использованием данного программного продукта; 8 6 4 4 Требования по ресурсам; 7 6 6 5 Поддержка операционной системы; 8 8 8 7 Наглядность разработки интерфейса; 9 7 8 5 Предоставляемые возможности работы с базами данных; 8 6 4 7 Скорость работы разработанного программного обеспечения; 6 7 8 7 Обработка исключительных ситуаций; 8 8 8 6 Время создания разработанного программного обеспечения; 9 6 5 7 Удобство эксплуатации; 7 8 8 7 Всего: 70 62 60 56
Вывод: В результате выполненного анализа инструментальных средств выявили, что в качестве средства разработки АСИС будет использован Delphi, как наиболее оптимальное средство разработки с точки зрения разработчика.
Используя Delphi можно создавать приложения для MS Windows95/98/NT с минимальными затратами времени т. к. в её основе лежит концепция быстрого создания приложений (RAD). Основные сведения о Delphi [15, 16, 17]: Базируется на расширении языка Pascal – Object Pascal.
Интегрированная среда разработки приложений –позволяет создавать, компилировать, тестировать и редактировать проект или группу проектов в единой среде программирования;
Визуальная технология разработки программ –позволяет быстро создавать приложения путём размещения в форме стандартных компонентов. При этом соответствующий код программы автоматически генерируется Delphi. Такая технология освобождает разработчика от рутинной работы по созданию пользовательского интерфейса и позволяет уделить больше внимания внутренней организации данных и обработке данных.
Технология Two Ways Tools делает более эффективной работу с компонентами. При изменении программного кода в окне редактора Delphi соответствующим образом изменяет и сами компоненты. С другой стороны, при изменении свойств компонентов в инспекторе редактора объектов (Object Inspector) они немедленно отражаются в окне редактора кода.
Библиотека компонентов содержит множество стандартных компонентов, которые можно использовать при создании приложений. Сюдаотносятсяэлементы управления в стиле Windows95 и IE 4. 0, а также шаблоны для форм и экспертов.
Поддержка баз данных в среде Delphi осуществляется двояко. С одной стороны в ней широко используются компоненты, предназначенные для работы с базами данных. С их помощью можно создавать простые приложения, предназначенные для обработки данных, и приложения типа клиент/сервер. Особенностью этих компонентов является то, что во время создания приложения Delphi отображает результаты обработки данных, и позволяет проанализировать различные ситуации, которые могут сложиться в процессе работы программы. С другой стороны поддержка баз данных в Delphi осуществляется с помощью набора драйверов соединений с SQL-северами Borland SQL Links for Windows, которые позволяют интегрированному в Delphi ядру процессора баз данных Borland, (BDE) Borland Database Engine, получать доступ к локальным базам данных Paradox, dBASE, Access, FoxPro, а также SQL-северам InterBase, Informix, Oracle, Sybase, DB2, Microsoft SQL...
32-битовый компилятор Delphi генерирует исполняемые EXE-файлы. При этом существует возможность генерировать либо простые EXE-файлы, либо сложные приложения, требующие подключения DLL-библиотек.
Delphi - это первый инструмент в котором быстрое проектирование сочетается с использованием оптимизирующего компилятора [3]. Кроме того, в Delphi может быть использована технология масштабирования баз данных, являющаяся самой мощной и сложной технологией программирования, которая когда-либо использовалась для персональных компьютеров. В отличии от большинства других инструментов, предназначенных для быстрой разработки приложений, Delphi является расширяемым инструментом. Ниже приведен краткий список особенностей, обеспечивающих расширяемость Delphi: Непосредственный доступ к интерфейсу приложений API;
Встроенный Ассемблер; обработка строк, написанных на Ассемблере вставленных в текст программ Delphi; Возможность создания пользовательских объектов VCL и OCX;
Возможность создания DLL-библиотек и других "вторичных" объектов среды Windows; Объектная ориентация - возможность создавать новые классы, наследующие свойства существующих классов, либо, начав с нуля, строить свои собственные.
Одним из основных критериев, при выборе инструмента разработки приложений баз данных является масштабируемость возможность работать с данными в различных платформах. Масштабируемость в Delphi достигается благодаря следующим свойствам [ ]:
Поддержка как локальных таблиц, так и находящихся на удаленных серверах баз данных;
Поддержка сложных запросов и доступ из одного приложения ко многим Системам Управления Базами Данных (СУБД), построенным на различных платформах; Свободное перемещение приложения из одной СУБД в другую, осуществляемое посредством ядра Borland Database Engine, которое организует доступ к базам данных, невзирая на различия в платформах;
Наличие собственных быстрых драйверов для основных платформ типа клиент/сервер; Полная поддержка ODBC.
Delphi, как СУБД, полностью ориентирован на реляционную модель данных и имеет встроенный язык запросов к базам данных SQL (Structured Query Language). 4. 4. Описание программы. 4. 4. 1. Описание интерфейса.
После запуска файла postavki. exe на исполнение на мониторе появляется главное меню (рис 4. 1): Рис 4. 1 Главное меню АСИС
Для начала работы с программой необходимо соединиться с базой данных, для чего щелкнуть по команде меню соединится с БД. Если на компьютере пользователя установлен InterBase Local Server и создана база данных, то появится запрос на подтверждение права доступа к БД (рис 4. 2): Рис 4. 2 Окно ввода пароля Пароль доступа Khai.
В случае, если соединение прошло успешно, то пользователь допускается к работе с АСИС. 4. 4. 2 Работа с режимами АСИС Рабочее окно АСИС выглядит следующим образом (рис 4. 3): Рис 4. 3 Рабочая область АСИС Ниже описана работа с АСИС. Работа с договорами Работа с договорами включает в себя: - Работа с поставщиками; - Работа с договорами; - Работа с товарами; - Работа с заключенными договорами; - Работа с ассортиментом договоров;
Договор заключается предприятием-заказчиком с предприятием-поставщиком на поставку определенного вида и ассортимента продукции. С одним поставщиком может быть заключено несколько договоров. В качестве атрибутов договора являются следующие поля: номер договора, код поставщика, дата договора, сумма договора, срок действия договора. Все атрибуты, кроме срока действия договора являются обязательными для заполнения. На основании договора производится дальнейшая деятельность по поставкам на предприятии. Она заключается в: - Работа с заявками; - Работа со счетами; - Работа с заказами.
Для автоматизации использования АСИС “Учет поставок” реализована возможность печати бланков документов договора, заявки, заказа.
Добавление нового договора осуществляется путем выбора соответствующей закладки и вводе текста в поля-атрибуты таблицы. Добавление при условии, что для добавляемого договора известен поставщик.
Редактирование происходит при нажатии клавиши Enter на выбранной записи. Происходит автоматическое изменение всех полей других таблиц связанных с номером редактируемого договора. Это изменение необходимо для поддержания ссылочной целостности в БД.
Для удаления определенного договора необходимо два раза щелкнуть правой кнопкой мыши на удаляемом договоре. Автоматически удалятся все записи связанные с удаляемым договором (заявки, счета-фактуры, заказы). Работа с поставщиками
Работа с поставщиками состоит в добавлении нового поставщика, его атрибутов, удалении поставщика, редактировании атрибутов поставщика: код поставщика (для каждого поставщика код уникален), наименование поставщика, адрес и телефон поставщика. Все атрибуты, кроме телефона являются обязательными для заполнения, в случае их незаполнения возникает ошибка.
Добавление поставщика производится следующим образом: пользователь выбирает соответствующую таблицу и заполняет атрибуты поставщика.
Для редактирования таблицы “поставщики” нужно выбрать запись для редактирования , нажать клавишу Enter и изменить необходимую информацию. Измененные атрибуты поставщика автоматически изменяются в других таблицах.
Удаление записи “поставщик” происходит путем двойного щелчка мышью на удаляемой записи. При этом требуется запрос на подтверждение удаления записи. Работа с товарами
Таблица “товары” представляет собой справочник товаров, которые поставляются на предприятие. Атрибуты этой таблицы содержат уникальный код для каждого товара и наименование товара. При заключении каждого нового договора необходимо заполнить таблицу ассортимент договора.
Добавление новой записи в таблицу осуществляется путем ввода информации о товаре в строки таблицы товары. Редактирование– нажатием клавиши Enter на редактируемой строке и изменении информации. Удаление – двойным щелчком мыши на удаляемой строке. Работа с заключенными договорами
Работа с данной таблицей для пользователя ограничена, поскольку данными для ее заполнения служат ранее заполненные таблицы (договор, поставщик). Работа с ассортиментом договоров
Работа с ассортиментом договоров заключается в добавлении, редактировании и удалении наименования товара или товаров, которые поставщик обязуется поставить заказчику на основании перечня поставляемых товаров, указываемом в заключенном договоре. Вышеуказанные операции проводятся аналогично операциям в работе с договорами. Работа с заявками
Работа с заявками представляет собой работу с тремя закладками: - Заявка; - Ассортимент заявки; - Все заявки.
Закладка “заявка” содержит таблицу с данными о заявках, которые сделал заказчик поставщику по одному из заключенных договоров. Таблица заявка содержит атрибуты: номер заявки, номер договора, дата заявки. Заполнение всех атрибутов является обязательным. Номер договора один из заключенных, в противном случае возникает ошибка.
Пользователь имеет возможность добавлять, редактировать и удалять записи. Добавить запись можно в случае когда таблица активна, т. е. пользователь осуществляет работу с ней. Таблица автоматически переводится в режим добавления записей при нажатии пользователем клавиши на пустой строке, либо нажатием клавиши Insert. Для редактирования необходимо выбрать запись для редактирования и, нажав клавишу Enter произвести редактирование необходимого поля записи. Удаление происходит путем двойного щелчка мышью на выбранной для удаления записи.
Закладка “ассортимент товаров” содержит таблицу с данными о сделанной заявке, а именно: номер заявки, номер товара, количество заказанной продукциив принятых единицах измерения (шт. , кг. , л. , и т. п. ). все атрибуты являются обязательными к заполнению. Кроме того, номер товара (код товара) может быть выбран только из номеров товара, которые указаны в справочнике товаров. Удаление, добавление и редактирование записей происходит аналогично закладке заявка. Работа со счетами
Для работа со счетами предлагается закладка “счет-фактура”, которая содержит таблицу счета и поле для определения оптимального счета. Таблица “счета” включает атрибуты: номер счета, номер заявки, номер договора, сумма счета. Все атрибуты обязательны для заполнения. Ассортимент счета соответствует ассортименту заявки. На закладку выводится информация (либо предоставляется для ввода) только по одному из заключенных договоров, номер которого выбран в таблице ассортимент договоров. Работа с заказами Для работы с заказами предлагается две закладки: - Заказ; - Все заказы.
В закладку “заказ” включены таблица “заказ” с атрибутами: номер заказа, номер договора, номер счета, получено, оплачено, и поле для определения задолженности предприятия по оплате выполненных поставок. Пользователю предоставляется возможность добавления, редактирования и удаления записей. Все операции с записями осуществляются для определенного договора, указанного в закладке ассортимент договора. Все атрибуты таблицы обязательны к заполнению. Заполнение полей таблицыоплачено и получено можно осуществлять с выпадающего списка с двумя строками (да, нет). В случае если долг по оплате поставок отсутствует, то поле “долг” принимает значение “нет”.
Закладка “все заказы” представляет собой таблицу с перечнем всех заказов сделанных по всем заключенным договорам. Что-либо в ней изменять пользователь не имеет возможности. Печать.
Закладка “печать” используется для печати бланков договоров, заявок, заказов. Для выбора документа, который необходимо напечатать следует выбрать соответствующий флажок. 5. Испытания программного продукта.
Надежность программного обеспечения (ПО) есть вероятность его работы без отказов в течении определенного периода времени, рассчитанная с учетом стоимости для пользователя каждого отказа [9] . Надежность программного обеспечения как определяющий элемент его качества закладывается на этапе разработки и проектирования, реализуется на этапе реализации ПО [11]. Выбор критериев, которыми должна определятся надежность ПО, отыскание оптимальной по отношению к этим критериям его структуры, выбор режима работы ПО–вот далеко не полный перечень тех проблем, которые должны быть решены на этапе создания и реализации ПО до его эксплуатации. Поэтому для обеспечения надежности ПО зачастую используют такие термины, как доказательство, тестирование, отладка, контроль и испытание, которые часто используются как синонимы, поэтому приведём эти определения:
Тестирование (testing) - процесс выполнения программы или части программы, с намерением или целью найти ошибки;
Доказательство (proof) - попытка найти ошибки в программе безотносительно к внешней для программы среде. Большинство методов доказательства предполагает формулировку утверждений о поведении программы и затем вывод и доказательство математических теорем о правильности программы.
Контроль (verification) - попытка найти ошибки в тестовой, или моделируемой среде; Испытание (validation) - попытка найти ошибки, выполняя программу в заданной реальной среде; Аттестация (certification) - авторитетное подтверждение правильности программы. При тестировании с целью аттестации выполняется сравнение с некоторыми заранее определённым стандартом; Отладка (debugging) не является разновидностью тестирования. Хотя “отладка” и “тестирование” часто используются как синонимы, под ними подразумеваются разные виды деятельности. Тестирование–деятельность, направленная на обнаружение ошибок; отладка направлена на установление точной природы известной ошибки. 5. 1. Справочные документы.
Испытания программного продукта производятся с использованием следующей справочной литературы: ГОСТ Р28195-89 Оценка качества программных средств.
ISO/IEC 9126 : 1991 Information Technology Software Product Quality Characteristics. Стандарты разработки ПО ESA PSS-05-0-1991. 5. 2. Краткий обзор верификации . Верификация обозначает:
действие по проверке, инспекции, тестированию, контролю процессов, определённых требованиями ANSI–78
процесс определения: удовлетворяет ли продукт данной фазе ЖЦ ПО требованиям, сформулированным на протяжение предыдущих фаз; формальное доказательство корректности программы.
верификация необходима для обеспечения качественных характеристик продукта. Ряд определений, приведённый ниже, охватывает вторую сторону тестирования: типы ошибок, которые предполагается обнаружить, и стандарты, с которыми сопоставляются тестируемые программы.
Тестирование модуля или автономное тестирование –контроль отдельного программного модуля, обычно в изолированной среде (т. е. изолированно от всех остальных модулей). Тестирование модуля иногда также включает математическое доказательство.
Тестирование сопряжений –контроль сопряжений между частями системы (модулями, компонентами подсистемами).
Комплексное тестирование –контроль и/или испытание системы по отношению к исходным целям. Комплексное тестирование является процессом контроля, если оно выполняется в моделируемой среде, и процессом испытания, если выполняется в среде реальной, жизненной. Тестирование приемлемости – проверка соответствия программы требованиям пользователя. 5. 3. Процессы верификации.
Верификацию, тестирование и испытания разрабатываемой системы будем производить в соответствии со стандартами ES-PSS-05. Процесс верификации включает в себя: технические проверки, сквозные контроли и инспекции ПО;
проверки того, что требования к ПО соответствуют требованиям заказчика; проверки того, что требования к проекту являются соответствующими требованиям ПО; автономное тестирование; системное тестирование; приёмочное тестирование; ревизии.
Исходя из выше изложенного, были проведены тестовые испытания программного продукта. 5. 3. 1. Сквозной контроль.
Эффективный прием оценки детальных внешних спецификаций –подготовить тесты и затем воспользоваться детальными внешними спецификациями для имитации поведения системы. Этот процесс часто называютсквозным контролем [10] или прослеживанием. Для проверки отдельных внешних функций должны быть выполнены следующие действия. Кто-то (не автор спецификаций) должен сначала построить “тесты на бумаге” для этой функции, т. е. список конкретных входных данных (допустимых и недопустимых). Вместе с автором спецификаций затем имитируют ввод этих данных в систему, используя спецификации как описание поведения системы. Если оказывается, что спецификации описывают выходные данные или преобразование для какого-то набора входных данных недостаточно полно и правильно, это означает, что обнаружена ошибка.
Важно отметить, что цель всякого такого сеанса сквозного контроля – обнаружить ошибки, но не исправлять их сразу. Используя данный прием тестирования, были протестированы запросы осуществляемые к базе данных (БД) созданной системы. Для этого на вход подавались различные запросы к БД (См. приложение B).
В результате проведения теста было зафиксировано, что корректные запросы обрабатываются БД согласно предполагаемому результату, время обработки запроса отвечает указанному в ТЗ (не более 3 секунд при минимальной конфигурации, процессор Intel 586). При попытке осуществить некорректный запрос к БД не всегда выдаются сообщения об ошибках, либо не указано какие действия необходимо предпринять для правильной работы системы.
5. 3. 2. Трассировка требований к ПО и требований пользователя. Для осуществления проверки требований к ПО и требований пользователя на полноту (поиск всех пропущенных требований), т. е. удовлетворения всех требований пользователя в программном продукте, и отсутствия неоднозначности применяется матрица трассировки.
Соответствие требований проверялось на ранних стадиях ЖЦ программного продукта. Используя матрицу трассировки было установлено полное соответствие между требованиями пользователя и требованиями к ПО, неоднозначности в требованиях обнаружены не были. (см. ТЗ “Матрица трассировки”). 5. 3. 3. Тестирование внешних функций.
Цель теста внешней функции –найти расхождения между программой и её внешними спецификациями. Необходимым условием успешного тестирования функций является наличие чётких и точных внешних спецификаций. Если внешние спецификации неполны или неоднозначны, результаты тестирования не могут не быть такими же.
Внешние спецификации обычно разбиваются на отдельные внешние функции (например, по типу входных сообщений или команд пользователя), и после тщательного изучения каждой функции строятся тесты. Тесты должны строиться для всех входных условий и вариантов, а также на границах всех областей допустимых значений на входе и области изменения на выходе. Тесты должны также проверять поведение программы у функциональных границ и в случаях и в случаях ввода недопустимых или непредусмотренных данных. Рассмотрим методологию проектирования тестов, основанную на функциональных диаграммах (cause-effect graphing). Тестирование функций –процесс контроля, поскольку оно обычно выполняется в моделируемой среде (в противоположность обстановке реальной). Другими словами, тестирование функций обычно выполняется для компонент системы прежде, чем она будет собрана воедино. Например, могут быть недоступны определённые устройства ввода-вывода, вследствие чего потребуется написать специальные программы для имитации их работы, могут отсутствовать или быть неполными отдельные компоненты программного обеспечения, что также потребует имитации или применения вспомогательных программ.
Метод функциональных диаграм [11], предлагает способ перевода спецификаций, написанных на естественном языке, на язык формальный. Это способствует проектированию высокорезультативных тестов, не страдающих избыточностью, и обнаруживающих случаи неполноты и неоднозначности во входных спецификациях. Метод предполагает анализ семантического содержания внешних спецификаций и перевод их на язык логических отношений между входными данными (ситуациями) и выходными данными и преобразованиями (эффектами), представленных в виде логической диаграммы (“и- или”-графа), называемойфункциональной диаграммой. Диаграмма снабжается примечаниями в виде синтаксических правил и ограничений внешней среды и затем преобразуется в таблицу решений с ограниченным входом. Каждый столбец таблицы соответствует будущему тесту. Последовательность применения метода:
Первый шаг: разбить внешние спецификации на отдельные функции, комбинаторные свойства которых и должны тестироваться;
Второй шаг: проанализировать спецификации в поисках всех явных и неявных ситуаций (условия на входе) и эффектов (действия на выходе). Лучше всего делать это, подчёркивая каждую ситуацию и каждый эффект, по мере того как они встречаются при чтении спецификаций. Все ситуации и эффекты нумеруются произвольным образом.
Третий шаг: нарисовать функциональную диаграмму. Ситуации изображаются в виде вершин на левом краю листа бумаги, а эффекты– на правом.
Четвёртый шаг: преобразовать диаграмму в таблицу решений с ограниченным выходом. Для этого нужно выбрать некоторый эффект и записать все комбинации ситуаций, которые его вызывают, затем выписать также состояния всех остальных эффектов при этих комбинациях ситуаций. 5. 3. 4. Тестирование модуля.
Целью тестирования модуля является нахождение несоответствия между логикой и сопряжениями модуля, с одной стороны, и его внешними спецификациями (описанием функций, входных и выходных дынных, внешних эффектов), с другой стороны. Процесс проектирования тестов для модуля состоит из следующих четырех шагов: Руководствуясь внешними спецификациями модуля, были подготовлены тесты для каждой ситуации и каждой возможности, для каждой границы областей допустимых значений всех входных данных, областей изменения данных, для всех недопустимых условий.
Был проверен текст программы, чтобы убедиться, что все условные переходы были выполнены в каждом направлении. (Текст программы определялся с использованием созданного логического анализатора).
Для циклов модулей были проведены тесты, соответствующие пути без выполнения тела циклов, с его однократным выполнением и максимальным числом повторений. Был проверен текст программы на её чувствительность к отдельным особым значениям входных данных и были добавлены соответствующие тесты. Следует отметить, что компиляцию модуля также можно рассматривать как часть процесса тестирования, поскольку компилятор обнаруживает большинство синтаксических ошибок, а также некоторые семантические и логические ошибки. В результате реализации данного типа тестирования было зафиксировано, что все условные переходы выполняются в каждом направлении, не происходит “зацикливания” в модуле при граничных значениях индексов циклов, также как и не обнаружено сбоев в работе модуля при невыполнении тела какого-либо из циклов, система реагирует на граничные значения водимых данных корректно. 5. 4. 5. Комплексное тестирование.
Комплексное тестирование –процесс поисков несоответствия системы ее исходным целям [11]. Это наиболее творческий из всех видов тестирования. Оно состоит из следующих шагов: Тестирование стрессов. Распространенный недостаток больших систем в том, что они функционируют как будто бы нормально при слабой или умеренной нагрузке, но выходят из строя при большой нагрузке и в стрессовых ситуациях реальной среды. Тестирование стрессов представляет попытки подвергнуть систему крайнему “давлению”. Для проведения тестов осуществлялось большое количество запросов к БД (20 запросов). В результате теста не было зафиксировано никаких отклонений в работе программы, но было отмечено определенное замедление работы БД с запросами. Тестирование объёма. В то время как при тестировании стрессов делается попытка подвергнуть систему серьёзным нагрузкам в короткий интервал времени, тестирование объема представляет собой попытку предъявить системе большие объёмы данных (максимальный объм базы данных, 2 Мб) в течение более длительного времени. Для проведения тестов создавалась БД как можно больших размеров, создавались очереди документов, выводимых на печать, использовались граничные значения числовых форматов. В результате теста также не было зафиксировано отклонений в работе программы, обработка запросов БД осуществлялась с незначительным замедлением.
Тестирование конфигурации. Многие системы обеспечивают работу различных конфигураций аппаратуры и ПО. Число таких конфигураций часто слишком велико, но необходимо проверить хотя бы максимальную и минимальную конфигурации. Система была проверена со всеми аппаратными устройствами, с которыми она может осуществлять работу (гибкие накопители данных, принтеры).
При работе с разными типами накопителей данных (НГМД, НЖМД) не было обнаружено ошибок, за исключением малой информативности ошибок возникающих при некорректной работе с НГМД.
Тестирование защиты. Так как внимание к вопросам сохранения секретности в сегодняшнем автоматизированном обществе возрастает, к большинству систем предъявляются определенные требования по обеспечению защиты от несанкционированного доступа. Цель тестирования защиты– нарушить секретность в системе.
В результате проведения теста было зафиксировано, что пользователь не имеющий доступа к системе проникнуть в нее не может.
Тестирование производительности. Требования к производительности и эффективности (время ответа для различных нагрузок и различных конфигураций)–важная часть проектов систем. По сравнению с другими типами комплексного тестирования системы о тестировании производительности известно очень много, этой проблеме посвящена монография[22].
Для проведения данного теста были использованы персональные компьютеры различной конфигурации (ЭВМ на базе Intel 486, Pentium 100, Cyrix 350). В результате проведения теста была зафиксирована корректная работы системы, но необходимо отметить, что работа на ПК на базе Intel 486 не рекомендуется, хотя и возможна. 5. 5. Выводы по тестированию ПО.
На основание проведения вышеперечисленных тестов (см. приложение B, C) можно заключить, что: Созданная система выполняет все функции, указанные в ТЗ.
При аварийном отключении сохраняет максимально возможное количество данных. Система способна работать на ПК различной конфигурации, в том числе и минимальной.
Система отвечает поставленным требованиям по защите от несанкционированного доступа.
Система корректно осуществляет свою работу при работе с большими объемами данных (при максимальном объеме БД– 2 Мб) и при большом количестве запросов(20 запросов).