Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Средства разработки клиентских программ

Содержание:

Введение

Влияние глобальной компьютерной сети Internet на современный мир не имеет исторических аналогов. Его сегодняшний день — это начало эпохи электронного проникновения во все сферы человеческой жизни, это нечто большее, чем просто маркетинговая кампания, это основа новой философии и новой деловой стратегии. Вполне логично предположить, что и с точки зрения рекламы продукции или услуги Интернет — наиболее значимый ресурс. Большинство современных людей пользуются Интернетом, как наиболее доступным источником информации. Web-технология полностью перевернула представления о работе с информацией, да и с компьютером вообще. Оказалось, что традиционные параметры развития вычислительной техники производительность, пропускная способность, емкость запоминающих устройств не учитывали главного «узкого места» системы интерфейса с человеком.

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

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

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

Для реализации поставленной цели необходимо выполнить ряд задач:

- Изучить теоретические основы разработки программ;

- Рассмотреть этапы разработки программ и постановка задачи;

- Изучить процесс создания программы;

- Рассмотреть документирование программы и т.д.

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

Глава 1. Теоретические основы разработки программ

1.1. Основные сведения о технологии Java

Для обеспечения доступа к базам данных на стороне клиента применяется Java-технология. Java — это современный объектно-ориентированный язык программирования для разработки приложений, созданный специально для распределенных сред. Технология Java позволяет создавать полноценные приложения для работы с компьютерной графикой, файловыми системами и компьютерными сетями. Одно из важных свойств Java-технологии — это мобильность, суть которой заключается в том, что написанный на Java код может исполняться на любой компьютерной платформе. Java-приложения компилируются в особый код (так называемый байт-код), исполняемый на виртуальной машине (Java Virtual Machine). Байт-код является универсальным форматом программы, единым для всех аппаратных платформ — и для рабочих станций, и для больших универсальных ЭВМ, и для персональных компьютеров. Java-технология обеспечивает быстрый цикл компиляции и отладки программ. Еще на стадии компиляции проводится выявление многих ошибок и частичная оптимизация программ.[1]

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

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

1.2. Java-script

Язык программирования Java-Script разработан фирмой Netscape для создания интерактивных HTML-документов. Это объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Синтаксис языка очень похож на синтаксис Java — поэтому его называют — Java-подобным. Java-Script изначально создавался для того, чтобы сделать web-странички «живыми». Программы на этом языке называются скриптами.[2] Они подключаются напрямую к HTML и, как только загружается страничка — тут же выполняются. Программы на Java-Script — обычный текст. Они не требуют компиляции или какой-то другой специальной подготовки. Java-Script обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

С помощью Java-Script можно создавать новые HTML-тэги, удалять существующие, менять стили элементов, прятать, показывать элементы и т. п. Реагировать на действия посетителя, обрабатывать клики мыши, перемещение курсора, нажатие на клавиатуру и т. п. Посылать запросы на сервер и загружать данные без перезагрузки страницы (это технология называется «AJAX»).

Получать и устанавливать cookie, запрашивать данные, выводить сообщения. Кроме того, Java-Script имеет ряд свойств, присущих функциональным языкам функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания что придаёт языку дополнительную гибкость. В Java-Script: все идентификаторы регистрозависимы, в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры, названия переменных не могут начинаться с цифры, для оформления однострочных комментариев используются //, многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */.

Структурно Java-cript можно представить в виде объединения трёх чётко различимых друг от друга частей: ядро (ECMAScript), объектная модель браузера (Browser Object Model или BOM (de)), объектная модель документа (Document Object Model или DOM). JavaScript используется в клиентской части веб-приложений: клиент-серверных программ, в котором клиентом выступает браузер, а сервером веб-сервер, имеющих распределённую между сервером и клиентом логику.

Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. JavaScript используется для создания небольших программ, размещаемых в закладки браузера. При этом используются URL-адреса со спецификатором javascript. JavaScript используется для написания прикладного ПО. Например, 16,4% исходного кода Mozilla Firefox написано на JavaScript.

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

Это сделано для безопасности пользователей, чтобы злоумышленник не мог с помощью JavaScript получить личные данные или как-то навредить компьютеру пользователя. В браузере Firefox существует способ «подписи» скриптов с целью обхода части ограничений, но он не стандартный и не кросс-браузерный.[3] Большинство возможностей JavaScript ограничено окном браузера и текущей страницей. JavaScript не может читать/записывать произвольные файлы на жесткий диск, копировать их или вызывать программы. Он не имеет прямого доступа к операционной системе.

В языке отсутствуют такие полезные вещи, как: модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости; стандартная библиотека:

