ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 154
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Известно, что многие продукты компании Microsoft, созданные на шаткой основе заведомо неполной и постоянно изменяемой спецификации, во многом ущербны. Именно в этом разгадка удивительных на первый взгляд отличий последовательных версий одного и того же продукта, не говоря уже о продуктах разных, но в то же время преемственных идеологически. Яркий тому пример - реализация механизмов DLE - OLE - ActiveX. Консервативная "несущая конструкция", каковой является архитектура ПО, гнется и ломается под грузом малоуправляемых мутаций и деформаций. В результате - масса проблем при реализации такого желательного принципа разработки, как повторное использование кода: достаточно сказать, что 50 % кода изменяется каждые 18 месяцев! [6]
Разработка алгоритма
На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для получения результата. Если задача может быть решена несколькими способами и, следовательно, возможны различные варианты алгоритма решения, то программист, используя некоторый критерий, например, скорость решения алгоритма, выбирает наиболее подходящее решение. Результатом этапа разработки алгоритма является подробное словесное описание алгоритма или его блок-схема.
После постановки задачи и построения математической модели приступают к разработке алгоритма. На этом этапе устанавливается необходимая логическая последовательность выполнения с учетом выбранного численного метода решений и других действий, с помощью которых получаются результаты.
Под алгоритмом понимается конечная последовательность предписаний (правил), определяющая процесс преобразования исходных и промежуточных данных в результаты решения задачи.
Разрабатываемые алгоритмы должны обладать рядом свойств, основными из которых являются:
· массовость, позволяющая быть алгоритму работоспособным для множества исходных данных;
· результативность, определяющая получение результата после конечного числа шагов или сообщение о невозможности решения;
· эффективность, определяющая окончание работы алгоритма за конечное время или конечное количество шагов. [3]
Условно все алгоритмы подразделяются по характеру выполняемых операций, используемой структуре управления ходом вычислительного процесса и др. По характеру выполняемых операций алгоритмы могут быть численными, логическими, численно-логическими (смешанными). По используемым структурам управления ходом вычислительного процесса алгоритмы подразделяются на алгоритмы линейной структуры, разветвляющейся структуры, циклической структуры, вложенной циклической и смешанной структуры.
Оценивая алгоритм по числу выполняемых действий, необходимых для получения результата, можно получить сведения о будущем процессе вычисления. Такая оценка алгоритма характеризует его временную сложность. Емкостная сложность алгоритма определяет объем памяти, требуемый для его реализации.
Одновременно с разработкой алгоритма должна быть определена структура исходной, промежуточной и выходной информации для данной задачи, что позволяет в дальнейшем выбрать язык программирования.
Существует много способов описания алгоритмов, отличающихся компактностью, наглядностью, простотой реализации, степенью формализации, ориентацией на машинную реализацию и др. Наибольшее распространение получили способы записи: словесный, граф-схемный, язык проектирования алгоритмов (псевдокоды), языки программирования.
При словесном способе записи алгоритм представляет собой обычную математическую запись выражений, зависимостей, необходимых пояснений к ним и указаний последовательности выполняемых действий. Словесный способ алгоритмов не требует дополнительной подготовки, однако он имеет ряд недостатков. Пояснения на естественном языке бывают неоднозначны и противоречивы. Запись алгоритма для сложных задач громоздка и ненаглядна, она плохо формализована и не может непосредственно вводиться в ЭВМ.
При граф-схемном способе записи алгоритм представляется в виде символов-блоков и связей между ними. Запись алгоритма должна выполняться в соответствии с государственными стандартами.
Граф-схемный способ компактен, формализован, имеет хорошую наглядность используемых структур и допускает различные степени детализации алгоритма.
Способ записи алгоритма на языке проектирования алгоритмов (псевдокодов) выполняется в виде алгоритмической записи на русском языке. Этот способ предоставляет возможность описывать сложные и не совсем определенные действия, в нем отсутствуют ограничения со стороны формальных правил, он хорошо согласуется с методом пошаговой детализации при разработке алгоритма.
Отсутствие строгих синтаксических правил для записи команд облегчает запись алгоритма на стадии проектирования. В псевдокоде имеются некоторые конструкции, присущие формальным языкам, что облегчает переход к этим языкам.
Способ записи на языке программирования позволяет записать алгоритм, который может непосредственно обрабатываться ЭВМ. Каждый язык программирования имеет свой набор символов, правила написания языковых конструкций (синтаксис) и смысловые толкования этих конструкций (семантику). Алгоритм, написанный на языках программирования, является программой, состоящей из операторов. Оператор может описывать действия, задавать значения или их тип. [3]
Кодирование
После того как определены требования к программе и составлен алгоритм решения, алгоритм записывается на выбранном языке программирования. В результате получается исходная программа.
Программа представляет собой последовательность операторов языка программирования, записанных в соответствии со схемой алгоритма.
Разработка программы начинается с выбора языка программирования, который определяет типы и структуры обрабатываемых данных, набор функциональных операторов и структуру программы. Трудность перехода от алгоритма к программе заключается в том, что алгоритм может представляться с разными степенями детализации. Отдельный шаг алгоритма может потребовать записи нескольких операторов или подпрограммы. Приступая к разработке программы, необходимо определить имена и типы переменных, размеры массивов, количество и виды подпрограмм.
Запись программы осуществляется в соответствии с синтаксисом языка. Для наглядности следует записывать по одному оператору на строке, вложенные операторы (особенно в условном операторе или операторе цикла) сдвигать на 2-3 позиции вправо. На 5-10 строк текста программы желательно записывать комментарий, что делает программу самодокументируемой; при этом можно обойтись без дополнительного описания.
Качество разрабатываемых программ определяется рядом характеристик, описывающих требуемые свойства. В зависимости от назначения программы требования, предъявляемые к характеристикам ее, могут меняться. К наиболее важным характеристикам, определяющим свойства программ, относятся надежность программ, простота пользования, мобильность, удобство эксплуатации, эффективность, совместимость, испытуемость, стоимость, полная документируемость.
Под надежностью программы понимается свойство выдавать правильные результаты при всех возможных входных данных, если эти данные являются допустимыми. Важно, чтобы возможные ошибки не вели к фатальным последствиям и могли быть быстро исправлены. Надежность оценивается вероятностью безошибочного функционирования программы в определенный период времени.