Программирование
| Эта статья должна быть полностью переписана.
На странице обсуждения могут быть пояснения.
|
| Процесс разработки ПО | |
| Шаги процесса | |
|---|---|
|
Анализ • Проектирование • Реализация • Тестирование • Внедрение • Сопровождение |
|
| Модели / Методы | |
|
Agile (XP, Lean, Scrum и др.) • Cleanroom • Итеративная (OpenUP) • RAD • RUP • MSF • Спиральная • Каскадная • V-Model • Dual Vee Model • DSDM |
|
| Сопутствующие дисциплины | |
|
Конфигурационное управление • Документирование • Управление проектами • Управление требованиями |
|
Программи́рование — одновременно наука и искусство создания программ для компьютеров PC и\или создания программного обеспечения, к которому относятся, например, языки программирования. Программирование сочетает в себе элементы искусства, фундаментальных наук (прежде всего информатика и математика). Цель программирования состоит в том, чтобы создать программу, которая показывает некоторые итоговые расчеты, рисунки, ответы:
- на задачи, заданные с кейборда-клавиатуры, пользователем PC.
- в автономном режиме-независимо от пользователя PC.
Процесс написания исходного текста часто требует навыков по многим различным предметам, включая
- знание прикладной области, например, СМИ-деятельность или шахматы, или налоговое законодательство и др.
- знание типовых и\или специализированных алгоритмов, пошаговых решений задач.
- знание формальной логики.
В пределах разработки программного обеспечения, программирование расценено как одна фаза в процессе разработки софта.
В общем смысле слова, программирование — формализация/формулизация предопределенного/предсказуемого состояния, по реакции на событие, реализуемого средствами математики или естественных наук.
В узком смысле слова, программирование рассматривается как кодирование алгоритмов на заданном языке программирования. Под программированием также может пониматься разработка логической схемы для ПЛИС, а также процесс записи информации в ПЗУ. В более широком смысле программирование — процесс создания программ, то есть разработка программного обеспечения.
Программирование включает в себя:
- Анализ
- Проектирование — разработка комплекса алгоритмов
- Кодирование и компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора
- Тестирование и отладку — выявление и устранение ошибок в программах
- Испытания и сдачу программ
- Сопровождение
Содержание |
[править] Языки программирования
Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ на одном из языков программирования. Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей.
Различные языки программирования поддерживают различные стили программирования (т. н. парадигмы программирования). Отчасти искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).
Единственный язык, напрямую выполняемый процессором — это машинный язык (также называемый машинным кодом). Изначально все программисты прорабатывали программы в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого программисты пишут исходный код на языке программирования высокого уровня, и компьютер (используя компилятор, интерпретатор или ассемблер) транслирует его, в один или несколько этапов, уточняя все детали, в машинный код, готовый к исполнению на целевом процессоре. Даже если требуется полный низкоуровневый контроль над системой, программисты пишут на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора.
В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код «виртуальной машины», также называемый байт-кодом (byte-code). Такой подход применяется в Forth, некоторых реализациях Lisp, Java, Perl, Python, .NET Framework.
[править] Программные средства
Программные средства, используемые при разработке программ делятся на системные и инструментальные, лицензионные и свободно распространяемые. В системном обеспечении основными являются операционные системы, инструментальные средства и технологии Windows, Mac OS X и Linux и прочих операционных систем.
Свободно распространяемые инструментальные средства можно устанавливать и использовать на любых компьютерах с операционными системами семейства Windows, Mac OS X и Linux. На олимпиадах по информатике и программированию с успехом используются только свободно распространяемые инструментальные средства в среде Windows, Mac OS X и Linux, позволяющие разрабатывать программное обеспечение без ошибок. На олимпиадах по программированию последние годы использовались языки программирования Паскаль, C/C++ и Java.
Для ведения документации при разработках программ вполне могут использоваться лицензионные и свободно распространяемые офисные пакеты программ OpenOffice.org и Microsoft Office. Файлы документации, создаваемые в лицензионных и свободно распространяемых офисных программах, информационно совместимы.
[править] См. также
| программирование в Викисловаре? | |
| Программирование в Викиучебнике? | |
| Программирование в Викиверситете? | |
| Программирование в Викицитатнике? | |
| Категория:Программирование в Викитеке? | |
| Category:Programming на Викискладе? | |
| Категория:Программное обеспечение в Викиновостях? |
- Структурное программирование
- Логическое программирование
- Экстремальное программирование
- Экспертная система
- База знаний
- Логика в информатике
- Хакер
- Защита информации
- Информационная безопасность
- Олимпиады по программированию
- Блок-схема
[править] Литература
- Дейкстра Э. Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — 275 с. — ISBN ???.
- Роберт В. Себеста. Основные концепции языков программирования / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — 672 с. — ISBN ???.
- Иан Соммервилл. Инженерия программного обеспечения / Пер. с англ. — 6-е издание. — М.: Вильямс, 2002. — 624 с. — ISBN ???.
- Иан Грэхем. Объектно-ориентированные методы. Принципы и практика / Пер. с англ. — 3-е издание. — М.: Вильямс, 2004. — 880 с. — ISBN ???.
[править] Ссылки
- Программирование в каталоге ссылок Open Directory Project (dmoz).
Для улучшения этой статьи желательно?:
|
|
|
|
|---|---|
| Используемые в разработке |
Ада • АПЛ • Язык ассемблера • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# • Cω • Clarion • Clojure • ColdFusion • Common Lisp • D • dBase • Delphi • Eiffel • Erlang • Euphoria • F# • Форт • Фортран • Gambas • Go • Groovy • HAL/S • Haskell • Icon • Java • JavaScript • Limbo • Lua • Object Pascal • Objective-C • OCaml • Oz • Parser • Паскаль • Perl • PHP • PowerBASIC • PureBasic • Python • ПЛ/1 • Пролог • Ruby • Scala • Scheme • Smalltalk • SQL • PL/SQL • Tcl • Vala • Visual Basic • Visual Basic .NET |
| Академические | |
| IEC 61131-3 |
Instruction List • ST • FBD • Ladder Diagram (LD) • SFC |
| Прочие | |
| Эзотерические | |
| Визуального программирования |
|
|
|
|
|---|---|
| Известные деятели |
Кент Бек (англ.) • Гради Буч • Фред Брукс • Barry Boehm • Уорд Каннингем • Оле-Йохан Даль • Том Демарко • Эдсгер Вибе Дейкстра • Дональд Кнут • Мартин Фаулер • Чарльз Энтони Ричард Хоар • Watts Humphrey • Майкл Джексон • Ивар Якобсон • Craig Larman • James Martin • Bertrand Meyer • David Parnas • Winston W. Royce • James Rumbaugh • Никлаус Вирт • Эдвард Йордан • Стив Макконнелл |
| Процесс |
Анализ требований • Проектирование • Программирование • Тестирование • Внедрение • Сопровождение • Формальные методы |
| Концепции | |
| Направления | |
| Модели разработки |
Гибкая методология разработки • Cleanroom • CASE • Итеративная разработка • RUP • OpenUP • RAD • Scrum • MSF • Спиральная модель • Модель водопада • XP • V-Model • Dual Vee Model • DSDM |
| Другие модели |
CMM • CMMI • Модель данных • Function model • IDEF • Information model • Metamodeling • Object model • View model • UML |
| Прочее | |