в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода,

базовых типов для бинарных данных; стандартные интерфейсы к веб-серверам и базам данных;

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

1.3. Java-applet

Applet он же JavaApplet, представляет из себя прикладную программу на языке Java, исполняемую браузером с использованием Java Virtual Machine (JVM).

Java-апплеты впервые появились в 1995. Апплет используется для добавления веб-приложению интерактивных возможностей, которые не могут быть выполнены с помощью html или иных средств. Japplet, так еще называют Java Applet, на базе языка Java имеет огромные возможности для украшения веб-страницы или для создания веб-игр. Java-applet без установленного приложения на Вашем П К не будет работать. Современные браузеры самостоятельно побеспокоятся о том, чтобы в нем заработала java. Java апплет — это Java программа, предназначенная для запуска внутри браузера с java-поддержкой. Java апплеты скачиваются с веб-сервера и запускаются на веб-клиенте.[4]

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

В данном разделе мы собрали апплеты, которые используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Приложения, функционирующие на стороне клиента, могут создаваться для каждого уровня трехуровневой модели MAPI. Разработка на уровне поставщиков услуг позволяет обеспечить унифицированный доступ клиентских приложений к дополнительным ресурсам, таким как адресные книги, хранящиеся, например, в базах данных; агентам передачи сообщений, позволяющим принимать и отправлять сообщения в почтовые системы, отличные от Exchange Server, например, систему РЕМАРТ, и хранилищам, позволяющим использовать для хранения и извлечения почтовых сообщений расширенные форматы файлов данных и специализированные системы хранения информации.

При разработке приложений такого уровня должны применяться Win32 Software Development Kit (SDK) и компиляторы C/C++. В частности, все необходимые компоненты входят в состав пакета разработки Visual C/C++ 4. x Professional. При использовании компиляторов других производителей необходимо приобретение Win32 SDK. Разработка под Windows 3. 1x требует наличия соответствующего компилятора и 16-битной версии MAPI SDK. При создании приложений на уровне программных интерфейсов выбор средств разработки зависит от требуемого уровня функциональности приложения. Наличие высокоуровневых интерфейсов OLE Messaging и OLE Scheduling позволяет использовать при создании приложений, способных использовать услуги электронной почты, как офисные пакеты, такие как Excel, Word, Access, так и средства разработки, поддерживающие стандарт OLE, например Visual Basic, Delphi или Visual J++.[5]

Набор вызовов Simple MAPI может быть использован при создании прикладных программ, которым достаточно минимального набора функций электронной почты, на любых языках программирования, поддерживающих подключение динамических библиотек (DLL) или включение статических библиотек на этапе сборки (linking) исполняемого кода. В качестве примера таких средств разработки можно привести Visual Basic, Power Builder, Delphi, компиляторы C/C++ и FORTRAN различных производителей. Интерфейс Common Messaging Calls (CMC) может применяться при разработке программ, которые будут переноситься на отличные от Windows платформы.

По функциональности CMC соответствует уровню Simple MAPI и требует использования таких же систем разработки приложений. Для написания прикладных программ, использующих все функциональные возможности MAPI, такие как асинхронная обработка событий, манипулирование почтовыми профилями, работа с электронными досками объявлений, поиск в каталоге, маршрутизация, расширенные свойства сообщений и т. д., должны применяться компиляторы C/C++ и Win32 SDK для платформ Windows 95 и NT или 16-битная версия MAPI SDK для Windows 3. 1x. Хотя отдельные фрагменты полного набора интерфейсов могут вызываться и из приложений на Visual Basic или Delphi.

Разработка прикладных программ, расширяющих базовую функциональность, может выполняться с применением следующих средств: электронного дизайнера форм клиента Exchange или электронного дизайнера Outlook, если предоставляемая ими функциональность достаточна для выполнения поставленной задачи. Поскольку в обеих системах используется язык программирования Visual Basic, поддерживающий механизм OLE, при помощи электронных форм можно удовлетворить большинство требований по созданию приложений коллективной работы, однако многие расширенные функции с их помощью не реализуются по причине ограниченных возможностей OLE Messaging и OLE Scheduling; компиляторов C/C++ и Win32 SDK/MAPI SDK для создания расширений, дополняющих или заменяющих отдельные компоненты клиентской части и способных использовать в работе полный набор интерфейсов MAPI.

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

кроссплатформенность

апплет может работать на «всех» установленных к этому времени версиях Java, а не только с последней версией; однако, если апплет требует последнюю версию JRE, то клиент будет вынужден ждать более длительной загрузки;

апплет поддерживается большинством браузеров;

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

