NANO Security

NANO Security - сплоченная команда молодых специалистов: программистов, аналитиков, тестировщиков, менеджеров. Предметная область, назначение разработки, требования к программному изделию, системы управления обучением. Обзор языков программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 22.07.2012

ВВЕДЕНИЕ

Современные информационные технологии сегодня достигли высокого уровня. Их применение в различных сферах деятельности позволяет значительно облегчить труд человека, автоматизировать многие процессы, выполняемые человеком, получать информацию, которая без автоматизации была не доступна.

Большинство из существующих систем учета успеваемости носят либо универсальный характер и не учитывают специфику работы конкретного учебного заведения, либо являются встроенными в общую систему управления конкретного учебного заведения.

1. ОПИСАНИЕ БАЗЫ ПРОХОЖДЕНИЯ ПРАКТИКИ

1.1 О компании NANO Security

NANO Security представляет собой динамично растущую сплоченную команду молодых специалистов. В настоящее время в компании работает более 20 специалистов: программисты, аналитики, тестировщики, менеджеры, административный персонал. Это дружный коллектив целеустремленных, ответственных, нацеленных на результат профессионалов.

Компания создана в 2009 году на базе коллектива единомышленников, работающих над созданием нового антивирусного решения с 2003 года.

Главной идеей проекта было предложить основанный на тщательно изученных предпочтениях пользователей программный продукт, выгодно отличающийся по ряду параметров от антивирусов других производителей.

Продуктом работы компании является NANO Антивирус, который обеспечивает надежную защиту компьютера от всех видов вирусов и троянских программ (бинарные, макро, скрипт), червей и прочего вредоносного программного обеспечения.

NANO Антивирус -- абсолютно новый проект, поэтому разработчики постарались максимально учесть требования пользователей к антивирусным программам. Основными из них являются:

· высокая скорость, эффективность и удобство работы;

· возможность выбирать функциональность программы;

· бесплатное распространение.

При создании антивирусного комплекса использовались перспективные разработки в области защиты. Это позволило создать продукт, работающий быстрее большинства аналогичных программ и обеспечивающий при этом высокую эффективность обнаружения любых видов вредоносного ПО.

Технологии глубокой эмуляции позволяют уверенно находить и лечить сложные шифрованные и полиморфные вирусы, не всегда надежно определяемые прочими решениями. Реализована мощная поддержка средств распаковки и работы с архивами, позволяющая выявлять вредоносные объекты, обработанные различными упаковщиками (архиваторами), тем самым обеспечивая защиту от повторных эпидемий, вызванных одними и теми же перепакованными объектами.

Механизм оптимизации использования ресурсов системы обеспечивает комфортную работу пользователя с другими приложениями в процессе антивирусной проверки. Удобно организован доступ к выполнению наиболее частых задач. Произведя минимальное количество действий, можно выполнить полную проверку компьютера, любого сменного носителя, запустить экспресс-проверку (т.е. проверку только потенциально опасных областей), обновить компоненты антивирусного комплекса.

Отличительной особенностью NANO Антивирус является возможность выбора максимально удобного интерфейса с требуемым набором функциональных возможностей.

NANO Security стремится к тому, чтобы продукт максимально соответствовал ожиданиям пользователей. Идет непрерывная работа над совершенствованием решения, добавляются новые функциональные возможности, пополняется вирусная база. Мы приветствуем любые пожелания и замечания по работе нашего антивирусного комплекса для того, чтобы сделать его лучше.

NANO Антивирус является сертифицированным партнером:

· OPSWAT Inc. -- мирового лидера в области разработки программных инструментов и сервисов для интеграции и управления решениями в сфере информационной безопасности.

· Microsoft BizSpark -- международная инновационная программа компании Майкрософт, направленная на поддержку начинающих компаний, разрабатывающих программное обеспечение и сервисы.

· Virus Bulletin -- независимый британский журнал, посвященный предотвращению, обнаружению и удалению вредоносного ПО и спама.

· www.brothersoft.com -- один из наиболее известных софт-порталов, размещающий программное обеспечение для загрузки.

2. ОПИСАНИЕ ПРОГРАММНОГО ПРОДУКТА

2.1 Обзор предметной области

Целью работы является разработка автоматизированной системы позволяющей автоматизировать процесс учета успеваемости студентов на различных типах занятий.

Этот процесс достаточно трудоемкий и отнимает значительное время преподавателя при проведении учебных занятий. Более сложным является подведение итогов, это важно для преподавателя при выставлении результирующей оценки по изучаемой дисциплине. Также учебным процессом предусматривается промежуточное оценивание успеваемости. Для автоматизации этих процессов целесообразно разработать программное обеспечение.

Сегодня процесс учета успеваемости сводится к использованию каждым преподавателем в отдельности, заранее подготовленных бланков, в которых, чаще всего, в табличном виде представлена условные обозначения показывающие успеваемость. Каждый преподаватель использует собственные системы и правила учета. Текущей информации об общей успеваемости конкретного студента в конкретный момент времени при таком подходе ни у кого нет.

Основным недостатком данной карточки является то, что каждый преподаватель вынужден каждый раз создавать для себя список учебной группы. Такая карточка готовится преподавателем для всех своих групп.

Отсутствие такой информации не позволяет на ранних этапах выявлять потенциальных задолжников или прогульщиков и принимать меры связанные с повышением учебной дисциплины.

2.2 Назначение разработки

Назначением разработки автоматизированной системы является предоставление программного обеспечения, имеющего средства мониторинга успеваемости студентов.

Программное средство реализует функции ручного составления графика учебного процесса реализующего конкретным преподавателем для конкретной дисциплины, создание общего списка групп, составления списка изучаемых дисциплин по каждой группе и ведение статистики успеваемости студентов.

2.3 Требования к программному изделию

Требования к функциональным характеристикам. Система должна выполнять функцию регистрации и идентификации преподавателя или студента. В зависимости от роли пользователя, можно выделить следующие функциональные требования:

· создание учетной записи преподавателя;

· добавление новых групп;

· создание списков групп;

· создание списка изучаемых дисциплин;

· создание перечней лабораторных, контрольных и курсовых работ;

· ведение статистики успеваемости и посещаемости;

· просмотр расписания других преподавателей без возможности внесения изменений;

· использование единой базы данных списков групп и студентов;

· формирование статистики успеваемости;

· просмотр успеваемости студентами;

· наличие возможности доступа к базе данных по сети.

Требования к надёжности. В программной системе необходимо предусмотреть защиту данных от случайного удаления и изменения. Только преподаватели, наделены соответствующими правами, которые зарегистрированы на сервере базы данных.

В целях надежности программного обеспечения она должна удовлетворять следующим требованиям:

· разработанная программа должна обладать средствами защиты от ошибочных действий пользователей;

· гарантировать сохранность данных при сбоях в работе внешних устройств;

· исключить возможность доступа к файлам конфигурации пользователям.

Для повышения надежности необходимо принять следующие меры:

· сконфигурировать аппаратные и программные средства в соответствии с техническими требованиями;

· периодически осуществлять резервное копирование информации;

· регулярно проверять целостность базы данных;

· поддерживать исправность сетевого оборудования.

Требования к составу и параметрам технических средств. Минимальная аппаратная конфигурация системы, обеспечивающей нормальное функционирование программного обеспечения должна быть не ниже следующей:

· процессор 900 МГц и выше;

· оперативная память 256 Мбайт и выше;

· свободного места на жестком диске не менее 250 Мб;

· браузеры: Internet Explorer, Chrome и т. д.

3. ОБЗОР ПРОГРАММ АНАЛОГИЧНОГО НАЗНАЧЕНИЯ

3.1 Системы управления обучением

Система управления обучением -- основа системы управления учебной деятельностью, используется для разработки, управления и распространения учебных онлайн-материалов с обеспечением совместного доступа. Создаются данные материалы в визуальной учебной среде с заданием последовательности изучения. В состав системы входят различного рода индивидуальные задания, проекты для работы в малых группах и учебные элементы для всех студентов, основанные как на содержательной компоненте, так и на коммуникативной.

Существует ряд систем управления обучением, которые осуществляют дистанционное обучение посредством Интернет и других сетей. Таким образом, процесс обучения можно осуществлять в режиме реального времени, организовывая онлайн лекции и семинары. Системы дистанционного обучения характеризуются высоким уровнем интерактивности и позволяют участвовать в процессе обучения людям, находящимся в разных странах и имеющим выход в интернет.

3.2 CCNet

CCNet - сеть, в которой представлено обсуждение и распространение информации, а также результаты исследований, связанные с рисками для цивилизации от околоземных объектов, таких как кометы, астероиды, метеоры и др. В системе также рассматриваются варианты конца света и возможные последствия (например изменение климата). Система предлагает подойти к проблеме с научной точки зрения, применяя высокоточные технологии и оборудование, и не принимать во внимание необоснованную информацию «от пророков и пессимистов».

CCNet была основана в Великобритании. По официальным данным сеть насчитывает более 10000 пользователей, из которых 1000 известные ученые и политические деятели.

Можно провести аналогию между разработкой данного модуля и системой CCNet, в которой информация о событиях заносятся в базу, обеспечивая тем самым хранение необходимых данных для дальнейшего исследования и оценки. Аналогично CCNet модуль успеваемости хранит информацию о студентах и их успеваемости для дальнейшей работы с этими данными и обобщения итогов.

3.3 AcademLive

Интернет открыл миру много возможностей. В настоящее время любой человек, независимо от своих интересов и увлечений найдет для себя много новой, полезной информации. С недавних пор в сети появился очень интересный и перспективный проект, связанный с обучением людей. Его главная задача создать и разработать программу обучения, тесты и другие задания для того, чтобы люди смогли набираться знаний прямо за компьютером. Сайт academlive.com является большой находкой для различных учреждений и компаний.

По сути электронная online академия способна заменить нам различные курсы. Она дает возможность заменить дорогостоящие походы и делать это самим. Также система является очень удобным способом обучать работников и выжимать из них максимальный результат.

Сайт academlive.com включает в себя информационную платформу, полную организацию учебного процесса, поисковую систему, учет посещаемости, проведение различных экзаменационных тестов и многое другое. Одним словом, она полностью заменяет преподавателей.

Достоинство - автоматизированный сбор информации об успеваемости каждого человека, недостаток - высокая стоимость данного программного продукта (на сайте производителя цена 500000 руб.)

