Антон Хританков - Проектирование на UML. Сборник задач
- Название:Проектирование на UML. Сборник задач
- Автор:
- Жанр:
- Издательство:Литагент Ридеро
- Год:неизвестен
- ISBN:9785448579547
- Рейтинг:
- Избранное:Добавить в избранное
-
Ваша оценка:
Антон Хританков - Проектирование на UML. Сборник задач краткое содержание
Проектирование на UML. Сборник задач - читать онлайн бесплатно ознакомительный отрывок
Шрифт:
Интервал:
Закладка:
§1. КЛАССЫ И ОБЪЕКТЫ
ОСНОВНЫЕ ПОНЯТИЯ
Пространство имен (namespace) – это именованный элемент модели, который может содержать другие именованные элементы. Принадлежность пространству имен показывается отношением включения в пространство имен (membership). Полностью квалифицированное имя (fully-qualified name)элемента в модели состоит из последовательности имен всех вложенных пространств имен, в которые включен элемент.
Классификатор (classifier) –это пространство имен в модели, указывает на общие некоторому множеству объектов черты. Черты классификатора могут быть поведенческими, структурными или соединительными.
Класс (class) – это классификатор, который описывает некоторую концепцию моделируемой области. Черты класса могут быть различных видов, наиболее часто для описания функциональности класса используются операции (operation), а для описания хранимых данных или связей с другими классами – свойства (property). Если типом свойства является примитивный тип или тип данных, свойства показывают как атрибуты, класса иначе как часть ассоциации.
Операция (operation) –черта поведения интерфейса, класса или типа данных. Операция задается именем, набором параметров, типом возвращаемого значения и его кратностью. Каждый параметр операции может иметь имя, тип, кратность. В программировании операции будет соответствовать сигнатура метода.
Обратите внимание, что определение операции в классе не влечет определение ее реализации в этом классе. Понятие метода в UML2 обозначает реализацию операции алгоритмом, который не описывается средствами UML или не уточняется в модели. В последнем случае, такую реализацию операции называют нечетким поведением (opaqueBehavior).
Интерфейсом (interface)называют особый вид классификатора, который определяет способ взаимодействия с экземпляром класса, реализующего интерфейс. Интерфейс обычно включает операции, но может включать и свойства. В последнем случае наличие указанных свойств является обязательным для реализующего интерфейс класса.
Экземпляр класса (instance) – это элемент модели с описанием, возможно неполным, объекта, которому в системе приписаны черты данного класса. Для того чтобы указать значения свойствам класса в экземпляре используют слоты.
Связью (link)называется экземпляр ассоциации, соединяющий экземпляры классов. В языке программирования однонаправленной связи соответствует типизированный указатель или ссылка.
Ассоциация (association) – это типизированное отношение между классами, которое указывает на логическую связь между ними. Ассоциация имеет два или более полюсов, по одному у каждого связанного класса. Название полюса обычно указывает на роль, которую класс играет в ассоциации.
Обобщение (generalization)является направленным отношением от более специализированного классификатора к более общему. Специализированный, или дочерний, классификатор наследует черты более общего, или родительского, классификатора. Отношение обобщения уточняется отдельно для каждого вида классификатора, в том числе для классов и интерфейсов.
Украшениями (adornments)называются свойства полюса ассоциации, уточняющие роль участвующего в ассоциации класса. С помощью украшений указываются направление навигации, вид композиции и другие свойства полюса.
Типом данных (data type)называется классификатор, экземпляры которого не обладают индивидуальностью и, при совпадении значений свойств, взаимозаменяемы. Простыми (primitive), или примитивным типами данных, являются предопределенные типы: целое Integer , строка String , логический тип Boolean , числа с плавающей запятой Real и неограниченные натуральные числа UnlimitedNatural , которые используются для моделирования неопределенного количества элементов, например, экземпляров класса, участвующих в ассоциации.
Ограничением (constraint)называется логическое выражение об ограничиваемых элементах модели, вычисляемое в контексте какого-либо элемента. Если выражение ложно, то модель считается противоречивой (ill-formed).
Примеры нотации указанных выше элементов модели приведены на рис. 1 и рис. 2.
ЗАДАЧИ
1.1.Абстрактный класс Account имеет два дочерних класса: счет физического лица PersonalAccount и юридического CompanyAccount . При решении задачи используйте диаграммы классов.
а. Добавьте класс Person с общедоступным атрибутом FullName строкового типа и свяжите его с классом PersonalAccount ассоциацией Owns с полюсом owner у Person и навигируемым полюсом account у PersonalAccount .
б. Аналогично для счета юридического лица добавьте владельца Company , свяжите анонимной ассоциацией с CompanyAccount и укажите подходящие названия полюсов.
в. Добавьте класс адреса Address с атрибутами строкового типа street , city и целочисленным положительным building . Укажите с помощью новых анонимных ассоциаций, что Person может иметь адрес регистрации registeredAt , фактический адрес actual , в то время как компания связана с одним юридическим адресом legalAddress и может иметь почтовый адрес postAddress .
1.2.Интерфейс Stack определяет операции помещения в стек push с параметром obj типа Element , операцию получения элемента из стека pop с возвращаемым значением типа Element . При решении задачи используйте диаграммы классов.
а. Добавьте в интерфейс Stack операции очистки стека reset , которая не имеет параметров, статическую операцию создания нового стека createNew с возвращаемым значением типа Stack .
б. Покажите, что интерфейс Stack зависит от типа данных Element .
в. Добавьте класс ListStack , который реализует интерфейс Stack . Покажите реализуемые классом операции интерфейса.
г. Добавьте в класс ListStack частное структурное свойство arr типа Element с кратностью больше нуля, значения которого упорядочены и могут повторяться.
д. Добавьте частный целочисленный атрибут increment только для чтения и защищенную операцию изменения размера resize с целочисленным параметром newSize .
е. Покажите на диаграмме экземпляров экземпляр stack класса ListStack , свойство arr которого содержит элемент first типа Element первым и second того же типа вторым. Укажите, что атрибут increment экземпляра stack равен 10 .
Шрифт:
Интервал:
Закладка: