Модуль 3
Структурирование информационных систем
Проектирование информационных систем
Структурирование информационных систем
-
Понятие декомпозиции информационной системы
-
Структурный и объектно-ориентированный подходы к разработке программного обеспечения
-
Основы объектно-ориентированного программирования
-
Инкапсуляция, наследование, полиморфизм
-
Понятие абстрагирования в объектно-ориентированном программировании
-
Понятие программных интерфейсов
-
Понятие структурированности и агрегации программного продукта
-
Основные принципы разбиения программного продукта на сборки
-
Понятия сцепления и связанности.
Понятие декомпозиции
-
Декомпозиция информационной системы – разбиение системы на составные части (блоки, подсистемы)
-
Облегчается процесс разработки, тестирования и внесения изменений
-
Появляется возможность повторного использования
-
В пределе формируется framework – остов, основа для будущих систем
-
Декомпозицией системы занимается системный архитектор
Правила декомпозиции
-
Количество связей между подсистемами должно быть минимальным (слабо связанные системы)
-
Связанность отдельных частей внутри каждой подсистемы должна быть максимальной
-
Взаимодействия между подсистемами должны укладываться в ограниченные, стандартные рамки
-
Каждая подсистема должна инкапсулировать своё содержимое (скрывать его от других подсистем)
-
Инкапсуляция позволяет рассматривать структуру каждой подсистемы независимо от других подсистем
-
Каждая подсистема должна иметь чётко определённый интерфейс с другими подсистемами
-
Интерфейсы позволяют строить систему более высокого уровня, рассматривая каждую подсистему как единое целое и игнорируя её внутреннее устройство
Структурный и объектно-ориентированный подходы
-
Структурный подход (функционально-модульный)
-
Структура системы описывается в терминах иерархии её функций и передачи информации между отдельными функциональными элементами
-
Поведение системы описывается в терминах последовательности выполнения процедур, реализующих алгоритмы функций
-
Характерен для детерминированных систем
-
Объектно-ориентированный подход
-
Структура системы описывается в терминах объектов и связей между ними
-
Поведение системы описывается в терминах обмена информацией между объектами
-
Функции стоят на втором плане, на первом плане объекты
-
Функции системы формируются на основе функций объектов
Абстрагирование
-
Синоним – отвлечение, абстракция
-
Абстрагирование – выделение и сознательное игнорирование незначительных аспектов описания объектов и идей для представления их в минимально допустимой форме
-
Результаты грамотного абстрагирования –
-
Классы с минимально необходимым набором методов и атрибутов
-
Методы короткие и понятные
-
Глубокая иерархия классов
-
Причина важности абстрагирования – необходимость внесения изменений в последствии
Понятие класса
-
С точки зрения мышления
-
Класс – артефакт классификации
-
Классификация основана на общем поведении и атрибутах
-
Существуют соглашения об описаниях и именах часто используемых классов
-
Используя словарь классов осуществляется общение и мышление
-
С точки зрения программирования
-
Именованная синтаксическая структура, описывающая общее поведение и атрибуты
-
Хранилище, включающее данные и функции
Понятие объекта
-
Объект является реализацией класса
-
Объекты предоставляют
-
Уникальность – объекты одного класса могут отличаться друг от друга
-
Поведение – объекты могут выполнять задачи
-
Состояние – объект сохраняет информацию
Понятие инкапсуляции
-
Инкапсуляция – сокрытие внутреннего устройства класса (атрибутов и методов) от внешних классов и объектов
-
Инкапсуляция позволяет проектировать сложные системы за счёт прозрачности модели поведения классов и объектов
-
Инкапсуляция позволяет изменять внутреннее устройство класса без видимых внешних изменений
Статические и экземплярные атрибуты и методы
-
Статические методы и атрибуты доступны на уровне класса
-
Экземплярные методы и атрибуты доступны на уровне объекта, т.е. экземпляра класса
-
Прямой доступ к экземплярным атрибутам и методам из статических методов не допустим
Понятие наследования