Скачать 0.64 Mb.
|
АннотацияПрограммный продукт, разработанный в рамках данной дипломной работы, предназначен для разработки сайтов с динамическим контентом высокой посещаемостью и большим трафиком. В аналитической части разобрана основная проблематика области и рассмотрены аналогичные программы. В исследовательской части проведен анализ основных методов написания сайтов и обоснован выбор комбинированнной модели — MVC и компонентного подхода. В конструкторской части представлена архитектура программной системы, а также дано обоснование выбора инструментальных средств. В технико-экономической части дипломной работы приведены экономическое обоснование разработки программной системы и расчет экономических показателей внедрения. В организационной части приводятся рекомендации по охране труда и технике безопасности вычислительного центра, а также выполнены специальные расчеты по обеспечению безопасности жизнедеятельности: заземления и устойчивости при взрыве. Содержание1. Аналитическая часть 5 Введение 5 1.1. Описание предметной области 6 1.2. Обзор программных систем аналогичного направления 7 1.3. Постановка задачи 10 2. Исследовательская часть 12 2.1. Общие принципы 12 2.2. Различные подходы к написанию кода 13 2.2.1. «Безархитектурный» подход 13 2.2.2. Отсутствие разделения логики и оформления 14 2.2.3. Главный код 14 2.2.4. Компонентный подход 15 2.2.5. Архитектура MVC 18 2.3. Анализ недостатков методов, дополнительные возможности 19 3. Конструкторская часть 21 3.1. Архитектура программной системы 21 3.1.1. Класс QuickFW_Router 23 3.1.2. Класс QuickFW_Rewrite 24 3.1.3. Класс QuickFW_Module 25 3.1.4. Класс QuickFW_AutoDbSimple 25 3.1.5. Класс QuickFW_Plugs 26 3.1.6. Класс QuickFW_PlainView 26 3.1.7. Класс QuickFW_Smarty 26 3.1.8. Класс QuickFW_Auth 26 3.2. Обоснование выбора языка и среды разработки 28 4. Техническая документация 32 4.1. Техническое задание 32 Введение 32 4.1.1. Основание для разработки 32 4.1.2. Назначение разработки 32 4.1.3. Требования к программному изделию 33 4.1.4. Требования к серверному ПО для запуска фреймворка 33 4.1.5. Требования к программной документации. 33 4.2. Руководство программиста 34 5. Экспериментальная часть 35 5.1. Проверка программы в штатных условиях 35 5.2. Проверка программы в экстремальных условиях 35 5.3. Проверка программы в исключительных ситуациях 35 5.4. Оценка работоспособности программы 36 6. Безопасность и экологичность проекта 37 6.1. Специфика организации работы с проектируемой системой 37 6.1.1. Электробезопасность 38 6.1.2. Требования к помещению 40 6.1.3. Микроклимат помещения 41 6.2. Устойчивость системы в чрезвычайных ситуациях 43 6.2.1. Пожарная безопасность 43 6.2.2. Чрезвычайные ситуации техногенного характера 45 6.2.3. Инженерно-технические мероприятия по защите зданий в чрезвычайных ситуациях 46 6.3. Промышленная экология 46 6.4. Выполнение расчетной разработки вопросов БЖД 46 6.4.1. Расчет защитного заземления 47 6.4.2. Оценка устойчивости объекта к воздействию ударной волны 49 7. экономическая часть 50 7.1. Обоснование необходимости разработки 50 7.2. Организация работ по теме 52 7.3. Расчет планируемого времени на создание продукта 53 7.4. Оценка реального времени, необходимого для разработки 57 7.5. Расчет затрат на разработку программы 58 7.5.1. Расчет заработной платы исполнителя работ по созданию программного продукта 58 7.5.2. Расчет начислений на заработную плату 59 7.6. Расчет расходов на содержание и эксплуатацию ЭВМ 60 7.6.1. Расчет себестоимости одного машино-часа работы ЭВМ 60 7.6.2. Расчет расходов на содержание и эксплуатацию ЭВМ, относящихся к данному программному продукту 63 7.7. Расчет себестоимости программного продукта 63 7.8. Расчет цены программного продукта 64 Заключение 66 Список использованной литературы 67 Приложение 69 Создание современного web-сайта (приложения) представляет собой довольно трудоемкую задачу. Когда вы читаете книгу или руководство, то все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных, полученных из формы. Мы должны:
Сегодня для создания web-сайта (приложения) существует три основных подхода (или их комбинации). ^ Этот вариант самый трудоемкий, но при этом обладает наибольшей гибкостью. Вы можете реализовать практически любой функционал и при этом обеспечить максимальную производительность. Правда есть один нюанс. Хороший продукт вы получите только после тестирования и оптимизации приложения, а это совсем не такой простой процесс, как кажется на первый взгляд. ^ На сегодняшний день практически для всех широко распространенных типов сайтов существуют готовые движки. Например, Wordpress, Joomla, PHPbb и многие другие. Тут можно вообще обойтись без программирования, т.к. эти решения представляют собой готовые сайты (блоги, порталы, форумы и т.п.) вы только создаете контент. Отсюда и название CMS (content management system) – системы управления контентом. Если стандартной функциональности не хватает, то можно написать плагин (или найти готовый). В принципе многие такие системы обеспечивают неплохую производительность, но только в тех задачах, для которых они изначально проектировались. Т.е. вы сможете добавить нужные вам функции, но при этом производительность (потребление ресурсов) может быть значительно хуже, чем в первом варианте. ^ Фрэймворк — каркас программной системы — набор ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. В принципе, фрэймворк можно считать дополнительной библиотекой. Но есть существенное отличие. Библиотеку вы используете для расширения функциональности приложения. А фрэймворк кроме того определяет архитектуру (взаимосвязи между компонентами) приложения. Если использовать аналогии со строительством дома, то библиотеками можно считать кирпичи, оконные и дверные блоки, а фрэймворком – фундамент и несущие стены (знаю, сравнение довольно грубое, но суть отражает). В принципе, использование фрэймворка это что-то среднее между первым и вторым вариантом. С одной стороны свобода ваших действий будет ограничена по сравнению с первым вариантом, но эти ограничения незначительные по сравнению с готовыми решениями. ^ Для начала объясним что представляет собой разрабатываемая система и как ее предполагается использовать. Для разработки можно использовать стандартные средства PHP, которые конечно дают большую скорость — все обертки замедляют время работы, но написание крупных сайтов без библиотек довольно сложно. Также существуют CMS — системы управления контентом сайта, и позволяющие сделать сайт не написав ни строчки PHP кода, но такой сайт предназначен под строго определенную задачу и расширить его функциональность обычно довольно сложно. Фреймворк (Framework) — термин, имеющий размытое значение. Обычно используется в программировании, обозначая "простую концептуальную структуру, используемую для решения сложной, проблемной задачи". Значение этого термина существенно зависит от контекста его использования [0]. Для Web программирования под фреймворком подразумевается CMF. Content Management Framework (CMF) — каркасная система для управления содержимым. CMF — это инструментарий для создания систем управления содержимым, а также Web-приложений вообще. Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF, но обычно их функционал сильно ограничен [0]. Сегодня «фреймворк» одно из популярнейших слов в веб-программировании. Для JavaScript разработаны фреймворки Yahoo User Interface library, jQuery и Prototype, для веб приложений Rails и Django и еще множество других. Также эта концепция используется в веб-дизайне — CSS фреймворки. Фреймворк нецелесообразно использовать на статических сайтах, потому что скорость отдачи статических страниц гораздо выше, чем при использовании PHP. Если существует CMS, на которой можно реализовать весь функционал сайта, то также целесообразнее использовать ее. Применение фреймворка оправдано в случае динамических сайтов с нестандартной функциональностью. К таким относятся все крупные проекты. Фреймворк — набор инструментов, библиотек и соглашений предназначенный для вынесения рутинных задач в отдельные модули, которые можно использовать многократно. Главная цель фреймворка, позволить программисту сфокусироваться на задачах уникальных для каждого проекта, вместо неоднократного изобретения колеса. ^ В процессе исследовании предметной области были рассмотрены наиболее популярные фреймворки. Подобные программные системы предназначены для той-же цели что и разрабатываемый проект, но каждая обладает определенными особенностями, заложенными на этипе проектирования. Сначала рассмотрим фреймворки, написанные на языках программирования, отличных от PHP, у них есть определенные достоинства и недостатки, но также у них есть один большой недостаток — сложно найти хостинг для сайта с необходимыми функциями. Рассмотрим фреймворки Django, написанный на Python, Ruby on Rails, и также обратим некоторое внимание на жалкие попытки MS пробиться на рынок Web серверов :) и рассмотрим ASP.NET. ![]() ![]() ![]() .NET фреймворк имеет сложную структуру классов, и написать на нем что-то без частого поиска в документации вначале достаточно сложно, фреймворк очень негибкий — если необходимо использовать решение отличное от предложенного MS возникают многочисленные трудности, также используемые компоненты генерируют довольно плохой html код, который в частности плохо совместим со стандартами, имеет большой размер и вызывает большой трафик при работе с динамическими элементами страницы. По сути ASP.NET переносит идеологию Delphi в Web программирование, но это неоправданно из-за клиенто-серверной архитектуры. Общий недостаток всех фреймворков, написанных не на PHP — для них сложно найти хостинг, и даже в случае если хостинг есть — их выбор невелик. Теперь рассмотрим фреймворки на PHP. ![]() Основным недостатком этого фреймворка является большая сложность обьектных и классовых связей, правда проще чем в .NET, что сильно усложняет его использование и особенно увеличивает крутизну кривой освоения. Также это самый большой по объему кода фреймворк, что негативно сказывается на его скорости. ![]() Недостатками данного фреймворка является то, что невозможно загрузить одновременно два контроллера, а также что архитектура вынуждает смешивать контроллеры и модели. ![]() CakePHP позволяет реализовать подобие модулей для включения его в вид, например блок новостей на странице, однако он каждый раз порождает полный цикл разбора адреса и формирования объектной структуры, что в сочетании с тяжеловесной ORM-моделью обработки данных приводит к катастрофическому падению производительности на реальных проектах. Все выше перечисленные фреймворки обладают своими достоинствами и недостатками, но ни одну из них невозможно использовать при разработке высоконагруженных сайтов из-за их скорости работы. ^ В данной работе должна быть реализована специализированная инструментальная система для разработки web-сайтов ориентированных на взаимодействие с распределенными базами данных. Основной задачей данной среды является упрощение и ускорение разработки сайтов за счет реализации высокой модульности и наличия в среде готовых типовых компонентов. Среда должна обеспечивать формирование и разбор адресов запросов, вызывать соответствующие запросам функции, содержать в себе типовые библиотеки и так-же иметь возможность быстрого расширения функционала. Принятие решения о разработке среды и не использования уже существующих на рынке программных продуктов, обусловлено наличием у большинства имеющихся сред определённых особенностей, не подходящих для создания требуемых сайтов. ^ В этой части дипломной работы рассмотрены архитектуры построения web-приложения. В настоящее время разработка web-приложений переходит на промышленный уровень. Разработка web-приложений становиться не разовой работой, но постоянным процессом, требующим применения шаблонов проектирования и написания не уникальных в своем роде, а модульных, легко расширяемых и модифицируемых приложений, позволяющих вести процесс разработки различных систем по единой схеме. К сожалению, в связи с особенностями web-приложений (такими как сеансовая работа с пользователем, построенная по схеме вопрос-ответ и отсутствие сохранения состояния между запросами пользователя) большинство шаблонов применяемых при проектировании и реализации прикладных программ не возможно использовать адекватно. ^ Современные средства шаблонизации, такие как Smarty [0], являющийся стандартом де-факто при разработке на PHP, позволяют организовать вызовы функций языка из шаблона во время его обработки. Т.е. необходимость вызова может определяться уже на самой последней стадии в обычном процессе, при формировании вывода на запрос пользователя. Если организовать менеджер модулей, который сможет, основываясь на параметрах такого вызова, организовать подгрузку и выполнение нужного модуля-информера мы сможем свести излишнюю нагрузку на web-сервер и дублирование кода к минимуму. Также это позволяет добавлять и изменять функциональность web-страницы не прибегая к помощи программиста, исключительно с помощью редактирования шаблонов. Так как шаблоны могут иметь сколь угодно сложную иерархическую структуру, то мы получаем в свои руки одновременно достаточно простой и мощный инструмент для модификации web-приложения. Для борьбы с инициализацией необязательных возможностей имеет смысл также сделать эти части выносными модулями, подключающимися по мере надобности. Некоторые из них имеет смысл спроектировать как синглтоны (singleton), для исключения возможности инициализации второй копии. А для их инициализации организовать отдельный диспетчер инструментов. 2.2.Различные подходы к написанию кодаРассмотрим различные подходы к написанию кода web-приложений 2.2.1.«Безархитектурный» подходСкрипты этого вида выглядят примерно так, как описано ниже. echo "\n"; echo " Последние новости:";$file=file_get_content('news.txt'); foreach($file as $k=>$v) { echo ' echo " |
![]() | Для работы агентских компонентов системы необходим следующий состав аппаратных средств | ![]() | Областью применения программного средства Socia являются образовательные порталы, в которых отсутствуют элементы социальных сетей.... |
![]() | В данном документе будет подробно описан способ установки программного продукта на компьютере конечного пользователя | ![]() | Данный раздел состоит из двух частей. Первая часть — аттестации рабочего места программиста. Вторая часть — рассмотрение альтернативных... |
![]() | Состав технических и программных средств для запуска программы описан в приложении б «Руководство системного программиста» в разделе... | ![]() | Данное руководство является кратким справочным описанием для кассира-оператора по работе в конфигурации "Торговля и склад. Ред. 2"... |
![]() | Чтобы Вы как можно быстрее овладели всеми его возможностями, мы подготовили полное справочное руководство, знакомящее с режимами... | ![]() | |
![]() | Данное руководство может распространяться только согласно условиям, изложенным в лицензии Open Publication License, версии 0 или... | ![]() | Добро пожаловать в Freebsd! Это Руководство охватывает процесс установки и ежедневного использования |