он может иметь полный доступ к машине, на которой выполняется, если пользователь согласен на это;

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

он может запуститься с сопоставимой (но обычно медленнее) скоростью на других компилируемых языках, таких как C++, но во много раз быстрее, чем JavaScript

он может перенести работу с сервера к клиенту, делая Интернет-решение с, большим числом пользователей / клиентов.

Java-апплет обладает следующими недостатками:

он требует установки Java-расширения (plug-in), которое не во всех браузерах доступно по умолчанию;

он не может запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;

создание и дизайн хорошего пользовательского интерфейса с использованием апплетов считается более сложной задачей, чем с помощью технологии, основанной на HTML;

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

1.4. Active-x-объекты

ActiveX — это архитектура, которая позволяет одному программному компоненту (управляющему элементу ActiveX) взаимодействовать с другими компонентами через сеть (например, Internet). Для создания управляющих элементов ActiveX разработчик может использовать ряд популярных языков программирования, соответствующих спецификации ActiveX, — Microsoft Visual C++ 5. 0, Microsoft Visual Basic 5.0 и Delphi 3.0. Управляющие элементы ActiveX могут быть написаны и на Visual J++, хотя и с некоторыми ограничениями.

Управляющие элементы ActiveX — это самостоятельные части программы или автономные компоненты. Разработчики могут использовать их в других программах — даже в тех, которые созданы на других языках. Например, можно взять управляющий элемент, написанный на Visual Basic, и вставить его в программу на Visual C++. Автономность и возможность многократного использования — наследие более ранней объектно-ориентированной модели компании Microsoft, известной под названием Object Linking and Embedding (OLE). ActiveX — это ни что иное как развитие идеи OLE. Фактически объекты ActiveX — это те же объекты OLE с дополнительными функциями, которые позволяют применять их в World Wide Web.

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

И хотя чаще всего ActiveX в настоящее время применяется для встраивания в Web-страницы элементов анимации, для корпоративных Web-узлов это оказывается не очень полезно — большинство посетителей предпочитают более простое оформление Web-узлов. Важнее то, что ActiveX (как и апплеты Java) может привнести в Web возможности клиент-серверных приложений. Управляющие элементы ActiveX позволяют посетителям Web-узла выполнять сложные операции, получать нужную информацию из баз данных и от приложений, работающих на других серверах или даже на других Web-узлах. [6]

Одним из главных препятствий к применению ActiveX является отсутствие межплатформенной поддержки. Если все пользователи конкретной intranet работают под Windows 95, они могут использовать управляющие элементы ActiveX, не сталкиваясь с какими-либо проблемами; посетители же Web-узлов Internet работают на самых разнообразных операционных системах. Чтобы применять управляющие элементы ActiveX на других платформах, необходимо их перекомпилировать: нельзя просто написать один управляющий элемент, который смогут применять все посетители Web-узла.

К настоящему моменту управляющие элементы ActiveX могут работать только на семействе ОС Windows: Windows 95, Windows NT и Windows 3.x. Microsoft работает над поддержкой Unix и Macintosh, и до тех пор, пока это не будет сделано, ActiveX, видимо, нельзя считать технологией, полностью пригодной для Internet. Что касается поддержки браузеров, то, хотя управляющие элементы ActiveX выполняются как «родные» только на Internet Explorer компании Microsoft, существует и специальный встраиваемый модуль (plug-in) под названием ScriptActive производства компании Ncompass, который обеспечивает доступ к управляющим элементам ActiveX из Netscape Navigator.

ActiveX — многообещающая технология. Большое количество существующих библиотек готовых компонентов делают ее весьма полезным средством разработки приложений для Windows-платформ. Однако отсутствие многоплатформенной поддержки сильно ограничивает ее применение на Web-узлах Internet. Кроме того, изъяны в модели безопасности делают использование ActiveX в Internet весьма проблематичным.

1.5. Flash-компоненты

Программирование клиентских приложений с использованием Macromedia Flash Один из вариантов применения Flash-технологии — создание небольших приложений на стороне клиента. В ходе строительства Web-узла постоянно приходится решать проблему выбора той или иной технологии. Окончательный выбор зависит, как правило, от двух факторов: поставленной задачи и арсенала средств, которым владеет разработчик или команда разработчиков. Flash не создавался для программирования больших приложений. ActionScript четвертой версии весьма неуклюж с точки зрения любого сведущего в программировании.

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

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

