И. Соммервилл - Инженерия программного обеспечения (1133538), страница 140
Текст из файла (страница 140)
3. Сохранение интерфейсов аппаратных средств со временем часто становится невозможным, особенно в случае кардинальных изменений в аппаратном обеспечении. Такое может случиться с компанией, которая решит перейти от мэйнфреймов (больших ЭВМ) к системе клиент/сервер (см. главу 11), где, как правило, работают с разными операционными системами.
В этом случае необходима серьезная модер. иизация прикладного программного обеспечения. Прикладное программное обеспечение наследуемой системы — это не только отдельная программа, а целый комплекс программ. Конечно, первоначально в системе может быть только одна программа, работающая с одним-лвумя файлами данных, однако со временем в систему мокнут быть включены другие программы, осуществляющие обмен данными н связь с другими системными программамн. Таким же образом с поступлением новой информации пополняются изначальные файлы данных. Этот процесс отображен на рис. 26тв Программы осуществллют обмен файлами данных, поэтому изменения в одной программе обязательно отразятся на других. Рис. 26З.
Нпследуем ъи ярихлпдные системы В наше время еще можно найти сисгемы, которые используют отдельные файлы для хранения данных. однако большинство систем уже перешли на централизованное хранение информации в базах данных (рис. 26.4.). Преимущество такого подхода заключается в том. что для представления данных используются логические и физические модели дан. ных. Это позволяет избежать или снизить уровень избыточности и дублирования информации, правильно оценить воздействие на данные каких-либо изменений в системе. Кро. 538 кзасть УП. Эволюция программного обеспечения лье того, базы данных обеспечивают средства обработки транзакций, гарантирующие восстановление данных. Ими также обеспечивается диалоговое обновление информации.
1 кс. 26 4. Скскнма с КпькРплшоопььььой базой дпккмл Запросы на обновление информации могут поступать с различных терминалов и в разное время. Возьмем длл примера банковскую систему, насчитываюььгуьо сотни терминалов, с которыми работают кассиры в филиалах и клиенты, пользующиеся банкоматами. Обработка всех отдельных транзакций сконцентрирована в центральной базе данных счетов.
Монитор дистанционной обработки (ььапримср, система С1СВ от 1ВМ) может обрабатывауь н помещать в буфер вводные данные из многих различных источников. В банковской системе он принимает транзакции от филиалов и банкоматов, при этом возможна перви шая обработка на месте. Затем транзакции помещаются в буфер н предоставляются в базу данных счетов в виде последовательного списка; база данных обновляет счета клиентов н подтверждает завершение обработки транзакций, Эта процедура показана па рис. 2бзй Тершьнваь к бвьшматы рис. 26.5. Обрпбокькп тупкзпкции с искааьзовпкксм зьокиьььоЬт дисоьпььниоьькой обрпбокьки 1.1аслсдуемыс системы с централизованными базами данных также имеют нелостатки.
1. Система управления базой данных может быть устаревшей и несовместимой с со. временными СУБД, используемыми в бизнесе. Из всех современных систем баз даншлх, применяемых в бизнесе, наиболее эффективными считаются реляционш ье бьазы данных. Олнако многие наследуемые системы используют иерархические нли сетевые базы данных. Такнс базы данных создавались скорее для повышения фуцкцноиалыюстн системы, чем для удобства управления данными. Современная 26. Наследуемые системы 539 вычислительная техника снимает требование повышения функциональности системы, но переход к реляционным моделям данных может оказатьсв слишком дорогостоящим.
2. Монитор дисганцноьшой обработки часто создавался для специализированных баз данных, рассчитанных на эксплуатацию на мэйнфреймах. Поэтому такой монитор пс подойдет для современных баз данных. Эта часть систельы подлежит обязательной замене, вследствие чего возрастзкьт расходы и риск, свлзанпые с изменениями системы. 26.2. Проектирование наследуемых систем Практически все наследуемые системы были созданы до того, как объелтно.
ориентированный подход стал широко использоваться при создашш ПО. Поэтому, вместо того чтобы представлять собой совокупность взаимосвязанных объектов, программы в таких системах стр>лтурированы как множество подпрограим и функций. Кальдая подпрограмма обеспечивает определенную часть ь[ьуьькционзльььостьь системы н в случае необходимости вызывается другими подпрограммами. В некоторых же языках программн.
рования подпрограммы оперируют собственными данными, имея в то жс время доступ к совместно используемым данным. В других языках (например, ранние персии СОВОЕ> для всех подпрограмм открыт совместный доступ к общим данным. Стратегия функционально.ориентированного проектирования ПО предусматривает декомпозицию программ на рял функций и подпрограмм, взаимодействующих с централизованной совместно используемой памятью (рис. 26.6.). Информация о локальном состоянии функций обрабатывается только в процессе нх исполнения. Такаьь стратегия яв. ллется частью многих структурных методов, разработанных в конце 70.х — начале 80.х годов.
Она получила название "нисходящее проектирование" и "структурное проектирование" [79, 250, 345, 12'". 24в[. Сотни тысяч прикладных программ разработаны с помощью этих методов и соответствующих САБЕ-средств. Рнг. 2б.б. Фуннкионавьнооривнти[ювнннаьй нодход к п ПО Ф>нкциььььально-орььентььровапььое проектирование скрывает детали алгоритмов в подпрограммах и функциях, однако информаццв о состоянии системы прп зтам открыта. В этом могут таиться проблемы, поскольку функция способна изменить состояние системы непредвиденным образом.
Изменения в самой функции и состоянии системы могут привести к изменениям в поведении др>гих функций. Это болыяая проблема наследуемых 540 Часть '(г11. Эволюция программного обеспечения систем, особенно если представить, сколько разных людей вносили изменения в систему за время ее существования: один человек едва ли способен разобраться в том, каким абра. зом взаимодействуют разные части системы.
Функциональный подход к проектированию будет эффективен лишь в том случае, если свести к минимуму количество открытой информации о состоянии системы н сделать обмен информацией более явным. Системы, которые зависят от входных данных или сигналов и не зависят от предыстории входных данных, обладают определенной функциональ. най направленностью. Большинство систем обработки деловой информации предпазна. чены для обработки отдельных (дискретных) записей.
Работа с павой записью не зависит ат результатов обработки предыдущей. Поэтому при создании таких систем выгоднее использовать функциональное программирование. Системы обработки деловой информации представляют собой самый большой класс наследуемых систем и разделяются на два типа. 1.
Сисомим кокеткой од)тзотки доиимх Ввод-вывод данных осуществляется в пакетном режиме из файлов, а не с терминала пользователл. Такими системами являются программы начисления заработной платы, выписки счетов и т.д. 2. Системы озаботив тлокликций. Ввод-вывод данных представляет собой серию транзакций, обрабатываемых системой управления базой данных, при этом транзакции генерир)ются терминалом пользователя.
Конечно, зти различные системы могут также использовать обгцие данные. Например, банк при работе со счетами использует систему обработки транзакций, но прн создании вы. писак из банковских счетов клиентов используется система пакетной обработки данных. Обе системы (пакетной обработки данных и обработки транзакций) действуют в соответствии с моделью "вход-процесс-выход", показанной на рис. 26.7. Системы осуществляют ввод данных из одного или нескольких источников, обрабатывают их и выдают выходные данные, которые в той или иной степени связаны с входными.
В качестве примера можно рассмотреть систему телефонных счетов, где входи~вин данными являются записи о звонках клиента и информация со счетчика коммутатора АТС, которые затем обрабатываютсл каипьютерам, в результате на выходе системы — счета за пользование телефоном. 1'ис. 26. 7. Модель "вход — процеп-вьтод" Системпыс компоненты ввода, обработки и вывода информации также моеут быть разбиты по принципу "вход-процесс-выход", например следующим образам. 1. Компонент входа может включать непосредственный ввод информации с терьлинала пользователя (вход), проверку достоверности данных и исправление некоторых ошибок (процесс), затем помещение данных в очередь на обработку (выхад). 26.
Наследуемые системы 541 2. 8 компонент обработки может входить получение транзакции из очереди (вход), подсчет данных, создание новой записи по результатам подсчета (процесс) и помещение новой записи в очередь на печать (выход). 3. Компонент выхода состоит из считывания записей из очереди (вход), форматиро. вания записей в соответствии с формой вывода (процесс) и последующей отправки их на печать (выход). При проектировании функционально.ориентированных систем часто используются диаграммы потоков данных, которые описаны в главе 7.