4. ОБЗОР ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

4.1 Серверная часть

nano security программирование

PHP -- скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. На сегодняшний момент поддерживается подавляющим большинством представителей хостингов.

Аббревиатура PHP означает “Hypertext Preprocessor (Препроцессор Гипертекста)". Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц.

Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP.

Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.

PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем.

Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками:

· традиционностью;

· простотой;

· эффективностью;

· безопасностью;

· гибкостью.

Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно, причем, с открытыми исходными кодами (Open Source).

Perl (Practical Extraction and Report Language) - это динамический язык программирования общего назначения. Основной характеристикой, которая отличает этот язык программирования от других, является обширная поддержка работы с текстом. Богатые возможности по работе с текстом включают широкий выбор средств по обработке регулярных выражений, встроенных в синтаксис языка. Сам по себе Perl - это некий симбиоз языков С и AWK, а также языков командных оболочек UNIX - ничего сверхъестественного, но, тем не менее, оригинально и практично.

На сегодняшний день Perl используется для выполнения задач системного администрирования, при создании разнообразных приложений в сети Интернет (к примеру, для работы с электронной почтой), либо же для создания CGI-сценариев. Очень удобен язык программирования и для поддержки узлов Web.

Стоит отметить, что система Perl стала результатом разработки языка программирования, который бы совмещал в себе множество разнообразных средств администрирования, которые были доступны еще в UNIX, но модернизировались и дополнялись. Оптимизация Perl позволила выполнять множество дополнительных функций, а его универсальность сделала этот язык довольно востребованным инструментом администрирования UNIX-систем. Так как Perl пользовался большой популярностью, он был портирован и на платформу Windows.

Кроме повседневных задач по администрированию, сейчас очень часто возникает крайняя необходимость в решении задач контроля вспомогательных программ, служащих для автоматической проверки электронной почты, резервного копированиея файлов в определенное время, синхронизации времени, данных и тому подобного. Часто для решения проблемы необходимо написать определенный сценарий поведения программы либо оболочки. Язык Perl прекрасно подходит для написания подобных сценариев.

Так, как Perl имеет богатые возможности по обработке текста, он часто применяется для обеспечения работоспособности веб-узлов (сайтов или тематически связанных страниц в пределах одного домена), которые в большинстве случаев представляют собой набор текстовых сценариев для корректного отображения определенной информации. Perl хорошо справляется с обработкой и структурированием таких сценариев.

CGI-сценарии, которые и до сегодняшнего дня не сошли с арены программирования, очень эффективно используются, но являются довольно сложными, в отличие от Perl. Написать любой сценарий можно на любом удобном для вас языке, но именно сценарии Perl являются самыми распространенными, а причиной тому стала простота использования, а также широкие возможности по обработке текстовой информации.

Синтаксис Perl очень синонимичен с языками программирования Си, AWK, sed и Bourne shell, так как код, а точнее его начало первой строки, имеет вид «#!/Путь/к/Perl [-ключи]», тем самым идентифицирует путь к интерпретатору для исполнения программы на сервере.

Язык Perl можно назвать в большей степени практичным, нежели элегантным и минималистичным. Язык не ограничивается единственной парадигмой программирования, давая возможность программистам использовать разные стили написания кода и построения программ, будь то процедурный, объектно-ориентированный либо функциональный стиль. Однако так как Perl имеет много общего с языком Си, то по своей сути он является скорее процедурным языком.

Python (питон) -- интерпретируемый, объектно-ориентированный язык программирования высокого уровня. Он поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многонитевую обработку. Python относится к классу языков с динамической типизацией, предоставляет программисту автоматическую «сборку мусора» и удобные высокоуровневые структуры данных, такие как словари, списки, кортежи и др. Питон объединяет поразительную мощь с простым и ясным синтаксисом, продуманной модульностью и масштабируемостью. Одной из интересных синтаксических особенностей языка является выделение блоков программы с помощью отступов (пробелов или табуляций), поэтому в Python отсутствуют операторные скобки ("begin/end", как в языке Паскаль или фигурные скобки, как в Си). Python -- oдно из самых простых средств обучению и применению ООП.

Python портируем и работает почти на всех известных платформах. Существуют порты под Windows, все варианты UNIX (включая Linux), Mac OS и Mac OS X, Palm OS, OS/2 и т.д. При этом, в отличие от многих портируемых систем, на каждой платформе Python поддерживает все характерные для данной платформы технологии (например, Microsoft COM/DCOM). Более того, существует специальная версия Python для виртуальной машины Java -- Jython, что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Python и даже быть написанными на Python.

Интерпретатор языка Python распространяется свободно на основании лицензии Python Software Foundation (PSF) Licence, которая в некотором роде даже более демократична, чем GNU General Public License.

В стандартный комплект поставки Python входит интегрированная среда разработки IDLE, в которой редактировать программы будет намного удобнее,чем в простом текстовом редакторе. IDLE написан на Python с использованием платформонезависимой библиотеки Tcl, поэтому легко запускается в любой операционной системе, для которой существует реализация Python. IDLE также имеет встроенную систему отладки.

