Разработка программных средств различного назначения состоит из трех фаз: анали-за, проектирования (алгоритмизации) и реализации (программирования). Основное назначения этих фаз:
• анализа — определить требования к программе: что она должна делать и в каких условиях работать;
• проектирования — определить составные части программы и порядок их взаи-модействия: как они должны работать, чтобы удовлетворить разработанным на предыдущей фазе требованиям;
• реализации — согласно результатам проектирования написать программу на вы-бранном языке (реже — языках) программирования и отладить ее, т. е. добиться ее устойчивой правильной работы при различных вариантах исходных данных и режимах функционирования.
Фазы анализа и проектирования завершаются созданием документации, содержа-щей, в частности, набор моделей, описывающих базисные составные части разрабатывае-мой программы. Состав этого набора определяется выбранной методологией и методом разработки.
На Западе традиционно алгоритмизацией и программированием (кодированием) за-нимаются разные люди. За счет этого разделение фаз очень четкое. В России же считает-ся, что программист должен быть «мастером на все руки». Часто ради кажущейся эконо-мии времени некоторые важные этапы пропускаются («Зачем составлять алгоритм, и так все ясно, можно сразу писать программу»), что порождает значительные проблемы в дальнейшем, когда программа по непонятным причинам начинает работать не так, как ожидалось. Важно понимать, что все стадии нужны; не менее важно осознавать их назна-чение. Именно поэтому тема работы столь актуальна.
Цель данной работы — рассмотрение понятий «алгоритмизация» и «программирова-ние». Для достижения цели необходимо решить несколько задач, в соответствии с кото-рыми построена структура реферата. Во-первых, следует рассмотреть алгоритмизацию, дать определение алгоритма, остановиться на его свойствах и способах записи, перечис-лить наиболее значимые алгоритмические структуры. Затем можно перейти к понятию программирования. В этой главе целесообразно описать языки программирования и си-стемы программирования, обозначить различия компиляторов и интерпретаторов.