Содержание
Содержание
1 Аналитическая часть3
1.1 Описание деятельности предприятия3
1.1.1 Характеристика предприятия и его деятельности3
1.1.2 Структурно-функциональная диаграмма организации деятельности «КАК ЕСТЬ»4
1.2 Характеристика комплекса задач, задачи и обоснование необходимости автоматизации6
1.2.1 Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов6
1.2.2 Определение места проектируемой задачи в комплексе задач6
1.2.3 Сущность задачи и предметная технология её решения7
1.2.4 Обоснования необходимости использования вычислительной техники для решения задачи8
1.3 Развёрнутая постановка целей, задачи и подзадач автоматизации10
1.3.1 Цели и назначение автоматизированного варианта решения задачи10
1.3.2 Подзадачи автоматизации и функциональная ИТ их решения11
1.3.3 Формализация расчётов показателей20
1.4 Обоснование проектных решений21
1.4.1 Обоснование проектных решений по техническому обеспечению21
1.4.2 Обоснование проектных решений по программному обеспечению21
2 Проектная часть21
2.1Разработка проекта автоматизации: информационный менеджмент21
2.1.1 Разработка и описание проекта автоматизации, плана-графика автоматизации21
2.1.2 Оценка стоимостных параметров проекта автоматизации22
2.2 Информационное обеспечение задачи23
2.2.1 Информационная модель и её описание23
2.2.2 Используемые классификаторы и системы кодирования23
2.2.3 Характеристика нормативно-справочной и входной оперативной информации24
2.2.4 Характеристика базы данных24
2.2.5 Характеристика результатной информации25
2.3 Программное и технологическое обеспечение задачи26
2.3.1 Общие положения (дерево функций и сценарий диалога)26
2.3.2 Схемы технологического процесса сбора, передачи, обработки и выдачи информации27
3 Обоснование экономической эффективности проекта28
3.1 Выбор и обоснование методики расчёта экономической эффективности28
3.2 Расчёт показателей экономической эффективности проекта29
Список литературы30
Приложение31
Выдержка из текста работы
С недавним же появлением глобальной сети Интернет, информационные потоки стали расти просто в геометрической прогрессии. Интернет становится не просто электронным средством массовой информации, но и своего рода глобальной библиотекой, средой обитания, источником дохода.
Электронная коммерция и небольшая ее часть — Интернет-коммерция все больше входит в повседневную жизнь. Она открывает новые возможности ведения бизнеса, и все больше компаний переносят значительную часть делового общения в Интернет. Электронная коммерция появилась намного раньше Интернет-коммерции и включает в себя множество способов проведения бизнес-транзакций с помощью электронных устройств.
Среди отличительных особенностей онлайн-коммерции перед традиционной коммерцией можно отметить:
-отсутствие географических, временных и в какой-то степени языковых барьеров, что позволяет продвигать товары и услуги на новые рынки сбыта;
-более низкий уровень издержек производства и обращения, что достигается путем внедрения новых технологий во все сферы деятельности компаний: начиная от закупок сырья и материалов и заканчивая дистрибуцией готовой продукции и пост-продажным обслуживанием;
-несравнимо более высокий уровень конкуренции, когда магазин от магазина находится на расстоянии нескольких секунд, требуемых для загрузки соответствующего сайта;
-потенциальная емкость электронного магазина значительно превышает емкость традиционных магазинов по причине отсутствия физических ограничений на складские и торговые помещения.
Коммерческие приложения, в первую очередь, должны приносить прибыль или снижать затраты на определенные бизнес-процессы. В основном прибыль Интернет-проектов достигается несколькими путями, среди которых можно отменить следующие:
-предоставление рекламных мест;
-прямые продажи товаров, услуг и информации;
-техническая поддержка;
-предоставление инструментов для ведения бизнеса.
Прямые продажи товаров и услуг используются для получения прибыли Интернет-магазинами, банковскими и платежными организациями. Информационные издания предоставляют дополнительную информацию.
Техническая поддержка через Интернет позволяет значительно экономить средства, предлагая пользователям более быструю и дешевую, по сравнению с аналогами, систему поддержки дилеров и конечных пользователей.
Последние несколько лет разработчики прилагали массу усилий, чтобы интегрировать графику и анимацию в свои апплеты и приложения Java. Однако первоначально включенные в Java графические пакеты AWT Java имели ограниченные средства для решения таких задач. Теперь же, используя интерфейсы прикладного программирования Java 2D и Java 3D, разработчики могут реализовывать гораздо более сложные графические приложения, включая игры, хранители экрана, экранные заставки и трехмерный графический пользовательский интерфейс. На сегодняшний день графика имеет немаловажное значение для языков программирования. Она позволяет визуализировать любые программы, что придает яркость и удобство для использования тех или иных программ. Позволяет создавать яркие и интересные Web-страницы, удобна при разработке баз данных, написании мобильных и компьютерных игр.
С увеличением скорости и улучшением качества компьютерных сетей значение апплетов сильно упало. Теперь вся обработка данных, прежде выполняемая апплетами, переносится на сервер, браузер только загружает и показывает результаты этой обработки, становится «тонким клиентом».
С другой стороны, появилось много специализированных программ, в том числе написанных на Java, загружающих информацию из Internet. Такая возможность есть сейчас у всех музыкальных и видеопроигрывателей.
Фирма SUN больше не развивает пакет java.applet. В нем так и остался один класс и три интерфейса. В библиотеку Swing вошел класс JApplet, расширяющий класс Applet. В нем есть дополнительные возможности, например, можно установить систему меню. Он способен использовать все классы библиотеки Swing. Но большинство браузеров еще не имеют Swing в своем составе, поэтому приходится загружать классы Swing с сервера или включать их в jar-архив вместе с классами апплета.
Целью исследования, проводимого в рамках настоящей курсовой работы, является изучение объектно-ориентированной технологии программирования на примере языка Java, методов и инструментов разработки web-приложений, и применение полученных знаний для решения прикладных задач, в частности, разработки Интернет-магазина для ООО «Компас».
Объектом исследования является объектно-ориентированная технология разработки программных продуктов; классы — основные компоненты программных единиц, разработанных с её применением, структура и составные элементы классов; базовые принципы объектно-ориентированной технологии программирования, их прикладное значение.
Предметом исследования послужила деятельность ООО «Компас», прикладные программные продукты для разработки HTML-страниц, обработки графических образов, web-дизайна.
Информационной базой исследования является учебная и оригинальная литература, техническая документация по языку программирования Java, система управления контентом Joomla. Она представляет собой набор скриптов, написанных на языке программирования PHP, Adobe Photoshop CS 6, MS Photo Editor.
ГЛАВА 1. АНАЛИЗ ДЕЯТЕЛЬНОСТИ ООО «КОМПАС» В Г. ВЯЗЬМЕ СМОЛЕНСКОЙ ОБЛАСТИ
1.1 Основная характеристика ООО Компас» и его деятельности
ООО «Компас» в г. Вязьме является Обществом с ограниченной ответственностью далее именуемое «Обществом», которое является юридическим лицом по законодательству РФ.
Местонахождение Общества (почтовый адрес): 215110 Смоленская область, г. Вязьма, Красноармейское шоссе, д.5.
ООО «Компас» в соответствии с законодательством РФ имеет печати, штампы и бланки со своим наименованием.
Список товаров, предоставляемый потребителю организацией ООО «Компас»:
- автомобильные аксессуары;
- бытовая техника;
- мебель;
- спортивные товары;
- все для офиса;
- обучающие книги и диски;
- подарки, сувениры;
- телефоны;
- электроника и фото;
- USB Flash drive;
- аксессуары;
- игровые приставки;
- источники бесперебойного питания;
- карты оплаты услуг Интернет;
- карты памяти;
- комплектующие;
- компьютеры;
- манипуляторы и клавиатуры;
- мониторы;
- мультимедиа;
- ноутбуки;
- планшетные компьютеры;
- принтеры и МФУ;
- программное обеспечение;
- расходные материалы;
- серверное оборудование;
- сетевое оборудование;
- сканеры;
- тарифные планы;
- телевизоры и плазменные панели;
- устройства для чтения карт памяти;
- фильтры и стабилизаторы;
Для выполнения задач Общество выполняет следующие функции:
В области управления финансами:
- контроль за поступлением денежных средств по продажам;
- организация расчетов, регулирование денежных потоков;
- организация работ по обеспечению своевременной оплаты заказчиком полученной ими от Общества услуги;
- разработка и реализация мероприятий по стабилизации системы оплаты;
- составление платежного баланса организации с обоснованием источников;
- финансирования налоговой части и анализа средств платежей;
- изучение текущих и перспективных возможностей платежеспособности покупателей.
Общие положения Устава организации:
Настоящий Устав разработан на основании требований действующего законодательства Российской Федерации, в том числе требований Гражданского кодекса Российской Федерации, Федерального закона от 09 июля 1999 года № 160-ФЗ «Об иностранных инвестициях в Российской Федерации», а также Федерального закона от 08 февраля 1998 года № 14-ФЗ «Об обществах с ограниченной ответственностью».
Общество считается созданным как юридическое лицо с момента его государственной регистрации в установленном законом порядке.
Общество создано без ограничения срока деятельности.
Полное фирменное наименование Общества на русском языке: Общество с ограниченной ответственностью «Компас».
Сокращенное фирменное наименование Общества на русском языке: ООО «Компас».
Место нахождения Общества определяется местом его государственной регистрации.
Место нахождения постоянно действующего единоличного исполнительного органа Общества: 215110 г. г.Вязьма, Красноармейское шоссе, д.5
Общество руководствуется в своей деятельности действующим законодательством Российской Федерации, Учредительным договором и настоящим Уставом, именуемым в дальнейшем «Устав». В случае несоответствия положений Учредительного договора и положений Устава преимущественную силу для третьих лиц и Участников Общества имеют положения Устава.
Общество имеет в собственности обособленное имущество, учитываемое на его самостоятельном балансе, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде.
Общество вправе в установленном порядке открывать банковские счета на территории Российской Федерации и за ее пределами.
Общество должно иметь круглую печать, содержащую его полное фирменное наименование на русском языке и указание на место нахождения Общества.
Печать Общества может содержать также фирменное наименование Общества на любом языке народов Российской Федерации и (или) иностранном языке.
Общество вправе иметь штампы и бланки со своим фирменным наименованием, собственную эмблему, а также зарегистрированный в установленном порядке товарный знак и другие средства индивидуализации.
Общество может иметь гражданские права и нести гражданские обязанности, необходимые для осуществления любых видов деятельности, не запрещенных федеральными законами, если это не противоречит предмету и целям деятельности, определенным Уставом.
В частности, Общество имеет право:
-участвовать в деятельности и создавать на территории Российской Федерации юридические лица в организационно-правовых формах, предусмотренных действующим законодательством Российской Федерации, помещать денежные средства в облигации, сертификаты банков и другие ценные бумаги, находящиеся в обращении на территории Российской Федерации;
-создавать юридические лица с иностранным участием, как на территории Российской Федерации, так и за ее пределами;
-вступать в ассоциации и иные объединения юридических лиц;
-участвовать в деятельности и сотрудничать с международными ассоциациями, общественными фондами и организациями;
-вести строительство за счет собственных и заемных средств, приобретать, отчуждать, брать в аренду в Российской Федерации движимое и недвижимое имущество, приобретать и арендовать земельные участки и пользоваться природными ресурсами в установленном законом порядке;
-иметь собственное автохозяйство;
-привлекать для работы российских и иностранных специалистов;
-самостоятельно определять формы, системы, размеры и виды оплаты труда, включая оплату в безналичной иностранной валюте и в натуральной форме;
-осуществлять хозяйственную деятельность за рубежом в установленном законом порядке.
Общество несет ответственность по своим обязательствам всем принадлежащим ему имуществом.
Общество не отвечает по обязательствам своих Участников. Участники Общества не отвечают по его обязательствам и несут риск убытков, связанных с деятельностью Общества, в пределах стоимости внесенных ими вкладов.
В случае несостоятельности (банкротства) Общества по вине его Участников или других лиц, которые имеют право давать обязательные для Общества указания либо иным образом имеют возможность определять его действия, на указанных Участников или других лиц в случае недостаточности имущества Общества может быть возложена субсидиарная ответственность по его обязательствам.
1.2 Модель «AS — IS» функционирования организации ООО «Компас»
На данный момент времени магазин ООО «Компас» не имеет Интернет — магазина. Продажа товаров осуществляется в магазине ООО «Компас». Для того, чтобы покупателю получить сведения о предлагаемой продукции, ему необходимо обратиться к менеджеру магазина для получения более подробной информации. В случае, если покупатель намерен приобрести понравившийся ему товар, ему так же необходимо обратиться к менеджеру по продажам для покупки товара, который находится в наличие. Если требуемого товара нет в наличие, на складе магазина, покупателю необходимо оставить заявку на заказ товара, для этого необходимо заполнить бланк «Заказ товара», после заполнения необходимых данных, оставляется предоплата в размере десяти процентов от стоимости товара. При поступлении товара на склад ООО «Компас», менеджер по продажам связывается с покупателем, информирует его о поступление заказанного товара и возможности его приобрести. После того, как покупатель оплачивает оставшуюся сумму товара, покупатель получает приобретенный товар. Для информирования потенциальных клиентов о деятельности магазина ООО «Компас», осуществляется наружная реклама, с помощью размещения баннерной рекламы, раздачей листовок о проводимых акциях и любой другой дополнительной информации.
Разрабатываемый Интернет — магазин должен удовлетворять следующим требованиям, а именно:
- иметь систему регистрации пользователей;
- иметь систему аутентификации и авторизации пользователей;
- предоставлять потенциальному покупателю полную информацию о продукции;
- наличие расширенной системы поиска. Поиск по категориям и по названию, путем ввода части слова или целиком;
- предоставлять потенциальному покупателю всю необходимую информацию для совершения покупки в Интернет — магазине;
- предоставлять потенциальному покупателю возможность задавать вопросы по работе Интернет — магазина;
- иметь несколько разных способов оплаты продукции;
- наличие системы скидок для постоянных покупателей;
- возможность просмотра истории заказов и отслеживание хода выполнения текущих;
- возможность оставлять отзывы о продукции;
- возможность редактирование покупателями личных данных;
- иметь систему восстановления пароля;
- возможность подписки на новости Интернет — магазина;
- обеспечивать конфиденциальность информации о покупателях и заказах.
При получении пользователем необходимой информации о предлагаемой продукции, он сможет заказать его через Интернет — магазин, для этого будет необходимо заполнить бланк «Заказ товара». При подтверждении правильности заказа, покупателю выдается квитанция об оплате, в течение двух рабочих недель, ему курьер доставляет заказ или через почту, при получении заказа, покупатель подписывается в ведомости «Доставка товара».
На рис. 1.1 представлена обобщённая схема информационных потоков (модель «AS — IS») деятельности магазина ООО «Компас» в г. Вязьме. Для оформления документов и регистрации заказов клиентов в организации применяется текстовый и табличный процессоры.
Рис. 1.1. Внутренние информационные потоки деятельности магазина ООО «Компас»
Пояснение к рис. 1.1.
1,2 — обозначает материалы и сведения, которые директор магазина ООО «Компас» предоставляет для размещения рекламы;
3 — обозначает информацию, которую покупатель получает через информационную рекламу, размещаемую рекламным агентством;
4,5 — обозначает информацию, которую покупатель получает при покупке товара или заказа товара со склада;
6,7 — отчеты и квитанции по продаваемым товарам магазином ООО «Компас».
1.3 Возможности java-апплетов
Синтаксис Java близок к синтаксису языка C++. Унаследовав самое лучшее от языка программирования C++, язык Java при этом избавился от некоторых недостатков C++, в результате чего на нем стало проще программировать. В этом языке нет, например, указателей, которые сложны в использовании и потенциально могут послужить причиной доступа программы к не принадлежащей ей области памяти. Нет множественного наследования и шаблонов, хотя функциональные возможности языка Java от этого не пострадали.
Огромное преимущество Java заключается в том, что на этом языке можно создавать приложения, способные работать на различных платформах. К сети Internet подключены компьютеры самых разных типов — Pentium PC, Macintosh, рабочие станции Sun и так далее. Даже в рамках компьютеров, созданных на базе процессоров Intel, существует несколько платформ. Между тем, создавая сервер Web в сети Internet, хотелось бы, чтобы им могло пользоваться как можно большее число людей. В этом случае выручают приложения Java, предназначенные для работы на различных платформах и не зависящие от конкретного типа процессора и операционной системы.
Программы, составленные на языке программирования Java, можно разделить по своему назначению на две большие группы.
К первой группе относятся приложения Java, предназначенные для автономной работы под управлением специальной интерпретирующей машины Java. Реализации этой машины созданы для всех основных компьютерных платформ.
Вторая группа — это так называемые апплеты (applets). Апплеты представляют собой разновидность приложений Java, которые интерпретируются виртуальной машиной Java, встроенной практически во все современные браузеры.
Приложения, относящиеся к первой группе (будем называть их просто приложениями Java), — это обычные автономные программы. Так как они не содержат машинного кода и работают под управлением специального интерпретатора, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Однако не следует забывать, что программы Java без перетрансляции способны работать на любой платформе, что само по себе имеет большое значение в плане разработок для Internet.
Апплеты Java встраиваются в документы HTML, хранящиеся на сервере Web. С помощью апплетов можно сделать страницы сервера Web динамичными и интерактивными. Апплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Из соображений безопасности апплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web. Более сложную обработку данных можно выполнять, организовав взаимодействие между апплетами и расширениями сервера Web — приложениями CGI и ISAPI.
Для повышения производительности приложений Java в современных браузерах используется компиляция «на лету»- Just-In-Time compilation (JIT). При первой загрузке апплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения апплета Java увеличивается в несколько раз.
Язык Java является объектно-ориентированным и поставляется с достаточно объемной библиотекой классов. Так же как и библиотеки классов систем разработки приложений на языке C++, библиотеки классов Java значительно упрощают разработку приложений, представляя в распоряжение программиста мощные средства решения распространенных задач. Поэтому программист может больше внимания уделить решению прикладных задач, а не таких, как, например, организация динамических массивов, взаимодействие с операционной системой или реализация элементов пользовательского интерфейса.
ГЛАВА 2. ВЫБОР И ОБОСНОВАНИЕ ИНСТРУМЕНТОВ РАЗРАБОТКИ ИНТЕРНЕТ-МАГАЗИНА
2.1 Язык программирования Java
Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. Программы на Java выполняются виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Java — объектно-ориентированный язык, в котором используется при программировании инкапсуляция, полиморфизм и наследование.
Инкапсуляция — свойство языка программирования, позволяющее объединить и защитить данные и код в объекте и скрыть реализацию объекта от пользователя (прикладного программиста). При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public. Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal. Сокрытие реализации целесообразно применять в следующих случаях:
- предельная локализация изменений при необходимости таких изменений;
- прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
Полиморфизм — возможность объектов с одинаковой спецификацией иметь различную реализацию.
Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:
- внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);
- внутренняя общность — одинаковая функциональность методов.
Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).
В объектно-ориентированных языках класс является абстрактным типом данных. Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка. Другие функции могут работать с объектом класса-родителя, но при этом вместо него во время исполнения будет подставляться один из классов-потомков. Это называется поздним связыванием.
Класс-потомок сам может быть родителем. Это позволяет строить сложные схемы наследования — древовидные или сетевидные. Абстрактные (или чисто виртуальные) методы не имеют реализации вообще (на самом деле некоторые языки, например C++, допускают реализацию абстрактных методов в родительском классе). Они специально предназначены для наследования. Их реализация должна быть определена в классах-потомках. Класс может наследовать функциональность от нескольких классов. Это называется множественным наследованием. Множественное наследование создаёт известную проблему (в C++), когда класс наследуется от нескольких классов-посредников, которые в свою очередь наследуются от одного класса (так называемая «Проблема ромба»): если метод общего предка был переопределён в посредниках, неизвестно, какую реализацию метода должен наследовать общий потомок. Решается эта проблема путём отказа от множественного наследования для классов и разрешением множественного наследования для полностью абстрактных классов (то есть интерфейсов) (C#, Delphi, Java), либо через виртуальное наследование (C++).
Наследование — механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.
Простое наследование. Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).
В некоторых языках используются абстрактные классы. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного. Например, абстрактным классом может быть базовый класс «сотрудник вуза», от которого наследуются классы «аспирант», «профессор» и т. д. Так как производные классы имеют общие поля и функции (например, поле «год рождения»), то эти члены класса могут быть описаны в базовом классе. В программе создаются объекты на основе классов «аспирант», «профессор», но нет смысла создавать объект на основе класса «сотрудник вуза».
При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости. Язык Java не поддерживает множественное наследование.
Абстракция — в объектно-ориентированном программировании это придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.
Такой подход является основой объектно-ориентированного программирования. Это позволяет работать с объектами, не вдаваясь в особенности их реализации. В каждом конкретном случае применяется тот или иной подход: инкапсуляция, полиморфизм или наследование. Например, при необходимости обратиться к скрытым данным объекта, следует воспользоваться инкапсуляцией, создав, так называемую, функцию доступа или свойство.
Абстракция данных — популярная и в общем неверно определяемая техника программирования. Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик существенных для корректного ее использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.
С точки зрения теории множеств, процесс представляет собой организацию для группы подмножеств своего множества.
Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.
Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:
- применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
- широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
- аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).
2.2 Система управления содержимым (CSM)
Joomla — система управления контентом, написанная на языках PHP и JavaScript, использующая в качестве хранилища базу данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL.
CMS Joomla! включает в себя различные инструменты для изготовления веб-сайта. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.
Joomla! позволяет отображать интерфейс фронтальной и административной части на любом языке. Каталог расширений содержит множество языковых пакетов, которые устанавливаются штатными средствами администрирования. Доступны пакеты русского, украинского и ещё некоторых языков стран СНГ.
Основные возможности:
— функциональность можно расширять с помощью дополнительных модулей (расширений, плагинов);
— модуль безопасности для многоуровневой аутентификации пользователей и администраторов;
— система шаблонов позволяет легко изменять внешний вид сайта;
— четкая организация структуры сайта;
— разделы тем могут быть добавлены авторами;
— полностью настраиваемые схемы расположения элементов, включая левый, правый и центральный блоки меню;
— закачка изображений при помощи браузера в вашу собственную библиотеку — для последующего использования с любого места сайта;
— форум/опросы/голосования для эффективной обратной связи.
Возможности администрирования:
— возможность создавать неограниченное количество страниц;
— четкая организация структуры сайта;
— возможность ограничения доступа пользователей;
— для каждой динамической страницы можно создать свое описание и ключевые слова в целях повышения рейтинга в поисковых системах;
— начало и окончание публикации любых материалов можно запрограммировать по календарю;
— возможность ограничить доступ к определенным разделам сайта только для зарегистрированных пользователей;
— изменение порядка объектов, включая новости, вопросы, статьи и т.д.;
— библиотека изображений позволит вам хранить все ваши gif- и jpeg-файлы под рукой для лёгкого доступа;
— возможность распечатать или отправить другу на e-mail любую статью с сайта;
— предварительный просмотр перед окончательным размещением;
— возможность легкой смены дизайна;
— возможность использования адресов страниц адаптированных для лучшей индексации всеми поисковыми системами.
2.3 Система управления продажами Интернет-магазина
VirtueMart появился впервые в виде автономного приложения phpShop для создания Интернет — магазина. Оригинально названный mambo-phpShop, он стал первым специально созданным компонентом электронной коммерции для системы управления сайтом Mambo. После того как Mambo ответвилось в Joomla, разработчик поменял бренд mambo-phpShop на VirtueMart, который официально поддерживает более новую систему управления сайтами Joomla. Текущие версии VirtueMart могут функционировать с Mambo. Старые версии mambo-phpShop всё ещё доступны для загрузки, но уже не имеют активной поддержки.
На сегодняшний день VirtueMart — лучший компонент для Joomla в области электронной коммерции. Этим его делают бесплатность, расширяемость и огромный функционал.
VirtueMart поддерживает неограниченное количество продукции и категорий, неограниченное количество валют для одного продукта, назначение продукции множеству категорий, возможность продавать продукцию, предназначенную для скачивания, а также предоставляет возможность отключить функцию продажи и использовать VirtueMart в режиме каталога. VirtueMart позволяет иметь разные цены для одной продукции, основанные на количестве или принадлежности покупателя к определённой группе, и предоставляет возможность использования различных платёжных систем.
В VirtueMart реализована система скидок, купонов, а так же большой выбор систем оплаты и способов доставки. Функционал, обеспечивающий возможность работы нескольких продавцов, заявленный в VirtueMart 1.1.0, в данной ветке не до конца был реализован, поэтому его окончательная реализация перенесена в версию 2.0.0.
VirtueMart является свободным программным обеспечением для реализации функции Интернет-магазина и весь PHP-код полностью доступен. Это позволяет PHP-разработчикам просматривать, обновлять или изменять возможности и функции Интернет-магазина. В дополнение ко всему, VirtueMart использует упрощённые шаблоны (называемые ‘fly pages’ в VirtueMart), предоставляющие возможность изменять внешний вид интернет-магазина и имеющие HTML и CSS формат.
При переносе VirtueMart с Mambo на Joomla разработчики не уделили должного внимания отличиям между Mambo и Joomla, в результате VirtueMart ветки 1.0.x содержит в себе много старого процедурного кода и компоненты, уже существующие в Joomla, но по каким-то причинам не использующиеся (шаблонизатор, соединение с базой и т.д.).
В современную ветку VirtueMart 1.1.x была включена возможность быстро менять темы для категории товаров, страницы заказа и страницы корзины.
Возможности разрабатываемого Интернет — магазина с помощью VirtueMart:
- маркетинговые инструменты;
- многоуровневое ценообразование;
- купоны;
- правила ценообразования;
- определение налоговых ставок;
- определение правил для региона или страны;
- создание классов налога, например «Нормальный» или «Оптовый»;
- выставление ставки НДС;
- продукты и каталог;
- возможность задания различных атрибутов (свойств) для товара;
- неограниченная вложенность категорий;
- конфигурируемые продукты — продукты с выборочными свойствами (например: цвет, размер и т. д.);
- сортировка товара по предопределенным атрибутам (выполняется с помощью дополнительного модуля);
- администрирование;
- группы покупателей (простые, VIP и т.д.);
- импорт/экспорт (в виде сторонних разработок);
- система контроля доступа;
- выбор валюты;
- выбор стран;
- отчеты продаж;
- выбор способов доставки;
- выбор способов оплаты;
- предложение покупателям сопутствующих товаров;
- предложение покупателям недавно просмотренных товаров;
- связь с покупателем;
- сообщения по электронной почте;
- RSS-подписка на категорию или все группы товаров;
- поиск и расширенный поиск;
- показ спецпредложений на товары.
2.4 Графический редактор Adobe Photoshop CS6
Adobe Photoshop — многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems. В основном работает с растровыми изображениями, однако имеет некоторые векторные инструменты. Продукт является лидером рынка в области коммерческих средств редактирования растровых изображений, и наиболее известным продуктом фирмы Adobe. Часто эту программу называют просто Photoshop. В настоящее время Photoshop доступен на платформах Mac, Windows и мобильные системы iOS и Android. Ранние версии редактора были портированы под SGI IRIX, но официальная поддержка была прекращена, начиная с третьей версии продукта. Для версий 8.0 и CS6 возможен запуск под Linux с помощью альтернативы Windows API.
Несмотря на то, что изначально программа была разработана как редактор изображений для полиграфии, в данное время она широко используется и в веб-дизайне. В более ранней версии была включена специальная программа для этих целей — Adobe ImageReady, которая была исключена из версии CS3 за счёт интеграции её функций в сам Photoshop, а также включения в линейку программных продуктов Adobe Fireworks, перешедшего в собственность Adobe после приобретения компании Macromedia.
Photoshop тесно связан с другими программами для обработки медиафайлов, анимации и другого творчества. Совместно с такими программами, как Adobe ImageReady (программа упразднена в версии CS6), Adobe Illustrator, Adobe Premiere, Adobe After Effects и Adobe Encore DVD, он может использоваться для создания профессиональных DVD, обеспечивает средства нелинейного монтажа и создания таких спецэффектов, как фоны, текстуры и т. д. для телевидения, кинематографа и всемирной паутины. Photoshop также прижился в кругах разработчиков компьютерных игр.
Основной формат Photoshop, PSD, может быть экспортирован и импортирован всеми программными продуктами, перечисленными выше. Photoshop CS поддерживает создание меню для DVD. Совместно с Adobe Encore DVD, Photoshop позволяет создавать меню или кнопки DVD. Photoshop CS6 в версии Extended поддерживает также работу с трёхмерными слоями.
Из-за высокой популярности Photoshop поддержка специфического для неё формата PSD была реализована во многих графических программах, таких как Macromedia Fireworks, Corel PHOTO-PAINT, WinImages, GIMP, Corel Paint Shop Pro и других.
Photoshop поддерживает следующие цветовые модели или способы описания цветов изображения (в нотации самой программы — режим изображения):
- RGB;
- LAB;
- CMYK;
- в градациях серого;
- черно-белые;
- Duotone;
- С 256-цветовой палитрой (Indexed);
- многоканальные (Multichannel).
Поддерживается обработка изображений, с глубиной цвета 8 бит (256 градаций на один канал), 16 бит (используется 15 битов плюс один уровень, то есть 32769 уровней) и 32 бит (используются числа одинарной точности с плавающей запятой). Возможно сохранение в файле дополнительных элементов, как то: направляющих (Guide), каналов (например, канала прозрачности — Alpha channel), путей обтравки (Clipping path), слоёв, содержащих векторные и текстовые объекты. Файл может включать цветовые профили (ICC), функции преобразования цвета (transfer functions). Допускаются неквадратные пиксели (Pixel Aspect Ratio).
ГЛАВА 3. РАЗРАБОТКА ИНТЕРНЕТ-МАГАЗИНА ДЛЯ ООО «КОМПАС»
3.1 Описание интерфейса Интернет-магазина ООО «Компас»
При вводе пользователя электронного адреса магазина ООО «Компас», открывается главная страница разработанного Интернет — магазина (см. рис. 3.1).
Рис. 3.1. Главная страница Интернет-магазина ООО «Компас»
Меню Интернет — магазина содержит следующие вкладки: «Главная»; «Как купить?»; «Доставка»; «Сервисный центр»; «О компании»; «Контакты». При нажатии на вкладки меню, осуществляется переход по страницам Интернет — магазина с соответствующей информацией для пользователя.
При нажатии пользователем на выбранную категорию продукции, происходит переход на страницу Интернет — магазина «Список товаров» (см. рис. 3.2). На данной странице пользователю отображаются все товары выбранной категории, с указанием стоимости товара и его популярности у покупателей. Так же пользователь может сортировать список товаров по следующим критериям: «Наименование», «Наличие», «Цена товара», «Год».
Рис. 3.2. Страница Интернет — магазина «Список товаров»
Для просмотра более подробной информации, необходимо нажать на кнопку «Подробнее», после чего открывается страница Интернет — магазина «Товар» (см. рис. 3.3). На данной странице пользователь может получить дополнительную информацию о товаре, прочитать комментарии к товару и заказать требуемое количество товаров.
Рис. 3.3. Страница Интернет — магазина «Товар»
Для добавления товара в корзину, пользователю необходимо нажать на кнопку «Купить», после чего появится компонент «Информационное окно» (см. рис. 3.4) уведомляющие о добавления товара в корзину покупателя.
Рис. 3.4. Компонент «Информационное окно»
Для осуществления покупки товаров через Интернет — магазин, пользователю необходимо нажать на корзину пользователя, для перехода на страницу «Оформление заказа» (см. рис. 3.5).
Рис. 3.5. Страница Интернет-магазина «Оформление заказа»
На странице Интернет-магазина, пользователю необходимо пройти процесс авторизации, указать количество покупаемого товара, указать способы доставки товара и способы оплаты товара, прочитать и согласиться с условиями обслуживания и подтвердить сумму заказа, для осуществления заказа.
После подтверждения способа оплаты, пользователь подтверждает заявку на приобретение товара. После чего открывается страница «Оплата заказа» (см. рис. 3.6). Данная страница фирмы «Единая касса», позволяет оплачивать покупаемые товары через Интернет-магазин.
Рис. 3.6. Страница Интернет — магазина «Оплата заказа»
Компонент «Специальное предложение» (см. рис. 3.7), расположенный на главной странице Интернет — магазина, служит для предоставления товаров со сниженными ценами и возможностью их приобретения через Интернет — магазин.
Рис. 3.7. Компонент «Специальное предложение»
Компонент «Новости» (см. рис. 3.8), расположенный на страницах Интернет — магазина, служит для предоставления пользователю информации о новых новостях, касаемо работы Интернет — магазина и деятельности организации ООО «Строй-Дом».
Рис. 3.9. Компонент «Новости»
Компонент «Регистрация» (см. рис. 3.10) служит для регистрации пользователей Интернет — магазина. При заполнении пользователем требуемых данных, отправляется сопроводительное письмо на электронный адрес, указываемый при регистрации, со ссылкой на подтверждения регистрации, после подтверждения ссылки регистрации, пользователю становится доступна возможность покупки товаров через Интернет — магазин.
Рис. 3.10. Компонент «Регистрация»
Компонент «Поиск» (см. рис. 3.11) служит для поиска требуемой информации по Интернет — магазину по критериям поиска.
Рис. 3.11. Компонент «Поиск»
3.2 Алгоритм разработки Интернет-магазина
Алгоритм разработки Интернет-магазина для ООО «Компас».
1) От организации ООО «Компас» были получены сведения, касающиеся деятельности организации, ее функций и истории создания, перечень товаров с указанием их характеристики и стоимости, а также другая информация, необходимая для разработки Интернет-магазина.
2) Полученная информация на бумажном носителе была преобразована в электронный формат посредством программы Microsoft FrontPage.
3) Были подобраны и обработаны изображения товаров с помощью графического редактора Adobe Photoshop CS6.
4) Выбраны анимационные картинки для последующего их размещения на страницах Интернет — магазина.
5) Создан дизайн с помощью графического редактора Abode Photoshop CS6 и Abode Dreamweaver CS6.
6) На основе полученной и обработанной мною информации, была создана главная страница — Main.html. По центру размещена информация о новостях, специальные предложения, рекомендуемые товары. В верхней части сайта расположено меню: «Главная»; «Как купить?»; «Доставка»; «Сервисный центр»; «О компании»; «Контакты».
7) После чего были размещены страницы с соответствующими материала, переход по которым возможен через основное меню сайта.
8) Следующим шагом была разработка компонентов Интернет — магазина для размещения товаров с подробным описанием и возможностью покупки товаров через Интернет.
9) Так же были размещены компоненты: «Регистрация»; «Корзина покупателя»; «Баннерная реклама»; «Прайс — лист». Данные компоненты служат для улучшения работы Интернет — магазина и предоставления рекламы.
10) Следующим шагом было написание апплета на языке программирования Java. Внедрение апплета позволило придать страницам Интернет — магазина более привлекательный вид. Апплет представляет собой модуль, с расположенными в нем информации о времени, в виде стрелочных часов (см. рис. 3.12).
Рис. 3.12. Апплет «Стрелочные часы»
11) Отладка апплета, получение исполняемого модуля CircleClock.class.
12) Чтобы увидеть как работает этот апплет, была создана пробная html-страница, в которую и был вставлен разработанный апплет. Также работа апплета была просмотрена встроенной в инструментальную среду jdk1.3.1 программой для просмотра апплетов — appletwiever.
13) Произведена настройка гиперссылок на главную страницу.
14) С помощью мастера настройки шаблонов страниц были созданы страницы, переход на которые возможен со страниц, идущих от главной, и не возможен на Main.html.
15) Был продуман дизайн и помещена обработанная информация, преобразованная с бумажных, электронных носителей и размещена на странице Интернет — магазина.
16) Установлены и проверены гиперссылки на все страницы Интернет — магазина.
17) Проверка работоспособности сайта в web-браузерах: Internet Explorer, Google Chrome и Opera при различной разрешающей способности монитора ПЭВМ.
Рассмотрим описание структуры Интернет — магазина ООО «Компас». Структура Интернет — магазина представлена на рис. 3.13.
Рис. 3.13. Структура Интернет-магазина
3.3 Описание алгоритма создания и библиотечных классов, использованных при разработке апплета
Апплеты — это маленькие приложения, которые размещаются на серверах Internet, транспортируются клиенту по сети, автоматически устанавливаются и запускаются на месте, как часть документа HTML. Когда апплет прибывает к клиенту, его доступ к ресурсам ограничен.
При написании апплета были использованы различные пакеты, библиотеки, интерфейсы, методы и многое другое. Рассмотрим построение апплета более подробно.
Кроме приложений, язык Java позволяет создавать апплеты (applets). Это программы, работающие в среде другой программы — браузера. Апплеты не нуждаются в окне верхнего уровня — им служит окно браузера. Они не запускаются JVM — их загружает браузер, который сам запускает JVM для выполнения апплета. Эти особенности отражаются на написании программы апплета.
С точки зрения языка Java, апплет — это всякое расширение класса Applet, который, в свою очередь, расширяет класс panel. Таким образом, апплет — это панель специального вида, контейнер для размещения компонентов с дополнительными свойствами и методами. Менеджером размещения компонентов по умолчанию, как и в классе Panel, служит FiowLayout. Класс Applet находится в пакете java. applet, в котором кроме него есть только три интерфейса, реализованные в браузере. Надо заметить, что не все браузеры реализуют эти интерфейсы полностью.
Поскольку JVM не запускает апплет, отпадает необходимость в методе main (), его нет в апплетах.
В апплетах редко встречается конструктор. Дело в том, что при запуске первого создается его контекст. Во время выполнения конструктора контекст еще не сформирован, поэтому не все начальные значения удается определить в конструкторе.
Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом апплете — подклассе класса Applet. Обратные действия — завершение работы, освобождение ресурсов — записываются при необходимости в метод destroy, тоже выполняющийся автоматически при выгрузке апплета. В классе Applet есть пустая реализация этого метода.
Кроме методов init() и destroy() в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start() при каждом появлении апплета на экране и обращаться к методу stop(), когда апплет уходит с экрана. В методе stop() можно определить действия, приостанавливающие работу апплета, в методе start() — возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно.
Обязательные параметры <appiet>:
- code — URL-адрес файла с классом апплета или архивного файла;
- width и height — ширина и высота апплета в пикселах.
Необязательные параметры:
- codebase — URL-адрес каталога, в котором расположен файл класса апплета. Если этот параметр отсутствует, браузер будет искать файл в том же каталоге, где размещен соответствующий HTML-файл;
- archive — файлы всех классов, составляющих апплет, могут быть упакованы архиватором ZIP или специальным архиватором JAR в один или несколько архивных файлов. Параметр задает URL-адреса этих файлов через запятую;
- align — выравнивание апплета в окне браузера. Этот параметр имеет одно из следующих значений: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP;
- hspace и vspace — горизонтальные и вертикальные поля, отделяющие апплет от других объектов в окне браузера в пикселах;
- download — задает порядок загрузки изображений апплетом. Имена изображений перечисляются через запятую в порядке загрузки;
- name — имя апплета. Параметр нужен, если загружаются несколько ап-плетов с одинаковыми значениями code и codebase;
- style — информация о стиле CSS (Cascading Style Sheet); title — текст, отображаемый в процессе выполнения апплета;
- alt — текст, выводимый вместо апплета, если браузер не может загрузить его;
- mayscript — не имеет значения. Это слово указывает на то, что апплет будет обращаться к тексту JavaScript.
Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса апплета.
Метод getoocumentBase () возвращает URL-адрес каталога, в котором лежит HTML-файл, вызвавший апплет.
Браузер реализует интерфейс Appletcontext, находящийся в пакете java.applet. Апплет может получить ссылку на этот интерфейс методом getAppletContext().
С помощью методов getApplet (String name) и getApplets() интерфейса Appletcontext можно получить ссылку на указанный аргументом name апплет или на все апплеты, загруженные в браузер.
Метод showDocument(URL address) загружает в браузер HTML-файл с адреса address.
Метод showDocument (URL address, String target) загружает файл во фрейм, указанный вторым аргументом target. Этот аргумент может принимать следующие значения:
- _seif — то же окно и тот же фрейм, в котором работает апплет;
- _parent — родительский фрейм апплета;
- _top — фрейм верхнего уровня окна апплета;
- _biank — новое окно верхнего уровня;
- name — фрейм или окно с именем name , если оно не существует, то будет создано.
Тег HTML. Тег <applet>используется для запуска апплета как из HTML-документа, так и из программы appletviewer. Программа appletviewer выполняет каждый найденный ей тег <applet> в отдельном окне, в то время как браузеры позволяют разместить на одной странице несколько апплетов.
Далее будет представлена часть тега <applet> с кратким описанием создания стрелочных часов:
<applet code=CircleClock.class archive=»CircleClock.jar» width = 300 height = 300>
<param name=dialColor value=»FFFEeFEFE»>
<param name=hairLineColor value=»FF42C151″>
<param name=hoursNeedleColorvalue=»7F000000″>
<param name=minutesNeedleColor value=»7F0000FF»>
<param name=secondsNeedleColor value=»7FFF0000″>
</applet>
Первая строка стандартная. В ней задаются следующие параметры:
code — имя класса, содержащего метод init();
archive — имя архива, содержащего апплет (jar-файл);
width — длина апплета;
height — высота апплета.
Ограничений на длину и высоту нет (не допускаются только нулевые или отрицательные размеры). Размер стрелок и черточек на циферблате будет автоматически выставлен.
Следующие пять параметров задают цвета стрелок, циферблата и черточек на циферблате.
При этом параметр name указывает название элемента, а параметр value — его цвет.
- dialColor — цвет циферблата;
- hairLineColor — цвет черточек на циферблате;
- hoursNeedleColor — цвет часовой стрелки;
- minutesNeedleColor — цвет минутной стрелки;
- secondsNeedleColor — цвет секундной стрелки.
Цвета задаются в 16-тиричной системе счисления, а цветовая схема — ARGB (alpha, red, green, blue).
При этом FF соответствует максимально насыщенному цвету (или нулевой прозрачности), а 00 — отсутствию данной составляющей в цвете (или 100% прозрачности).
Так же для настройки часов, можно использовать несколько параметров:
- FFFFFFFF — не прозрачный белый цвет;
- 7F000000 — черный цвет (~50% прозрачность);
- 7F0000FF — синий цвет (~50% прозрачность);
- 7F00FF00 — зеленый цвет (~50% прозрачность).
При запуске апплета выполняется установка цветов, определение размеров, расчет размеров стрелок, черточек на циферблате и т.д.
Далее необходимо с какой-то периодичностью обновлять содержимое апплета (т. е. определять текущее время и поворачивать стрелки). Для этого создаем парралельный поток (timer), который периодически вызывает функцию update().
При каждом обновлении апплета определяется время, рассчитываются углы поворота стрелок, и выполняется перерисовку окна апплета. Для визуализации стрелок часов был использованы следующие класс: BufferedImage. Текст апплета полностью представляется в приложении 1.
ЗАКЛЮЧЕНИЕ
Апплеты были первоначальным практическим применением Java. За первые два года существования Java были написаны тысячи очень интересных и красивых апплетов, ожививших WWW. Масса апплетов разбросана по Internet, хорошие примеры апплетов собраны в JDK в каталоге demo\applets.
В JDK вошел целый пакет java.applet, в который фирма SUN собиралась заносить классы, развивающие и улучшающие апплеты.
С увеличением скорости и улучшением качества компьютерных сетей значение апплетов сильно упало. Теперь вся обработка данных, прежде выполняемая апплетами, переносится на сервер, браузер только загружает и показывает результаты этой обработки, становится «тонким клиентом».
С другой стороны, появилось много специализированных программ, в том числе написанных на Java, загружающих информацию из Internet. Такая возможность есть сейчас у всех музыкальных и видеопроигрывателей.
Фирма SUN больше не развивает пакет java.applet. В нем так и остался один класс и три интерфейса. В библиотеку Swing вошел класс JApplet, расширяющий класс Applet. В нем есть дополнительные возможности, например, можно установить систему меню. Он способен использовать все классы библиотеки Swing. Но большинство браузеров еще не имеют Swing в своем составе, поэтому приходится загружать классы Swing с сервера или включать их в jar-архив вместе с классами апплета.
В ходе выполнения данной курсовой работы, автором были получены следующие возможности, а именно:
— получены знания по теоретическим концепциям объектно — ориентированной методологии и технологии программирования;
— возможность применения объектно — ориентированную технологию программирования для решения различных прикладных задач;
— получены практические навыки разработки консольных приложений, апплетов на языке Java — 2 в среде jdk1.4.1 или Netbeans.
Результатом исследования деятельности ООО «Компас», проводимого в рамках настоящей курсовой работы, является создание Интернет — магазина для ООО «Компас».
Были решены основные задачи исследования:
- выполнен системный анализ предметной области и деятельности объекта автоматизации;
- построена модель «AS — IS» по результатам обследования объекта автоматизации;
- выбраны средства для реализации и разработки Интернет-магазина, описаны языки программирования, средства графических редакторов и система контента;
- описан разработанный Интернет-магазин для ООО « Компас»;
- описаны алгоритмы разработки и работы Интернет-магазина;
- разработан и внедрен апплет в виде стрелочных часов, который размещен на страницах Интернет-магазина.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ
объектный программирование интернет магазин
1. Ахромов Я.В. Технологии web — дизайна и flash — технологии. — Р-н/Д.: Феникс, 2004
2. Благодатских В.А. Стандартизация разработки программных средств. — М.: Финансы и статистика, 2005
3. Вайк Ален и др. JavaScript. Справочник. Пер. с англ. — СПб.: ООО «М.: ДиаСофтЮП, 2002
4. Венц К., Хаузер Т. Как создать свой сайт: Самоучитель/ Пер. с нем. — М.: НТ Пресс, 2006
5. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес ДЖ. — СПб.: Питер, 2012
6. Зельдман Д. Web — дизайн по стандарту: пер. с англ. — М.: НТ Пресс, 2005
7. Лещев Д. Создание интерактивного web — сайта: учебный курс. — СПб.: Питер, 2003
8. Ноблес Р., Керри — Лэй Г. Эффективный web — сайт: учебное пособие. — М.: ТРИУМФ, 2004
9. Орлов С.А. Технологии разработки программного обеспечения: Учебник для вузов. — 3-е изд., СПб.: Питер, 2004
10. Хабибуллин И.Ш. Самоучитель java 2. — СПб.: БХВ — Петербург, 2005
11. Хорев П.Б. Технологии объектно-ориентированного программирования: Учебное пособие для вузов. — М.: Академия, 2004
12. Эккель Б. Философия Java. Библиотека программиста. — СПб.: Питер, 2003
ПРИЛОЖЕНИЯ
Приложение 1
// реализация класса CircleClock
package clock;
* CircleClock.java
* Created on sen2013/
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.util.Calendar;
public class CircleClock extends java.applet.Applet implements Runnable {
private static final long serialVersionUID = 1L;
private Needle hNeedle, mNeedle, sNeedle;
private ClockDial dial;
private int w, h;
private BufferedImage bi;
private Graphics2D big;
private boolean stop = false;
private Thread timer = null;
private Color dialColor = Color.YELLOW;
private Color hairLineColor = Color.GREEN;
private Color hoursColor = Color.BLACK;
private Color minutesColor = Color.BLUE;
private Color secondsColor = Color.RED;
/** Этот метод будет вызван после загрузки апплета */
public void init() {
try {
ПРИЛОЖЕНИЕ 1 (продолжение)
//Создаем объекты и устанавливаем начальные значения.
Dimension dim = getSize();
w = dim.width;
h = dim.height;
//устанавливаем цвета стрелок и циферблата
setColors();
//Создаем стрелки
int radius = 0;
if(w < h)
radius = w/2;
else
radius = h/2;
mNeedle = new Needle(radius, radius/5); //минутная стрелка
hNeedle = new Needle(2d/3d*radius, radius/4); //часовая стрелка
sNeedle = new Needle(radius, radius/10); //секундная стрелка
//создаем циферблат
dial = new ClockDial(radius*2, dialColor, hairLineColor);
//Создаем изображение и получаем его объект Graphics2D.
//Рисовать будем только на нем, а экран выводим уже
//готовый рисунок (т.н. двойная буферезация).
bi = (BufferedImage)createImage(w, h);
big = bi.createGraphics();
big.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
//Создаем поток, который будет периодически вызывать метод update.
timer = new Thread(this);
timer.start(); }
catch(Exception error) {
System.out.println(error.getMessage());
ПРИЛОЖЕНИЕ 1 (продолжение)
/** Этот метод выполняет перерисовку окна апплета */
public void update(Graphics g) {
try {
//Получаем указатель на объект Graphics2D
Graphics2D g2 = (Graphics2D)g;
grawClock();
//Рисуем готовое изображение на экране
g2.drawImage(bi, 0, 0, this);
big.setTransform(new AffineTransform());
catch(Exception error) {
System.out.println(error.getMessage());
private void grawClock() {
//Узнаем текущее время
Calendar curTime = Calendar.getInstance();
curTime.setTimeInMillis(System.currentTimeMillis());
double hour = curTime.get(Calendar.HOUR_OF_DAY);
double min = curTime.get(Calendar.MINUTE);
double sec = curTime.get(Calendar.SECOND);
//Очищаем рисунок
big.setBackground(Color.WHITE);
big.clearRect(0, 0, w, h);
//Рисуем циферблат
Point luCorner = new Point(0, 0);
if(w > h)
ПРИЛОЖЕНИЕ 1 (продолжение)
luCorner.x = (w — h)/2;
luCorner.y = 0;
else
luCorner.x = 0;
luCorner.y = (h — w)/2;
big.drawImage(dial.getClockDial(), null, luCorner.x, luCorner.y);
//Рисуем стрелки
big.setColor(hoursColor);
AffineTransform hat = new AffineTransform();
hat.translate(w/2 — hNeedle.getRotationCenter().x,
h/2 — hNeedle.getRotationCenter().y);
/*Рассчитываем угол поворота часовой стелки. Каждый час на
12-ти часовом циферблате соответствует 30-ти градусам, а 1
минута — 0.5 градуса. Затем результат переводим в радианы. */
if(hour >= 12)
hour -= 12;
double theta = (-90 + (30*hour + 0.5*min))*Math.PI/180;
hat.rotate(theta, hNeedle.getRotationCenter().x,
hNeedle.getRotationCenter().y);
big.setTransform(hat);
big.fill(hNeedle.getNeedle());
big.setColor(minutesColor);
AffineTransform mat = new AffineTransform();
mat.translate(w/2 — mNeedle.getRotationCenter().x,
h/2 — mNeedle.getRotationCenter().y);
ПРИЛОЖЕНИЕ 1 (продолжение)
/*Рассчитываем угол поворота минутной стелки. Каждая минута на
12-ти часовом циферблате соответствует 6-ти градусам, а 1
секунда — 0.1 градуса. Затем результат переводим в радианы. */
theta = (-90 + (6*min + 0.1*sec))*Math.PI/180;
mat.rotate(theta, mNeedle.getRotationCenter().x,
mNeedle.getRotationCenter().y);
big.setTransform(mat);
big.fill(mNeedle.getNeedle());
big.setColor(secondsColor);
AffineTransform sat = new AffineTransform();
sat.translate(w/2 — sNeedle.getRotationCenter().x,
h/2 — sNeedle.getRotationCenter().y);
/*Рассчитываем угол поворота сеундной стелки. Каждая секунда на
12-ти часовом циферблате соответствует 6-ти градусам.
Затем результат переводим в радианы. */
theta = (-90 + (6*sec))*Math.PI/180;
sat.rotate(theta, sNeedle.getRotationCenter().x,
sNeedle.getRotationCenter().y);
big.setTransform(sat);
big.fill(sNeedle.getNeedle()); }
//Этот метод читает параметры апплета, и устанавливает
//цвета стрелок и циферблата.
private void setColors() {
try {
/* Вообще-то, для задания цвета нужно число типа int, т.е. 4 байта,
но int — это число со знаком (от «-2^31» до «2:31 — 1»), а нам
нужно число с диапазоном от «0» до «2^32», т.е. те же 4 байта,
но без знака. Для этого мы сначала создаем число типа Long, а
затем, с помощью метода intValue() получаем тип int. */
ПРИЛОЖЕНИЕ 1 (продолжение)
Long dc = new Long(Long.parseLong(getParameter(«dialColor»), 16));
Long hlc = new Long(Long.parseLong(getParameter(«hairLineColor»), 16));
Long hnc = new Long(Long.parseLong(getParameter(«hoursNeedleColor»), 16));
Long mnc = new Long(Long.parseLong (getParameter («minutesNeedleColor»), 16));
Long snc = new Long(Long.parseLong(getParameter («secondsNeedleColor»), 16));
dialColor = new Color(dc.intValue(), true);
hairLineColor = new Color(hlc.intValue(), true);
hoursColor = new Color(hnc.intValue(), true);
minutesColor = new Color(mnc.intValue(), true);
secondsColor = new Color(snc.intValue(), true);
catch(Exception error) {
System.out.println(error.getMessage());
//Этот метод выполняется в отдельном потоке (timer).
//Он вызывает перерисовку окна апплета каждую секунду.
public void run() {
while(!stop) {
try {
repaint();
Thread.currentThread().sleep(1000);
catch(Exception err) {}
//Этот метод выполняется если пользователь покинул страницу
//с апплетом. Он останавливает поток (timer) и, соответственно,
//перерисовку окна апплета.
public void stop() {
super.stop();
stop = true;
//Этот метод выполняется когда пользователь попадает на страницу
//с апплетом. Он запускает парралельный поток (timer).
public void start() {
super.start();
stop = false;
if(timer == null) {
timer = new Thread(this);
timer.start();
//Этот метод выполняется при закрытии страницы с апплетом.
public void destroy() {
super.destroy();
stop = true;
//Ждем пока парралельный поток (timer) завершит работу.
Thread.currentThread().yield();
public String[][] getParameterInfo() {
String[][] retValue = {
{«dialColor», «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)»},
{«hairLineColor», «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)»},
{«hoursNeedleColor», «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)»},
{«minutesNeedleColor», «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)»},
{«secondsNeedleColor», «hex», «alfa, red, green, blue (4 bytes, from 00 to FF)»}
return retValue;
public String getAppletInfo() {
String retValue;
retValue = «Circle Clock»;
return retValue;
// реализация класса ClockDial
package clock;
* ClockDial.java
* Created on май 2009 г.
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
* @author Бочкарева Мария
public class ClockDial {
private double diam;
private BufferedImage dial;
private Color dialColor;
private Color hairLineColor;
/** Создает экземпляры <code>ClockDial</code>. При создании
* необходимо указать диаметр циферблата.
* @param diam диаметр циферблата.
* @param dialColor цвет циферблата.
* @param hairLineColor цвет черточек на циферблате.
* @exception IncorrectParametersException — если диаметр меньше
* или равен нулю.
public ClockDial(double diam, Color dialColor, Color hairLineColor)
throws IncorrectParametersException {
//проверяем диаметр
if(diam <= 0)
throw new IncorrectParametersException();
this.diam = diam;
this.dialColor = dialColor;
this.hairLineColor = hairLineColor;
//создаем рисунок
dial = new BufferedImage((int)diam, (int)diam,
BufferedImage.TYPE_INT_ARGB);
//создаем черточку на циферблате
Rectangle2D.Double r = new Rectangle2D.Double(-diam/40, -diam/60, diam/20, diam/30);
AffineTransform at = new AffineTransform();
//смещаем начало координат в центр циферблата
at.translate(diam/2, diam/2);
//сохраняем текущее преобразование
AffineTransform prev = (AffineTransform)at.clone();
//получаем графический контекст
Graphics2D g2 = dial.createGraphics();
//закрашиваем все заданным цветом
g2.setBackground(dialColor);
g2.clearRect(0, 0, (int)diam, (int)diam);
//устанавливаем цвет черточек
g2.setColor(hairLineColor);
//рисуем 12 штрихов
for(int i = 0; i < 12; i++)
//смещаем центр координат к краю циферблата (туда,
//где должен быть расположен штрих)
at.translate(-(diam/2 — r.width), 0);
//поворачиваем штрих относительно центра циферблата
at.rotate(Math.toRadians(30*i), diam/2 — r.width, 0);
//устанавливаем текущее преобразование
g2.setTransform(at);
//рисуем штрих
g2.fill(r);
//восстанавливаем начальное преобразование
at.setTransform(prev);
* Возвращает изображение циферблата.
* @return BufferedImage рисунок, содержащий изображение циферблата
public BufferedImage getClockDial() {
return dial;
// реализация класса IncorrectParametersException
package clock;
* IncorrectParameters.java
* Created on май 2009 г.
* */
* @author Бочкарева Мария
public class IncorrectParametersException extends java.lang.Exception {
private static final long serialVersionUID = 1L;
* Creates a new instance of <code>IncorrectParameters</code> without detail message.
public IncorrectParametersException() {
this(«IncorrectParameters»);
* Constructs an instance of <code>IncorrectParameters</code> with the specified detail message.
* @param msg the detail message.
public IncorrectParametersException(String msg) {
super(msg);
// реализация класса Needle
package clock;
* Needle.java
* Created on май 2009 г.
import java.awt.*;
import java.awt.geom.*;
* Этот класс предназначен для создания стрелки часов
* @author Бочкарева Мария
public class Needle {
private GeneralPath shape;
private double length, width;
/** Создает экземпляры класса <code>Needle</code>.
* При создании необходимо указать длину и ширину стрелки.
* Длина должна быть больше ширины.
* @param length длина стрелки
* @param width длина стрелки
* @exception IncorrectParametersException — если длина меньше или
* равна нулю, если ширина меньше или равна нулю, если длина
* меньше или равна ширине.
public Needle(double length, double width)
throws IncorrectParametersException {
//проверяем параметры
if(length <= 0 || width <=0 || length <= width)
throw new IncorrectParametersException();
this.length = length;
this.width = width;
//создаем графический объект
shape = new GeneralPath();
shape.moveTo(0f, (float)width/2);
shape.lineTo((float)width/2, 0);
shape.lineTo((float)length, (float)width/2);
shape.lineTo((float)width/2, (float)width);
shape.closePath();
* Возвращает стрелку в виде объекта типа <code>Shape</code>.
* @return Shape — фигура, содержащая изображение стрелки
public Shape getNeedle() {
return shape;
} /**
Размещено на