Стандартная библиотека языка Python богата и предоставляет программисту множество возможностей. Однако, если вам не достаточно возможностей стандартной библиотеки, то существует множество библиотек, предоставляющих интерфейс ко всем мыслимым системным вызовам на разных платформах; в частности, на платформе Win32 поддерживаются все вызовы Win32 API, а также COM в объёме не меньшем, чем у Visual Basic или Delphi. Кроме того, количество прикладных библиотек для Python в самых разных областях без преувеличения огромно (веб, базы данных, обработка изображений, обработка текста, численные методы, приложения операционной системы, и т. д.). Python легко расширяется языками C и C++, а на платформе Windows -- также с помощью COM. Библиотека Numeric Python для работы с многомерными массивами позволяет достичь производительности научных расчётов, сравнимой с MATLAB. Кроме того, существует специальная библиотека psyco, позволяющая оптимизировать выполнение некоторых программ, после чего скорость их выполнения можно сравнивать с программами на Си. В среде коммерческих приложений скорость выполнения программ на Python часто сравнивают с Java-приложениями.

Для Python существуют библиотеки доступа к СУБД (на платформе Windows доступ к БД возможен через ADO). Существуют модули расширения для Python под Windows и Unix/Linux для доступа к Oracle, Sybase, Informix и MySQL. Существует также пакет mxODBC для доступа к СУБД через ODBC, также поддерживаемый на платформах Windows и Unix.

С Python поставляется библиотека tkinter для создания кроссплатформенных программ с графическим интерфейсом. Данная библиотека является фактически стандартом для GUI-приложений, написанных на Python. Многие люди при написании GUI программ пользуются также библиотекой wxPython, основанной на библиотеке wxWidgets. Также часто используются библиотеки PyQT (PyQt) и PyGTK.

Python и подавляющее большинство библиотек к нему бесплатны и поставляются в исходных кодах. Более того, в отличие от многих открытых систем, лицензионная политика на Python никак не ограничивает его использование в коммерческих системах и не налагает никаких обязательств, кроме указания авторских прав.

Tcl (Tool Command Language) -- интерпретируемый язык программирования высокого уровня. Tcl ориентирован преимущественно на автоматизацию рутинных процессов ОС и крупных программных систем и состоит из мощных команд, ориентированных на работу с абстрактными нетипизированными объектами. Принципиальное отличие Tcl от командных языков ОС состоит в независимости от типа системы (когда не надо утруждать себя изучением нового командного языка) и, самое главное, он позволяет создавать переносимые программы с графическим интерфейсом (GUI).

Tcl очень часто применяется совместно с библиотекой Тк (Tool Kit). Связку Tcl/Tk по-русски иногда называют "Так-тикль". Tcl/Tk распространяется в исходных текстах бесплатно. Tcl/Tk разрабатывался одновременно как язык и библиотека. Tk - это популярный графический инструментарий, позволяющий очень быстро создавать графические программы. Варианты Tcl/Tk доступны для множества платформ (Windows, Macintosh, практически все UNIX-платформы, включая Linux). Библиотека Tk содержит стандартизованный набор команд поддержки GUI в стиле Motif. Управляющие элементы, хранящиеся в Tk, называются виджетами (widgets). Большое количество нетиповых виджетов можно найти в Сети.

Tcl - расширяемый язык. Можно самостоятельно определять новые команды языка (как в Форте). На Tcl написана оболочка Visual Tcl, которая позволяет разрабатывать кроссплатформенное ПО для UNIX, Windows и Macintosh. Фирмой Sun разработана версия Tcl, написанная на Java - Jacl (JAva Command Language).

4.2 Клиентская часть

JavaScript -- прототипно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам -- функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания -- что придаёт языку дополнительную гибкость.

4.3 Обзор средств разработки

Существует множество инструментов для верстки web-страниц. Их разделяют на два типа: визуальные и текстовые.

Визуальные редакторы не требуют от разработчика сайта знаний html, css и прочих технологий для разметки страниц. В визуальном редакторе элементы сайта располагаются как будто на листе бумаги, а редактор пишет код самостоятельно. Поэтому визуальные редакторы еще называют WYSIWYG-редакторами (What You See Is What You Get - что видишь, то и получаешь).

Среди представителей визуальных редакторов можно назвать такие, как Macromedia Dreamweaver MX, Adobe Dreamweaver CS3 и выше, Adobe GoLive, LiveMotion, Microsoft FrontPage, Hotdog, CoffeeCup HTML Editor и CoffeeCup Visual Site Designer.

В текстовых редакторах код пишут вручную. В них, как правило, есть разные функции, облегчающие работу программисту: подсветка кода, различные горячие клавиши и кнопки, которые вставляют уже готовые конструкции: части кода, спецсимволы и т.д.

Важным отличием текстовых редакторов от визуальных является то, что при работе в визуальном редакторе при создании конструкций расходуется больше ресурсов, увеличивается число строк, что может увеличить объем web-страницы. Эту проблему можно обойти написанием кода вручную с помощью текстовых редакторов.

Macromedia Dreamweaver MX - профессиональный инструмент для создания web-сайтов и приложений. Возможно, это самая лучшая программа из визуальных редакторов, весьма любима многими программистами.

