
- •Цель и задача курса. Характеристики качества по.
- •1.2. Эволюция технологий программирования.
- •1.3. Структурный подход к программированию
- •1.4. Основания и история объектно-ориентированного подхода к программированию
- •1.5. Сложность по
- •1.6. Пути ограничения сложности
- •1.7. Основные положения объектной модели
- •1) Абстрагирование является одним из главных способов, используемых для решения сложных задач.
- •2) Ограничение доступа (инкапсуляция).
- •3) Модульность.
- •4)Иерархия.
- •Варианты использования (прецеденты)
- •2.3. Диаграммы вариантов использования
- •Пример диаграммы ви для финансовой торговой системы:
- •Связи типа «расширение» и «использование». Кроме связей между действующими лицами и ви на диаграмме существуют 2 других типа связей. Это связи типа «расширение» и «использование».
- •2.4. Диаграммы классов. Общая характеристика
- •2.4.1 Ассоциации
1.6. Пути ограничения сложности
Способ управления сложными системами был известен еще в древности – «разделяй и властвуй». Поэтому первый способ преодоления сложности ПО – декомпозиция.
При проектировании сложной программной системы необходимо составить ее из небольших подсистем, каждую из которых можно отладить независимо от других.
Существует 2 способа декомпозиции: алгоритмическая декомпозиция и объектно-ориентированная декомпозиция.
Алгоритмическая декомпозиция (АД) использует структурное проектирование по методу сверху-вниз. Алгоритм разделяется на части (модули), каждая из которых выполняет один из этапов общего процесса.
Объектно-ориентированная декомпозиция (ООД) в качестве критерия разделения использует принадлежность элементов системы к различным абстракциям данной проблемной области. В этом случае проблемная область представлена списком автономных объектов, которые взаимодействуют друг с другом, чтобы обеспечить поведение системы, соответствующей более высокому уровню.
Оба подхода – АД и ООД решают одну и ту же задачу, но разными способами.
Разделение по алгоритмам концентрирует вникание на порядке происходящих событий, а разделение по объектам придает особое значение факторам, либо вызывающим действие, либо являющихся объектами приложения этих действий. Нельзя сконструировать систему одновременно двумя способами. Опыт показывает, что полезнее сначала применить объектный подход.
Для ограничения сложности системы так же используются абстракции и иерархический подход.
1.7. Основные положения объектной модели
Рассмотрим 3 компонента ОО подхода:
1 - ОО программирование – это методология программирования, которая основана на представлении программы в виде совокупностей объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию на принципах наследования.
Здесь можно выделить 3 части:
в качестве базовых элементов используются объекты, а не алгоритмы;
каждый объект является экземпляром какого- то определенного класса;
классы организованы иерархически.
Программам будет объектно-ориентированной только при соблюдении всех 3 требований.
2 - ОО проектирование – это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической модели проектируемой системы.
Здесь содержатся 2 важные части:
ОО проектирование основывается на объектно-ориентированной декомпозиции;
Многообразие приемов представления моделей.
3 - ОО анализ – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области. ООА направлен на создание моделей реальной действительности с использованием ОО подхода.
Соотношения между ОО программированием, ОО проектированием и ООА: по результатам ООА формируются модели, на которых основывается ОО проектирование, которое в свою очередь создает фундамент для окончательной реализации системы с использованием методологии ОО программирования.
Для объектно-ориентированного стиля программирования концептуальной базой является объектная модель. Она имеет 4 главных элемента:
абстрагирование;
инкапсуляция (ограничение доступа);
модульность;
иерархия.
Эти элементы являются главными, т.к. без любого из этих элементов модель не будет объектно-ориентированной. Кроме главных, есть еще 3 дополнительных элемента:
типизация;
параллелизм;
сохраняемость.
Рассмотрим эти элементы.