Конспект лекций, страница 5

Описание файла

PDF-файл из архива "Конспект лекций", который расположен в категории "лекции и семинары". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 5 страницы из PDF

При ООПизменения локализуются внутри класса (компоненты или пакета, если изменяютсянесколько классов). Семантический разрыв ликвидируется, поскольку сущностипредметной области представляются объектами, следовательно, разработчик и заказчик(пользователь) оперируют схожими понятиями. Повторное использование достигается засчет построения систем с использованием библиотек готовых компонент – модулей(заимствовано из структурного или функционального подхода).Краткая история ООП: 1967: язык Simula – 1ый среди объектно ориентированных; 1970-е: Smalltalk – получил довольно широкое распространение; 1980-е: Теоретические основы, C++, Objective-C; 1990-е: Методы OOA и OOD (Booch, OMT, ....), появился язык Java; 1997: Принят стандарт OMG UML 1.1.В основе объектно-ориентированного подхода лежит объектная декомпозиция, приэтом статическая структура ПО описывается в терминах объектов и связей между ними, адинамический аспект ПО описывается в терминах обмена сообщениями между объектами.Каждый объект системы обладает своим собственным поведением, моделирующимповедение объекта реального мира.Объектная модель является естественным способом представления реального мира.Она является концептуальной основой ООП.

Основными принципами ее построенияявляются: абстрагирование; инкапсуляция; модульность; иерархия.Дополнительные принципы: типизация; параллелизм; устойчивость (persistence).Абстрагирование – этовыделениенаиболеесущественныххарактеристикнекоторого объекта, отличающихего от всех других видовобъектов, важных с точки зрениядальнейшего рассмотрения и анализа, и игнорирование менее важных илинезначительных деталей. Абстракцией является любая модель, включающая наиболееважные, существенные или отличительные характеристики некоторого объекта, иигнорирующая менее важные или незначительные детали. Абстрагирование позволяетуправлять сложностью системы, концентрируясь на существенных свойствах объекта.Абстракция зависит от предметной областии точки зрения – то, что важно в одномконтексте, может быть не важно в другом.Выбор правильного набора абстракций длязаданной предметной области представляетсобойглавнуюзадачуобъектноориентированного проектирования.

Объектыи классы– основные абстракциипредметной области.Инкапсуляция – локализация свойств иповеденияврамкахединственнойабстракции (рассматриваемой как «черный4ящик»),скрывающейреализациюза общедоступныминтерфейсом.Приинкапсуляцииотделяетсявнутреннееустройство объекта от его внешнегоповедения. Объектный подход предполагает,что внутренние ресурсы объекта, скрыты отвнешнейсреды.Абстрагированиеиинкапсуляцияявляютсявзаимодополняющими принципами.Модульность – это свойство системы,связанное с возможностью ее декомпозициина ряд внутренне сильно сцепленных, но слабосвязанныхмеждусобойподсистем(частей).Модульность снижает сложность системы, позволяявыполнять независимую разработку ее отдельныхчастей.Иерархия – ранжированная или упорядоченнаясистема абстракций, расположение их по уровням ввиде древовидной структуры. Элементы, находящиесяна одном уровне иерархии, должны также находитьсяна одном уровне абстракции.

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

В частности,допускается полиморфизм – многозначностьимен. Одно из проявлений полиморфизма,использование объект подтипа (наследника) вроли объекта супертипа (предка).Параллелизм – наличие в системенесколькихпотоковуправленияодновременно. Объект может быть активен,т. е. может порождать отдельный потокуправления. Различные объекты могут бытьактивны одновременно.Устойчивость – способность объектасохранять свое существование во времении/или пространстве (адресном, в частностиприперемещениимеждуузламивычислительной системы). В частности,5устойчивость объектов может быть обеспечена за счет их хранения в базе данных.Переходим к основным понятиям объектно-ориентированного подхода (элементамобъектной модели).

К ним относятся: объект; класс; атрибут; операция; полиморфизм;наследование; компонент; пакет; подсистема; связь.Объект – осязаемая сущность (tangible entity) – предмет или явление (процесс),имеющие четко выраженные границы, индивидуальность и поведение Любой объектобладает состоянием, поведением и индивидуальностью. Состояние объектаопределяется значениями его свойств (атрибутов) и связями с другими объектами, ономожет меняться со временем. Поведение определяет действия объекта и его реакцию назапросы от других объектов. Поведение представляется с помощью набора сообщений,воспринимаемых объектом (операций, которые может выполнять объект).Индивидуальность – это свойства объекта, отличающие его от всех других объектов.Структура и поведение схожих объектов определяют общий для них класс.

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

Атрибуты могут бытьскрыты от других классов, это определяет видимость атрибута: рublic (общий, открытый);private (закрытый, секретный); protected (защищенный).Требуемоеповедениесистемыреализуется через взаимодействие объектов.Взаимодействие объектов обеспечиваетсямеханизмомпересылкисообщений.Определенное воздействие одного объектанадругойсцельювызватьсоответствующуюреакциюназываетсяоперацией или посылкой сообщения.Сообщение может быть послано тольковдоль соединения между объектами. Втерминах программирования соединениемежду объектами существует, если один объект имеет ссылку на другой.Операция – это реализация услуги, которую можно запросить у любого объектаданного класса.

Операции реализуют связанное с классом поведение, его обязанности.Описание операции включает четыре части: имя; список параметров; тип возвращаемогозначения; видимость.Результат операции зависит от текущего состояния объекта. Виды операций: Операции реализации (implementor operations) – реализуют требуемуюфункциональность. Операции управления (manager operations) управляют созданием и уничтожениемобъектов (конструкторы и деструкторы). Операции доступа (access operations) – так называемые, get-теры, set-теры – даютдоступ к закрытым атрибутам. Вспомогательные операции (helper operations) – непубличные операции, служат дляреализации операций других видов.Объект может быть абстракцией некоторой сущности предметной области (объектреального мира) или программной системы (архитектурный объект).6Сравнение архитектур традиционной и ОО-системы:В ОО-системе алгоритмы (поведение) и структуры данных (внутреннее устройство)объединены в объекты, за счет уменьшается сложность системы, локализуютсяизменения.Понятие полиморфизма может быть интерпретировано, как способность объектапринадлежать более чем одному типу.

Полиморфизм – способность скрывать множестворазличных реализаций под единственным общим именем или интерфейсом. Интерфейс –это совокупность операций, определяющих набор услуг класса или компонента.Интерфейс не определяет внутреннюю структуру, все его операции открыты. Пример,одна и та же операция рассчитатьЗарплату может иметь три различные реализации втрех различных классах: СлужащийСПочасовойОплатой, СлужащийНаОкладе,ВременныйСлужащий.Компонент – это относительно независимая и замещаемая часть системы,выполняющая четко определенную функцию в контексте заданной архитектуры.Компонент представляет собой физическую реализацию проектной абстракции иможет быть: компонентом исходного кода (cpp-шник); компонентом времени выполнения(dll, ActiveX и т. п.); исполняемый компонентом (exe-шник).

Компонент обеспечиваетфизическую реализацию набора интерфейсов. Компонентная разработка (component-baseddevelopment) представляет собой создание программных систем, состоящих изкомпонентов (не путать с объектно-ориентированным программированием (ООП).ООП – способ создания программных компонентов, базирующихся на объектах.Компонентная разработка – технология, позволяющая объединять объектныекомпоненты в систему.Пакет – это общий механизм для организации элементов в группы. Это элементмодели, который может включать другие элементы.

Каждый элемент модели можетвходить только в один пакет. Пакет является: средством организации модели в процессе разработки, повышения ее управляемости ичитаемости; единицей управления конфигурацией.Подсистема – это комбинация пакета (может включать другие элементы модели) икласса (обладает поведением). Подсистема реализует один или более интерфейсов,определяющих ее поведение. Она используется для представления компонента в процессепроектирования.Между элементами объектной модели существуют различные виды связей.Соединение (link) – физическая или концептуальная связь между объектами,позволяющая им взаимодействовать.7Ассоциация – связь между классами, описывающая группу однородных по структуреи семантике соединений между экземплярами классов.

Соединения являютсяэкземплярами ассоциации точно так же, как соединенные объекты являются экземплярамиклассов, связанных ассоциацией.Пример показывает, что ассоциация ВладеетАкциями между классами Персонаи Компания может иметь несколько экземпляров – соединений. Обратите внимание, чтодва соединения, являющиеся экземплярами одной и той же ассоциации, не могутсвязывать одни и те же объекты дважды.Агрегация – более сильный тип ассоциативной связи между целым и его частями(пример: автомобиль и мотор).

Свежие статьи
Популярно сейчас