Это различные калькуляторы, экзаменующие системы, игры, средства для построения графиков, несложных чертежей (здесь мы не касаемся приложений, которые не могут обойтись без взаимодействия с сервером). Применение Flash для таких приложений открывает для дизайнера массу возможностей (ограниченных только его фантазией) при создании пользовательского интерфейса. Вместо того, чтобы соединять несколько технологий в решении одной задачи, можно все делать в одной программе — редакторе фильмов Flash и тут же отлаживать полученный результат. Причем, по данным фирмы Macromedia, у почти 95% пользователей Интернета уже установлен плейер для воспроизведения flash-фильмов.

1.6. Технологии создания RIA-приложений

Несколько лет назад в области создания Интернет-приложений наметилась тенденция к переходу от стандартных HTML/Javascript/CSS технологий к платформам, которые позволяют запускать в среде веб-браузера программы, по внешнему виду и поведению не отличающиеся от оконных (desktop) приложений. Такой вид программных продуктов принято называть Rich Internet Applications (RIA), что в переводе обозначает «богатые интернет-приложения». Несмотря на то, что некоторые из технологий RIA выпущены довольно давно (конец 90-х годов), широкое распространение они получили не более 3−4 лет назад. Разговор об особенностях RIA стоит начать с концептуального отличия от приложений на основе HTML. Обычные сайты-сервисы работают по принципу перехода на другую страницу по гиперссылкам и отправки формы на сервер средствами веб-браузера.

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

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

Все RIA имеют схожую особенность: наличие промежуточной части, которая передается по сети клиенту и отвечает за взаимодействие с сервером и отображение пользовательского интерфейса, намного превосходящего HTML-аналоги. Решение проблемы сохранения пользовательских данных происходит за счет средств платформы RIA (платформенно-независимая среда для запуска RIA приложений). Промежуточная часть, загружаемая из сети, обращается к ней для сохранения и чтения информации. Отсюда появляется возможность отправлять и получать данные с сервера только по мере необходимости, за счет кеширования на стороне клиента.

Вопрос нестабильного подключения также решаем. Платформы RIA могут выполнить установку приложения на компьютере пользователя. Это означает, что для файлов программы будет отведено место на диске и её можно будет запустить без наличия сети. Таким образом, можно отметить основные отличительные черты RIA: на компьютер пользователя загружается клиентская часть приложения, которая отвечает за взаимодействие с сервером и обладает возможностями кэширования данных и работы без подключения к сети; запускается в браузере или в виде оконного приложения и требует установки платформы RIA; Постепенное развитие стандартов сети Интернет привело к реализации подобных технологии на практике.

Наиболее известными на данный момент являются следующие: JavaFX SUN/ORACLE 2009, Adobe Flex/AIRAdobe Inc. 2008, Silverlight Microsoft Corporation 2007, Google Web Toolkit (GWT)Google Inc 2006.

Разработчик RIA создает интерфейс и логику программы на языке Java, а GWT компилирует исходный код в тщательно оптимизированный Javascript. Файл скрипта подключается к веб-странице и во время загрузки отображает интерфейс приложения. При этом, во-первых, решается проблема наличия особого плагина для браузера по сути в случае GWT нужно, чтобы было включено выполнение сценариев Javascript (поддерживают все современные браузеры). Во-вторых, GWT обладает большой библиотекой компонентов для создания полноценных RIA и их число постоянно растет, благодаря большому сообществу разработчиков. На базе этих компонентов можно делать традиционные оконные интерфейсы в браузере.

Преимущества RIA: Используют меньший, более компактный, кэшируемый код Javascript; Автоматически поддерживают браузеры IE, Firefox, Mozilla, Safari и Opera; В состав библиотеки входят средства для обработки событий перехода по списку посещенных ранее страниц в браузерах (кнопка «Назад»). Кроме того, работая в Java, можно использовать: Средства отладки, позволяющие отслеживать значения переменных, работать с точками останова и т. д.; Автоматизированные модульные тесты (на основе Junit и др.) как в программе, так и в браузере; Что касается содержимого библиотек, то GWT включает в себя: Встроенные компоненты пользовательского интерфейса, которые служат кросс-браузерными строительными блоками приложения; Удаленный вызов программного кода помогает с клиент-серверными взаимодействиями (RPC, AJAX); Средства интеграции кода GWT в существующий код Javascript; Инструменты разработчиков для упрощения взаимодействия с дизайнерами интерфейсов (UIBind).

Недостатки RIA: Обязательное знание Java. Несмотря на огромную популярность этого языка в создании веб-приложений, новичку, не знающему базовых принципов пользовательских интерфесов Swing или AWT, будет крайне сложно.

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

