Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Chast_1-Osnovy_informatiki

.pdf
Скачиваний:
15
Добавлен:
09.06.2015
Размер:
967.67 Кб
Скачать

2 . Методы и средства разработки программ

Отдельно следует выделить категорию задач, связанных с обучением. Эти задачи предъявляют особые требования к обучающим программным средствам, которые должны обеспечить так называемые активные методы обучения (АМО). К АМО относятся методы, обеспечивающие визуализированную (отображаемую на экране дисплея) имитацию профессиональной среды и самостоятельную деятельность в этой среде учащегося с оперативным контролем, анализом и оценкой совершенных действий по полученному результату. Среди современных методов активного обучения можно выделить два направления: информационное и имитационное. Основная цель информационного направления состоит в систематизации и закреплении учебного материала, иллюстрации обработки данных по общепринятым алгоритмам, иначе говоря, – в повышении интенсивности теоретического обучения. Это направление реализуется в компьютерных «учебниках». Основное достоинство имитационного направления активного обучения заключается в имитации на ЭВМ реальной среды будущей трудовой деятельности, во взаимодействии ЭВМ с человеком на каждом этапе решения задачи, в визуальной иллюстрации изучаемого процесса в динамике, в оценке совершенных действий и затраченных на решение конкретной задачи средств.

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

2.1.2.Математическое моделирование и вычислительный эксперимент

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

66

2 . Методы и средства разработки программ

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

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

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

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

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

67

2 . Методы и средства разработки программ

Методология математического моделирования получила свое развитие в виде технологии вычислительного эксперимента. Основу вычислительного эксперимента составляет триада «модель – алгоритм – программа».

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

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

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

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

68

2 . Методы и средства разработки программ

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

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

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

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

Моделирование в том или ином виде присутствует почти во всех видах творческой деятельности. Математическое моделирование расширяет сферы

69

2 . Методы и средства разработки программ

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

Одна из областей использования вычислительного эксперимента – это «вычислительная технология» – применение математического моделирования и выполнение экспериментов с моделями на ЭВМ не только для решения фундаментальных научных проблем, но и для разработки технологических процессов в промышленности. Для тех случаев, когда технологические процессы описываются хорошо известными математическими моделями, для расчета которых предложены эффективные вычислительные алгоритмы и разработаны пакеты прикладных программ, технология вычислительного эксперимента позволяет создавать новые программы и совершенствовать средства общения человека с ЭВМ. У технологов есть потребность в изучении новых промышленных технологий, например, лазерно-плазменной обработки материалов (плазменной термохимии).

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

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

70

2 . Методы и средства разработки программ

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

2.2. Технологии программирования

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

2.2.1. Этапы решения задач на ЭВМ

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

71

2 . Методы и средства разработки программ

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

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

Дальнейший процесс реализации на ЭВМ выбранного математического метода решения задачи состоит из разработки алгоритма (алгоритмизации задачи), написания (кодирования) программы и проверки ее правильности. Во-первых, выполняется переход от математической модели к разработке алгоритма – расчетной схемы решения задачи – и, во-вторых, перевод алгоритма, составленного в привычных для человека терминах, на язык вычислительной машины. Алгоритм представляет совокупность четко определенных правил, реализующих решение задачи за конечное число шагов. Иначе говоря, он точно определяет процесс преобразования исходных данных в искомый результат. Записать алгоритм можно либо в удобном для специалиста описательном виде, либо в виде логической схемы процедуры вычислений (блок-схемы), либо на каком-нибудь специальном алгоритмическом языке.

Составление расчетной схемы, или алгоритмизация задачи, является основой для создания программы. Программа – это законченная совокупность машинных команд, представляющая запись алгоритма в форме, воспринимаемой вычислительной машиной. Поскольку запись алгоритма на машинном языке, алфавит которого состоит из двух символов (0 и 1), утомительная техническая процедура, то алгоритм решения задачи записывают на формальном языке программирования высокого уровня в виде последова-

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

72

2 . Методы и средства разработки программ

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

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

Устранение алгоритмических ошибок в программе производится посредством сравнения выдаваемых машиной результатов с известными результатами – теоретическими или экспериментальными. Если данных для сравнения нет, то их получают «вручную» с помощью калькуляторов; результаты «ручного» счета называют контрольной точкой. Подобное сравнение проводится для нескольких вариантов, использующих разные логические ветви программы. Несовпадение машинных результатов с контрольными свидетельствует о наличии ошибок. Их поиск и исправление и составляет содержание процесса отладки программы.

73

2 . Методы и средства разработки программ

Задача тестирования – показать, что программа правильна и работает в соответствии с ожидаемыми результатами. Этот процесс необходимо планировать и готовить до испытаний программы на ЭВМ. Отладка же не может быть запланирована, поскольку нельзя заранее предугадать, какие и где будут ошибки, сколько времени потребуется на их поиск, какие усилия нужно приложить для их устранения.

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

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

2.2.2. Требования к программе

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

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

74

2 . Методы и средства разработки программ

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

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

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

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

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

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

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

75

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]