UML - Unified Modeling Language
Unified Modeling Language, сокращённо UML, применяется на различных этапах разработки программного обеспечения (ПО). UML переводится как унифицированный язык моделирования.
Если посмотреть спецификацию UML, то можно заметить некоторую её избыточность. Сама спецификация занимает около 900 страниц формата А4. К счастью, для чтения UML-диаграмм нужно знать только условные обозначения, применяемые в UML.
В UML программы представляются диаграммами. В UML диаграммах представляется общая архитектура программы или какие-то её особенности. Это значит, что в UML-диаграммах создаётся только модель будущей программы. Язык UML является довольно высоким уровнем абстракции, поэтому программы, написанные на UML, впоследствии можно реализовать на любом языке, в котором есть достаточно возможностей объектно-ориентированного программирования.
Unified Modeling Language может использоваться на различных этапах разработки ПО: как во время проектирования ПО, так и во время кодирования на конкретном языке. Так как UML представлен диаграммами, то этот язык используется не только программистами, но и, например, менеджерами в компаниях, разрабатывающих ПО (но при этом нужно знать некоторые концепции ООП).
Теперь давайте уйдём от скучных определений и подумаем, а для чего нам, простым программистам, нужен этот самый UML? Представим такую ситуацию: у нас есть три класса, каждый по 300 строк кода. Между классами определены сложные связи. Уследить за кодом в данной ситуации довольно сложно. А вот если эти классы представить UML-диаграммой, то все классы и связи между ними будут видны на одной небольшой картинке (диаграмме).
Если посмотреть на спецификацию Unified Modeling Language, то может показаться, что язык очень сложный. На самом деле читать UML-диаграммы довольно легко. Главное разобраться с условными обозначениями.
И последнее замечание прежде чем мы начнём: uml довольно новый язык, был создан в середине 90-х годов (1994-1996). На данный момент есть спецификация uml 2.2. Именно версию 2 мы будем рассматривать. Отличия между uml 1 и uml 2 нам не важны.
Диаграммы классов UML (Class diagram)
В UML можно создавать несколько типов диаграмм. В большинстве случаев мы будем пользоваться диаграммами классов (Class diagram). В данном типе диаграмм показывается взаимодействие классов программы.
Элементы диаграмм UML
Диаграммы UML состоят из элементов. Элементы представляются прямоугольниками, в которых пишется имя элемента. Например, изобразим в UML-диаграмме какой-нибудь класс (для примера я взял, написанный нами ранее, класс Camera):
Комментарии в UML
Для комментариев в UML используется прямоугольник с "загнутым" правым верхним уголком. Пунктирной линией показывается, какому элементу принадлежит комментарий:
Атрибуты (attribute) и операции (operation) в UML-диаграммах
Если в C++ переменная, принадлежащая классу, называется полем класса или переменной-членом, то в UML такая переменная называется атрибутом. Также и с функцией/методом класса - в UML это операция.
Для атрибутов и операций в элементах отводится отдельный блок. Каждый блок разделяется горизонтальной чертой. Например, для класса Camera элемент с атрибутами и операциями будет выглядеть вот так:
Тип атрибута (как и тип аргумента операции) задаётся через двоеточие:
Здесь можно увидеть все достоинства UML. В Unified Modeling Language необязательно расписывать все детали классов. Это будет сделано при написании кода на конкретном языке (в нашем случае - C++). В UML-диаграмме можно опускать ненужные детали. Например, в диаграмму элемента можно добавить только те операции/атрибуты, которые важны для данной диаграммы, неважные особенности класса в UML можно опускать.
Видимость атрибутов и операций в UML: +, -, # (спецификаторы доступа)
Спецификатора доступа языка C++ (public, private, protected) в UML отображаются символами + (public), - (private), # (protected), которые ставятся перед именем атрибута/операции. Также возможен вариант с ключевыми словами public, private, protected. На картинке ниже показаны оба варианта:
Напомню значение спецификаторов доступа: public - поля/методы класса видны снаружи класса. Т.е. к ним могут получать доступ объекты класса. private - поля/методы класса видны только внутри определения класса. protected - поля/методы класса видны в определении самого класса и в определениях производных классов.
Отношения между классами в ООП (UML, С++)
В программах между классами существуют различные виды взаимодействия (или связи): один класс может быть производным другого, третий может содержать объект четвёртого в виде поля. Для различных видов взаимодействия в UML есть специальные умные названия.
Ассоциация/объединение/связь (association)
Первый вид связи - association. На русский можно перевести по-разному: ассоциация, связь, объединение. На мой взгляд, наилучший вариант - связь, но я это слово использую для всех видов взаимодействия классов. Поэтому для обозначения вида связи association мы воспользуемся словом ассоциация.
Ассоциация - самый слабый вид связи. Обычно ассоциация возникает, когда один класс вызывает метод другого или если при вызове метода в качестве аргумента передаётся объект другого класса.
На диаграммах ассоциация обозначается сплошной линией.
Для примера напишем простой класс:
class MonstAr
{
private:
attack(int damage) // damage - урон
{}
};
Напоминаю, что стандартные типы C++ являются классами. Вот как будет выглядеть взаимодействие классов MonstAr и int на диаграмме UML:
Обратите внимание на то, как в этой диаграмме показано отсутствие атрибутов у элемента.
Иногда при ассоциации показывают направленность (если это имеет значение). В спецификации UML используется слово navigable. На мой взгляд, на русском здесь нужно использовать направленность, так как это слово правильно отражает суть. Направленность показывается с помощью стрелочки (обратите внимание, как рисуется стрелочка, это имеет значение):
Заметьте, что стрелочка указывает на int. В данном случае направленность ассоциации говорит нам, что в методе MonstAr::Attack используется объект типа int.
Обобщение (generalization)
Для представления наследования в UML используется обобщение (generalization, напоминаю, что все термины берутся из спецификации UML). Пример:
MonstAr
{
private:
attack(int damage) // damage - урон
{}
};
BigMonstAr : public MonstAr // большой (big) MonstAr
{
// определение класса
};
SmallMonstAr : public MonstAr // маленький (small) MonstAr
{
// определение класса
};
При обобщении рисуется сплошная линия. Обратите внимание как рисуется стрелочка - пустой треугольник.
Теперь насчёт слова обобщение (generalization). В UML используется именно оно, а не наследование, так как в данном виде связи один из классов (базовый) является общим, а остальные классы (производные) - более специализированными.
Aggregation - агрегация, агрегирование, включение в UML
Следующий тип связи между классами - aggregation (слово происходит от латинского aggregatio - присоединение). По-русски это будет агрегация, агрегирование или соединение частей. Мы будем использовать слово агрегация.
Итак, в UML агрегация отражает связь классов, когда объект одного класса является атрибутом другого. Пример:
class MonstAr
{
public:
int a;
};
На диаграммах агрегация показывается незакрашенным ромбом.
Композиция классов - composition в UML
Композиция классов - более сильная связь между классами, чем агрегация. Между агрегацией и композицией довольно тонкая грань. Особенностью композиции является то, что объекты, из которых создаётся композиция, могут принадлежать только классу, с которым они образуют композицию. При этом время жизни объекта и класса, в который встраивается объект, совпадает.
Для начала рассмотрим два примера из жизни. Например, dvd-привод и диски, которые он читает, образуют агрегацию. Диски можно свободно менять. Примером композиции может служить хлеб и мука. Извлечь муку уже невозможно. На этих двух примерах хорошо видна разница между композицией и агрегацией: компоненты собранные агрегацией можно разъединить, а с композицией этого сделать не получится. Но вернёмся к программированию.
Одним из признаков агрегации является использование указателей. И наоборот, если при связи классов указатели не используются, то существует большая вероятность, что перед нами композиция классов.
class Claws; // claws - когти
class MonstAr
{
public:
Claws MonstArClaws;
};
В данном случае у монстра "есть когти" (определённые в отдельном классе). Возможно, пример не слишком удачный, но здесь хорошо видна композиция классов: нельзя от монстра отделить его когти (он будет сильно недоволен). В UML композиция выглядит вот так:
На диаграммах композиция показывается закрашенным ромбом.
Впереди у нас много примеров, в которых можно будет потренироваться в определении типа связи между классами.
Реализация - realization в UML
Последнее отношение, которое мы рассмотрим, будет realization - реализация. Данная связь показывает отношение: класс - объект.
На диаграмме реализация показывается пунктирной линией и незакрашенной стрелочкой:
Заключение
Конечно, за рамками урока осталось много важных в UML вещей. Но по крайней мере у нас теперь есть основа, которая позволит нам понимать (и рисовать) диаграммы UML. В ближайшее время я доработаю урок по конечным автоматам, где мы воспользуемся новыми знаниями.
Другие работы по теме:
Learning a foreign language
Автор: Разное Learning a foreign language isn’t an easy thing. Nowadays it’s especially important to know foreign languages. Some people learn languages because they need them for their work, others travel abroad, for the third studying foreign languages is a hobby. Everyone, who knows foreign languages can speak to people from other countries, read foreign authors in the original, which makes your outlook wider.
Why do we learn English language?
Why do we learn the English language? It is necessary to learn foreign languages. That’s why pupils have got such subject as a foreign language at school. Everybody knows his own language, but it is useful to know foreign languages.
Language And You Essay Research Paper Language
Language And You Essay, Research Paper Language and You In my opinion, language is certainly the most essential quality human beings have inherited. It is the only way to communicate, and it sure is fascinating how we can convert
How Fast It Burned Essay Research Paper
A Models Unlimited 412-343 7000 Askins Models 215-9257795 Audiovision Inc 412-343 7000 Barbizon School & Modeling Agency 610-649 9700 Barbizon School Of Modeling 717-234 3277
Comparing Jane Eyre (An Old Style Story)
) To Kes (A New Style Story) Essay, Research Paper Comparing Two Extracts From Novels From Point Of View Of Language And Punctuation?Jane Eyre? is a book set further back in time and the language used in it is more ?old style?, eg. ?And if I were in your place I should dislike her.? In modern language we would say that morel like: ?If I was in your place I wouldn?t like her.? This language is used in the book ?kes? which is set in a more present day.
Dwight BollingerS
“The Origin Of Language? Essay, Research Paper Essay Question I found Dwight Bollinger?s essay entitled ?The Origin of Language? to be a very interesting work. I especially enjoyed the section about the chimpanzees. Although we know
Language Is Communication Essay Research Paper When
Language Is Communication Essay, Research Paper When we think of an intelligent being we think of someone like us, a creature that is able to think and communicate effectively . Communication or language is a process every child learns from birth, and we continue to use it until our death. The structure of our language gives us the ability for abstract thinking.
History Of Vrml Essay Research Paper HistoryVRML
History Of Vrml Essay, Research Paper History VRML was conceived in the spring of 1994 at the first annual World Wide Web Conference in Geneva, Switzerland. Tim Berners-Lee and Dave Raggett organized a Birds-of-a-Feather (BOF) session to discuss Virtual Reality interfaces to the World Wide Web. Several BOF attendees described projects already underway to build three dimensional graphical visualization tools which inter-operate with the Web.
Praise Of A Bilingual Country Essay Research
Paper Praise of a Bilingual Country In the essay English as Second Language, English as First Love , Stephen Baker, the author, suggests that the United States should adopt English as its official language. He does not like the idea of the United States not having an official language, and does not want the United States to become bilingual.
Assembly Language Essay Research Paper When programming
Assembly Language Essay, Research Paper When programming in assembly language, we have to specify operations in a much greater level of detail than we would have to do in a high level language. Furthermore, we get relatively little help from the assembler in finding errors. Assemblers can only check the syntax of each line, and check that every symbol or label used is defined somewhere.
Costa Sakellariou Essay Research Paper Costa Sakellariou
Costa Sakellariou Essay, Research Paper Costa Sakellariou Visual art can definitely be seen as a language. With every artist there is always some sort of meaning that they are trying to convey to the viewers of their work. The means of how they deliver that message is the language in which their work uses. In Costa Sakellariou?s work I especially felt there was some sort of language being spoken.
Preface To Lyrical Ballads By Wordsworth Essay
, Research Paper Preface to Lyrical Ballads is written to express the new style, which is used by many poets, such as Wordsworth. This style will be known as the romantic style after centuries. Wordsworth explains “what is poetry? What kind of language should be used in it? What kind of setting? And who is a poet?”.
Bilingual Education Essay Research Paper Bilingual Education 2
Bilingual Education Essay, Research Paper Bilingual Education = Unilingual Education Bilingual education in America is a sound idea, but it is not truly bilingual education, it is only bilingual for those who do not already speak English. America is a country with more and more cultures mixing together with different areas of America speaking different languages.
A Review Of Behavior Modification Essay Research
Paper The concept of modeling as a technique for behavior modification was first introduced in the 1960’s by Albert Bandura. His later works demonstrated simply watching another individual receive reinforcement for a particular behavior would later increase the rates of a given behavior in the viewer as well as the model.
Foudation Of Nation Essay Research Paper Formation
Foudation Of Nation Essay, Research Paper Formation of Nation A formation of nation occurs when a state has a unified administrative reach over the territory over which its sovereignty is claimed. The development of a plurality of nations is basic to the centralization and administrative expansion of state domination internally.
Unification Of Germany And Italy Essay Research
Paper The similarities between the unification of Germany and the unification of Italy are: they both were unified after a series of wars and during both countries unifications France received the bad end of it. Other similarities were after the unifications both countries were ruled by a monarch and the people who were unified generaly felt more loyalty to their local government thanto the new monarchs.
South Africa Is Diverse In Culture But
Could Be Unified In Language Essay, Research Paper South Africa is diverse in culture but could be unified in language. English should be South Africa s unifying language. It is necessary to understand what nationhood is, so that you the reader realise that a national language does not alter a nation. It binds the nation.
LOGOGPHOBIA IN THE BIRDS Essay Research Paper
The Birds by Alfred Hitchcock is a stunning is a drama where the majority of the film is taken up by panoramic shots of the birds flying over Bodega Bay. When the birds are gathering planning to attack there is no music; there is also very little conversation, save the screams of the victims. These anguished howls and the caw of the birds seem to blend harmoniously to create a paralyzing cacophony of sounds that express terror far better than mere words could have.
Summary And Responce To
“Black English” Essay, Research Paper Summary and Response Word Count 366 Summary In the essay titled, ?If Black English Isn?t a Language, Then Tell Me, What Is??
Chris Moss Vs Dr Terry Preece Essay
, Research Paper Chris Moss vs. Dr. Terry Preece and the Edgewoord Unified School District May it please the court, counsel: My name is Zach Keeton and along
The English Language Essay Research Paper This
The English Language Essay, Research Paper This House affirms that the British Empire was a great success whose effects are still beneficial to the world. The world distribution of English users is divided into three categories : English as a native language; for example, UK, USA, Australia, English as a second language; for example, India, Singapore, Ghana, Philippines, and English as a foreign language; for example, France, Japan, Thailand.There are 72 countries with Englishs as an official language and 9 countries with English as a first language:Australia, Great- Britain, Canada, Ireland, Japan, Luxembourgh, Netherlands, New Zealand, and the USA.
What Came First Thought Or Language Essay
, Research Paper Language came after Thought In order to be able to prove the statement Language came after thought , the words language and thought first will have to be defined. Language could be described as a system for formulating and communicating information, thoughts and feelings. There is, however, not one adequate definition of thinking, since most definitions do not cover all aspects of thought.
In George Orwell S Politics A
Essay, Research Paper In George Orwell s Politics and the English Language , the author argues that written language has suffered a serious decline as a result of political causes. Orwell shows there is a correlation between mistakes found in political language and modern language. He describes common misuses of the modern writing and provides examples of each one.
What Is English Essay Research Paper English
What Is English? Essay, Research Paper English, well what is English? We all know that it is a language. But, what is the study of english? It is the study of literature in the english language. People attend english classes. This may be to learn the English Language or to learn about english literature or writing.
Education
Education is important in our life. For educated people it is easier to stand up all difficulties and they have a purpose in life. If you know English, you can talk to people of any nationality, and can get necessary information anywhere in the world.