Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
20.04.2023
Размер:
1.29 Mб
Скачать

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

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

Способы описания (виды) алгоритмов.

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

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

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

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

Программа - описание структуры алгоритма на языке алгоритмического программирования.

Элементарные шаги алгоритма можно объединить в следующие алгоритмические конструкции:

- линейная алгоритмическая конструкция.

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

- разветвляющаяся алгоритмическая конструкция.

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

- алгоритмическая конструкция «Цикл».

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

- рекурсивный алгоритм.

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

Вопрос 3. Структура компьютерных программ. Программное обеспечение.

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

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

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

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

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

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

Ксистемному ПО относятся:

операционные системы (эта программа загружается в ОЗУ при включении компьютера)

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

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

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

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

Необходимо отметить, что часть утилит входит в состав операционной системы, а другая часть функционирует автономно. Большая часть общего (системного) ПО входит в состав ОС. Часть общего ПО входит в состав самого компьютера (часть программ ОС и

контролирующих тестов записана в ПЗУ или ППЗУ, установленных на системной плате). Часть общего ПО относится к автономными программам и поставляется отдельно.

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

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

Кприкладному ПО, например, относятся:

Комплект офисных приложений MS OFFICE

Бухгалтерские системы

Финансовые аналитические системы

Интегрированные пакеты делопроизводства

CAD – системы (системы автоматизированного проектирования)

Редакторы HTML или Web – редакторы

Браузеры – средства просмотра Web – страниц

Графические редакторы

Экспертные системы Инструментальное ПО - это системы для автоматизации разработки новых

программ на языке программирования.

В самом общем случае для создания программы на выбранном языке программирования (языке системного программирования) нужно иметь следующие компоненты:

1.

Текстовый редактор для создания файла с исходным текстом программы.

2.

Компилятор или интерпретатор. Исходный текст с помощью программы-компилятора

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

3.Редактор связей или сборщик, который выполняет связывание объектных модулей и формирует на выходе работоспособное приложение – исполнимый код.

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

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

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

Borland Delphi - предназначен для решения практически любых задач прикладного программирования

Borland C++ Builder – это отличное средство для разработки DOS и Windows приложений

Microsoft Visual Basic – это популярный инструмент для создания Windowsпрограмм

Microsoft Visual C++ - это средство позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows

Вопрос 4. Понятие информации и информационных технологий.

Базовыми понятиями информатики и информационных технологий являются:

Информация.

Информационные процессы.

Технология.

Информационные ресурсы.

Информационная система.

Информация - происходит от слова information, сведения, данных. Информация в понимание компьютера, это последовательность символов, несущая смысловую нагрузку, и представленная в понятном компьютеру виде. Информационные процессы - действия, осуществляемые с информацией:

Сбор.

Получение.

Хранение.

Обработка.

Передача.

Технология - происходит от латинского (techne): искусство, умение, мастерство.

Технология, это определенная совокупность действий, направленная на достижение поставленной цели.

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

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

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

Раздел 2. Методологии и языки программирования

1.Стадии и этапы разработки программ. Проектирование. Реализация.

2.Проблемы программирования.

3.Методологии программирования. Классификация методологий программирования

Вопрос 1. Стадии и этапы разработки программ. Проектирование. Реализация.

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

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

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

исредств разработки, а также составление плана работ;

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

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

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

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

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

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

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

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

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

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

установку программного обеспечения - установку программного обеспечения на оборудовании заказчика и проверку его работоспособности;

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

программного обеспечения заказчику.

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

постановка задачи (стадия «Техническое задание»);

анализ требований и разработка спецификаций (стадия «Эскизный проект»);

проектирование (стадия «Технический проект»);

реализация (стадия «Рабочий проект»).

Традиционно разработка также включала этап сопровождения. Однако по

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

Вопрос 2. Проблемы программирования.

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

Такие проблемы принято делить на две общие категории: programming in the small (локальное программирование) и programming in the big (глобальное программирование).

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

Проблемы системы типов.

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

Например, в стандарте языка C++ сказано, что значение целочисленного типа int всегда меньше или равно значению целочисленного типа long, но в то же время больше или равно значению целочисленного типа short всегда для любой платформы, но в стандартене указан размер (и, как следствие, диапазон) типа. Это значит, что значение целочисленного типа может иметь длину 64 бит на одном компьютере или в одной программе, но в другой программе или на другом компьютере с иной архитектурой длина такого значения равна 16 битам. Само собой разумеется, что это ничего не говорит о порядке расположения наиболее значимых битов на разных компьютерах.

