Основные этапы решения задач на ЭВМ

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

  1. Постановка задачи:
  • сбор информации о задаче;
  • формулировка условия задачи;
  • определение конечных целей решения задачи;
  • определение формы выдачи результатов;
  • описание данных (их типов, диапазонов величин, структуры и т. п.).

Форма представления: естественный язык.

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

  1. Анализ и исследование задачи, модели:
  • анализ существующих аналогов;
  • анализ технических и программных средств;
  • разработка математической модели;
  • разработка структур данных.

Форма представления: естественный язык или язык математики.

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

  1. Разработка алгоритма:
  • выбор метода проектирования алгоритма;
  • выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
  • выбор тестов и метода тестирования;
  • проектирование алгоритма.

Форма представления: язык математики, псевдоязык, набор диаграмм.

На основе математического описа­ния необходимо разработать алгоритм решения. Используются различные способы записи алгорит­мов. Широко распространен словесный способ записи. Наглядно представляется алгоритм языком блок-схем.

  1. Программирование:
  • выбор языка программирования;
  • уточнение способов организации данных;
  • запись алгоритма на выбранном языке программирования.

Форма представления: язык программирования.

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

  1. Тестирование и отладка:
  • синтаксическая отладка;
  • отладка семантики и логической структуры;
  • тестовые расчеты и анализ результатов тестирования;
  • совершенствование программы.

Форма представления: язык программирования или машинный язык.

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

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

  1. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

Форма представления: язык таблиц, графиков, рисунков.

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

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

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

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

Форма представления:  математический или естественный язык.

Категории специалистов, занятых разработкой и эксплуатацией программного обеспечения.

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

Системный программист (system/software programmer, toolsmith) — занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для выполнения программ.

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

Программист-аналитик (programmeranalyst) — программист, анализирующий и проектирующий комплекс взаимосвязанных программ.

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

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

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

Основным потребителем программ является конечный пользователь (end user), который, как правило, не является специалистом в области программирования.

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

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

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