Выбор архитектуры ПО.

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

· настольные;

· групповые (локальная сеть);

· масштаба предприятия (локальная и/или глобальная сеть).

Различают:

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

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

Кроме того, в рамках однопользовательской архитектуры различают:

• программы;

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

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

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

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

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

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

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

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

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