Редактирование: Программирование
Материал из Documentation.
Перейти к:
навигация
,
поиск
'''Программирование''' — процесс создания программного обеспечения.<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> Программирование включает: анализ предметной области — выделение требований к программе и точную постановку решаемых задач; проектирование программы — выделение компонентов или модулей на основе отд. решаемых задач, определение способов взаимодействий между ними, определение алгоритмов работы и структур данных, используемых каждым модулем; кодирование — написание отд. модулей на определённых [[Язык программирования|языках программирования]]; выявление дефектов и ошибок при помощи тестирования (проверка программы на наборе заранее выбранных сценариев, позволяющем оценить её корректность) и др. методов верификации, а также отладку программы; развёртывание — размещение программы в её рабочем окружении, настройка и подготовка её к работе, обучение пользователей работе с программой; сопровождение — поддержка работоспособности, настройка под изменяющееся окружение, выявление дефектов и новых задач, внесение исправлений и изменений. Сопровождение играет особую роль, поскольку мн. программы используются в течение десятилетий и должны изменяться в соответствии с изменением решаемых задач или их масштабов, появлением новых устройств или необходимости во взаимодействии с др. программами. В рамках сопровождения много раз проводится перепроектирование, кодирование и тестирование, а также добавление новых компонентов, поэтому бо́льшая часть затрат на разработку программы падает на него. Дополнит. сложности для сопровождения и развития программ возникают из-за размеров и сложности совр. программных систем, достигающих десятков млн. строк кода, на разл. языках программирования. Такие масштабы программных систем стали возможны за счёт использования подпрограмм и компонентов, позволяющих создавать иерархич. системы из большого количества небольших программ.<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> Перечисленные виды деятельности при П. обычно выполняются не в жёстко заданной последовательности, а по мере необходимости; напр., исправление ошибки, обнаруженной при тестировании, может потребовать дополнит. анализа требований, уточнения задач и выбора др. алгоритма работы содержащего ошибку модуля. Процессы разработки программного обеспечения, предписывающие определённые правила создания программ, с целью упрощения планирования работ могут налагать разл. ограничения на возможные последовательности выполнения таких действий.<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> В зависимости от поставленных целей, размерности задачи, методов решения различают параллельное программирование, распределённое программирование и др. Слово «П.» используется также в некоторых устоявшихся словосочетаниях, напр. динамическое программирование, линейное программирование, математическое программирование, где оно обычно является синонимом слова «планирование». Языки программирования поддерживают разл. стили П. (парадигмы программирования). В искусство П. входит выбор языка программирования, наиболее полно подходящего для решения поставленной задачи.<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> Большинство методов и технич. приёмов П. не универсальны, применимы лишь для специфич. видов программ (прикладные, системные, встроенные). Однако можно выделить как базовые следующие три принципа П.: модульность — существенно разл. задачи должны решаться разными программными компонентами, взаимодействующими друг с другом через чётко определённые интерфейсы, и не зависеть от внутр. алгоритмов и структур данных друг друга (см. в ст. Модульное программирование); использование абстракций — решение любой задачи необходимо оформлять в терминах набора сущностей, достаточных для описания всех существенных элементов задачи и не содержащих лишней, несущественной информации; многократное использование кода — каждый отд. элемент знания о задаче или её решения должен быть описан однократно, следует избегать дублирования информации и описаний одних и тех же знаний и/или решений в нескольких разл. местах в коде программы, поскольку при изменении требований исправлять такую программу гораздо сложнее.<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> == История == {{main|История программирования}} Первым программистом, написавшим в 1843 году программу (вычисление чисел Бернулли) для вычислительного устройства (аналитической машины [[Ч. Бэббидж]]а), считается гр. [[А. Лавлейс]]. П. на первых компьютерах осуществлялось путём установки переключателей в нужные положения; программ как таковых ещё не существовало. Первая ЭВМ с хранимой в памяти программой (реализация т. н. принципов [[фон Нейман]]а) — [[EDSAC]] (1949 год). Развитие П. (в нач. 1950-х годов) связано с переходом от написания программ на языках машинных инструкций к более удобным для восприятия человека языком [[ассемблер]], а затем — к языкам высокого уровня, независимым от архитектуры компьютера, первыми из которых были [[фортран]] (1954—1957 годы) и [[лисп]] (1958 год).<ref>[https://bigenc.ru/mathematics/text/3178905]</ref> == Ссылки == * [http://siliconrus.com/2014/03/code/ Девять сервисов для обучения программированию. 7 марта 2014] * [http://habrahabr.ru/post/156241/ 27+ ресурсов для онлайн-обучения. 29 октября 2012] * [http://habrahabr.ru/company/roem/blog/214297/ Минобрнауки: программированию нельзя учить исключительно дистанционно. 1 марта 2014] * [https://www.microsoft.com/learning/ru-ru/default.aspx Компьютерное обучение по продуктам и технологиям Microsoft] * [http://www.microsoftvirtualacademy.com/ Microsoft Virtual Academy] * [http://www.itshop.ru/Level31.asp?Firm=0&Category=0&company=16&Type=training Курсы обучения по продуктам компании Microsoft] * [http://www.certifications.ru/tests/list/ Центр онлайн тестирования] == Примечания == <references /> [[Категория:Программирование| ]]
Описание изменений:
Отменить
|
Справка по редактированию
(в новом окне)
Шаблоны, использованные на текущей версии страницы:
Шаблон:Main
Просмотры
Статья
Обсуждение
Править
История
Личные инструменты
Представиться системе
Навигация
Заглавная страница
Случайная статья
Инструменты
Ссылки сюда
Связанные правки
Загрузить файл
Спецстраницы