Выбор метода разработки программного обеспечения

Известны следующие методы разработки программного обеспечения: модульное, объектно-ориентированное программирование, компонентно-ориентированное программирование и параллельное программирование.

Модульная программа такая, в которой любую часть логической структуры можно изменить, не вызывая изменений в остальных частях программы. Одним из наиболее абстрактных понятий, связанных с модульностью, является понятие независимости: в модульной программе каждый модуль не зависит от других, то есть его можно изменить или модифицировать без последствий в других модулях. Достоинства модульных программ следующие:

· Модульные программы легко составлять и отлаживать. Функциональные компоненты такой программы могут быть написаны и отлажены порознь.

· Такую программу легче сопровождать и модифицировать. Функциональные компоненты могут быть изменены, переписаны или заменены без изменений в остальных частях.

Недостатки модульности:

· Модульный подход иногда требует большего времени ЦП. Эта проблема возникает, прежде всего, в тех случаях, когда программа отличается, наличием большого числа подпрограмм, написанных на языках высокого уровня.

· В модульном подходе может потребоваться несколько больший объем памяти. Если каждой подпрограмме отводится отдельная часть рабочей памяти, то всей программе может потребоваться несколько больший объем памяти [3].

· Объектно-ориентированное программирование (ООП) позволяет моделировать объекты определённой предметной области путем программирования их содержания и поведения в пределах класса. Конструкция «класс» обеспечивает механизм инкапсуляции для реализации абстрактных типов данных. Инкапсуляция как бы скрывает и подробности внутренней реализации типов, и внешние операции и функции, допустимые для выполнения над объектами этого типа.

Разработка объектно-ориентированных программ состоит из следующих последовательных работ:

· определение основных объектов, необходимых для решения данной задачи;

· определение закрытых данных (данных состояния) для выбранных объектов;

· определение второстепенных объектов и их закрытых данных;

· определение иерархической системы классов, представляющих выбранные объекты;

· определение ключевых сообщений, которые должны обрабатывать объекты каждого класса;

· разработка последовательности выражений, которые позволяют решить поставленную задачу;

· разработка методов, обрабатывающих каждое сообщение;

· очистка ВКР, то есть устранение всех вспомогательных промежуточных материалов, использовавшихся при проектировании;

· кодирование, отладка, компоновка и тестирование.

Компонентно-ориентированное программирование (КОП) можно описать примерно такой формулой: КОП = ООП+ модульность (включая сокрытие информации и позднее связывание модулей, то есть возможность подгружать необходимые модули в процессе выполнения программы, а не заранее, как в старых системах программирования). В КОП запрещено наследование от типов, реализованных в других модулях; наследовать можно только абстрактным, чисто интерфейсным типам[4].

Важным практическим следствием реализации концепции компонентного подхода для экономики программирования является снижение стоимости проектирования и реализации программного обеспечения. Еще одно очевидное достоинство компонентного программирования – возможность усовершенствования стратегии повторного использования кода. Код с более высоким уровнем абстракции не требует существенной модификации при адаптации к изменившимся условиям задачи или новым типам данных.

Кроме того к преимуществам концепции компонентного программирования следует отнести унификацию обработки объектов различной природы. Абстрактные классы и методы позволяют единообразно оперировать гетерогенными данными, причем для адаптации к новым классам и типам данных не требуется реализации дополнительного программного кода. Важно также отметить, что идеология компонентного программирования основана на строгом математическом фундаменте, что обеспечивает интуитивную прозрачность исходного текста для математически мыслящего программиста, а также верифицируемость программного кода. Концепция компонентного программирования универсальна и в равной степени применима для различных подходов к программированию, включая функциональный и объектно-ориентированный [5].

Всегда существуют «большие» задачи, которые не по силам одному компьютеру. Такие задачи приходится решать на параллельных вычислительных системах.

Параллельное программирование включает в себя все черты более традиционного, последовательного программирования, но в нем есть три дополнительных, четко определенных этапа:

· определение параллелизма: анализ задачи с целью выделить подзадачи, которые могут выполняться одновременно;

· выявление параллелизма, то есть изменение структуры задачи таким образом, чтобы было эффективно выполнять подзадачи. Для этого обычно находят зависимости между подзадачами и организовывают соответствующим образом исходный код;

· реализация параллельного алгоритма в исходном коде с помощью системы обозначений параллельного программирования [6].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: