logo
Информатика 1 курс 2 семестр (2)

Тема 7. Программное обеспечение и технологии программирования Лекция 14. Технологии программирования и принципы разработки программного приложения

План лекции:

Технологии программирования. Общие принципы разработки программного обеспечения, частотный принцип, принцип модульности, принцип функциональной избирательности, принцип генерируемости, принцип функциональной избыточности, принцип "по умолчанию". Общесистемные принципы, принцип включения, принцип системного единства, принцип развития, принцип комплексности, принцип информационного единства, принцип совместимости, принцип инвариантности. Жизненный цикл программного обеспечения, стадии определения требований, проектирования, программирования, отладки и сопровождения. Стандарты программирования. Классификация методов проектирования, традиционные и CASE-технологии. Структура программного продукта.

Краткий конспект лекции

Технологии программирования — это апробированные стратегии (процессы) создания программ, которые излагаются в виде методик с описаниями проектных процедур и проектных операций.

В реальных проектных ситуациях необходима разработка рациональной стратегии каждого конкретного проекта, которая осуществляется на основе одной, двух и даже трех технологий.

Разработаны следующие технологии:

В каждой из этих технологий используется одна или несколько парадигм (методологий) программирования (концепций, систем взглядов). Последние представляют собой разные подходы к написанию программ.

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

Существуют и другие парадигмы (визуальное программирование, параллельное программирование), что объясняется необходимостью решать разные задачи.

Общие принципы разработки программного обеспечения

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

  1. Частотный принцип основан на выделении в алгоритмах и данных особых групп по частоте использования. Для действий, наиболее часто встречающихся при работе программ, создаются условия их быстрого выполнения.

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

  3. Принцип функциональной избирательности. Этот принцип является логическим продолжением частотного и модульного принципов и используется при проектировании программ. В программах выделяется некоторая часть важных модулей, которые постоянно должны быть в состоянии готовности для эффективной организации вычислительного процесса.

  4. Принцип генерируемости - определяет такой способ исходного представления программы, который бы позволял осуществлять настройку на конкретную конфигурацию технических средств, круг решаемых проблем, условия работы пользователя.

  5. Принцип функциональной избыточности - учитывает возможность проведения одной и той же работы различными средствами.

  6. Принцип «по умолчанию» применяется для облегчения организации связей с системой как на стадии генерации, так и при работе с уже готовыми программами. Принцип основан на хранении в системе некоторых базовых описаний структур, модулей, конфигураций оборудования и данных, определяющих условия работы с программой.

Общесистемные принципы программирования

  1. принцип включения, предусматривающий, что требования к созданию, функционированию и развитию ПО определяются со стороны более сложной, включающей его в себя системы;

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

  3. принцип развития, предусматривающий в ПО возможность его наращивания и совершенствования компонентов и связей между ними;

  4. принцип комплексности, заключающийся в том, что ПО обеспечивает связанность обработки информации как отдельных элементов, так и всего объема данных в целом на всех стадиях обработки;

  5. принцип информационного единства, т. е. во всех подсистемах, средствах обеспечения и компонентах ПО используются единые термины, символы, условные обозначения и способы представления;

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

  7. принцип инвариантности, предопределяющий, что подсистемы и компоненты ПО инвариантны к обрабатываемой информации, т. е. являются универсальными или типовыми.

Жизненный цикл программного обеспечения

Жизненный цикл — совокупность взаимосвязанных процессов создания и последовательного изменения состояния ПО от формирования к ней исходных требований до окончательной ее эксплуатации или потребления.

Каждая программа начинается с какой-либо неудовлетворенной потребности и, осознав ее, необходимо провести системный анализ для выявления целей будущего программного изделия и требований к нему. Следующим этапом будет внешнее специфицирование, предназначенное для создания «идеологии» программы — общей направленности в последующем проектировании, вплоть до внешнего вида программы и инструкции пользования программой.

На этапе проектирования программное изделие специфицируется в полном объеме от постановки задачи до рабочего проекта с описанием внутренней структуры программы и плана разработки частей программы. Затем происходит кодировка и тестирование, в результате чего выходит (изготавливается) готовая версия программы. Программа выпускается в тираж и сопровождается производителем. Сопровождение заключается как в устранении обнаруживаемых в процессе эксплуатации ошибок и выпуске исправленных версий, так и в усовершенствовании базовой версии программы, что зачастую приводит к перепроектированию программы и выпуску радикально обновленных версий.

Окончание жизненного цикла обусловливается прекращением эксплуатации разработки. Однако идеи, выдвинутые в процессе эксплуатации программы, обычно используются при разработке последующего, более совершенного и современного изделия.

Стандарты и программирование

Стандарты давно используются в технике и программировании. Создание сложной системы немыслимо без стандартов. Они нужны для борьбы с хаосом и неразберихой, но вместе с этим стандарт не должен быть слишком «узким» и мешать техническому прогрессу.

Государственные стандарты отслеживают тенденции развития программирования и дают обязательные рекомендации по их соблюдению. Помимо государственных стандартов (ГОСТ) действуют отраслевые стандарты (ОСТ), стандарты предприятий (СТП).

Группа стандартов ГОСТ «Единая система программной документации» (ЕСПД) претерпела мало изменений с момента ее создания, пережила несколько поколений ЭВМ и революционных изменений технологий разработки программ. При этом она до настоящего времени никогда не затрудняла новаций.

В области программирования общепризнанной ведущей организацией по разработке стандартов является институт ANSI (Американский национальный институт стандартов). Данный институт является лидером по установке стандартов языков программирования, кодовых таблиц клавиш и символов, выводимых на экран, и еще многих других. Необходимо также отметить стандарты ISO.

CASE-технология создания программного обеспечения.

Инструментарий технологии разработки представляет собой программные продукты поддержки (обеспечения) технологии разработки ПО.

  1. Средства для создания приложений:

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

    2. интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ (являются дальнейшим развитием локальных средств разработки).

  2. Средства CASE-технологии, автоматизирующие весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных/информационных систем (сформировались в конце 80-х гг.)

Технологии CASE (Computer Aided Software/System Engineering) - разработка программного обеспечения/систем с использованием компьютера.

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

Вопросы по данной теме:

  1. Перечислите технологии программирования.

  2. Перечислите Общесистемные принципы программирования.

  3. Перечислите Общие принципы разработки программного обеспечения.

  4. Опишите этапы жизненного цикла программного обеспечения.

  5. Что представляют CASE-технологии создания программного обеспечения?

Литература по теме:

  1. Информатика. Общий курс / Под ред. В.И. Колесникова. - 2-е изд. - М.: Дашков и К; Наука-Пресс, 2008. - 400 с.

  2. Игошин В.И. Математическая логика и теория алгоритмов: Уч. пос. - М.: Академия, 2004. - 448с.

  3. Микрюков В.Ю. Алгоритмизация и программирование: Учебн. пос.- Ростов н/Д: Феникс, 2007.