Скорость работы GWT-компилятора. Это исполняемый класс на языке Java, который в качестве аргументов принимает пути к исходным текстам. В небольшом проекте автора время компиляции доходило до 2 минут. В качестве альтернативы для запуска приложения можно использовать специальный hosted-режимi, когда проект не компилируется, а запускается специальными средствами в выбранном браузере (GWT версии 2. 0). Кроме того, можно компилировать проект только для одного браузера, изменив конфигурацию, что уменьшит время сборки.

Приложение на Flex/AIR.

Краткое описание технологии. Adobe Flex это набор утилит для разработки RIA на платформе Adobe Flash с использованием языка Actionscript 3. Flash предоставляет гораздо больше возможностей, чем можно получить от HTML в плане интерактивности. Но тем не менее разработка на Flash это очень сложный процесс для простых программистов. Flash нацелен больше на дизайнеров.

Flex убирает этот барьер, предоставляя программный способ разработки RIA. MXML, язык на основе XML, используется для описания формата пользовательского интерфейса и поведения, а Actionscript™ 3, мощный объектно-ориентированный язык программирования, используется для создания логической модели поведения программы-клиента. Преимущества Приложения RIA, созданные во Flex, могут работать в обозревателе, использующем ПО Adobe Flash® Player, или как обычная программа, если в ОС установлено кросс-платформенное приложение Adobe AIR™.

Благодаря этому, приложения Flex поддерживают работу как со многими распространенными типами обозревателей, так и операционными системами для настольных компьютеров. При использовании AIR приложения Flex могут получать доступ к локальным данным и системным ресурсам ПК. Тем не менее, модель безопасности AIR не допустит повреждения информации пользователя и системных файлов, запуская приложения в изолированной среде. Flash Player и Adobe AIR доступны для свободной загрузки на сайте Adobe. com. На данный момент 99% ПК имеют Flash Player одной из самых последних версий (9 или 10).

Создание пользовательского интерфейса происходит с помощью MXML относительного простого и интуитивно-понятного языка, следовательно опытные разработчики могут освоить его быстро. Недостатки Язык Actionscript был первоначально скриптовым языком для Flash-плеера, который притерпел изменения в Actionscript 3. Как объектно-ориентированный язык ему не хватает массы особенностей, которые Java или. NET разработчики принимают как само собой разумеющееся. Количество сторонних библиотек (в частности, open-source) на порядки меньше, чем в Java.

Несмотря на то, что Flex SDK предоставляется бесплатно, основная среда разработки Flex Builder является коммерческим продуктом. JavaFX -- это платформа для создания RIA, которые могут запускаться на персональных компьютерах и мобильных устройствах. Технология JavaFX позволяет создавать приложения для работы с мультимедийным содержимым, графические интерфейсы пользователя для бизнес-приложений, игры для персональных компьютеров и мобильных устройств, насыщенные графикой, мультимедиа веб-сайты и др.

Приложения JavaFX создаются с помощью декларативного языка программирования JavaFX script. Для разработки приложений на языке JavaFX script необходимо скачать и установить JavaFX SDK. Из кода, написанного на языке JavaFX script, можно обращаться к любым библиотекам Java. Поэтому совместное использование языков Java и JavaFX script позволяет решать разнообразные задачи, например, логика бизнес-приложения может быть написана на Java, а графический интерфейс пользователя -- на JavaFX script. Приложения, написанные на языке JavaFX script могут запускаться на компьютерах с установленной средой исполнения Java 1.5 и выше. В настоящее время поддерживаются следующие операционные системы: Windows, Mac OS X, GNU/Linux и Solaris.[9]

Преимущества Язык JavaFX script поддерживает использование библиотек Java и позволяет получать компактный код.

Недостатки до сих пор остается проблема с запуском на клиентских машинах. JavaFX апплеты не запускаются в браузере Opera, все еще непонятно, что с Linux-системами. Правда это ситуация постепенно исправляется JavaFX 1.2 по утверждению создателей работает на Ubuntu и OpenSolaris. Приложение Silverlight Краткое описание технологии. Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был создан чтобы работать с XAML и с языками Microsoft. NET. XAML используется для разметки страниц с векторной графикой и анимацией. В состав платформы входит плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA.

Преимущества Начиная с версии 2. 0, логика программы может быть описана в любом из языков. NET, включая динамические языки программирования такие как Iron Ruby и Iron Python;. NET платформа является мощным средством для разработки бизнес-приложений; Большое количество сторонних компонентов от Infragistics, Syncfusion, Telerik (коммерческие продукты); Большое сообщество. NET разработчиков.

Недостатки Silverlight реализован для ОС Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10. 4, Mac OS X 10.5 и браузеров Internet Explorer 6. 0/7. 0/8. 0, Mozilla Firefox 1. 5/2. 0/3, Safari 3. 1, Google Chrome 3.0. В будущем также планируется поддержка Opera. Существующие расширения для браузеров в других операционных системах пока на стадии предварительного ознакомления.

