Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

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

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

Рис.6. Функционально-ориентированный подход к проектированию ПО

 

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

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

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

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

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

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

Обе системы (пакетной обработки данных и обработки транзакций) действуют в соот­ветствии с моделью "вход-процесс-выход", показанной на рис. 7. Системы осуществ­ляют ввод данных из одного или нескольких источников, обрабатывают их и выдают вы­ходные данные, которые в той или иной степени связаны с входными. В качестве примера можно рассмотреть систему телефонных счетов, где входными данными являются записи о звонках клиента и информация со счетчика коммутатора АТС, которые затем обрабаты­ваются компьютером, в результате на выходе системы — счета за пользование телефоном.

Рис.7. Модель "вход-процесс-выход"

 

Системные компоненты ввода, обработки и вывода информации также могут быть разбиты по принципу "вход-процесс-выход", например следующим образом.

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

2.В компонент обработки может входить получение транзакции из очереди (вход), подсчет данных, создание новой записи по результатам подсчета (процесс) и по­мещение новой записи в очередь на печать (выход).

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

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

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

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

2.В компаниях, вложивших значительные средства в структурные методы, соответст­вующие CASE-средства и обучение персонала. Здесь будут неоправданными риск и затраты, связанные с переходом на объектно-ориентированное проектирование.

Хотя функционально-ориентированный подход во многом считается устаревшим, объект­но-ориентированное проектирование в подобных ситуациях не будет оправданным. Таким об­разом, перед нами стоит интересная задача: обеспечить совместную работу двух подходов к программированию — объектно-ориентированного и функционально-ориентированного.




Дата добавления: 2015-09-12; просмотров: 26 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Структуры наследуемых систем| Оценивание наследуемых систем

lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав