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

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

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

• сбор информации о задаче;

• формулировка условия задачи;

• определение конечных целей решения задачи;

• определение формы выдачи результатов;

• описание данных (их типов, диапазонов величин, структуры и т. п.).

2. Анализ и исследование задачи, модели:

• анализ существующих аналогов;

• анализ технических и программных средств;

• разработка математической модели;

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

3. Разработка алгоритма:

• выбор метода проектирования алгоритма;

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

• выбор тестов и метода тестирования;

• проектирование алгоритма.

4. Программирование:

• выбор языка программирования;

• уточнение способов организации данных;

• запись алгоритма на выбранном языке

программирования.

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

• синтаксическая отладка;

• отладка семантики и логической структуры;

• тестовые расчеты и анализ результатов тестирования;

• совершенствование программы.

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

7. Сопровождение программы:

• доработка программы для решения конкретных задач;

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

  • Корректность – очевидно, что программа должна работать правильно, иначе нет смысла ее писать.
  • Надежность – программа не должна «зависать» или «зацикливаться» при любых исходных данных.
  • Эффективность – программа должна использовать, по возможности, минимальное количество ресурсов, как по памяти (хотя в настоящее время это стало менее актуально), так и по времени (это проблема остается актуальной, особенно при обработке больших массивов данных или при решении задач, в которых время обработки экспоненциально зависит от размерности исходных данных).
  • Эргономичность – удобство для пользователя. Не забывайте, что первым пользователем Вашей программы будете Вы сами.
  • Читабельность – удобство для программиста. К сожалению, по прошествии времени, программа забывается, и давно написанную Вами программу невозможно прочитать как книгу, Вы должны заново принимать все когда-то принятые решения. Поэтому нет смысла создавать себе дополнительные трудности в виде плохо структурированного и плохо читаемого текста. Для решения этой проблемы существует ряд принципов написания текста программы.
    1. Не стоит писать, как слишком длинные строки – они уходят за пределы экрана по ширине, так и слишком короткие строки – они увеличивают длину не только всей программы, но и каждого отдельного блока, который Вы в этом случае не можете охватить взглядом и оценить, что он делает.
    2. Принято вложенные блоки писать со смещением вправо.
    3. Используйте везде, где можно, аккуратные столбцы.
    4. Не жалейте пробелов – «а + b» читается лучше, чем «a+b».
    5. Не прячьте операторные скобки (begin … end в Паскале, {…} в С) в конец строки – в этом случае их трудно найти и определить начало и конец блока.
  • Переносимость – программа должна работать не только на Вашем компьютере, но и на других!

· Обобщенная модель жизненного циклапрограммного изделия может выглядеть так:

· I. Системный анализ:

· а) исследования;

· б) анализ осуществимости:

· - эксплуатационной;

· - экономической;

· - коммерческой.

· II. Проектирование программного обеспечения:

· а) конструирование:

· - функциональная декомпозиция системы, ее архитектура;

· - внешнее проектирование программного обеспечения;

· - проектирование базы данных;

· - архитектура программного обеспечения;

· б) программирование:

· - внутреннее проектирование программного обеспечения;

· - внешнее проектирование программных модулей;

· - внутреннее проектирование программных модулей;

· - кодирование;

· - отладка программ;

· - компоновка программ;

· в) отладка программного обеспечения.

· III. Оценка (испытания) программного обеспечения.

· IV. Использование программного обеспечения:

· а) эксплуатация;

· б) сопровождение.

Наши рекомендации