Программирование
Материал из Documentation.
Программирование — процесс создания программного обеспечения.[1]
Программирование включает: анализ предметной области — выделение требований к программе и точную постановку решаемых задач; проектирование программы — выделение компонентов или модулей на основе отд. решаемых задач, определение способов взаимодействий между ними, определение алгоритмов работы и структур данных, используемых каждым модулем; кодирование — написание отд. модулей на определённых языках программирования; выявление дефектов и ошибок при помощи тестирования (проверка программы на наборе заранее выбранных сценариев, позволяющем оценить её корректность) и др. методов верификации, а также отладку программы; развёртывание — размещение программы в её рабочем окружении, настройка и подготовка её к работе, обучение пользователей работе с программой; сопровождение — поддержка работоспособности, настройка под изменяющееся окружение, выявление дефектов и новых задач, внесение исправлений и изменений. Сопровождение играет особую роль, поскольку мн. программы используются в течение десятилетий и должны изменяться в соответствии с изменением решаемых задач или их масштабов, появлением новых устройств или необходимости во взаимодействии с др. программами. В рамках сопровождения много раз проводится перепроектирование, кодирование и тестирование, а также добавление новых компонентов, поэтому бо́льшая часть затрат на разработку программы падает на него. Дополнит. сложности для сопровождения и развития программ возникают из-за размеров и сложности совр. программных систем, достигающих десятков млн. строк кода, на разл. языках программирования. Такие масштабы программных систем стали возможны за счёт использования подпрограмм и компонентов, позволяющих создавать иерархич. системы из большого количества небольших программ.[2]
Перечисленные виды деятельности при П. обычно выполняются не в жёстко заданной последовательности, а по мере необходимости; напр., исправление ошибки, обнаруженной при тестировании, может потребовать дополнит. анализа требований, уточнения задач и выбора др. алгоритма работы содержащего ошибку модуля. Процессы разработки программного обеспечения, предписывающие определённые правила создания программ, с целью упрощения планирования работ могут налагать разл. ограничения на возможные последовательности выполнения таких действий.[3]
В зависимости от поставленных целей, размерности задачи, методов решения различают параллельное программирование, распределённое программирование и др. Слово «П.» используется также в некоторых устоявшихся словосочетаниях, напр. динамическое программирование, линейное программирование, математическое программирование, где оно обычно является синонимом слова «планирование». Языки программирования поддерживают разл. стили П. (парадигмы программирования). В искусство П. входит выбор языка программирования, наиболее полно подходящего для решения поставленной задачи.[4]
Большинство методов и технич. приёмов П. не универсальны, применимы лишь для специфич. видов программ (прикладные, системные, встроенные). Однако можно выделить как базовые следующие три принципа П.: модульность — существенно разл. задачи должны решаться разными программными компонентами, взаимодействующими друг с другом через чётко определённые интерфейсы, и не зависеть от внутр. алгоритмов и структур данных друг друга (см. в ст. Модульное программирование); использование абстракций — решение любой задачи необходимо оформлять в терминах набора сущностей, достаточных для описания всех существенных элементов задачи и не содержащих лишней, несущественной информации; многократное использование кода — каждый отд. элемент знания о задаче или её решения должен быть описан однократно, следует избегать дублирования информации и описаний одних и тех же знаний и/или решений в нескольких разл. местах в коде программы, поскольку при изменении требований исправлять такую программу гораздо сложнее.[5]
[править] История
Первым программистом, написавшим в 1843 году программу (вычисление чисел Бернулли) для вычислительного устройства (аналитической машины Ч. Бэббиджа), считается гр. А. Лавлейс. П. на первых компьютерах осуществлялось путём установки переключателей в нужные положения; программ как таковых ещё не существовало. Первая ЭВМ с хранимой в памяти программой (реализация т. н. принципов фон Неймана) — EDSAC (1949 год). Развитие П. (в нач. 1950-х годов) связано с переходом от написания программ на языках машинных инструкций к более удобным для восприятия человека языком ассемблер, а затем — к языкам высокого уровня, независимым от архитектуры компьютера, первыми из которых были фортран (1954—1957 годы) и лисп (1958 год).[6]
[править] Ссылки
- Девять сервисов для обучения программированию. 7 марта 2014
- 27+ ресурсов для онлайн-обучения. 29 октября 2012
- Минобрнауки: программированию нельзя учить исключительно дистанционно. 1 марта 2014
- Компьютерное обучение по продуктам и технологиям Microsoft
- Microsoft Virtual Academy
- Курсы обучения по продуктам компании Microsoft
- Центр онлайн тестирования