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

Интеграция JavaScript и html

Одним из преимуществ языка JavaScript состоит в том, что вы можете включить программу на этом языке в HTML-документ, внеся в него несколько небольших изменений. Для применения JavaScript не требуется дополнительного программного обеспечения, потому что поддержка этого языка встроена в браузер. Болъшинство программ на языке JavaScript путешествуют по Internet, будучи помещенными в HTML-документы, запрашиваемые полъзователями. До тех пор, пока HTML-документ не загружен в броузер, невозможно определитъ, содержит он JavaScript-программу или нет. Чтобы броузер мог обнаружитъ такую программу, в язык HTML введен новый тег <script>. Имеется также другой тег-<noscript>, позволяющий авторам HTML-документов выяснитъ, когда язык JavaScript исполъзоватъ нелъзя. Контейнер <script>...</script> похож на контейнер <applet>...</applet>, который исполъзуется для загрузки Java-апплетов (программ) в текущую гипертекстовую страницу. Единственным отлшичием является то, что с помощъю тегов <script> текст выполняемой программы можно поместитъ непосредственно в документ и передаватъ по сети вместе с содержащей его страницей. Теги <noscript> ...</noscript> впервые исполъзовалисъ в броузере Navigator 2.0 версии beta 5.

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

1. Понятие и основные модели жизненного цикла программного продукта.

Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.

Модели жизненного цикла ПО

Водопадная (каскадная, последовательная) модель

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

Итерационная модель

Альтернативой последовательной модели является так называемая модель итеративной и инкрементальной разработки (англ. iterative and incremental development, IID), получившей также от Т. Гилба в 70-е гг. название эволюционной модели. Также эту модель называют итеративной моделью и инкрементальной моделью[4].

Модель IID предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает «мини-проект», включая все процессы разработки в применении к созданию меньших фрагментов функциональности, по сравнению с проектом в целом. Цель каждой итерации — получение работающей версии программной системы, включающей функциональность, определённую интегрированным содержанием всех предыдущих и текущей итерации. Результат финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации продукт получает приращение — инкремент — к его возможностям, которые, следовательно, развиваются эволюционно. Итеративность, инкрементальность и эволюционность в данном случае есть выражение одного и то же смысла разными словами со слегка разных точек зрения[3].

Спиральная модель

Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.

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

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

2.Основные этапы технологического процесса разработки программ.

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

  2. Построение математической модели.

  3. Разработка (выбор и адаптация) алгоритма.

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

  5. Тестирование и отладка.

  6. Сдача в эксплуатацию.

Постановка задачи.  На этом этапе раскрывается организационно-экономическая сущность задачи:

  • формулируется цель ее решения

  • определяется взаимосвязь с другими задачами

  • указывается периодичность ее решения

  • раскрывается состав и форма представления входной, промежуточной и выходной информации

  • характеризуются формы и методы контроля достоверности информации

  • описываются формы взаимодействия пользователя с ЭВМ

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

  • форма представления отдельных данных

  • количество знаков, выделяемых для записи данных, исходя из их максимальной значности

  • источник возникновения данных

Кроме того, для цифровой информации указывается:

  • целочисленный или дробный характер данных (для дробных указывается количество 10-х знаков) и допустимый диапазон изменения величин.

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

  1. Анализ существующих аналогов задачи.

  2. Анализ технических и программных средств.

  3. Разработка математической модели.

  4. Разработка структур данных.

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

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

  2. Позволяет использовать уже готовые стандартные программы.

  3. Ориентирован на минимальный объем информации.

  4. Наиболее быстрое получение результатов.

3.Критрии качества программного изделия

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

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

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

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

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

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

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

Программа является эффективной, если объем требуемых для ее работы ресурсов ЭВМ не превышает допустимого предела.

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

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

4. Трудоемкость, эффективность и сложность алгоритма.

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

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

Трудоемкость алгоритма - это число шагов.

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

Зависимость времени работы программы от объема обрабатываемых данных определяется оценкой сложности алгоритма.

Время работы алгоритма обработки массивов данных зависит от размеров этих массивов.

Например, время работы алгоритма выполняющего чтение и запись данных в ОЗУ определяется по формуле an+b, где a - время, необходимое для того, чтобы прочитать или записать один элемент массива; n - количество элементов массива; b - время для выполнения вспомогательных функций.

Поскольку эта формула выражает линейную зависимость от n, сложность соответствующего алгоритма называют линейной. O(n).