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