logo search
FINAL (Verdana, 16)

5. Объектно-ориентированный анализ и объектно-ориентированное проектирование.

Сложность вызывается четырьмя основными причинами:

1.сложностью реальной предметной области;

2.трудностью управления процессом разработки;

3.необходимостью обеспечить достаточную гибкость программы;

4.неудовлетворит. способами описания поведения больших дискретных систем.

Признаки:1. Принцип иерархичности. Сложные системы часто являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы, и т.д., вплоть до самого низкого уровням. 2.Принцип детальности. Выбор, какие компоненты в данной системе считаются элементарными, относительно произволен и в большой степени оставляется на усмотрение исследователя. 3.Принцип модульности. Внутрикомпонентная связь обычно сильнее, чем связь между компонентами. 4.Принцип экономности. Иерархические системы обычно состоят из немногих типов подсистем, по-разному скомбинированных и организованных. 5.Принцип эволюции. Любая работающая сложная система является результатом развития работавшей более простой системы.

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

Абстракция - это такие существенные характеристики некоторого объекта, которые отличают его от всех других объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от деталей их осуществления.

Если Абстрагирование фокусирует внимание на внешних особенностях объекта, то Инкапсуляция не позволяет различать внутреннее устройство объекта.

Инкапсуляция — это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации.

Модульность — это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули. В процессе разделения системы на модули могут быть полезными два правила. Во-первых, поскольку модули служат в качестве элементарных и неделимых блоков программы, которые могут использоваться в системе повторно, распределение классов и объектов по модулям должно учитывать это. Во-вторых, многие компиляторы создают отдельный сегмент кода для каждого модуля. Поэтому могут появиться ограничения на размер модуля

Иерархия - это упорядочение абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия «is-a») и структура объектов (иерархия «part of»). Наследование - это такое соотношение между классами, когда один класс использует структурную или функциональную часть одного или нескольких других классов (соответственно простое или множественное наследование). Если иерархия «is а» определяет отношение «обоб-щение/специализация», то отношение «part of» (часть) вводит иерархию агрегации.

Типизация — это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием

Параллелизм - свойство объектов находиться в активном, либо пассивном состоянии.

Сохраняемость — способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего первоначального адресного пространства.

Понятие интерфейса можно представить в виде формулы:

Интерфейс = Объект – Реализация. По форме объявления интерфейсы похожи на обычные классы, но в отличие от классов: интерфейсы не могут содержать поля; интерфейсы не могут содержать конструкторы и деструкторы; все атрибуты интерфейсов являются общедоступными.