Глава 2. Разработка программы

2.1 Этапы разработки программ и постановка задачи

Разработка программы – это не только написание программы. Написание программы является одним из этапов.[10] Для начала перечислим все этапы разработки программ, а затем подробно расскажем о них.

Этапы разработки программ:

1.  Постановка задачи

1.  Формулировка и анализ физической задачи

2.  Составление математической модели

3.  Составление алгоритма задачи

2.  Создание программы

1.  Составление текста программы

2.  Ввод текста программы в компьютер

3.  Синтаксическая отладка программы

4.  Тестирование и семантическая отладка

5.  Документирование программы

3.  Запуск готовой программы и анализ полученных результатов

Рассмотрим подробно каждый этап.

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

Формулировка и анализ физической задачи

Формулировка задачи – это само её объявление, её постановка.

Но просто формулировка ничем не поможет программистам. Для этого и существует второй подэтап – это анализ задачи.

 Анализ задачи – это подробный просмотр задачи с определением и выявлением входной и выходной информации. (Входная информация по задаче — это данные, поступающие на вход задачи и используемые для её решения. Выходная информация – это результат.)

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

Составление математической модели

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

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

«Математическая модель — это упрощенное описание реальности с помощью математических понятий. Существует два основных класса задач, связанных с математическими моделями: прямые и обратные. В первом случае все параметры модели считаются известными, и нам остается только исследовать её поведение. А во втором какие-то параметры модели неизвестны, и требуется их найти, сопоставляя поведение реальной системы с её моделью.» - данное определение используется в основном в экономике.

«Математическая модель — это математическое представление реальности» - это определение, созданное математиками.

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

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

Составление алгоритма задачи

Изначально появление алгоритма связывают с возникновением математики. Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.

У алгоритма есть 2 обязательных условия:

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

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

Так же у алгоритмов есть свойства:

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

2.  Детерминированность, т. е. любое действие должно быть строго и недвусмысленно определено в каждом случае.

3.  Конечность, т. е. каждое действие и алгоритм в целом должны иметь возможность завершения.

4.  Массовость, т. е. один и тот же алгоритм можно использовать с разными исходными данными.

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

В мире существует несколько видов алгоритмов:

Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);

Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено условие);

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

2.2 Процесс создания программы

Процесс создание программы, а точнее разработка программного обеспечения – это второй этап создания программы.

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

Синтаксическая отладка программы.

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

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

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

Тестирование и семантическая отладка.

Тестирование – это динамический контроль программы, т.е. проверка правильности программы при ее выполнении на компьютере.

Каждому программисту известно, сколько времени и сил уходит на отладку и тестирование программ. На этот этап приходится около 50% общей стоимости разработки программного обеспечения. Но не каждый из разработчиков программных средств может верно, определить цель тестирования.

Нередко можно услышать, что тестирование - это процесс выполнения программы с целью обнаружения в ней ошибок. Но эта цель недостижима: ни какое самое тщательное тестирование не дает гарантии, что программа не содержит ошибок. Другое определение: это процесс выполнения программы с целью обнаружения в ней ошибок. Отсюда ясно, что “удачным” тестом является такой, на котором выполнение программы завершилось с ошибкой.

Напротив, “неудачным” можно назвать тест, не позволивший выявить ошибку в программе. Определение также указывает на объективную трудность тестирования: это деструктивный (т.е. обратный созидательному) процесс. Поскольку программирование - процесс конструктивный, ясно, что большинству разработчиков программных средств сложно “переключиться” при тестировании созданной ими продукции.

Основные принципы организации тестирования:

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

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

3.  по тем же соображениям организация - разработчик программного обеспечения не должна “единолично” его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

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

5.  необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

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

7.  следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

8.  тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы);

9.  следует учитывать так называемый «принцип скопления ошибок»: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;

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

Существует два основных вида тестирования: функциональное и структурное. При функциональном тестировании программа рассматривается как “черный ящик” (то есть ее текст не используется). Происходит проверка соответствия поведения программы ее внешней спецификации. Возможно ли при этом полное тестирование программы? Очевидно, что критерием полноты тестирования в этом случае являлся бы перебор всех возможных значений входных данных, что невыполнимо.[11]

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

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

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

1)  тестирование отдельных модулей;

2)  совместное тестирование модулей;

3)  тестирование функций программного комплекса (т.е. поиск различий между разработанной программой и ее внешней спецификацией);

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

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

Структурное тестирование

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

