Понятие объектно-ориентированного анализа. Классы и объекты. Основные отношения между классами и объектами.
Стр 1 из 11Следующая ⇒ Лагунов А.Ю. Компьютерные науки ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ И ПРОЕКТИРОВАНИЕ С ПРИМЕРАМИ НА C# Понятие объектно-ориентированного анализа. Классы и объекты. Основные отношения между классами и объектами. По теории Г.Буча объектно-ориентированный анализ - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области. При этом предметная область или домен — это пространство, в котором формулируется определенная задача, т.е. набор понятий, представляющих важные аспекты решаемой задачи. В результате объектно-ориентированного анализа строится концептуальная база — объектная модель, которая включает в себя 4 главных элемента: 1. Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя. 2. Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации. 3. Модульность - это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули. 4. Иерархия - это упорядочение абстракций, расположение их по уровням. Эти элементы являются главными в том смысле, что без них модель не будет объектно-ориентированной. Кроме главных, имеются еще 3 дополнительных элемента: 1. Типизация - это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием.
2. Параллелизм - это свойство, отличающее активные объекты от пассивных. 3. Сохраняемость - способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего первоначального адресного пространства. Важным элементом объектной модели является объект. С точки зрения восприятия человеком объектом может быть: - осязаемый и (или) видимый предмет; - нечто, воспринимаемое мышлением; - нечто, на что направлена мысль или действие. Объект обладает состоянием, поведением и идентичностью. Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств. Поведение - это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений. Идентичность - это такое свойство объекта, которое отличает его от всех других объектов. Для инициализации объектов в процессе их конкретизации используются специальные методы, называемые конструкторами. Процесс создания объекта называется реализацией. В объектной модели объект не существует сам по себе, а обычно взаимодействует с другими объектами. Выделяют два основных типа взаимодействия объектов между собой: связи и агрегация. Связи характеризуют равноправные или клиент-серверные отношения между объектами. Участвуя в связи, объект может выполнять одну из следующих трех ролей: актер (объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов), сервер (объект может только подвергаться воздействию со стороны других объектов, но он никогда не выступает в роли воздействующего объекта) или агент (такой объект может выступать как в активной, так и в пассивной роли; как правило, объект-агент создается для выполнения операций в интересах какого-либо объекта-актера или агента). Агрегация описывает отношения целого и части, приводящие к соответствующей иерархии объектов, причем, идя от целого (агрегата), мы можем придти к его частям (атрибутам).
Для организации взаимодействия каждый объект должен иметь интерфейс, который представляет собой список служб, предоставляемых компонентом. Интерфейс бывает: - открытым (public) – разрешение доступа для всех объектов; - защищенным (protected) – разрешение доступа только самому классу и его подклассам; - закрытым (private) – разрешение доступа только самому классу. Структура и поведение схожих объектов определяет общий для них класс. Классы так же как и объекты вступают в отношения. Выделяют 4 главных типа отношений между классами. Ассоциация — это смысловая связь: один-к-одному, один-ко-многим или многие-ко-многим. Наследование — дочерний класс может унаследовать структуру и поведение родительских классов. Агрегация описывает отношения целого и части (“Has-a” — «содержит»: один объект содержится в другом объекте). Использование – это агрегация, когда одна из сторон (клиент) пользуется услугами второй стороны (сервера). Моделирование в процессе объектно-ориентированного анализа позволяет решить 4 различные задачи: - визуализировать систему в ее текущем или желательном для нас состоянии; - определить структуру или поведение системы; - получить шаблон, позволяющий затем сконструировать систему; - документировать принимаемые решения, используя полученные модели. Основные принципы моделирования: 1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение. 2. Каждая модель может быть воплощена с разной степенью абстракции. 3. Лучшие модели — те, что ближе к реальности. 4. Нельзя ограничиваться созданием только одной модели. Наилучший подход при разработке любой нетривиальной системы — использовать совокупность нескольких моделей, почти независимых друг от друга.
Объектно-ориентированная парадигма программирования. Объекты, полиморфизм и наследование. Объектно-ориентированное проектирование. Технология программирования - это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств.
Основные идеи объектно-ориентированного подхода опираются на следующие положения: · - Программа представляет собой модель некоторого реального процесса, части реального мира. · - Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов. · - Объект (Object) описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект. · - Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта. · - Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс (Class) однотипных объектов. Объектно-ориентированное программирование - это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования. Технология ООП (объектно-ориентированного программирования) основана на трех основополагающих концепциях: Инкапсуляция - Объект представляет собой контейнер, содержащий в себе данные и программы по управлению данным объектом. Наследование - это процесс, посредством которого, один объект может приобретать свойства другого. Точнее, объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. Полиморфизм - это свойство, которое позволяет одно и тоже имя использовать для решения нескольких технически разных задач. В данном определении можно выделить три части: 1) OOП использует в качестве базовых элементов объекты, а не алгоритмы; 2) каждый объект является экземпляром какого-либо определенного класса; 3) классы организованы иерархически. Программа будет объектно-ориентированной только при соблюдении всех трех указанных требований. В частности, программирование, не основанное на иерархических отношениях, не относится к OOП, а называется программированием на основе абстрактных типов данных.
Программирование прежде всего подразумевает правильное и эффективное использование механизмов конкретных языков программирования. Проектирование, напротив, основное внимание уделяет правильному и эффективному структурированию сложных систем. Мы определяем объектно-ориентированное проектирование следующим образом: Объектно-ориентированное проектирование - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы. В данном определении содержатся две важные части: объектно-ориентированное проектирование 1) основывается на объектно-ориентированной декомпозиции; 2) использует многообразие приемов представления моделей, отражающих логическую (классы и объекты) и физическую (модули и процессы) структуру системы, а также ее статические и динамические аспекты. Именно объектно-ориентированная декомпозиция отличает объектно-ориентированное проектирование от структурного; в первом случае логическая структура системы отражается абстракциями в виде классов и объектов, во втором - алгоритмами.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|