Macromedia Dreamweaver MX обеспечивает мощную комбинацию инструментов визуального макетирования, программной разработки и редактирования кода, позволяя разработчикам и дизайнерам на квалифицированном уровне быстро создавать визуально привлекательные и соответствующие стандартам и спецификациям сайты и приложения.

Поддерживая css-верстку и возможность ручного кодирования, Dreamweaver дает профессионалам интегрированные инструменты единой среды разработки. Разработчики могут использовать Dreamweaver с серверными технологиями на их выбор, чтобы создавать мощные web -приложения с подключением СУБД и web - сервисов.

Adobe GoLive понравится тем, кто любит программы от Adobe, и много с ними работал: знакомая среда, достаточно легко разобраться, что к чему. Кроме того, еще один плюс для любителей Adobe - все программы от Adobe прекрасно взаимодействуют друг с другом и дополняют друг друга, GoLive не исключение, он прекрасно дружит с собратьями. Однако, GoLive не более, чем визуальный редактор для верстки web -страниц, больше чем поддержки таких технологий, как html, dhtml, css, xml и нескольких готовых Javascript`ов не стоит ждать от этой программы. Однако следует отметить, что встроенный редактор кода (текстовой) в этой программе очень хороший. Можно сказать, что GoLive оптимальное сочетание визуального и текстового редактора (два в одном).

Adobe LiveMotion - вероятно, стоит использовать с GoLive такую программу, как Adobe LiveMotion (в предыдущих версиях она называлось Image Styler). LiveMotion является графическим редактором, в котором можно создавать незатейливую, но качественную графику для web-сайтов, эта программа также осуществляет верстку web-страниц, на основе того, что было нарисовано (не лучшим образом, но довольно прилично, плюсом является то, что LiveMotion сам режет готовый макет на много картинок, которые потом можно использовать при верстке сайта в GoLive).

Microsoft FrontPage - программа позволяет создавать Веб-узлы, обладающие широкими возможностями, а также предоставляет средства управления ими. FrontPage дружит с html, css, dhtml, Javascript. Дает достаточно широкие возможности по управлению изображениями и flash-роликами. Кроме того в FrontPage есть поддержка asp, xml, vbScript, xsl.

Hotdog - программа имеет простой и понятный пользователю интерфейс. В Hotdog есть поддержка Flash, sql, php, asp, работа с gif-изображениями (оптимизация, анимация), включает в себя html-компрессор, может создавать файлы справки (CHM).

CoffeeCup Visual Site Designer - редактор, позволяющий создавать web-страницы без знания html. Панели инструментов в программе содержат только самое необходимое: вставка текста, изображений, кода, а также графические примитивы. После, того как эти объекты добавлены на страницу, им можно поставить в соответствие гиперссылку или применить к ним визуальный эффект.

PHP Editor - быстрый, удобный, мощный инструмент для программистов. Подсветка кода для html, php JavaScript, css. Работа с файлами в различных кодировках. Проверка синтаксиса php и запуск скриптов и просмотр результата в браузере. Для запуска php скриптов можно использовать любой внешний HTTP-сервер.

При разработке web - страниц лучше иметь под рукой сразу т текстовый и визуальный редактор.

4.4 Обзор серверов

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации.

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Ядро Apache полностью написано на языке программирования C.

Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).

IIS (Internet Information Services, до версии 5.1 -- Internet Information Server) -- проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Основным компонентом IIS является веб-сервер -- служба WWW (называемая также W3SVC), которая предоставляет клиентам доступ к сайтам по протоколам HTTP и, если произведена настройка, HTTPS.

Для каждого сайта указывается домашний каталог -- каталог в файловой системе сервера, соответствующий «корню» сайта. Например, если сайту www.example.com сопоставлен домашний каталог D:\example, то на запрос ресурса с адресом http://www.example.com/index.htm веб-сервер вернёт файл D:\example\index.htm.

Веб-сервер IIS предоставляет несколько способов разграничения доступа к сайтам и веб-приложениям. Служба WWW в составе IIS отличается от других веб-серверов тем, что функции обеспечения безопасности в ней тесно интегрированы с системой Windows NT, на основе которой она работает. Веб-сервер IIS поддерживает несколько различных технологий создания веб-приложений:

ASP.NET -- разработанная Microsoft технология; для IIS это -- основное на сегодняшний день средство создания веб-приложений и веб-служб. IIS 6.0 поставляется вместе с операционными системами, в которые также изначально входит .NET Framework, так что поддержка ASP.NET как будто уже встроена в IIS 6.0; для более ранних версий необходимо отдельно загрузить и установить .NET Framework.

ASP -- предшествовавшая ASP.NET технология создания динамических веб-страниц на основе сценариев. Входит в поставку IIS начиная с версии 3.0.

CGI -- стандартная межплатформенная низкоуровневая технология создания динамических веб-страниц.

FastCGI -- клиент-серверный протокол взаимодействия веб-сервера и приложения.

ISAPI -- низкоуровневая технология, аналогичная интерфейсу модулей Apache, предоставляющая полный доступ ко всем возможностям IIS, возможность разработки веб-приложений в машинном коде и возможность переопределения части функций IIS и добавления к нему функций, как связанных с генерацией контента, так и не связанных с этим. Подсистема исполнения скриптов ASP и подсистема ASP.NET выполнены как модули ISAPI.

SSI -- включение в одни страницы текста из других страниц. Строго говоря, веб-приложением не является, поскольку IIS поддерживает лишь ограниченный набор возможностей и без того малофункционального SSI. В частности, IIS5 поддерживает только статическое включение и игнорирует команды условного ветвления.

Nginx - веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris,Mac OS X, AIX и HP-UX). Начиная с версии 0.7.52 появилась бинарная сборка под Microsoft Windows.

4.5 Прочие средства разработки

AJAX (Asynchronous JavaScript and XML) - подход к построению пользовательских интерфейсов веб-приложений, при котором web-страница, не перезагружаясь, сама догружает нужные пользователю данные. AJAX - один из компонентов концепции DHTML.

В настоящее время разработка WEB приложений стремится к разграничению клиентской части и серверной, этим и обуславливается повсеместное использование шаблонов, таких как Smarty и XSLT. Сейчас проекты становятся сложнее, и переплетать между собой различные технологии становиться слишком дорого для времени разработчика. Так, например, все стили форматирования выносятся в CSS или в XSL файлы, HTML или XML данные хранятся в других разделах, серверные обработчики в третьих, базы данных в четвертых. И если еще 5-6 лет назад практически везде можно было увидеть переплетение всего этого в одном файле, то сейчас это все чаще становиться редкостью.

При разработке более сложных проектов возникает необходимость в структурированности и удобочитаемости кода.

Возникает необходимость в разграничении работы. В итоге каждому участнику проекта достаточно будет знать только те данные, с которыми ему придется работать. В таком случае производительность группы и качество проекта повышается в разы. В настоящее время эта проблема с успехом решается путем использования шаблонов, однако это тоже создает определенные трудности, так как чтобы, скажем, подключить Smarty, необходимо подключить программный модуль обработки шаблонов, и четко связать со структурой проекта. А это далеко не всегда возможно и требует определенных затрат. Немного проще при использовании связки XML + XSL, так как они предоставляют больше возможностей, однако это альтернатива, не более. А что если посмотреть в сторону чего-то радикально нового, что позволяло бы объединить все лучше, используя возможности того, что есть? Попробуйте представить JavaScript, который обладает всем возможностями PHP или Perl, включая работу с графикой и базами данных, который имеет гораздо более удобную расширяемость и практичность, и к тому же кросс-платформен.

Query -- это компактная библиотека JavaScript, созданная Джоном Резигом и опубликованная в интернете в начале 2006 года. Секрет ее популярности в том, что эта простая в применении библиотека упрощает JavaScript для всех, позволяя без изнурительной работы добиваться замечательных эффектов. С ее помощью можно создавать наборы элементов Document Object Model (DOM), модифицировать и манипулировать CSS, вводить элементы анимации и работать с Ajax. Вся эта функциональность обеспечивается единственным файлом JavaScript, который можно загрузить с сайта jQuery.

4.6 Обзор СУБД

PostgreSQL -- свободная и открытая объектно-реляционная СУБД. Существует в реализациях для следующих платформ: Linux, Solaris/OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6. Сильными сторонами PostgreSQL считаются:

· поддержка БД практически неограниченного размера;

· мощные и надёжные механизмы транзакций и репликации;

· наследование;

· легкая расширяемость.

Как видно из описания с использованием PostgreSQL мы избегаем каких-либо финансовых затрат и проблем с межплатформенной переносимостью. К сожалению создатели PostgreSQL не предлагают каких-либо визуальных средств администрирования, развертывания и работы с базами данных. Для создания баз данным, создания структуры таблиц, отладки запросов существуют утилиты сторонних разработчиков, например pgAdmin III и web-клиент phpPgAdmin (подобие phpMyAdmin который будет рассматриваться позднее, к сожалению пока гораздо менее функционален).

Но для конфигурирования и администрирования необходимо пользоваться встроенными консольными утилитами psql и pgsql, а так же изменением файлов конфигурации вручную. Для развертывания на клиентах необходим только ODBC драйвер (также как для MS SQL Server и MySQL).

Просто работа с БД несколько затруднено усложненными синтаксисом с множеством собственных расширений языка SQL. С учетом наличия документации только на английском, французском и японском языках и не слишком большом русскоязычном сообществе пользователей этой СУБД это создает значительные сложности в ее освоении и использовании. Тем не менее, эта СУБД постоянно набирает популярность, поскольку ее возможности вплотную приближаются к возможностям самых мощных коммерческих СУБД.

MySQL -- свободная СУБД. MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является распространенным решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

MySQL без сомнения наиболее популярная из свободных СУБД, существует большое сообщество пользователей способных помочь в случае затруднений. Официальная документация полностью переведена на русский язык, хотя русский перевод и несколько отстает от последней английской версии.

MySQL не имеет в комплекте графических средств конфигурации, отладки запросов и т.п. Тем не менее они существуют, обладают достаточной функциональностью и находятся в свободном доступе на сайте MySQL. В состав входят утилита для администрирования MySQL Administrator, утилита работы со структурой и содержимым БД MySQL Query Browser, средство миграции с других типов СУБД MySQL Migration Toolkit и несколько вспомогательных утилит.

Кроме того существуют сторонние разработки, такие как упоминавшийся выше phpMyAdmin, развивающийся достаточно давно и имеющий функциональностью достаточную для работы со структурой и наполнением БД и базового ее администрирования.

Развертывание системы аналогично развертыванию MS SQL Server и достаточно простое, заключается в установке сервера, создании на нем БД необходимой структуры и установки на каждый клиент необходимых библиотек для доступа к нему и настройки DSN.

MySQL существует как в версии для Windows, так и для многих других платформ, многие Unix-системы имеют в своем дистрибутиве какую-либо версию MySQL.

5. ЛОГИЧЕСКАЯ МОДЕЛЬ БАЗЫ ДАННЫХ

5.1 Представление модели

Программное обеспечение или автоматизированная система учета успеваемости может использоваться многими преподавателями одной кафедры, факультета, института, учебного заведения, тогда база данных такой системы сможет аккумулировать сводную информацию о посещаемости и успеваемости и может быть использована для оценки рейтинга студента.

Моделирование связано с представлением семантики предметной области в модели базы данных, т.е. моделирование структур данных, опираясь на смысл этих данных. Наиболее распространена модель «сущность-связь».

Модель «сущность-связь» является концептуальной моделью, т.е. не учитывает особенности конкретной СУБД. Из нее могут быть получены все основные фактографические модели данных.

Модели «сущность-связь» удобны тем, что процесс создания модели является итерационным. Разработав первый приближенный вариант модели, можно уточнять ее, опрашивая экспертов предметной области. При этом документацией, в которой фиксируются результаты бесед, является сама модель «сущность-связь».

Основными понятиями модели «сущность-связь» являются: сущность, связь и атрибут.

Так для рассматриваемой задачи для разработки модели необходимы следующие сущности:

· дисциплина - сущность необходимая для хранения перечня названий предметов и краткого описания данного предмета;

· преподаватель - сущность необходимая для хранения списка преподавателей;

· студент - сущность необходимая для хранения списка студентов;

· группа - сущность необходимая для хранения списков учебных групп.

Между сущностями «Преподаватель» и «Дисциплина» существует связь многие ко многим, так как теоретически любой преподаватель может вести любую дисциплину (предмет), с другой стороны одну и ту же дисциплину может вести любой преподаватель.

Рис.1. Концептуальная модель предметной области

Не смотря на то, что предложенная модель достаточно полно описывает поставленную задачу, в ней есть некоторые недостатки. Эти недостатки заключаются в том, что модель не учитывают группирование некоторых видов данных. Так все преподаватели работают на определенных кафедрах, учебные группы так же закреплены за определенными кафедрами, кроме кафедр присутствует более крупные единицы группировки - факультеты и институты.

С учетом вышесказанного и обеспечения возможности детального проектирования базы данных используется детализированная концептуальная модель предметной области. Эта модель учитывает возможность объединения учебных групп по кафедрам, как административным единицам. Кафедры так же в себя включают преподавателей, при этом связь между сущностями «Преподаватель» и «Кафедра» установлена многие ко многим, так как один и тот же преподаватель может работать на одной и более кафедрах. Кроме этого сущность «Учебный план» предполагает наличие четко сформулированного плана изучения дисциплины. При этом учебный план достаточно сильно зависит от преподавателя, преподающего ту или иную дисциплину.

Дальнейшее развитие инфологической модели на данном этапе не целесообразно, так как оно приведет к проектированию логической модели конкретной СУБД.

Рис. 2. Концептуальная модель предметной области

Построенная модель позволяет достаточно хорошо представить взаимодействие между сущностями рассматриваемой предметной области и перейти к этапу функционального проектирования автоматизированной системы.

6. ПРЕДСТАВЛЕНИЕ МАКЕТА ИНТЕРФЕЙСА

6.1 Архитектура

Данное программное средство может иметь следующую архитектуру:

Рис. 3. Архитектура программного средства

Для работы с системой каждый преподаватель должен быть зарегистрирован в БД. Вход в систему осуществляется стандартным для web приложений способом, т.е. вводом логина и пароля, который выдает администратор.

Примерный макет страницы выглядит следующим образом:

Рис. 4. Главная страница

Одной из особенностью данного модуля будет является переход на главную страницу. При перемещении попадаем не в саму базу данных, а на страницу с оригинальным дизайном, содержащим много графической информации. Далее всю работу выполняет меню, в котором и содержатся ссылки для перехода к нужным данным: факультеты, кафедры и далее группы.

Дизайну страницы отводится немаловажное значение. Хотя можно сказать, что для подобных систем это не так важно, а важен сам доступ к информации и малый объем системы для корректной работы. Однако разработчиками сделан большой акцент на оформление, что, как предполагается, сделает переход между страницами сайта более приятным и увеличит число посещений данного ресурсом.

Далее показан макет базы данных успеваемости одной из групп на примере аналогичного сайта:

Рис. 5. Страница успеваемости

В данном окне можно указать тему занятия и тип занятия: лекция, практика, лабораторная. Список типов занятий имеет возможность расширять администратор.

Список предметов, по которым ведется учет успеваемости и посещаемости заполняется администратором через собственный интерфейс.

Основная цель автоматизированной системы учета студенческой успеваемости и посещаемости является автоматизация работы с данными, сопровождающими учебный процесс групп студентов и предоставление доступа, как должностным лицам, так и самим студентам к необходимой им информации из любого компьютера, подключенного к сети Интернет.

ЗАКЛЮЧЕНИЕ

В рамках данной работы будет разрабатываться программное обеспечение для автоматизации процесса учета успеваемости и посещаемости студентов.

Программное обеспечение, позволит в электронном виде вести учет текущей успеваемости студентов.

К достоинствам программного обеспечения можно отнести возможность использования её в режиме клиент-сервер, что позволяет обеспечить доступ к единой БД из любой аудитории кафедры. Применения данной программы в учебном процессе позволяет контролировать посещаемость студентов, формировать сводную оценку об успеваемости студентам по всем дисциплинам имеющихся в БД.

Его удобно использовать на личных ноутбуках преподавателей имеющих возможность связи кафедральной сетью по каналам WiFi, а так же на лаборантских рабочих местах.

Рассмотренные выше системы обучения и контроля имеют возможность решать поставленные задачи, однако использование их в учебном процессе Брянского государственного технического университета является затруднительным. Проблемы вызваны тем, что одни из них ориентированы на специфику работы конкретного ВУЗа и являются лишь частью единой большой автоматизированной системой управления учебным заведением. Другие обладают излишним переизбытком функциональности, что делает системы не удобными в использовании и слишком сильно зависящими от работы администратора системы.

В связи с этим разработка собственной системы представляется актуальной. Система разрабатываемая на основе web технологий будет доступна всем зарегистрированным пользователем в любом месте.

Программное средство должно представлять из себя web сайт, представляющий пользователю данные об успеваемости в табличном виде. Автоматизированная система должна быть универсальной, то есть не зависеть от типа дисциплин и привычек преподавателя.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ:

1. Аткинсон, Л. PHP 5. Библиотека профессионала / Л. Аткинсон, З. Сураски. - М.: Вильямс, 2006 . - 944 с.

2. Брауде, Э.Дж. Технология разработки программного обеспечения / Э.Дж. Брауде. - Питер, 2004. - 656 с.

3. Веллинг, Л. Разработка Web-приложений с помощью PHP и MySQL: 3-е издание/ Л.Веллинг, Л. Томсон. - М.: Вильямс, 2006. - 870с.

4. Вендров, А.М. Проектирование программного обеспечения экономических информационных систем: Учебник / А.М. Вендров. - М.: Финансы и статистика, 2006. - 544 с.

5. Гагарина, Л.Г. Технология разработки программного обеспечения / Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Виснадул. - М.: Инфра-М, 2008. - 400 с.

6. Гультяев, А.К. Проектирование и дизайн пользовательского интерфейса / А.К. Гультяев, В.А. Машин. - СПб.: Корона-Принт, 2007. - 239 с.

7. Карпова, Т.С. Базы данных : модели, разработка, реализация / Карпова Т.С. - СПб.: Питер, 2005. - 458 с.

8. Коберн, А. Современные методы описания функциональных требований к системам / А. Коберн. - М.: Лори, 2011. - 263 с.




Подобные документы

  • Понятие компьютерных вирусов, их виды и классификация. Основные признаки заражения компьютера. Антивирус Касперского, Dr.Web CureIt, Nod32, Avast, Norton AntiVirus, Panda, McAfee, Avira Free Antivirus, ADinf32, NANO Антивирус, 360 Total Security.

    презентация [2,8 M], добавлен 14.05.2016

  • Information security problems of modern computer companies networks. The levels of network security of the company. Methods of protection organization's computer network from unauthorized access from the Internet. Information Security in the Internet.

    реферат [20,9 K], добавлен 19.12.2013

  • Требования к программному изделию и параметрам технических средств. Описание пользовательского интерфейса для автоматизированной системы учёта товаров на оптовом складе. Обоснование выбора языков программирования, организации входных и выходных данных.

    дипломная работа [3,4 M], добавлен 02.04.2013

  • Сравнительная характеристика антивирусных программ. Фирма-разработчик и характеристика программы Eset Smart Security, форма продажи лицензий и структура модулей защиты информации. Назначение утилиты Eset SysInspector. Правила корректного обновления.

    контрольная работа [28,8 K], добавлен 10.03.2011

  • Сrime of ciber is an activity done using computers and internet. History of cyber crime. Categories and types of cyber crime. Advantages of cyber security. The characteristic of safety tips to cyber crime. Application of cyber security in personal compute

    презентация [203,5 K], добавлен 08.12.2014

  • Overview history of company and structure of organization. Characterization of complex tasks and necessity of automation. Database specifications and system security. The calculation of economic efficiency of the project. Safety measures during work.

    дипломная работа [1009,6 K], добавлен 09.03.2015

  • Назначение и цели создания системы. Требования к программе или программному изделию, к информационной и программной совместимости, к составу и параметрам технических средств. Алгоритм Rijndael. Назначение и условия применения программного продукта.

    дипломная работа [1,3 M], добавлен 01.03.2009

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

  • Методы разработки автоматизированных систем. Характеристика языка программирования Delphi и операционной системы Windows. Назначение и область применение, принцип действия идентификаторов. Этапы разработки программного продукта, требования к нему.

    курсовая работа [903,9 K], добавлен 14.02.2015

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014