Наиболее слабым из критериев полноты структурного тестирования является требование хотя бы однократного выполнения (покрытия) каждого оператора программы. Более сильным критерием является так называемый критерий С1: каждая ветвь алгоритма (каждый переход) должна быть пройдена (выполнена) хотя бы один раз.

 Использование критерия покрытия условий может вызвать подбор тестов, обеспечивающих переход в программе, который пропускается при использовании критерия С1 (например, в программе на языке Паскаль, использующей конструкцию цикла WHILE х AND y DO..., применение критерия покрытия условий требует проверки обоих вариантов выхода из цикла: NOT x и NOT y). С другой стороны, покрытие условий может не обеспечивать покрытия всех переходов.

Например, конструкция IF A AND B THEN... требует по критерию покрытия условий двух тестов (например, A=true, B=false и A=false, B=true), при которых может не выполняться оператор, расположенный в then - ветви оператора if. Практически единственным средством, предоставляемым современными системами программирования, является возможность определения частоты выполнения различных операторов программы.

Но с помощью этого инструмента поддержки тестирования можно проверить выполнение только слабейшего из критериев полноты - покрытие всех операторов. Правда, с помощью этого же инструмента можно проверить и выполнение критерия С1. Но для этого предварительно текст программы должен быть преобразован таким образом, чтобы все конструкции условного выбора (IF, CASE или SWITCH) содержали ветви ELSE или DEFAULT, хотя бы и пустые. В этом случае все ветви алгоритма, не выполнявшиеся на данном тесте, будут “видимы” из таблицы частоты выполнения операторов преобразованной программы.

Актуальной остается задача создания инструментальных средств, позволяющих:

накапливать информации о покрытых и непокрытых ветвях для всех использованных тестов;

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

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

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

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

меньшая трудоемкость (при монолитном тестировании требуются 5 драйверов и 5 заглушек; при пошаговом тестировании требуются или только 5 драйверов - если модули подключаются “снизу-вверх”, - или только 5 заглушек - если модули подключаются “сверху вниз”);

более раннее обнаружение ошибок в интерфейсах между модулями (их сборка начинается раньше, чем при монолитном тестировании);

легче отладка, то есть локализация ошибок (они в основном связаны с последним из подключенных модулей);

более совершенные результаты тестирования (более тщательная проверка совместного использования модулей).

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

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

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

a)  модули, содержащие операции ввода-вывода, должны подключаться к тестированию как можно раньше;

b)  критические (т.е. наиболее важные) для программы в целом модули также должны тестироваться в первую очередь.

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

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

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

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

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

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

Существует 3 способа отладки программы:

1.  Пошаговая отладка программ с заходом в подпрограммы;

2.  Пошаговая отладка программ с выполнением подпрограммы как одного оператора;

3.  Выполнение программы до точки остановки.

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

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

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

2.3. Документирование программы

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

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

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

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

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

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

Сопровождение – это продолжающаяся разработка, поэтому если созданную программу совершенствуют и обновляют не сами её создатели, то чаще всего привлекают специальную команду разработчиков – сопроводители.[13] Этой команде придется иметь дело с такой же документацией, с той лишь разницей, что им нужно будет подробно просматривать и изучать документацию, созданную первоначальными (основными) разработчиками, с той целью, чтоб понять строение и процесс разработки изменяемой программы, и внести в эту документацию необходимые изменения, повторяя в значительной степени технологический процессы, с помощью которых создавалась первоначальная программа.

Документация по сопровождению программы можно разбить на две группы:

1. документация, определяющая строение программ и структур данных программы и технологию их разработки;

2. документацию, помогающую вносить изменения в программу.

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

Внешнее описание;

Описание архитектуры программы, включая внешнюю спецификацию;

Описание модульной системы, включая внешнюю спецификацию каждого включенного модуля;

Для каждого модуля - его спецификация и описание его строения;

Тексты модулей на выбранном языке программирования;

Документы второй группы содержат:

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

 После полученного нами файла с *.exe (обычно) разрешением мы можем запустить его и ещё раз проверить (проанализировать) верно, ли работает программа. На этом этапы создания программы закончены.

Заключение

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

