Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 29
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 29 страницы из PDF
Что мы узналиМы рассмотрели следующее:•Анализ заключается в создании моделей, отображающих основныетребования и характеристики целевой системы – аналитическоемоделирование имеет стратегическое значение.•Основной объем работ рабочего потока анализа выполняется в конце фазы Начало и в фазе Уточнение.146Глава 6. Рабочий поток анализа•••••Рабочие потоки анализа и определения требований пересекаются,особенно в фазе Уточнение – обычно для выявления неучтенныхили искаженных требований полезно анализировать требованияпо мере их обнаружения.Аналитическая модель:• всегда создается на языке соответствующей сферы деятельности;• отображает картину в целом;• содержит артефакты, моделирующие предметную область;• рассказывает историю о целевой системе;• полезна максимально возможному числу заинтересованных сторон.Аналитические артефакты – это:• классы анализа – ключевые понятия бизнессферы;• реализации прецедентов – иллюстрируют, как экземпляры классов анализа могут взаимодействовать для реализации поведениясистемы, описанного прецедентами.Рабочий поток анализа в UP включает следующие деятельности:• Архитектурный анализ• Анализ прецедента• Анализ класса• Анализ пакетаАналитическая модель – практические правила:• аналитическая модель среднестатистической системы состоитиз 50–100 классов анализа;• включаются только классы, моделирующие словарь предметнойобласти;• не формируются решения по реализации;• основное внимание на классах и ассоциациях – минимизациясвязанности между классами;• наследование применяется там, где присутствует естественнаяиерархия абстракций;• необходимо стремиться к простоте модели!7Объекты и классы7.1.
План главыЭта глава полностью посвящена объектам и классам. Они – основныестроительные блоки ОО систем. Если читатель уже хорошо знаком с понятием объектов и классов, можно пропустить разделы 7.2 и 7.4. Однако, вероятно, вам будет интересна информация о UMLнотации объектов (раздел 7.3) и классов (раздел 7.5).Глава завершается обсуждением смежных вопросов области действияопераций и атрибутов (раздел 7.5), а также вопросов создания и уничтожения объектов (раздел 7.7).При анализе используется только часть UMLсинтаксиса класса. НОчтобы не разбрасывать справочную информацию по всей книге и невозвращаться к этому позже, в этой главе рассматривается полныйсинтаксис класса.7.2.
Что такое объекты?Книга «UML Reference Manual» [Rumbaugh 1] определяет объект как«отдельную сущность с явно выраженными границами, которая инкапсулирует состояние и поведение; экземпляр класса».Объекты объединяют данные и функциональность в единый блок.Объект можно представить как единый пакет данных и функциональности. Как правило, единственный путь добраться до данных объекта –вызвать одну из предоставляемых им функций. Эти функции называются операциями (operations). Сокрытие данных объекта за уровнемопераций известно как инкапсуляция (encapsulation), или сокрытиеданных (datahiding).
Инкапсуляция в UML не является обязательной, поскольку некоторые ОО языки не нуждаются в ней. Однако со7.5.3.1 Направлениепараметра7.5.2.1. Видимость7.5.3.3. Расширенныйсинтаксис операции7.5.3.4. Операциизапроса7.5.2.4. Начальное значение7.5.2.5. Расширенныйсинтаксис атрибута7.5.2.3. Кратность7.5.3.2. Значения параметровпо умолчанию7.5.3. Ячейкаопераций7.5.2. Ячейкаатрибутов7.5.2.2. ТипизучаемоперацииизучаематрибутыРис.
7.1. План главы7.5.1. Ячейкаимениизучаем процессприсваивания имен классам7.5. Нотация классов в UML7.6.2. Область действия опреQделяет возможность доступа7.6.1. Область действия класси область действия экземпляр7.6. Областьдействияизучаемобласть действия7.7.2. Деструкторы –пример класса ClubMember7.7.1. Конструкторы –пример класса ClubMember7.7. Созданиеи уничтожение объектовизучаем конструкторыи деструкторы7.4.2. Создание экземпляров класса7.4.1. Классы и объекты7.4.
Что такое классы?7.3.1. Значения атрибутов объектов7.3. Нотация объектов в UML7.2.2. Обмен сообщениями7.2.1. Инкапсуляция7.2. Что такое объекты?изучаем создание и уничтожение объектовизучаем классыизучаем синтаксис UML!объектаизучаем объекты7.8. Что мы узнали7.5.4. Синтаксисстереотипа классаизучаемстереотипыизучаем синтаксис UML!классаelseelseelse148Глава 7. Объекты и классы7.2. Что такое объекты?149крытие данных объекта за уровнем операций всегда считается хорошим ОО стилем.Объекты скрывают данные на уровне функций, которые называютсяоперациями.Каждый объект является экземпляром некоторого класса, определяющего общий набор свойств (атрибутов и операций), присущих всем экземплярам этого класса.
Идея классов и классификаторов на самом деле очень проста. Представим принтер типа «Epson Photo 1200». Онописывает свойства всех отдельных экземпляров данного класса, в томчисле и конкретный «Epson Photo 1200 с/н 34120098», стоящий на нашем столе. Конкретный экземпляр класса называется объектом.Немного поразмыслив над этим примером объекта принтера Epson,можно увидеть, что ему присущи определенные свойства, общие длявсех объектов.Каждый объект имеет уникальный идентификатор.•Идентификатор (identity) – это определение существования и единственности объекта во времени и пространстве.
Это то, что отличаетего от всех остальных объектов. В нашем примере серийный номерможет использоваться в качестве идентификатора для обозначенияконкретного принтера на нашем столе и представления уникального идентификатора этого объекта. Серийный номер – замечательный способ идентифицировать физический объект. Для идентификации каждого программного объекта, принимающего участие в ООанализе и проектировании, используется аналогичный принцип –идея объектной ссылки. Конечно, в реальности не у всех объектовесть серийный номер, но все равно они имеют уникальные идентификаторы: конкретные пространственные и временные координаты.
Подобным образом в ОО программных системах каждый объектимеет некоторую объектную ссылку.Значения атрибутов хранят данные объекта.••Состояние (state) – определяется значениями атрибутов объектаи его отношениями с другими объектами в конкретный момент времени. В табл. 7.1. приведен полный список возможных состоянийпринтера, из которого видно, как состояние объекта зависит от значений его атрибутов и его связи с другими объектами.Поведение (behavior) – принтер может выполнять конкретные действия:switchOn() (включиться)switchOff() (выключиться)150Глава 7.
Объекты и классыprintDocument() (распечатать документ)pageFeed() (заправить бумагу)clearInkJetNozzles() (очистить форсунки)changeInkCartridge() (заменить картридж)Вызов операции объекта всегда приводит к изменению значений одногоили более его атрибутов или отношений с другими объектами. Это мо+жет обусловить переход состояний – целенаправленный переход объекта из одного состояния в другое. Из табл.
7.1 видно, что состояниеобъекта может влиять и на его поведение. Например, если в принтерезакончились чернила (состояние объекта = OutOfBlackInk), вызов операции printDocument() приведет к сообщению об ошибке. Поэтому поведение printDocument() является зависимым от состояния.Метод – это реализация операции.Операция – это описание части поведения. Реализация этого поведения называется методом (method).Таблица 7.1Состояние объекта Атрибут классаЗначение атри Отношениебута объектаOnpoweronНе определеноOffpoweroffНе определеноOutOfBlackInkblackInkCartridgeemptyНе определеноOutOfColorInkcolorInkCartridgeemptyНе определеноConnectedне определеноне определеноПодключен к объекту компьютерNotConnectedне определеноне определеноНе подключен к объекту компьютер7.2.1.
ИнкапсуляцияКак уже говорилось, идентификатор объекта – это некий уникальныйдескриптор, обычно адрес памяти, предоставляемый языком реализации. С этого момента будем называть эти дескрипторы объектнымиссылками. В ОО анализе не надо беспокоиться об их реализации. Можно просто принять, что у каждого объекта есть уникальный идентификатор, управляемый технологией реализации. Возможно, при проектировании понадобится рассмотреть реализацию объектных ссылок.Это необходимо, если целевым языком является ОО язык программирования, такой как С++, который позволяет напрямую работать с определенными типами объектных ссылок, известными как указатели.На рис.
7.2 приведено концептуальное представление объекта, подчеркивающее инкапсуляцию. Обратите внимание, что рис. 7.2 не яв+1517.2. Что такое объекты?значения атрибутовdeposit( )withdraw( )1234567801«Jim Arlow»300.00getOwner( )setOwner( )объект AccountоперацииРис. 7.2. Представление объекта, подчеркивающее инкапсуляциюляется UMLдиаграммой. UMLсинтаксис для объектов будет показанпозже.Состояние объекта определяется значениями его атрибутов.Состояние объекта – это набор значений атрибутов (в данном случае1234567801, «Jim Arlow», 300.00) объекта в любой момент времени.Значения некоторых атрибутов постоянны, значения других могут современем меняться. Например, номер счета и имя останутся постоянными, а вот баланс, надеемся, будет постепенно увеличиваться!Поскольку баланс меняется со временем, мы видим, что состояниеобъекта также изменяется во времени. Например, если баланс отрицательный, можно сказать, что объект находится в состоянии Overdrawn(кредит превышен).
При изменении баланса из отрицательного в нулевой объект существенно меняет свою суть: переходит из состоянияOverdrawn в состояние Empty (пустой). Более того, когда баланс объектаAccount (счет) становится положительным, осуществляется еще один переход состояния: из Empty в InCredit (кредитоспособен). Возможны и другие переходы состояний. Фактически любой вызов операции, приводящий к изменению сути объекта, обуславливает переход состояний.UML предоставляет мощный набор методов моделирования изменений состояния, которые называются конечными автоматами; им посвящена глава 21.Поведение объекта – это то, «что он может сделать для нас», т. е. егооперации.152Глава 7. Объекты и классыПоведение любого объекта – это, по существу, то, «что он может сделать» для вас. Объект на рис.