Какие браузеры вы используете чаще всего
 

Реклама

Проэктирование наследуемых систем

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

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

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

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

Системы обработки деловой информации представляют собой самый большой класс наследуемых систем и разделяются на два типа.

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

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

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