Основные подходы к процессу программирования — это основные идеи и понятия, которые определяют стиль написания компьютерных программ.
Введение
Программой является завершенный продукт, который пригоден для запуска на системе, для которой он был разработан. Программным продуктом является программа, которую любой пользователь может запустить, тестировать, корректировать и модифицировать в плане его развития. Подобная программа должна быть написанной в обобщенном стиле, тщательно оттестированной и сопровождаться набором подробной документации.
Программным комплексом является совокупность взаимодействующих программ, которые согласованы по функциям и форматам, четко заданным интерфейсам, и в целом составляют законченное средство для решения больших задач.
Жизненным циклом программного обеспечения является общий период его проектирования и эксплуатации, включая момент появления проекта и оканчивая завершением ее применения.
Основные подходы к процессу программирования.
Методологическую основу программирования составляет набор методик, которые используются в жизненном цикле программного обеспечения и объединены общим философским подходом. Известны следующие широко распространенные методологии программирования:
- Императивная методология программирования.
- Объектно-ориентированная методология программирования.
- Логическая методология программирования.
- Функциональная методология программирования.
Технология программирования исследует технологические процессы и очередность их использования, то есть, стадии, с применением имеющихся знаний, методов и средств. Процессом является набор связанных взаимно операций, которые способны преобразовать заданные исходные данные в выходные. Процессы включают в свой состав совокупность действий, а все действия состоят из совокупности задач. Вертикальное измерение способно отражать статические моменты процессов, и использует такие понятия, как рабочие процессы, действия, задачи, результаты деятельности и исполнители.
Стадией является часть действий по формированию программного обеспечения, которая ограничена определенными временными рамками и заканчивается выдачей конкретного продукта, определяемого при помощи заданных для этой стадии требований. Стадии могут состоять из этапов, как правило, имеющих итерационный характер. Часто стадии могут объединяться в более значительные временные рамки, именуемые фазами. Таким образом, горизонтальное измерение представляет собой время, отображает динамические особенности процессов и использует такие понятия, как фаза, стадия, этап, итерация и контрольная точка.
Технологический подход должен определяться спецификой используемых стадий и процессов, которая ориентирована на различные классы программного обеспечения и на особенности коллектива специалистов по программированию.
Императивное программирование является исторически первой методологией программирования, которую использовали практически все программисты, формировавшие программы на одном из популярных языков программирования, таких как, Basic, Pascal, Cи. Данная методология ориентируется на классическую фон Неймановскую модель, которая оставалась в течение длительного времени единственной аппаратной архитектурой. Методология императивного программирования базируется на принципе последовательного изменения состояния вычислительного устройства при помощи последовательности шагов. Причем управление изменениями является полностью определенным и контролируемым.
Основными методами и концепциями императивного программирования считаются:
- Метод изменения состояний, заключающийся в поочередном изменении состояний. Метод обладает поддержкой концепции алгоритма.
- Метод управления потоком исполнения, заключающийся в осуществлении пошагового контроля управления. Метод обладает поддержкой концепции потока исполнения.
Если вычислителем является современное компьютерное оборудование, то его состоянием могут считаться значения всех ячеек памяти, состояние процессора и всех других связанных с ним устройств. Единственной структурой данных считается последовательность ячеек, то есть, пар «адрес» - «значение», с упорядоченными линейно адресами.
Модульное программирование — это такой метод программирования, при котором всю программу разбивают на группы элементов, именуемых модулями, при этом все они имеют свои контролируемые размеры, четкое предназначение и подробно проработанный интерфейс с внешней средой. Единственной альтернативой модульности может считаться монолитная программа, что, естественно, не всегда может быть удобно.
Структурное программирование появилось в качестве варианта, призванного понизить сложность формирования программного обеспечения. В начале эры программирования работа программистов не имела никаких регламентов. Совокупность решаемых задач не обладала размахом и масштабностью, применялись главным образом машинно-ориентированные языки и близкие к ним языки типа Ассемблера. Формируемые программы не имели больших размеров, не задавалось жестких ограничений на время их проектирования.
Метод структурного программирования был достаточно эффективным при формировании программ, имеющих ограниченную сложность. Но, с ростом сложности разрабатываемых программных проектов, возможности метода структурного программирования оказались недостаточными. В результате появились основные принципы Объектно-Ориентированного Программирования (ООП), которое вобрало в себя все самые лучшие идеи, имеющиеся в структурном программировании. В сочетании с новыми мощными концепциями это позволило по-новому организовывать создаваемые программы.
Необходимо подчеркнуть, что теоретические основы ООП были заложены еще в семидесятых годах двадцатого века, но практическое воплощение они получили только к середине восьмидесятых, то есть, с разработкой соответствующих технических средств.