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