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

Классическая схема информационной системы

Читайте также:
  1. A) на этапе разработки концепций системы и защиты
  2. I. Классическая теория.
  3. II СТАДИЯ - КЛАССИЧЕСКАЯ
  4. L.1.1. Однокомпонентные системы.
  5. L.1.2.Многокомпонентные системы (растворы).
  6. V1: Экосистемы. Экология сообществ.
  7. V2: Женская половая система. Особенности женской половой системы новорожденной. Промежность.
  8. V2: Мужская половая система. Особенности мужской половой системы новорожденного.
  9. а занятие Центральные органы эндокринной системы
  10. А) Обычные средства (системы) поражения
  11. АВТОМАТИЗИРОВАННЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ ОРГАНОВ ЮСТИЦИИ
  12. Административная или классическая школа менеджмента

Существует поток входных данных. Задача проектировщика – определить точки, где происходит преобразование потоков данных, а затем определить алгоритмы преобразования.

Модуль (процедура, функция) имеет 3 основных атрибута:

1. Выполняет одну или несколько функций

2. Обладает некоторой логикой

3. Используется в одном или нескольких контекстах (местах, где он вызывается и используется)

Функция модуля – внешнее описание модуля, описывается то, что делает модуль при вызове, но не как это делается.

Логика – описание внутреннего алгоритма модуля, как он реализован.

Контекст – описывает конкретное применение модуля.

Уменьшение сложности программы способствует высокой независимости модуля, при этом:

1) Усиление внутренних связей модуля, т. е. обеспечение прочности.

2) Ослабление взаимосвязей между модулями – уменьшение сцепления (это соответствует двум основным принципам декомпозиции)

Прочность модуля – мера его внутренних связей. Чтобы определить прочность модулей, требуется проверить и классифицировать по эмпирической классификации, которая выделяет 7 классов:

1. Прочность по совпадению

2. Прочность по логике

3. По классу

4. Процедурно прочный модуль

5. Коммуникационно прочный модуль

6. Информационно прочный модуль

7. Функционально прочный модуль

От 1 к 7 идет увеличение прочности.

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

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

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

4. Процедурно прочный модуль. Выполняет набор связанных с ним функций, которые относятся непосредственно с решением задач. Например, после получения сигнала необходимо закрыть клапан и отрегулировать значение температуры. Функциональность здесь реализована одним куском кода внутри модуля. Использование таких модулей может привести к дублированию функциональности. Минусы этого – растет объем кода и затрудняется сопровождение.

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

6. Информационно прочный модуль. Выполняет несколько функций, которые работают с одной и той же структурой данных, каждая функция имеет свой вход. Сейчас нет таких языков, которые позволяли бы сделать несколько точек входа в одну процедуру. Это позволял язык PL1.

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

Сцепление – мера взаимозависимости модулей по данным, определяется как способом передачи, так и взаимозависимостью по данным. Существует 6 видов сцеплений:

1. Сцепление по содержимому

2. По ограниченной области

3. По внешним данным

4. По управлению

5. По формату

6. По данным

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

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

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

3. Сцепление по внешним данным – то же самое, что и 2, но ссылка идет не на глобальную структуру данных, а на глобальную переменную

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

5. По формату – если они ссылаются на одну и ту же неглобальную структуру данных

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


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)