Файл: «Разработка проекта информационной системы обработки заказа клиента в интернет-фирме, включая обработку заказа и проверку, и обработку оплаты».pdf
Добавлен: 25.05.2023
Просмотров: 597
Скачиваний: 4
СОДЕРЖАНИЕ
1 Системный анализ предметной области
2 Концептуальное проектирование БД
2.2 Структура проектируемой системы
2.3 SADT-диаграмма разработки ИПО автоматизации обслуживания клиентов
2.5 Виды обеспечения для разрабатываемой системы
2.6 Эталонная система моделирования ИПО автоматизации обслуживания клиентов
2.7 Схема шагов по проектированию САПР
3 Логическое проектирование БД
3.1 Описание инфологической модели
3.3 Разработка даталогической модели
4 Физическое проектирование БД
5 Диаграмма вариантов использования (прецедентов, use-case)
6 Диаграммы последовательности
7 Диаграммы деятельности (активности)
9 Диаграммы кооперации, состояний
10 Количественное обоснование выбора СУБД и языка программирования
10.3 Выбор языков программирования
11 Разработка интернет-магазина
11.1 Технологии разработки Интернет-ресурсов
11.2 Взаимодействие между модулями программных средств
11.4 Проектирование баз данных
11.6 Практическая реализация Интернет-ресурса ООО «КИБЕРКОМ»
11.6.1 Этапы создания Интернет-ресурса
11.6.2 Проверка работоспособности сайта в различных браузерах
Интерфейсы для языков С, C++, Eiffel, Java, Perl, РНР, Python и Tel.
Работает на многих различных платформах.
5) Много типов полей: целые со знаком или без него длиной 1, 2, 3, 4 и 8 байт, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET и ENUM.
6) Очень быстрые объединения, использующие оптимизированное однопроходное объединение многих таблиц.
7) Полная поддержка операторов и функций в частях запроса SELECT и WHERE.
Например: mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl name WHERE income/dependents > 10000 AND age > 30.
8) SQL-функции выполнены через хорошо оптимизированную библиотеку классов и должны выполняться с высокой скоростью. Обычно не имеется никакого распределения памяти вообще после инициализации запроса.
9) Полная поддержка предложений SQL GROUP BY и ORDER BY. Поддержка групповых функций (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() и MIN()).
10) Поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN с синтаксисами ANSI SQL и ODBC.
11) Можно смешивать таблицы из разных баз данных в одном запросе.
12) Привилегии и система паролей, которая является очень гибкой и безопасной, и позволяет проверку, основанную на имени хоста. Пароли безопасны потому, что вся передача пароля шифрована, когда Вы соединяетесь с сервером.
13) ODBC (Open-DataBase-Connectivity) поддерживается для Win32 (с исходниками). Все функции ODBC 2.5 и многие другие реализованы. Например, можно использовать MS Access для связи с сервером MySQL.
14) Очень быстрые дисковые таблицы B-tree с индексным сжатием.
15) Можно иметь до 32 индексов на таблицу. Каждый индекс может состоять от 1 до 16 столбцов или частей столбцов. Максимальная индексная длина 500 байт (это может быть изменено при компиляции MySQL). Индекс может использовать префикс поля CHAR или VARCHAR.
16) Записи фиксированной и переменной длины.
17) Таблицы в памяти, которые используются как временные таблицы.
18) Поддержка поистине огромных объемов данных. Известен случай использования MySQL на 60000 таблиц, хранящих около 5000000000 строк.
19) Все столбцы имеют значения по умолчанию. Вы можете использовать вызов INSERT, чтобы вставить подмножество столбцов таблицы. Те столбцы, которым явно не заданы значения, будут автоматически установлены к их значениям по умолчанию;
20) Для переносимости использованы GNU Automake, Autoconf и Libtool.
21) Пакет написан на С и C++. Оттестирован на всех распространенных компиляторах этих языков.
22) Очень быстрая поточно-безопасная система управления памятью.
23) Никаких утечек памяти. MySQL тестировался с помощью Purify, коммерческого детектора утечек памяти.
24) Есть myisamchk, очень быстрая утилита для проверки таблицы, оптимизации и ремонта. Все функциональные возможности myisamchk также доступны через интерфейс SQL.
25) Полная поддержка для нескольких различных наборов символов, включая ISO-8859-1 (Latin 1), german, big5, ujis и много других.
26) Все данные сохранены в выбранном наборе символов. Все сравнения для нормальных столбцов нечувствительны к регистру.
27) Сортировка выполнена согласно выбранному набору символов (шведскй по умолчанию). Возможно изменить это, когда сервер .MySQL работает. MySQL поддерживает много различных наборов символов, которые могут быть определены при компиляции или во время выполнения.
28) Псевдонимы на таблицах и именах столбцов доступны как в стандарте SQL92.
29) DELETE, INSERT, REPLACE и UPDATE возвращают число строк, которые были изменены (обработаны). Можно взамен вернуть число согласованных строк, устанавливая флажок при соединении с сервером.
30) Имена функции не сталкиваются с именами столбцов или таблиц. Например, ABS представляет собой имеющее силу имя столбца. Единственное ограничение: для обращения к функции никакие пробелы не позволяются между именем функции и символом скобки ('('), который следует за ним.
31) Все программы пакета MySQL понимают параметры командной строки —help или -? для выдачи справки о параметрах запуска конкретной программы.
32) Клиенты могут соединяться с сервером MySQL, используя все мыслимые способы, допустимые в сегодняшних сетях: сокеты TCP/IP, сокеты Unix (под Unix) или даже именованные каналы (под NT).
33) MySQL-специфичная команда SHOW может использоваться, чтобы получить информацию относительно баз данных, таблиц и индексов. Команда EXPLAIN может использоваться, чтобы определить, как именно оптимизатор решает запрос.
34) MySQL очень надежен. Благодаря перечисленным достоинствам и самое главное, тому, что пакет бесплатный, выбор в работе был сделан в его пользу. Использовался продукт с номером версии 4.1.8 [11].
10.3 Выбор языков программирования
Программное обеспечение, необходимое для реализации взаимодействия между сервером баз данных и Web-сервером, и реализации дополнительных модулей.
Основными инструментами разработчика являются технологии JSP (Java Server Pages), ASP(Active Server Pages), язык программирования Perl, межплатформенный язык сценариев РНР. JSP - достаточно сложный в изучении и использовании язык. ASP основан на синтаксисе VB Script. Он имеет несколько десятков встроенных функций, использует вследствие этого COM-объекты; помимо этого, он ориентирован исключительно на работу под ОС Windows. Язык программирования Perl предоставляет массу возможностей для разработчика, но при этом сложен в работе с использованием баз данных.
РНР доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие, как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многих других. Также в РНР включена поддержка большинства современных вебсерверов, таких, как Apache, Microsoft Internet Information Server, Personal Web Server, серверов Netscape и iPlanet, сервера Oreilly Website Pro, Caudium, Xitami, OmniHTTPd и многих других. Для большинства серверов РНР поставляется в качестве модуля, для других, поддерживающих стандарт CGI, РНР может функционировать в
качестве процессора CGI.
Таким образом, выбирая РНР, мы получаем свободу выбора операционной системы и вебсервера. Кроме того, у нас появляется выбор между использованием процедурного или объектно-ориентированного программирования или же их сочетания. Несмотря на то, что текущая версия РНР поддерживает не все особенности ООП, многие библиотеки кода и большие приложения написаны только с использованием ООП
РНР способен не только выдавать HTML. Возможности РНР включают формирование изображений, файлов PDF и даже роликов Flash (с использованием libswf и Ming), создаваемых "на лету". РНР также способен выдавать любые текстовые данные, такие, как XHTML и другие XML-файлы. РНР способен осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе вашего сервера вместо того, чтобы отдавать клиенту, организуя, таким образом, кэш динамического содержания, расположенный на стороне сервера.
В РНР включена поддержка DBX для работы на абстрактном уровне, так что вы можете работать с любой базой данных, использующих DBX. Кроме того, РНР поддерживает ODBC (Open Database Connection standard), таким образом, вы можете работать с любой базой данных, поддерживающей этот всемирно признанный стандарт [12].
Одним из значительных преимуществ РНР является поддержка широкого круга баз данных. Создание скрипта, использующего базы данных, - невероятно просто. В настоящее время РНР поддерживает следующие базы данных, представленные в таблице 10.1.
РНР также поддерживает "общение" с другими сервисами с использованием таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих других.
Кроме того, существует возможность работать с сетевыми сокетами "напрямую". РНР поддерживает стандарт обмена сложными структурами данных WDDX.
Обращая внимание на взаимодействие между различными языками, следует упомянуть о поддержке объектов Java и возможности их использования в качестве объектов РНР. Для доступа к удаленным объектам вы можете использовать расширение CORBA.
Таблица 10.1 СУБД, поддерживаемые РНР
|
Adabas D |
Ingres |
Oracle (OCI7 и OCI8) |
|
dBase |
InterBase |
Ovrimos |
|
Empress |
FrontBase |
PostgreSQL |
|
FilePro (только чтение) |
mSQL |
Solid |
|
Hyperwave |
Direct MS-SQL |
Sybase |
|
IBM DB2 |
MySQL |
Velocis |
Язык РНР, в отличии от других подобных интерпретаторов имеет очень много функций для работы с наиболее популярными SQL-серверами. Помимо всего прочего этот язык свободно распространяемый (бесплатный). Выбор в работе пал именно на этот инструмент версии РНР-4.4.0.
Дополнительные инструментальные средства
Как известно, РНР изначально был языком, встраиваемым в HTML. Таким образом, скрипты, написанные на РНР, содержали в себе смесь РНР-кода и HTML. Это было удобно, когда речь шла о небольших проектах, в которых интерпретатор занимался тем, что подставлял в страницу общие для всего сайта «куски html» и подставлял некоторые переменные (например, текущую дату или значение, пришедшее из формы). Со временем проекты стали расти.
Практически во всех проектах стали использоваться базы данных, иногда с довольно сложной структурой. Используемые конструкции все усложнялись и усложнялись. Со временем скрипты превращались в смесь из управляющих конструкций РНР-скриптов и HTML. Смена дизайна в таких проектах была равносильна переписыванию всего проекта заново.
Как известно, над проектом обычно работают программист и дизайнер. На дизайнере лежит ответственность за HTML (в данном случае подразумевается технический дизайнер), а на программисте — за все остальное. В случае совмещения РНР-скриптов и кода HTML дизайнер должен, по крайней мере, уметь читать скрипты, чтобы не навредить им, а программист должен уметь легко отсеивать из получившихся файлов HTML.
Решение вышеозначенной задачи нашлось в области Объектно Ориентированного Проектирования, а именно в схеме Model/View/Controller (МVС). MVC предлагает разделять логику модели (Model), логику представления (View) и бизнес-логику (Controller). В нашем случае, то есть в веб-проектах, в большинстве случаев мы уже имеем отделенную логику модели базу данных. Как известно, СУБД имеют собственные методы поддержки баз данных, что позволяет вынести из скриптов логику модели. Теперь остается решить, как отделить бизнес логику от логики представления. Выражение «логика представления» очень хорошо сочетается с выражением «markup language» (язык разметки). Остался третий компонент — controller, то есть то, что всем управляет. На эту роль очень хорошо подходит РНР.
10.4 Реализация MVC в WEB
Итак, мы имеем три компонента, давайте посмотрим, как все это должно работать. При поступлении запроса начинает работать РНР-скрипт (Controller). Исходя из полученных параметров, он запрашивает данные у базы данных (Model), затем выбирает шаблон (View).
Взаимодействие компонентов MVC представлено на рисунке 10.2.
Рисунок 10.1 – Классическая схема MVC
11 Разработка интернет-магазина
11.1 Технологии разработки Интернет-ресурсов
Технологии разработки Интернет-ресурсов основаны на двух подходах.
Первый подход подразумевает статическую верстку информации в гипертекст по стандартам.
После того как сайт создан и размещен в сети, возникает вопрос, на кого возложить обязанности по его поддержке. Не допускается набирать несколько специалистов для поддержки сайта. Однако необходимо, чтобы информация всегда была актуальная. В настоящее время актуальность информации имеет большое значение, тем более когда дело затрагивает работу с заинтересованными лицами. Так как конкуренция на рынке программного обеспечения жесткая, необходимо сохранять наработанные связи с клиентами и партнерами. Без предоставления актуальной информации о своей деятельности это сделать не удастся. Согласно такому подходу постоянное добавление информации, добавление новых разделов приведет к существенному расширению и изменению сайта. Работа с Html-страницами будет сложна и утомительна, и если информация, отображаемая на сайте, меняется довольно часто, то результат монотонной работы этих людей будет скорее всего неудовлетворительным, так как легко запутаться во вновь создаваемых страницах. Очень серьезная проблема - постоянное взаимосвязь ссылок на документы с самими документами. Очень много времени требуется на изменение информационного содержания страниц. Это и привело к появлению второго подхода.
Второй подход разработки сайтов - это создание динамических сайтов. При этом Html-страница формируется в результате работы какого-нибудь скрипта (программы, написанной на каком-либо языке программирования и выполняемой на Web-сервере). Страница формируется в соответствии с запросом клиента.