- •2012 Р.
- •1 Анализ предметной области и постановка задачи
- •2 Перечень требований к программной системе
- •3 Описание принятых проектных решений
- •4 Описание разработанной программной системы
- •4.3 Руководство пользователя
- •Для нормальной работы по необходимы следующие минимальные требования:
- •20000 Mb свободного дискового пространства для сервера субд;
- •5 Анализ опытной эксплуатации и возможных приложений
4.3 Руководство пользователя
В ПО реализована автоматизированная система поддержки принятия решений по учету товаров на малом предприятии. ПО решает следующие задачи:
создание баз данных по поставщикам/заказчикам, товаров, договоров, счетов, заказов;
добавление данных в БД;
дзменение данных в БД;
удаление данных в БД;
реализация запросов, формирование отчетов;
обеспечение защиты от несанкционированного доступа.
Программный продукт предназначен для выдачи:
информации по поставщикам/заказчикам;
информации о товарах, которые хранятся на складе;
информации о движении товара;
информации о движении финансов за купленный/проданный товар.
Для нормальной работы по необходимы следующие минимальные требования:
20000 Mb свободного дискового пространства для сервера субд;
для сервера - 1024 МБ, а для клиента 512 МБ оперативной памяти;
видеопамять не менее 256 МБ;
процессор – 2000 МГц (сервер), 1000 МГц (клиент).
Входными данными для выполнения работы являлись договора, заказ-заявки, накладные, счета. Выходными данными являлись: сформированные накладные, счета, отчетность по товару, данные о движении денег, прайс-листы по товару, отчетность по счетам, отчетность по заказам. Для установки системы требуется скопировать 2 каталогас именем “Client” и “Server”.
5 Анализ опытной эксплуатации и возможных приложений
В рамках данного дипломного проекта было разработано ПО автоматизированной системы управления мебельным призводством.
Актуальность разработки обуславливается достижением следующих показателей эффективности: сокращение затрат (материальных, временных, трудовых), высокий уровень обслуживания, возможность удаленного доступа, повышение показателя конкурентоспособности продукции данного предприятия. Поэтому, несмотря на затраты, связанные с приобретением вычислительной техники, программного обеспечения, автоматизирующего производственный процесс предприятия, с обучением производственного персонала, предприятию выгодно автоматизировать свою деятельность.
При эксплуатации данный программный продукт позволит:
сократить временные и трудовые затраты при закупке и продаже товара;
сократить сроки составления отчетности;
сократить материальные затраты за счет более экономического расхода бумажных ресурсов;
повысить эффективность сбора и учета информации о товаре, поставщиках и заказчиков;
повысить культуру обслуживания.
Данный программный продукт предназначен для создания автоматизированной системы поддержки принятия решений и учета товаров на малом предприятии.
Реализация удобного и простого интерфейса в виде главного окна и модулями-окнами позволяет пользователю легко разобраться в принципе работы программного продукта, что сокращает затраты предприятия по обучение персонала.
Новизна разработки состоит в автоматизации процесса контроля и учета всей необходимой информации о поставщиках, заказчиках, товарах, передвижениях денег по счетам, заказов, движения накладных. Работники финансового отдела, раньше, должны были обрабатывать информацию и вести документацию вручную, фиксируя все в специальных журналах.
Данный программный продукт обеспечит хранение и учет информации в БД, что дает удобства в работе, а так же сокращает временные затраты. Теперь можно производить ряд различных запросов, например, просмотреть отчеты по счетам, по товару, остаток по товарам, который хранится на складе.
Была разработана информационная модель в IDEF0-нотации. Выбрана логическая модель данных – реляционная. Реляционная модель позволяет использовать сжатую информацию, которой достаточно для создания и полной структуры базы данных. Такая информация представляет собой концептуальную модель. Использование такой модели позволило определить необходимые данные для хранения в базе данных, свести число хранимых отношений к минимуму, нормализовать отношения для упрощения решения проблем, связанных с обновлением и удалением данных.
Для выбора концептуальной модели данных были рассмотрены три их разновидности: семантическая модель; фреймы; модель "сущность-связь". Была принята последняя. Для представления связей и сущностей введен специальный метод: ER-диаграмма. На основе ER –диаграммы и в результате декомпозиции предметной области выделили следующие обобщенные сущности, которые представили таблицами: справочник товаров, фирмы, счета банка, склады, остатки товаров, перемещение товара, история счетов, договора, состояние контракта.
В результате анализа была выбрана реляционная модель данных с использованием классической архитектуры клиент/сервер. Классическая архитектура клиент/сервер в отличии от файл-сервера дает возможность производить добавление, удаление, изменение данных, осуществлять контроль входных данных, выполнять запросы непосредственно на сервере. Это повышает производительность системы, повышает ее надежность.
Были проведены тестирование и отладка, с целью сопосталения функционирования разрабатываемого ПП с исходными целями, указанными в техническом задании, для выявления ошибок, допущенных при реализации ПП. В результате проведения испытания обнаружены и устранены ошибки. После устранения ошибок была получена устойчиво функционирующая система, удовлетворяющая всем поставленным в техническом задании требованиям.
В процессе реализации особо важным является сохранение здоровья людей, работающих над проектом. С этой целью была проведена оценка опасных и вредных факторов, которые присутствуют на рабочем месте.
На основании анализа актуальности разработки, возможностей, предоставляемых программным продуктом, и результатов бизнес плана можно сделать предположение о том, что программный продукт должен найти широкое применение на любом предприятии, занимающимся закупкой, производством и продажей различных материалов или товаров.
ВЫВОДЫ
В результате выполнения дипломного проекта создано ПО для автоматизации основных процессов принятия решений по учетутоварной продукции и материалов для повышения эффективности и производительности труда на малом мебельном предприятии.
Для достижения поставленной цели решены следующие задачи:
изучены процессы, происходящие при движении товарной продукции и финансов на малом предприятии;
составлено техническое задание на разработку ПП автоматизированной системы поддержки принятия решений по учетутоварана малом мебельномпредприятии;
выбрана реализация модели данных;
разработаны алгоритмы системы поддержки принятия решений по учету товаров на малом предприятии;
разработано ПО для автоматизации основных процессов принятия решений по учетутоварной продукции и материалов на малом мебельном предприятии;
проведено комплексное тестирование разработанного ПП;
определена оценка экономической эффективности применения программного обеспечения и его цена.
обеспечена безопасность жизнедеятельности (БЖД) пользователей компьютерной техники в вычислительном центре при разработке ПП.
Данный программный продукт представляет собой информационную систему, которая содержит информацию о товарах на малом предприятии, а также данные о сотрудниках, поставщиках и клиентах.
Основными задачами программного продукта (ПП) являются:
Создание серверной части ПП содержащей БД, которая хранит информацию: о товарах; о поставщиках; о заказчиках; о банках; о договорах; о финансах.
Создание клиентской части для управления БД, основные функции которой:
добавление данных в БД;
изменение данных в БД;
удаление данных в БД;
реализация запросов;
формирование отчетов;
обеспечение защиты от несанкционированного доступа посредством создания категорий пользователей, имеющих ограничения по работе с данными.
ПП содержит информацию:
о товарах;
о поставщиках;
о заказах;
о накладных
о заказчиках;
о договорах;
о движении товара на складе;
о движении финансов.
ПП производит изменения в базе данных:
добавлять новую информацию о товарах, о фирмах (поставщики, заказчики) о поставке и продажи, об оплате;
изменять информацию о товарах, о фирмах, о поставке и продажи, об оплате;
удалять информацию о товарах, о фирмах, о поставке и продажи, об оплате;
реализовывать запросы: об остатке товара на складе, при приеме товара на склад, при отгрузке товара со склада;
формировать отчеты по счетам, накладным, движения товара, движения денежных средств.
Серверная часть ПП управляет БД, содержащей справочники: товаров; фирм-заказчиков; фирм-поставщиков; договоров; движения товаров; движения финансов. Клиентская часть ПП осуществляет обеспечение интерфейса между БД и серверной частью. ПП формирует отчеты по: счетам, накладным, движения товара, движения денег.ПП реализует запросы о наличии остатка товаров на складе. ПП работает в локальной сети.
В результате сравнения коэффициентов экономической эффективности было установлено, что договорная цена, за разработку проекта занижена, и можно добиваться более высокой цены.
Был сделан вывод, что условия работы в вычислительном центре соответствуют необходимым нормам и требованиям.
ПЕРЕЧЕНЬ ССЫЛОК
Колесник, А.П. Компьютерные системы в управлении финансами [Текст]/Колесник А.П. - М.: "Финансы и статистика",1994. – 347 с.
Ульман, Дж. Основы систем баз данных [Текст]/Ульман Дж. Пер. с англ. – М: “Финансы и статистика”, 1983. – 537 с.
Конноли, Т. Дазы данных: проектирование, реализация и сопровождение [Текст]/Томасон Конноли и Каролин Бегг. М.: Издательство дом “Вильямс”. - 2000. – 658 с.
Васильев, В.Г. Объектно-ориентированные БД: Взгляд изнутри [Текст]/Васильев В.Г. // Компьютеры + Программы – 1997 – №3 – С. 45-49.
Иллингуорт, В. Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др. [Текст]/Пер. с англ. А.К. Белоцкого и др.; Под ред. Е.К. Масловского. - М.: Машиностроение, 1991. - 688 с.
Глен, Дж. Проектирование реляционных бах данных для использования с микроЭВМ [Текст]/Дж. Глен. - М: Мир, 1991. – 705 с.
Андреев, А.М., Березкин Д.В., Кантонистов Ю.А. Среда и хранилище: ООБД [Текст]/Андреев А.М., Березкин Д.В., Кантонистов Ю.А. // Мир ПК - 1998 - №4 - с.74-81
Гради, Б. Объектно-орентированное проектирование с примерами [Текст]/Гради Буч. Пер. с англ. М.: Конкорд, 1992.
Малярский, А.Н. Храните данные на базе [Текст]/Малярский А.Н., Неплохов В.Ю., Хруст В.А. // Мир ПК - 1997 - №2 - с.62-66.
Гостлинг, Д. Язык программирования Java [Текст]/Гостлинг Д., Арнольд К. СПб: Питер. - 1997. – 477 с.
Эккель, Б. Философия Java [Текст]/Эккель Б. Библиотека програмиста. СПб: Питер, 2001. - 351 с.
Винкоп, С. Использование Microsoft SQL Server 7.0 [Текст]/Стефан Винкоп. - М, 1999
Тараканов, К.В. Информатика [Текст]/Учебное пособие; Под ред. проф. Тараканова К.В. М.: “Книга”, 1986. 578 с.
Единая система программной документации [Текст]/ - М: Издательство стандартов, 1988. – 322 с.
Озкарахан Э. Машины баз данных и управление базами данных [Текст]/ Озкарахан Э. Пер. С англ. – М.: Мир, 1989. 472 с.
Майерс, Г. Искусство тестирования программ [Текст]/Майерс Г. - М: Финансы и статистика, 1982. – 395 с.
Майерс, Г. Надежность ПО [Текст]/Майерс Г. - М.: Мир, 1980. – 243 с.
Свод законов о предпринимательской деятельности [Текст]/ К.:“Вища освіта”, 2001. – 158 с.
Майнетт Т. Разработка программного обеспечения [Текст]/ Барби Тизли Майнетт. Перевод с английского. MVU. Львов-Днепропетровск, 1995.
Нагао, М. Структуры и базы данных [Текст]/Нагао М., Катаяма T., Уємура С. Пер. с япон. – М.:Мир, 1986. – 197 с., ил.
Ван Тассел, Д. Стиль, разработка, эффективность, отладка и испытание программ [Текст]/Ван Тассел Д.: Пер. с англ. – 2-е изд., испр., - М.: Мир, 1985. – 332 с.
Маклаков, С.В. Bpwin и Erwin. Case – средства разработки информационных систем [Текст]/Маклаков С.В. – М.: ДИАЛОГ-МИФИ, 1999. – 256 с.
Вагнер, Г. Основы исследования операций [Текст]/ Вагнер Г.– М.: Мир, 1972. – 333 с.
Вентцель, Е.С. Исследование операций [Текст]/Вентцель Е.С.– М.: Советское радио,1972.- 488 с.
Марка, Д.А. Методология структурного анализа и проектирования [Текст]/Марка Д.А., МакГоуэн К. М., "МетаТехнология", 1993. - с. 128-141.
Шураков, В.В. Обеспечение сохранности информации в СОД [Текст]/Шураков В.В. Издательство “Финансы и статистика”, 1985.
Спесивцев, А.В. Защита информации в персональных ЭВМ [Текст]/Спесивцев А.В., Вегнер В.А., КрутяковА.Ю. и др. М.: Радио и связь, МП Веста. – 1992 – 231 с.
Шумаков, П.В. Delphi 5. Руководство разработчика баз данных [Текст]/ Шумаков П.В., Фаронов В.В. – М.: Нолидж, 2000. – 635 с
Флэнэген, Д. Java in a Nutshell [Текст]/ Девид Флэнэген. К.: Издательская группа BHV, 1998. - 293 с.
Приложение A
Бизнес-план
ПриложениеБ
Безопасность жизни и деятельности человека
Приложение В
Слайды презентации

















