Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП пособие Шишов.doc
Скачиваний:
127
Добавлен:
17.11.2018
Размер:
3.25 Mб
Скачать

О. В. Шишов технология разработки программных продуктов

1. Программы и программирование

1.1 Основные определения

Любые действия компьютер выполняет только по программе

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

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

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

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

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

Задача (problem, task) – проблема, подлежащая решению. Приложение (application) – программная реализация на компьютере решения задачи.

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

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

Программирование – это теоретическая и практическая деятельность по решению задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы. Программирование – это развитая отрасль хозяйственной деятельности, связанная со значительными затратами материальных, трудовых и финансовых ресурсов. По данным зарубежных источников, в уже в середине 90-х годов в мире было занято программированием до 2% трудоспособного населения. За прошедшие годы число людей в той иной мере связанных с программированием только росло. Совокупный оборот в сфере создания программных средств сегодня достигает нескольких сот миллиардов долларов в год.

К программированию относится вся область деятельности по проектированию и разработке программ, а именно:

  • технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);

  • методы тестирования программ;

  • методы доказательства правильности программ;

  • анализ качества работы программ;

  • документирование программ;

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

  • сопровождение программ, и многое другое.

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

В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий программирования и их перевода на промышленную основу. Это означает:

  • стандартизованность, тиражируемость и воспроизведение различными разработчиками методов программирования;

  • внедрение прогрессивных инструментальных средств разработки программ;

  • использование специальных методов и приемов организации работ по разработке программ.

Программное обеспечение (software) это совокупность программ, выполняемых вычислительной системой.

Программное обеспечение (ПО) – неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него программным обеспечением. Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах.

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

В рамках архитектуры ПО в качестве его структурных элементов различают:

• программы;

• пакеты программ;

• программные комплексы;

• программные системы.

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

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

Пакеты прикладных программ (application program package) – это специальным образом организованные совокупность программ, рассчитанных на общее применение в определенной проблемной области. Например, пакет графических программ, пакет математических программ.

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

В зависимости от характера решаемых задач различают следующие основные разновидности пакетов прикладных программ:

  • пакеты для решения офисных задач и работы с электронными документами;

  • пакеты для решения типовых инженерных, планово-экономических, общенаучных задач;

  • пакеты системных программ;

  • пакеты для обеспечения систем автоматизированного проектирования и систем автоматизации научных исследований.

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

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

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

Различают:

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

• многопользовательскую архитектуру, которая рассчитана на работу в локальной или глобальной сети.

Многопользовательскую архитектуру реализуют системы, построенные по принципу «клиент-сервер».

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