Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Объект представляет собой конкретный опознаваемый предмет, единицу или сущность (реальную или абстрактную), имеющую четко определенное функциональное назначение в данной предметной области.
Объекты существуют во времени, занимают определенное пространство, имеют внутреннее состояние, могут создаваться, изменяться, разделяться, уничтожаться.
Структура и поведение одинаковых объектов описывается в общем для них классе. Объекты это экземпляры классов. Термины «объект» и «экземпляр класса» взаимозаменяемы.
Объект характеризуется: состоянием, поведением, идентичностью.
Устойчивость определяет, сохраняется ли состояние объекта после завершения создавшего его процесса.
Состояние объекта определяет его статические и динамические свойства.
Свойство объекта это его характеристика (качество, черта), позволяющая описать индивидуальность объекта. Абстракция отдельного свойства объекта называется его атрибутом. Состояние объекта это описание свойств объекта в пространстве в определенный момент времени.
Статические свойства - перечень атрибутов объекта.
Динамические свойства - значения атрибутов объекта.
Абстракция отдельного свойства объекта называется его атрибутом. <имя объекта>.<имя атрибута>
Каждый атрибут имеет имя, уникальное в пределах объекта.
Поведение описывает, как объект воздействует на другие объекты, или как он подвергается воздействию со стороны других объектов с точки зрения изменения его собственного состояния и состояния других объектов.
Операция - реализация услуги, которая может быть запрошена у любого объекта.
Метод реализация операции
Идентичность объекта его отличие от других объектов. Объект это конкретный опознаваемый предмет со всеми его свойствами, а имя объекта это просто его название, которое не кроме строки имени ничего в себя не вкладывает. Атрибут идентификатор это значение конкретного свойства объекта. Объект-значение это конкретная сущность, объект-ссылка это просто указатель на сущность, который не несет в себе никакого конкретного значения.
Связь - семантическое соединение между объектами.
Связь определяет путь, по которому один объект передает сообщения другому (или самому себе). Чаще всего достаточно указать, что такой путь существует.
Сообщение - спецификация обмена данными между объектами, при котором передается некая информация в расчете на то, что в ответ последует определенное действие.
Получение объектом экземпляра сообщения можно считать экземпляром события.
Структура сообщения:
Область видимости обеспечивает способность одного объекта видеть другой или ссылаться на него.
Используется следующая мотивация: для отправки сообщения от объекта А к объекту В необходимо, чтобы объект В был виден объекту А.
Обеспечения видимости объекта В объектом А:
Объект В является атрибутом объекта А.
Тип видимости - постоянный, поскольку видимость между объектами поддерживается до тех пор, пока существуют сами объекты. В объектно-ориентированных системах это самая популярная форма обеспечения видимости.
Class B{}
Class A{
B obj;
}
Существует в том случае, если объект В передается в качестве параметров метода объекту А.
«Временная» видимость, поскольку она существует только в контексте данного метода.
После видимости с помощью атрибутов, это второй по распространенности способ обеспечения видимости в объектно-ориентированных системах.
Class B{}
Class A{
Metod(B obj); }
Существует в том случае, если объект В объявлен в качестве локальной переменной в методе А.
Относительно «временная» видимость, поскольку она существует только в контексте данного метода.
Достигается следующими способами:
Class B{}
Class A{
Metod(){
B obj;
}
}
Существует в том случае, если объект В является глобальным по отношению к А.
Постоянная видимость, поскольку она поддерживается до тех пор, пока существуют объекты А и В.
Наиболее редкий способ обеспечения видимости.
Class B{}
B obj;
Class A{
Metod(){}
}
Класс это описание множества объектов, которые определяются общей структурой, поведением, отношениями и семантикой. Класс представляет собой понятие реального мира либо программную сущность. Объекты это исполняемые сущности, представляющие собой реализацию класса; на основе одного класса можно создать много различных объектов.
Использование термина «класс» в различных типах модели:
Классы в модели предметной области
Типы видимости:
Атрибут это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого свойства. Атрибут представляет некоторое свойство моделируемой сущности, общее для всех объектов данного класса. В каждый момент времени любой атрибут объекта, принадлежащего данному классу, обладает вполне определенным объектом.
<видимость> <имя> <:тип> <[кратность]> <= начальное значение> {строка свойств}
В модели предметной области атрибуты должны быть простыми атрибутами или простыми типами данных.
Стандартные типы атрибутов: Boolean, Date, Number, String (Text), Time, Address, Color, Point, Rectangle, PhoneNumber.
Другие стандартные типы: Адрес, Цвет, Геометрические фигуры: точка, прямоугольник, Номер Телефона, Номер страхового полиса, Почтовый индекс, перечисляемые типы
Атрибуты должны быть простыми
характеристика атрибутов в UML:
Реализуется через ключевое слово static
производный атрибут может вычисляться на основе других значений (например, площадь геометрической фигуры).
changeability
Операция - реализация услуги, которую можно запросить у любого объекта класса для воздействия на поведение.
<видимость> < имя> (< список параметров>) : <тип возвращаемого значения> {<строка свойств>}
характеристика атрибутов и операций в UML:
Реализуется через ключевое слово static
Интерфейс набор операций, используемый для специфицирования услуг, предоставляемых классом.
Классы, описывающие интерфейс, связаны с другими классами, реализующими заявленный интерфейс, отношением реализации.
С точки зрения программной реализации интерфейс представляет собой класс без каких-либо деталей реализации, т.е. содержит только определения операций.
Нотация UML для интерфейсов:
Ассоциация это семантическое отношение, показывающее, что объекты одного класса неким образом связаны с объектами другого класса. Графически ассоциация изображается в виде сплошной линии. Если между классами определено структурное отношение ассоциация, то можно перемещаться от объектов одного класса к объектам другого.
Связь это физическое или концептуальное соединение между объектами. Так же связь это экземпляр ассоциации. Ассоциация это описание группы связей, обладающих общей структурой и общей семантикой. Связи, являющиеся экземплярами некоторой ассоциации, соединяют объекты тех классов, которые связаны между собой этой ассоциацией. Если между классами определено структурное отношение ассоциация, то можно перемещаться от объектов одного класса к объектам другого.
Агрегация специальный вид ассоциации, описывающий отношение между агрегатом (целым) и его компонентом (частью)
Агрегация:
Рекомендации по идентификации отношения агрегации:
По значению. Целое физически содержим часть. Такая ассоциация называется композицией
Композиция. Жизненный цикл частей совпадает с жизненным циклом агрегата: создание или уничтожение частей агрегата происходит при создании или уничтожении самого агрегата.
Правило композиции хотя класс может быть частью нескольких других классов, но любой экземпляр может принадлежать только одному владельцу. Кратность такой ассоциации со стороны композитного объекта равна 1 части не могут существовать независимо от самого композита.
Анотация для композиции:
По ссылке.
Целое физически содержит указатель или ссылку на часть.
Время жизни агрегата и его части независимы
Кратность со стороны составного объекта может быть больше 1.
Это подразумевает, что с частью может быть связано несколько экзекмпляров составного объекта.
Анотация для агрегации:
Каждое отношение агрегации это тип ассоциации
Каждое отношение композиции это форма агрегации
Квалификатор является атрибутом ассоциации, значения которого разбивают множество объектов на подмножества, связанные с объектом на другом конце ассоциации
Ассоциация с квалификатором называется квалифицированной ассоциацией.
Квалифицированная ассоциация с целевой кратностью «один» или «не более одного» образует четкий маршрут для поиска целевого объекта
Класс-ассоциации сочетает в себе свойства ассоциации и класса
Класс ассоциацию можносчитать или ассоциацией, имеющей свойства класса, или классом со свойствами ассоциации
Класс-ассоциации дает возможность определить дополнительное ограничение, согласно которому двум участвующим в ассоциации объектам может соответствовать только один экземпляр класса-ассоциации
ОБОБЩЕНИЕ - это отношение между общей сущностью (суперклассом) и одной или есколькими его вариациями (подклассами)
Подкласс:
Может переопределять операции
Обобщение отношение «является»
Экземпляр класса является экземпляром его всех суперклассов
Использование обобщения:
Наследование это программный механизм реализации совместимости подклассов с определениями суперклассов.
Особенность наследосания возможность устранения чрезмерной избыточности при хранении одинаковых данных или процедур. При наследавании допускается переопределение операций в подклассах, используя виртуальные функции. Виртуальные функции соответствуют операциям с одинакомыми сигнатурами.
Некоторые языки допускают множественное наследование, при котором класс может иметь более одного суперкласса.
Недостатки множественного наследованиия:
Решение проблемы конфликта имен. К копиям унаследованных элементов добавляется имея класса-источника
Решение: суперкласс определяется как виртуальный базовый класс (применяется, когда суперклассы получены от одного общего суперкласса)
Абстрактный класс класс, не имеющий непосредственных экземпляров.
Абстрактные классы используются для определения операций без реализующих их методов (абстрактные операции). Эти операции наследуются и реализуются подклассами.
Отношение зависимости между двумя элементами (классами или объектами) означает, что изменения в определении одного элемента (Сервера) могут вызвать изменения в другом элементе (Клиенте). Зависимость всегда однонаправленное отношение. Зависящий элемент называется Клиентом или Источником; независимый элемент называется Сервером или Целью (целевой элемент). Графически зависимость изображается пунктирной линией со стрелкой, направленной от данного элемента на тот, от которого он зависит.
Между объектами можно устанавливать зависимости по данным. Эти зависимости выражают связи или отношения между классами указанных объектов. Зависимости между классами являются двусторонними: все классы в зависимости равноправны. В языках программирования зависимости между классами (объектами) обычно реализуются с помощью ссылок (указателей) из одного класса (объекта) на другой.
Абстракция - это зависимость, в которой клиент и сервер находятся на различный уровнях абстракции.
Типы абстракции:
Связывание (или инстацирование) - определяет отношение между параметризированным классом (шаблоном) и инстацированным классом.
Шаблон - это семейство классов с общей структурой и поведением. Параметризированный класс представляет собой шаблон для построения других классов, он может быть параметризирован другими классами, объектами и операциями. Параметризированный класс не может порождать экземпляры и не может использоваться сам в качестве параметра.
Инстацирование это связывание формальных параметров параметризированного класса фактическими. В результате этого из параметризированного класса получается конкретный класс, который может порождать экземпляры.
Использование - показывает, что одна из сторон отношения (клиент) для своего корректного функционирования или реализации пользуется услугами стороны другой (сервера).
UML предлагает следующие типы отношения использования:
Разрешение - указывает, что клиенту даются специальные права видимости свойств сервера. Используется для моделирования отношений, подобных отношениям между классом и его друзьями в языке C++. Обычно клиент имеет доступ только к открытой части интерфейса сервера. Нарушение инкапсуляции проявляется в дружественных отношениях между классами сервер разрешает клиенту доступ к его закрытой функциональности.
Зависимость между пакетами - показывает, что один и более классов одного пакета «заинтересованы» во взаимодействии с одним и более классами другого пакета.
Стереотипы зависимости:
Структурный подход
Сущность подхода заключается в декомпозиции (разбиении) системы на автоматизируемые функции:
система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее.
Процесс разбиения продолжается вплоть до конкретных процедур.
Объектно-ориентированный подход
Сущность подхода заключается в объектно-ориентированной декомпозиции системы, т.е. разработчики системы вместо операций и функций мыслят в понятиях «объекты». Программная система состоит из множества объектов, взаимодействующих друг с другом путем посылки сообщений.
При проектировании определяются классы объектов и отношения между классами. Когда проект реализован в виде исполняемой программы, все необходимые объекты создаются динамически с помощью определений классов.
Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы "снизу-вверх" от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Принципы структурного подхода:
Сущность подхода заключается в объектно-ориентированной декомпозиции системы, т.е. разработчики системы вместо операций и функций мыслят в понятиях «объекты». Программная система состоит из множества объектов, взаимодействующих друг с другом путем посылки сообщений.
Этапы в соответствии с объектно-ориентированным подходом:
Объектно-ориентированный анализ - создание объектно-ориентированной модели предметной области приложения ПО.
Объектно-ориентированное проектирование - разработка объектно-ориентированной модели системы ПО (системной архитектуры) с учетом системных требований.
Объектно-ориентированное программирование - реализация архитектуры с помощью объектно-ориентированного языка программирования.
Объектно-ориентированный подход поддерживает принципы:
Абстракция - выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя.
Инкапсуляция - процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение.
Это означает наличие двух частей в классе: интерфейса и реализации. Интерфейс отражает внешнее представление и поведение всех объектов данного класса. Реализация описывает механизмы и внутреннюю реализацию внешнего интерфейса. В интерфейсной части собрано все, что касается взаимодействия данного объекта с любыми другими объектами; реализация скрывает от других объектов все детали, не имеющие отношения к процессу взаимодействия объектов.
Наследование - иерархия абстракций по уровням, что позволяет при определении новых сущностей использовать уже существующие сущности верхнего уровня.
Полиморфизм - положение теории типов, согласно которому одно и то же имя может означать объекты разных типов, но, имея общего предка, все они имеют и общее подмножество операций, которые можно над ними выполнять. При этом операции, принадлежащие общему предку имеют разные, присущие каждому типу реализации. То есть одна спецификация имеет несколько реализаций.
Унифицированный язык моделирования (UML) фактический и юридический стандарт для объектно-ориентированного моделирования.
Способы применения UML:
Словарь языка UML состоит из: сущностей, отношений, диаграмм, механизмов расширения языка.
Сущности это абстракции, являющиеся основными элементами модели.
Типы сущностей:
Отношения связывают различные сущности.
В UML определены 4 типа отношений:
Диаграммы графическое представление набора элементов, изображаемое в виде связанного графа с вершинами (сущностями) и ребрами (отношениями).
Диаграммы UML предназначены для визуализации системы с различных точек зрения.
Диаграмма одна из проекций системы.
Механизмы расширения UML:
Стереотипы. Позволяет создавать новые виды элементов, аналогичные существующим, но специфичные для данной задачи или процесса, т.е. является механизмом выделения категорий элементов. Может иметь дополнительные свойства, влияющие на генерацию кода. Графический стереотип изображается одним из двух способов:
Помеченное (именованное) значение. Расширение свойств элемента, позволяющее вводить дополнительлную информацию в его спецификацию. Является парой «ключ = значение».
Ограничение. Позволяет создавать новые или изменять существующие правила. Ограничение это выражение, накладывающее некое ограничение на ассоциированный с ним элемент. Изображается в виде текстовой строки в фигурных скобках ({}).
Для моделирования поведения системы используются такие диаграммы как:
Для отображения структуры системы:
Диаграмма компонентов применяют для моделирования статического вида системы с точки зрения реализации.
Диаграмма компонентов включает:
Компонент физически заменяемая часть системы, совместимая с набором интерфейсов и обеспечивающая реализацию какого-либо другого
Моделирование интерфейса компонента:
Узел это физический элемент, который существует во время выполнения и представляет вычислительный ресурс, обладающий объемом памяти и/или процессором
Пакет механизм организации элементов в группы
Диаграмма пакетов, Package diagram структурная диаграмма, основным содержанием которой являются пакеты и отношения между ними. Жёсткого разделения между разными структурными диаграммами не проводится, поэтому данное название предлагается исключительно для удобства и не имеет семантического значения (пакеты и диаграммы пакетов могут присутствовать на других структурных диаграммах). Диаграммы пакетов служат, в первую очередь, для организации элементов в группы по какому-либо признаку с целью упрощения структуры и организации работы с моделью системы.
Диаграмма объектов структурная диаграмма, которая показывает объекты и их отношения в некоторый момент времени.
Содержит: Объекты, Связи.
Применение диаграммы объектов: моделирование статического вида системы с точки зрения проектирования или процессов (как и с помощью диаграммы классов), но принимая во внимание реальные экземпляры или прототипы.
Диаграммы составных структур структурная диаграмма, которая показывает внешние интерфейсы и внутреннюю композицию структуры класса
Содержит
Пременение:
Покозывает поток переходов от одной дуятельности к другой;
Сдержит:
Узел (состояние) дуятельности
Действие
Управляющие узлы
Узел объекта - Обеспечивает и принимает объекты и данные в качестве входящего и выходящего потока в контексте выполнения деятельности.
Применение диаграмм деятельности
Управляющие узлы
Диаграмма состояний (конечного автомата) показывает автомат, фокусируя внимание на потоке управления от состояния к состоянию
Содержит:
Применение диаграмм состояния
Состояние
Простые и составные состояния:
Переход показывает отношение между двумя состояниями
Метка перехода:
Имя события (разделенный запятыми список параметров)[сторожевое условие]/действие
Диаграмма взаимодействия описывает взаимодействия, состоящие из множества объектов и отношений между ними, включая сообщения, которыми они обмениваются.
Можно строить двумя способами, акцентируя внимание:
Диаграммы взаимодействия - содержат
Стандарт 1.4
Особенности диаграмм последовательности
Особенности диаграмм кооперации
Фокусирует внимание на потоке управления внутри обзора взаимодействия. Разновидность диаграммы деятельности, включающая фрагменты диаграммы последовательности и конструкции потока управления.
Диаграмма вариантов использования - диаграмма, на которой показана совокупность прецедентов и актеров, а также отношения между ними. Диаграммы вариантов использования представляют функциональность системы, подсистемы или класса видимую извне, а также внешние сущности, использующие функциональность.
Диаграмма содержит:
Вариант использования показывает единицу функциональности системы, подсистемы или класса. С помощью вариантов использования описывают поведение разрабатываемой системы, не определяя ее реализацию. Изображение варианта использования - в виде эллипса, содержащего имя варианта использования. Имя варианта использования -текстовая строка в виде короткой глагольной фразы в активной форме, обозначающей некоторое поведение.
Актер - представляет собой роль, которую играет пользователь или другие системы при взаимодействии с разрабатываемой системой. В качестве актеров могут выступать люди, внешнее оборудование или автоматизированные системы. Актер моделирует тип роли, которую играет некая внешняя сущность по отношению к системе. Термин «внешняя» подразумевает, что экземпляр актера не является частью системы.
Отношение между актером и вариантом использования - показывает их общение посредством передаваемых и принимаемых сообщений. Один актер может участвовать в выполнении нескольких вариантов использования; в свою очередь, у варианта использования может несколько актеров, которые участвуют в его выполнении.
Отношения между актерами, с помощью которого определяют общие типы ролей и их разновидности.
Отношения между прецедентами:
Обобщение - отношение меду прецедентами, при котором прецедент потомок наследует поведение своего родителя, может замещать его и дополнять его поведение, а также подставлен всюду, где появляется его родитель.
Сценарий варианта использования
Основная задача идентифицировать концептуальные классы, связанные с разрабатываемым сценарием
Способы выявления концептуальных классов:
На стадии создания предметной области ассоциация не является описанием потоков данных, экземпляров переменных или взаимодействия объектов программной системы. Она представляет собой описание значимого отношения, имеющего концептуальный смысл.
При создании модели предметной области можно определить ассоциации, которые не понадобятся во время проектирования.
В модели предметной области атрибуты должны быть простыми атрибутами или простыми типами данных.
Стандартные типы атрибутов: Boolean, Date, Number, String (Text), Time, Address, Color, Point, Rectangle, PhoneNumber.
Другие стандартные типы: Адрес, Цвет, Геометрические фигуры: точка, прямоугольник, Номер Телефона, Номер страхового полиса, Почтовый индекс, перечисляемые типы
<<boundary>> используются для моделирования взаимодействия между системой и её актерами (пользователями и внешними системами). Взаимодействие часто включает в себя получение (и передачу) информации и запросы пользователей и внешних систем к ним. Абстракции окон, форм, панелей, коммуникационных интерфейсов, интерфейсов принтера, датчиков, терминалов и (возможно не объектно-ориентированных) АРI.
<<entity>> используется для моделирования долгоживущей, сохраняемой информации. часто показывают логическую структуру данных и способствуют пониманию того, как система от нее зависит.
<<control>> отвечают за координацию, порядок последовательности, взаимодействия и управление другими объектами и часто используются для хранения управления, относящегося к некоторому варианту использования.
Класс анализа сосредоточен на представлении функциональных требований и откладывает нефункциональные требования на следующие стадии проектирование и реализация, обозначая их как специальные требования класса. Это делает класс анализа более очевидным в контексте проблемной области, более «концептуальным» и часто более детализированным, чем соответствующие проект и реализация.
Класс анализа редко определяет или поддерживает какие либо интерфейсы в пониманиях операций и их сигнатур. Вместо этого его поведение определено в соответствии с ответственностями верхнего, менее формального уровня. Ответственность это текстовое описание связанного поднабора поведения, определенного в классе.
Класс анализа определяет атрибуты, хотя эти атрибуты также довольно высокого уровня. Типы этих атрибутов часто концептуальные и берутся из прикладной области, в то время как типы атрибутов классов проектирования и реализации это обычно типы языка программирования. Кроме этого, атрибуты, обнаруженные в ходе анализа, обычно становятся классами проекта и реализации.