Основные этапы технологического процесса разработки программ решения экономических задач на ЭВМ.
Решение задач на ЭВМ представляют собой процесс получения результатной информации на основе обработки исходной с помощью программы, составленной из команд системы управления работой отдельных устройств вычислительной машины. Создание такой программы решения задачи предполагает выполнение ряда последовательных этапов технологического процесса.
Рис.1
1 – экономико-математическое описание и выбор метода;
2 – разработка (выбор и адаптация) алгоритма решения;
3 – разработка программы решения задачи;
4 – тестирование и отладка программы.
В зависимости от специфических особенностей конкретной задачи (её вычислительные и логические сложности, состава и структуры исходной промежуточной и результатной информации), профессионального уровня подготовки специалистов и ряда других факторов. Некоторые этапы, представленные на схеме могут быть объединены в более крупные этапы:
1.Первый этап технологического процесса представляет собой постановку задачи. На этом этапе раскрывается организационно-экономическая сущность задачи, то есть формулируется цель её решения. Раскрывается состав и формула представления входной, промежуточной и результативной информации. Характеризуются формы и методы контроля достоверности информации на ключевых этапах решения задачи. Специфицируются формы взаимодействия пользователя с ЭВМ в ходе решения задачи и т. д.
Особое внимание в процессе постановке задачи уделяется детальному описанию входной, выходной, результатной и промежуточной информации. При этом характеризуются:
Форма представления отдельных реквизитов (цифровая, символьная);
Количество знаков (разрядов), выделяемых для записи реквизитов, выходя из их максимальной значимости;
Вид реквизита в процессе решения задачи (расчетный, первичный, нормативный, справочный);
Источник (документ) возникновения реквизита.
Кроме того, для цифровой информации указывается целочисленный или дробный характер реквизита (для дробных величин дополнительно указывается количество деятельных знаков (разрядов), выделяемых для записи дробной части и допустимый диапазон изменения величин (то есть максимальное и минимальное значение реквизита)). Для расчётных реквизитов даётся соответствующее описание реквизитов, и выделяются те реквизиты, которые используются при последующих решениях задач, так как эта информация должна сохраняться в памяти ЭВМ.
Важной особенностью экономических задач является использование в процессе их решения массивов условной постоянной информации, отражающей многократно используемые справочные, нормативные, расчетные и другие сведения. Данная информация детально специфицируется в соответствии с общими требованиями к описанию информации, а также указываются периодичность внесения изменений в эти массивы. Завершается постановка задачи описанием контрольного примера, демонстрирующего порядок решения задачи традиционным способом.
Основное требование к контрольному примеру – отражение всего многообразия возможных форм существования исходных данных. Контрольный пример сопровождается перечислением внештатных ситуаций, которые могут возникнуть при решении задачи и описании действий пользователя в каждой конкретной ситуации.
2.Экономико-математическое описание задачи и выбор метода её решения. На втором этапе технического процесса разработки программы выполняется формализованное написание задачи, то есть устанавливаются и формулируются средствами языка математики многие математические зависимости между исходными и результатными данными. Второй этап обеспечивает её однозначное понимание поставщиком (пользователем) задачи и разработчиком программы, реализующим эту задачу. В процессе подготовки экономико-математического описания задачи (модели задачи) могут использоваться различные разделы математики, особенно прикладной. При решении экономических задач наиболее часто используются следующие классы моделей для формализованного описания их постановок:
Аналитические (вычислительные);
Матричные (балансовые);
Графические (частный вид – сетевые).
Выбор класса моделей, а иногда и конкретной формы её представления внутри одного и того же класса в ряде случаев позволяет не только облегчить и ускорить процесс решения задачи, но иногда и повысить точность получаемых результатов. Хотя математическая запись постановки задачи, как правило, отличается высокой точностью отображения её сущности, лаконичностью её записи, а главное – однозначностью понимания не для всех задач может быть выполнена. Для задач, допускающих возможность экономико-математического описания необходимо выбрать численный метод решения, а для нечисловых задач – принципиальную схему решения в виде однозначно понимаемой последовательности выполнения элементарных математических и логических функций (операций). При выборе метода решения задачи предпочтения отдаются методу, который наиболее полно удовлетворяет к следующим основным требованиям:
Обеспечивает необходимую точность получаемых результатов, не обладает свойством вырождения (бесконечным зацикливанием на каком-либо участке задач при определенных исходных данных);
Позволяет использовать уже готовые стандартные программы для решения задачи или её отдельных фрагментов;
Ориентирован на минимальный объем исходной информации;
Обеспечивает наиболее быстрое получение искомых результатов решений.
3. Алгоритмизация решения, то есть разработка оригинального или адаптация (уточнение и корректировка) уже известного алгоритма. Постановка задачи и её алгоритмизация составляют порядка 20-30% общего времени на разработку программных средств решения задачи.
Схема процесса алгоритмизации решения задач:
Выделение автономных этапов процесса решения задачи (как правило, с одним входом и выходом).
Формализованное описание содержания работ, выполняемых на каждом выделенном этапе.
Проверка правильности реализации выбранного алгоритма на различных примерах решения задач.
Согласно ГОСТу алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
Свойства алгоритма
Свойства алгоритма—набор свойств, отличающих алгоритм от любых предписаний и обеспечивающих его автоматическое исполнение.
Понятность алгоритма для данного исполнителя – содержание предписания о выполнении только таких действий и о проверке только таких свойств объектов, которые входят в систему команд исполнителя, т.е. алгоритм должен быть задан с помощью таких указаний, которые ЭВМ может воспринимать и выполнять по ним требуемые действия (операции).
Дискретность – выполнение команд алгоритма последовательно, с точной фиксацией моментов окончания выполнения одной команды и начала выполнения следующей, т. е. алгоритм должен содержать последовательность указаний (команд), каждое из которых приводит к выполнению в ЭВМ одного шага.
Определенность (точность) – точные сведения о том, что после выполнения каждой очередной команды завершено выполнение алгоритма, либо о том, какая следующая команда должна выполняться, т.е. алгоритм должен предусматривать определенный порядок выполнения действий, так как ЭВМ должно быть указано, какую следующую команду исполнять после завершения текущего указания.
Результативность –либо завершение решения задачи после выполнения алгоритма, либо вывод о невозможности продолжения решения по какой-либо из причин, т.е. алгоритм должен обеспечивать возможность получения результата после конечного числа шагов.
Массовость –единообразное применение алгоритма к любой конкретной формулировке задачи, для решения которой он разработан (см. также Алгоритмическая универсальность), т.е. алгоритм должен обеспечивать возможность его применения для решения класса однотипных задач.
Команда алгоритма – предписание о выполнении отдельного законченного действия исполнителя.
В процессе алгоритмизации задачи исходный алгоритм разбивают на отдельные частные алгоритмы (шаги).
Частные алгоритмы могут быть линейными, разветвляющимися и циклическими.
Линейный алгоритм –набор команд (указаний), выполняемых последовательно во времени друг за другом.
Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЦВМ обеспечивает переход на один из двух возможных шагов.
Циклический алгоритм –алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными.
К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.
Цикл программы –последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.
Вспомогательный (подчиненный) алгоритм (процедура) –алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.
На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма.
Алгоритмы могут записываться различными способами, например, в виде блок-схем или в виде программ.
Структурная (блок-, граф-) схема алгоритма – графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линии перехода) блоков - графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, так как зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Задание и запись алгоритма для решения задачи с помощью ЭВМ при программировании ведутся с использованием некоторого алгоритмического языка, который должен описывать алгоритм с любой степенью детализации. Недостатки: громоздкость описания (как следствие низкая наглядность), отсутствие строгой формализации в силу неоднозначности восприятия естественного языка.
Формульно-словесный основан на записи содержания выполняемых действий, с использованием изобразительных возможностей языка математики, дополненного с целью указания необходимых пояснений средствами естественного языка. Обладая всеми достоинствами словесного, вместе с тем более лаконичен, более нагляден, имеет большую формализацию, однако также не является строго формальным.
Графический представляет собой изображение логико-математической структуры алгоритма, при которой все этапы обработки данных представляются с помощью определённого набора геометрических фигур (блоков), и имеющих строго определённую конфигурацию в соответствии с характером выполняемых действий.
Для облегчения процесса разработки и восприятия графического изображения алгоритмов, их составление осуществляется в соответствии с требованием ГОСТа:
схемы алгоритмов программ, данных и систем, условные обозначения и правила выполнения.
Схемы алгоритмов и программ, обозначения условные графические.
По назначению и характеру отображаемых функций условные графические изображения делятся на основныеивспомогательные.
Основныесимволы используются для представления операций, раскрывающих характер обработки данных в процессе решения задач. Вспомогательныесимволы предназначены для пояснения отдельных элементов схемы алгоритма, а также для обозначения связей между ними. Изображение схем алгоритма осуществляется по правилам, призванным повысить их наглядность и однозначность восприятия, что обеспечивает обнаружение логических ошибок программы.
Все схемы алгоритмов должны начинаться и заканчиваться соответствующими символами, обозначающими начало и конец алгоритма.
Все блоки в схеме располагаются сверху вниз, слева направо, объединяясь между собой линиями потока. В случае нормального расположения блоки не нумеруются. В противном случае нумеруются.
Основные графические обозначения блоков алгоритмов и программ.
– блок вычисления
– ввод, вывод
– проверка условий
– модификация
– подпрограмма:
Необходимые условия корректности схем алгоритмов является недопустимость более чем одного выхода из символов, обозначающие обрабатываемые блоки и не менее двух выходов и символов, обозначающих логические5 операции по проверке выполнения условия. С целью повышения наглядности графической схемы алгоритма могут сопровождаться кратким, формульно-словесным описанием внутри условного обозначения блока, раскрывающих содержание выполняемой операции.
В случае необходимости представления более развёрнутых пояснений к блокам или линиям потока используются комментарии, идентифицируемые в схемах с помощью специальных изобразительных средств.
Для обозначения условий передачи управления от блоков логических операций над соответствующими линиями потока могут записываться операции отношения или символы да, нет. Для удобства работы со схемами алгоритмов все блоки на схеме идентифицируются с помощью цифр или их сочетаний с буквами.
Идентификаторы блоков размещаются в левой верхней части условного обозначения в разрыве их контура.
Для обозначения связи между удалёнными друг от друга блоками соответствующие им линии потока можно разрывать. В этом случае вначале и конце линии обрыва потока изображаются специальные символы:
При отражении связей между блоками, расположенными на одной и той же странице, внутри страничные соединители с идентификаторами, как правило, совпадающие с идентификаторами соответствующих блоков перехода
При отражении связи между блоками, расположенными на разных страницах, межстраничные соединители, в которых помимо идентификации блоков отражаются номера соответствующих страниц.
Операторный способ записи алгоритмов представляет последовательность операций процесса обработки данных с помощью заданного набора символов, обозначающих ту или иную операцию. В – ввод, Р. – проверка условия.
Последовательность выполнения операций алгоритма определяется расположением операторов в схеме (при чтении слева направо) в соответствии с цифровой индексацией.
Передача управления от оператора к оператору осуществляется в порядке следования символов записи алгоритма. В случае отсутствия передачи управления от очередного оператора к последующему, между ними ставится признак завершения ветви алгоритма, а именно (;). Нарушение естественного порядка выполнения оператора отображаются с помощью стрелок.
Использование операторного способа представления упрощает процесс записи алгоритма, но малонагляден.
Для отображения алгоритмов решения многовариантных расчетов с большим количеством проверок условий, определяющих выбор той или иной ветви процесса обработки информации, используются таблицы решений. Имеется возможность применения их для описания параллельных процессов, а также для описания логики построения модифицируемых процессов. Специфика обработки экономической информации ограничивает эффективность применения таблиц решения. Здесь таблицы решения используются главным образом в качестве дополнений к основным способам описания алгоритмов.
4.Составление программ или кодирование является завершающим этапом процесса разработки программных средств предшествующим непосредственно началу машинной реализации алгоритма решения задач.
В процессе составления программ на ЭВМ конкретизируются тип и структура используемых данных, а последовательность действий, реализующих алгоритм, отражается посредством языка программирования.
5. Тестирование и отладка составляет заключительный этап разработки программы решения задач. Оба эти процесса функционально связаны между собой, хотя их цели отличаются друг от друга.
Тестирование представляет совокупность действий, предназначенных для демонстрации правильности работы программы в заданных диапазонах изменения внешних условий и режимов эксплуатации программы. Цель тестирования заключается в демонстрации отсутствия или выявления ошибок в разработанных программах на наборе заранее подготовленных контрольных примеров. Процессу тестирования сопутствует понятие «отладка», которое подразумевает совокупность действий, направленных на устранение ошибок в программах, начинающихся с момента обнаружения фактов ошибочной работы программы и завершающихся устранением причин их возникновения.
По своему характеру ошибки бывают синтаксические и логические. Синтаксические ошибки – это некорректная запись отдельных языков конструкций с точки зрения правил их представления на выбранном языке программирования. Эти ошибки выявляются автоматически при трансляции исходной программы, после устранения синтаксических ошибок проверяется логика работы программы на заданных исходных данных. При этом возможны следующие виды проявления логических ошибок:
в какой-то момент не может продолжить работу (прерывание) с сообщением оператора;
программа работает, но не выдаёт всех запланируемых результатов и не выходит на остановку (происходит зацикливание);
программа выдаёт результаты и завершает работу, но они полностью или частично не совпадают с контрольными.
Программа считается отлаженной, если она безошибочно выполняет на достаточно представительном наборе данных, обеспечивающих проверку всех её ветвей. Процесс тестирования и отладки программ могут составлять порядка 30-50% в общей структуре затрат времени на разработку проекта и зависит от объёма и логической сложности разрабатываемых программных комплексов.
Для сокращения затрат на проведение тестирования и отладки в настоящее время широко используют специальные программные средства тестирования (например трассировки программ).
После завершения процесса тестирования и отладки программные средства вместе с сопроводительной документацией передаются пользователю для эксплуатации.
Основное назначение сопроводительной документации – обеспечить пользователя инструктивными материалами по работе с программными средствами. Как правило, это документы, регламентирующие работу пользователя при эксплуатации программных средств, а также содержащие информацию о программе, необходимую для изменений и дополнений в ней, которые могут потребоваться с целью дальнейшей её модернизации. Сопроводительная документация признана облегчить процесс выяснения причин в ходе эксплуатации переданных пользователю программ.
Состав сопроводительной документации обычно оговаривается заказчиком (пользователем) и разработчиком технического задания на программные средства. Для передачи пользователю разработанных программных средств обычно создаются специальные комиссии, включающие в свой состав, как представителей разработчика, так и пользователя. Комиссия в соответствии с заранее утверждёнными обеими сторонами планом проводит работы по приёмке передачи программных средств и сопроводительной документации. По завершении работы комиссии оформляется акт приёмки передачи. В процессе эксплуатации программных средств могут выявляться ошибки, не обнаруженные разработчиком при тестировании и отладке программных средств. При разработке сложных и ответственных программных комплексов по согласованию с пользователем, заказчиком и разработчиком. Этап эксплуатации программных средств может быть разбит на 2 подэтапа: экспериментальная (опытная) и промышленная эксплуатация.
Экспериментальная эксплуатация заключается во внедрении разработанных программных средств на объекте заказчика (иногда параллельно с традиционными методами решения задач). С целью проверки неработоспособности при решении реальных задач в течение достаточно большого периода времени (обычно не менее года).
После завершения экспериментальной эксплуатации и устранения при этом ошибок, программное средство передаётся в промышленную эксплуатацию. Для повышения качества работ оперативности исправления ошибок, выявленных при эксплуатации программных средств, а также выполнение различного рода модификаций по согласованию с заказчиком, разработчик может осуществлять сопровождение программных средств. Целесообразность привлечения высококвалифицированных специалистов для сопровождения программных средств и пользователей объясняется тем, что затраты на сопровождение программ чаще превосходят затраты на приобретение программных средств.
Описанная схема технического процесса разработки и эксплуатации программных средств отражает их жизненный цикл.
Дата добавления: 2016-04-14; просмотров: 2947;