Приложение Г
Листинг фрагментов кода программ
ЗАПРОСЫ К БД
Выбор счета
SELECTDISTINCTROWСчета.*
FROMСчета
WHERE(((Счета.КодЗаказа)=[Forms]![Заказы]![КодЗаказа]));
10 самых дорогих товаров
SELECTDISTINCTROWTOP10 Товары.МаркаASСамыеДорогиеТовары, Товары.Цена
FROM Товары
ORDER BY Товары.Цена DESC;
Заказы
SELECT DISTINCTROW Заказы.КодЗаказа, Заказы.КодКлиента, Заказы.КодСотрудника, Заказы.ДатаРазмещения, Заказы.ДатаНазначения, Заказы.ДатаИсполнения, Заказы.Доставка, Заказы.СтоимостьДоставки, Заказы.НазваниеПолучателя, Заказы.АдресПолучателя, Заказы.ГородПолучателя, Заказы.ОбластьПолучателя, Заказы.ИндексПолучателя, Заказы.СтранаПолучателя, Клиенты.Название, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента;
Итоги продаж по объему
SELECT DISTINCTROW [Промежуточная сумма заказа].ПромежуточнаяСумма AS ОбъемПродаж, Заказы.КодЗаказа, Клиенты.Название, Заказы.ДатаИсполнения
FROM Клиенты INNER JOIN (Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа) ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE ((([Промежуточная сумма заказа].ПромежуточнаяСумма)>25000) AND ((Заказы.ДатаИсполнения) Between #1/1/1997# And #12/31/2008#));
Квартальные обороты
SELECT DISTINCTROW [Клиенты].[КодКлиента], [Клиенты].[Название], [Клиенты].[Город], [Клиенты].[Страна]
FROM Клиенты RIGHT JOIN Заказы ON [Клиенты].[КодКлиента]=[Заказы].[КодКлиента]
WHERE ((([Заказы].[ДатаРазмещения]) Between #1/1/2008# And #12/31/2008#));
Квартальные обороты по товарам
TRANSFORM Sum(CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100) AS СуммаПоТовару
SELECT [Товары].[Марка], [Заказы].[КодКлиента], Year([ДатаРазмещения]) AS ГодЗаказа
FROM Товары INNER JOIN (Заказы INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Товары].[КодТовара]=[Заказано].[КодТовара]
WHERE ((([Заказы].[ДатаРазмещения]) Between #1/1/2008# And #12/31/2008#))
GROUP BY [Товары].[Марка], [Заказы].[КодКлиента], Year([ДатаРазмещения])
PIVOT "Кв " & DatePart("q",[ДатаРазмещения],1,0) In ("Кв 1","Кв 2","Кв 3","Кв 4");
Клиенты и поставщики по городам
SELECT Город, Название, ОбращатьсяК, "Клиенты" AS [Отношения]
FROM Клиенты
UNION SELECT Город, Название, ОбращатьсяК, "Поставщики"
FROM Поставщики
ORDER BY Город, Название;
Продажи по годам
PARAMETERS Forms![Продажи по годам]!НачальнаяДата DateTime, Forms![Продажи по годам]!КонечнаяДата DateTime;
SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма, Format([ДатаИсполнения],"yyyy") AS Год
FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа
WHERE (((Заказы.ДатаИсполнения) Is Not Null And (Заказы.ДатаИсполнения) Between [Forms]![Продажи по годам]![НачальнаяДата] And [Forms]![Продажи по годам]![КонечнаяДата]));
Продажи по сотрудникам и странам
PARAMETERS [Начальная дата] DateTime, [Конечная дата] DateTime;
SELECT DISTINCTROW Сотрудники.Страна, Сотрудники.Фамилия, Сотрудники.Имя, Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма AS СуммаПродаж
FROM Сотрудники INNER JOIN (Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа) ON Сотрудники.КодСотрудника = Заказы.КодСотрудника
WHERE (((Заказы.ДатаИсполнения) Between [Начальная дата] And [Конечная дата]));
Продажи по типам
SELECT DISTINCTROW Типы.КодТипа, Типы.Категория, Товары.Марка, Sum([Сведения о заказах].ОтпускнаяЦена) AS ПродажиТовара
FROM Типы INNER JOIN (Товары INNER JOIN (Заказы INNER JOIN [Сведения о заказах] ON Заказы.КодЗаказа = [Сведения о заказах].КодЗаказа) ON Товары.КодТовара = [Сведения о заказах].КодТовара) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Заказы.ДатаРазмещения) Between #1/1/1997# And #12/31/2008#))
GROUP BY Типы.КодТипа, Типы.Категория, Товары.Марка
ORDERBYТовары.Марка;
SELECT DISTINCTROW [Продажи товаров в 2008].Категория, Sum([Продажи товаров в 2008].ПродажиТоваров) AS ПродажиПоТипам
FROM [Продажи товаров в 2008]
GROUP BY [Продажи товаров в 2008].Категория;
SELECT DISTINCTROW [Типы].[Категория], [Товары].[Марка], Sum(CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100) AS ПродажиТоваров, "Кв " & DatePart("q",[ДатаИсполнения]) AS КварталИсполнения
FROM (Типы INNER JOIN Товары ON [Типы].[КодТипа]=[Товары].[КодТипа]) INNER JOIN (Заказы INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Товары].[КодТовара]=[Заказано].[КодТовара]
WHERE ((([Заказы].[ДатаИсполнения]) Between #1/1/2008# And #12/31/2008#))
GROUP BY [Типы].[Категория], [Товары].[Марка], "Кв " & DatePart("q",[ДатаИсполнения]);
Промежуточная сумма заказа
SELECT DISTINCTROW [Заказано].[КодЗаказа], Sum(CCur([Цена]*[Количество]*(1-[Скидка])/100)*100) AS ПромежуточнаяСумма
FROM Заказано
GROUP BY [Заказано].[КодЗаказа];
Сведения о заказах
SELECT DISTINCTROW [Заказано].[КодЗаказа], [Заказано].[КодТовара], [Товары].[Марка], [Заказано].[Цена], [Заказано].[Количество], [Заказано].[Скидка], CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100 AS ОтпускнаяЦена
FROM Товары INNER JOIN Заказано ON [Товары].[КодТовара]=[Заказано].[КодТовара]
ORDER BY [Заказано].[КодЗаказа];
Список имеющихся товаров
SELECT [Список товаров].КодТовара, [Список товаров].Марка
FROM Товары AS [Список товаров]
WHERE ((([Список товаров].ПоставкиПрекращены)=No))
ORDER BY [Список товаров].Марка;
Список товаров
SELECT DISTINCTROW Товары.*, Типы.Категория
FROM Типы INNER JOIN Товары ON Типы.КодТипа = Товары.КодТипа
WHERE (((Товары.ПоставкиПрекращены)=No));
Сумма продаж по кварталам
SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма
FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа
WHERE (((Заказы.ДатаИсполнения) Is Not Null))
ORDER BY Заказы.ДатаИсполнения;
Сумма продаж по годам
SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма
FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа
WHERE (((Заказы.ДатаИсполнения) Is Not Null))
ORDER BY Заказы.ДатаИсполнения;
Счета
SELECT DISTINCTROW [Заказы].[НазваниеПолучателя], [Заказы].[АдресПолучателя], [Заказы].[ГородПолучателя], [Заказы].[ОбластьПолучателя], [Заказы].[ИндексПолучателя], [Заказы].[СтранаПолучателя], [Заказы].[КодКлиента], [Клиенты].[Название], [Клиенты].[Адрес], [Клиенты].[Город], [Клиенты].[Область], [Клиенты].[Индекс], [Клиенты].[Страна], [Имя] & " " & [Фамилия] AS Продавец, [Заказы].[КодЗаказа], [Заказы].[ДатаРазмещения], [Заказы].[ДатаНазначения], [Заказы].[ДатаИсполнения], [Доставка].[Название], [Заказано].[КодТовара], [Товары].[Марка], [Заказано].[Цена], [Заказано].[Количество], [Заказано].[Скидка], CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100 AS ОтпускнаяЦена, [Заказы].[СтоимостьДоставки]
FROM Товары INNER JOIN (Сотрудники INNER JOIN (Клиенты INNER JOIN ((Доставка INNER JOIN Заказы ON [Доставка].[КодДоставки]=[Заказы].[Доставка]) INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Клиенты].[КодКлиента]=[Заказы].[КодКлиента]) ON [Сотрудники].[КодСотрудника]=[Заказы].[КодСотрудника]) ON [Товары].[КодТовара]=[Заказано].[КодТовара];
Товары по типам
SELECT DISTINCTROW Типы.Категория, Товары.Марка, Товары.ЕдиницаИзмерения, Товары.НаСкладе, Товары.ПоставкиПрекращены
FROM Типы INNER JOIN Товары ON Типы.КодТипа = Товары.КодТипа
WHERE (((Товары.ПоставкиПрекращены)<>Yes))
ORDER BY Типы.Категория, Товары.Марка;
Товары с ценой выше средней
SELECT DISTINCTROW Товары.Марка, Товары.Цена
FROM Товары
WHERE (((Товары.Цена)>(SELECT AVG([Цена]) From Товары)))
ORDER BY Товары.Цена DESC;
Приложение Д

Рисунок Д.1 - Логическая модель предметной области

Рисунок Д.2 - Физическая модель предметной области