С появлением web-технологии компьютер начинают использовать совершенно новые слои населения Земли. Можно выделить две наиболее характерные группы, находящиеся на разных социальных полюсах, которые были стремительно вовлечены в новую технологию, возможно, даже помимо их собственного желания. С одной стороны, это были представители элитарных групп общества руководители крупных организаций, президенты банков, топ — менеджеры, влиятельные государственные чиновники. С другой стороны, это были представители широчайших слоев населения домохозяйки, пенсионеры, дети. Спектр социальных групп, подключающихся к сети Интернет и ищущих информацию в WWW, все время расширяется за счет пользователей, не относящихся к категории специалистов в области информационных технологий. Это врачи, строители, историки, юристы, финансисты, спортсмены, путешественники, священнослужители, артисты, писатели, художники. Список можно продолжать бесконечно. Любой, кто ощутил полезность и незаменимость Сети для своей профессиональной деятельности или увлечений, присоединяется к огромной армии потребителей информации во «Всемирной Паутине». С развитием технологий гипертекстовой разметки в Интернете стало появляться всё больше сайтов, тематика которых была совершенно различной — от сайтов крупных компаний, повествующих об успехах компании и её провалах, до сайтов маленьких фирм, предлагающих посетить их офисы в пределах одного города.

Развитие Интернет-технологий послужило толчком к появлению новой ветки в Интернете — Интернет — форумов.

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

Создание и разработка сайтов включает:

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

- определение структурной схемы сайта — расположение разделов, контента и навигации;

- web-дизайн — создание графических элементов макета сайта, стилей и элементов навигации;

- разработка программного кода, модулей, базы данных и других элементов сайта необходимых в проекте;

- тестирование и размещение сайта в сети интернет.

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

Список использованных источников

  1. Джамса Крис. Эффективный самоучитель по креативному Web-дизайну. HTML, XHTML, CSS, JavaScript, PHP, ASP, ActiveX. Текст, графика, звук и анимация. Пер с англ. /Крис Джамса, Конрад Кинг, Энди Андерсон — М.: ООО «ДиаСофтЮП», 2015. - 672 с.
  2. Дунаев В. Самоучитель JavaScript, 2-е изд. — СПб.: Питер, 2015. — 395 с.
  3. Мазуркевич А. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. — Мн.: Новое знание, 2014. — 495 с.
  4. Вольфенгаген, В.Э. Конструкции языков программирования / [Текст]. – М.: Центр ЮрИнфоР, 2014. – 276с.
  5. Гавриков, М.М. Теоретические основы разработки и реализации языков программирования / [Текст]. – М.: КноРус, 2015. – 184с.
  6. Голицына, О.Л. Языки программирования / [Текст]. – М.: Форум, 2014. – 400с. Кауфман, В.Ш. Языки программирования. Концепции и принципы / [Текст]. – М.: ДМК Пресс, 2014. – 464с.
  7. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / [Текст]. – М.: Бином. Лаборатория знаний, 2015. – 232с.
  8. Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход / [Текст]. – М.: Наука и техника, 2014. – 320с.
  9. Попов, В.Б. Delphi для школьников / [Текст]. – М.: Финансы и статистика, 2015. – 320с.
  10. Опалева, Э.А. Языки программирования и методы трансляции / [Текст]. – М.: БХВ-Петербург, 2015. – 480с. – ISBN 5-94157-327-8.
  11. Хореев, П.Б. Объектно-ориентированное программирование / [Текст]. – М.: Академия, 2015. – 448с.

Интернет-ресурсы.

  1. http: //ru. wikipedia. org/wiki/JavaScript
  2. Людмила Оленичева самоучитель по Visual fox pro
  3. http: //www. codenet. ru/webmast/js/js-java. php
  1. Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход / [Текст]. – М.: Наука и техника, 2014. – 320с.

  2. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / [Текст]. – М.: Бином. Лаборатория знаний, 2015. – 232с.

  3. Мазуркевич А. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. — Мн.: Новое знание, 2014. — 495 с.

  4. Попов, В.Б. Delphi для школьников / [Текст]. – М.: Финансы и статистика, 2015. – 320с.

  5. Хореев, П.Б. Объектно-ориентированное программирование / [Текст]. – М.: Академия, 2015. – 448с.

  6. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / [Текст]. – М.: Бином. Лаборатория знаний, 2015. – 232с.

  7. Опалева, Э.А. Языки программирования и методы трансляции / [Текст]. – М.: БХВ-Петербург, 2015.

  8. Дунаев В. Самоучитель JavaScript, 2-е изд. — СПб.: Питер, 2015. — 395 с.

  9. Мазуркевич А. РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. — Мн.: Новое знание, 2014. — 495 с.

  10. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / [Текст]. – М.: Бином. Лаборатория знаний, 2015. – 232с.

  11. Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход / [Текст]. – М.: Наука и техника, 2014. – 320с.

  12. Попов, В.Б. Delphi для школьников / [Текст]. – М.: Финансы и статистика, 2015. – 320с.

  13. Опалева, Э.А. Языки программирования и методы трансляции / [Текст]. – М.: БХВ-Петербург, 2015. – 480с.