А вот при попытке передачи значений между разными языками программирования, даже в том случае, если они расположены на одном компьютере, ситуация становится гораздо сложнее. Одни языки, например Java, рассматривают целочисленное значение как последовательность битов, либо как объект (т.е. int или Integer), другие, например C++, только как последовательность битов, а третьи, например, SmallTalk, — как объект. Ситуация усложняется в разы при передаче определенных пользователем типов еще и между разными компьютерами. Передача значений членов-данных при всем при этом осуществляется заметно проще, чем передача методов этого типа.

Проблемы с метаданными.

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

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

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

Проблемы выполнения.

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

Настоящее межъязыковое взаимодействие просто обязано обладать большими возможностями, чем один только вызов методов из других языков. Если классы C++ можно унаследовать (inherit) от других классов языка C++, разработанных другими людьми, а затем расширить их функционал, переопределяя их методы, то класс C++ должен также обладать способностью унаследовать классы других языков и правильно управлять ими. Но к сожалению на данный момент объектно-ориентированные модели и модели выполнения, предлагаемые нам современными языками программирования, значительно отличаются и для них практически невозможно создать единую среду выполнения.

Глобальное программирование При работе с программными компонентами, написанными разными

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

Проблема именования (Naming). Если разработчики из географически разных мест хотят повторно использовать разработанные ими классы, появляется проблема создания разных классов с одинаковыми именами.

Обработка ошибок (error handling). В одних языках программирования и архитектурах для представления информации об ошибках используются возвращаемые значения (Return), а в других — исключительные ситуации(Exception). Для взаимодействия между такими языками потребуется создать схему, позволяющую транслировать информацию об ошибках с сохранением семантических структур разных языков, архитектур.

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

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

Масштабируемость (scalability). Это скорее самая неизвестная и наиболее плохо понимаемая проблема создания широких распределенных систем. Распределенная система может прекрасно работать для сотен пользователей во внутренней сети организации, но просто сходит с ума, когда с ней начинают работать миллионы пользователей в Internet.

Вопрос 3. Методологии программирования. Классификация методологий программирования.

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

Каждая методология характеризуется своим:

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

согласованным множеством моделей методов, которые реализуют данную методологию;

концепциями (понятиями), позволяющими более точно определить методы.

Вчастном случае, когда методология применяется на стадии программирования (конструирования), её обычно называют парадигмой программирования

Классификация

по

ядрам.

При

подходе

к

методологии,

как

имеющей ядро (англ. core),

соответствующее

способу

 

описания

алгоритма,

и дополнительные особенности, можно

выделить следующие пять основных ядер

методологий:

 

 

 

 

 

 

 

 

Методология императивного программирования

Методология ООП

Методология функционального программирования

Методология логическое программирование

Методология программирования в ограничениях

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

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

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

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

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

Раздел 3. Система программирования. Этапы реализации программ

1.Web-программирование на сторонах клиента и сервера. Технология CGI.

2.Кодирование. Структура программ на языке PHP.

Вопрос 1. Web-программирование на сторонах клиента и сервера. Технология CGI.

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

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи

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

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

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

Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:

- модули интерфейса с пользователем; Также эту группу называют логикой представления. Через эту группу пользователи

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

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

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

- модули обработки данных (функции управления ресурсами); Эту группу также называют логикой доступа к данным или алгоритмами доступа к

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

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

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

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

-прикладной компонент;

-компонент управления ресурсом.

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

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

Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).

Вданных архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).

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

Вопрос 2. Кодирование. Структура программ на языке PHP.

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

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта

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

сGNU GPL.

В области программирования для сети Интернет, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET)

благодаря

своей

простоте,

скорости

выполнения,

богатой

функциональности, кроссплатформенности и

распространению

исходных

кодов на

основе лицензии PHP.

 

 

 

 

 

Популярность в области построения веб-сайтов определяется наличием

большого

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

 

автоматическое

извлечение POST и GET-параметров,

а

также переменных

окружения веб-сервера в предопределённые массивы;

взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL

Server, Sybase, ODBC, mSQL, IBM

DB2,Cloudscape и Apache

Derby, Informix, Ovrimos

SQL, Lotus

Соседние файлы в папке из электронной библиотеки