Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические вопросы ВвПИ.docx
Скачиваний:
27
Добавлен:
10.06.2015
Размер:
435.97 Кб
Скачать

12.Er диаграммы

Моделирование сущностей и отношений

ER-моделирование (Entity-relationship – «сущность-отношение») является технологией моделиро-вания данных, которую популяризировал структурный анализ и синтез. Оно и сейчас остается популяр-ной технологией для моделирования структур БД на высших (концептуальных) уровнях абстракции. Технология имеет много вариантов, из которых наиболее популярным является так называемая нотация «вороньей лапы». ER-модели представляются визуально как ERD (entity-relationship diagrams – диаграммы «сущность-отношение»). Диаграммы определяют только три элемента моде-лирования – сущности, отношения и атрибуты.

Сущность – концептуальная структура данных, которая представляет деловой факт или правило и которая может быть четко идентифицирована (как правило). Идентификация позволя-ет различать сущность как концепцию (сущность-множество или сущность-тип) и экземпляры сущности (реализации сущности). ERD визуализируют сущности-множества, но при условии со-ответствующей интерпретации моделей можно учитывать и экземпляры сущностей.

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

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

ERD должна быть совместима со структурами данных (потоками данных и информацион-ными хранилищами), размещенными в соответствующей DFD. Чтобы гарантировать соответ-ствие, исходная ERD может быть получена из DFD.

13.Концепции класса и объекта. Характеристики объектно-ориентированного подхода к разработке. 14.Модели по. Модели классов, состояний, взаимодействий.

Моделирование современных (объектно-ориентированных) систем производится с помощью

Unified Modeling Language (UML) – унифицированного языка моделирования.

В UML визуальное моделирование обеспечивается так называемыми классификаторами. Классификатор – это элемент модели, который описывает поведение или структуру системы, и обычно имеет визуальное представление. Примеры классификаторов включают class (класс), actor (актор), use case (сценарий использования), relationship (отношение)

Объектно-ориентированная разработка – это концептуальный процесс, независимый от

языка программирования, по крайней мере, до последних этапов. Фактически это образ мышле-ния, а не методика программирования.

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

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

Объект (object) – это концепция, абстракция или сущность, обладающая ин-

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

Выбор объектов зави-сит от природы задачи и от предпочтений разработчика. Корректное решение в данном случае не является единственным.

Все объекты обладают индивидуальностью и потому отличимы друг от друга.

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

Объект является экземпляром класса. Класс (class) описывает группу объектов с одинако-

выми свойствами (атрибутами), одинаковым поведением (операциями), типами отношений и се-мантикой. В качестве примеров классов можно привести следующие: человек, компания, процесс и ок-но. Каждый человек имеет имя и дату рождения, а также может где-либо работать. Каждый процесс имеет владельца, приоритет и список необходимых ресурсов. Классы часто бывают именами нари-цательными и именными группами, которые используются в описании задач или при общении с пользователями.

Объекты одного класса имеют одинаковые атрибуты и формы поведения.

Выбор классов зависит от природы и об-ласти применения приложения и зачастую является субъективным.

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

1. Абстракция (abstraction) означает сосредоточение на важнейших аспектах приложения и

игнорирование всех остальных. Сначала принимается решение о том, что представляет собой объект и что он делает, а уже затем подбирается способ его реализации. Использование абстрак-ций позволяет сохранить свободу принятия решений как можно дольше благодаря тому, что де-тали не фиксируются раньше времени. Большинство современных языков программирования позволяют абстрагировать данные, но наследование и полиморфизм значительно расширяют возможности концепции абстрагирования. Умение создавать абстракции, вероятно, является са-мым важным качеством для объектно-ориентированного разработчика.

2. Наследование (inheritance) – это наличие у разных классов, образующих иерархию, общих атрибутов и операций (составляющих). Суперкласс задает наиболее общую информацию, кото-рую затем уточняют и улучшают его подклассы. Каждый подкласс соединяет в себе, то есть наследует, все черты его суперкласса, к которым добавляет собственные уникальные черты. Подклассам не обязательно воспроизводить все черты суперкласса. Например, классы ScrollingWindow (ОкноСПрокруткой) и FixedWindow (ФиксированноеОкно) являются подклассами класса Window (Окно). Оба подкласса наследуют черты класса Window (например, наличие видимой области на экране). ScrollingWindow добавляет полосу прокрутки и смещение. Возможность выделять общие черты нескольких классов в суперкласс значительно сокращает количество повторений в проектах и программах и является одним из основных достоинств объектно-ориентированной технологии.

3. Полиморфизм (polymorphism) означает, что одна и та же операция может подразумевать разное поведение в разных классах. Например, в шахматах операция ход для пешки и для ферзя характеризуется разным поведением. Операция (operation) – это процедура или трансформация, которую объект выполняет сам или которая осуществляется с данным объектом. Примерами операций являются выравнивание Вправо, отображение и ход. Реализация операции в конкрет-ном классе называется методом (method). Поскольку объектно-ориентированная операция явля-ется полиморфной, в разных классах объектов она может быть реализована разными методами.

4. Инкапсуляция (encapsulation), или, иначе говоря, сокрытие информации, состоит в отделе-нии внешних аспектов объекта, доступных другим объектам, от деталей внутренней реализации, которые от других объектов скрываются. В общем случае это выражается в контроле доступа од-них классов к атрибутам и операциям других классов. Инкапсуляция исключает возникновение взаимозависимостей участков программы, из-за которых небольшие изменения приводят к зна-чительным непредвиденным последствиям. Реализация объекта может быть изменена безо вся-ких последствий для использующих его приложений.

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

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

6. Выделение сущности объекта. Объектно-ориентированная технология выделяет то, чем объект является, а не то, как он используется. Использование объекта зависит от особенностей приложения и часто изменяется в процессе разработки.

2.4.2.2.4. Модели ПО Один из создателей языка UML, предлагает следующие три модели описания программных си-

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

Модель классов (class model) описывает структуру объектов системы: их индивидуальность,

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

Модель состояний (state model) описывает аспекты объектов, связанные с течением времени

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

Модель взаимодействия (interaction model) описывает взаимодействие между объектами, то

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

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