<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог маленького, но очень отважного программиста &#187; UML проектирование</title>
	<atom:link href="http://xo66ut.ru/archives/category/uml/feed" rel="self" type="application/rss+xml" />
	<link>http://xo66ut.ru</link>
	<description>PHP, MySQL, Javascript, JQuery, ExtJS, UML, и другие интернетости...…</description>
	<lastBuildDate>Sun, 29 Aug 2010 10:20:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Проектирование RR, диаграммы прецедентов(use cases diagrams)</title>
		<link>http://xo66ut.ru/archives/52</link>
		<comments>http://xo66ut.ru/archives/52#comments</comments>
		<pubDate>Tue, 23 Jun 2009 15:10:24 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[UML проектирование]]></category>
		<category><![CDATA[Rational Rose]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=52</guid>
		<description><![CDATA[Первый пост из цикла проектирование в Rational Rose.  Сначала предлагаю рассмотреть самую простую диграмму Use Case, которая описывает общее поведение проектируемой системы.
Данная диаграмма служит для описания поведения системы и функциональности обеспечиваемой системой. То есть, как система будет себя вести, в случае функционального воздействия на нее.
Для того чтобы выбрать данный тип диаграмм нужно в браузере объектов [...]]]></description>
			<content:encoded><![CDATA[<p>Первый пост из цикла проектирование в Rational Rose.  Сначала предлагаю рассмотреть самую простую диграмму Use Case, которая описывает общее поведение проектируемой системы.<br />
<span id="more-52"></span>Данная диаграмма служит для описания поведения системы и функциональности обеспечиваемой системой. То есть, как система будет себя вести, в случае функционального воздействия на нее.</p>
<p>Для того чтобы выбрать данный тип диаграмм нужно в браузере объектов выбрать раздел Use Case View-&gt;Main.</p>
<div id="attachment_55" class="wp-caption alignnone" style="width: 169px"><img class="size-full wp-image-55" src="http://xo66ut.ru/wp-content/uploads/2009/05/use_case.jpg" alt="Выбираем тип диаграмм use case" width="159" height="133" /><p class="wp-caption-text">Выбираем тип диаграмм use case</p></div>
<h3>Актеры</h3>
<p>Актеры не являются частью системы &#8211; они представляют собой кого-то или что-то, что должно взаимодействовать с системой. Актеры могут:</p>
<ul>
<li>Только снабжать информацией систему;</li>
<li> Только получать информацию из системы;</li>
<li>Снабжать информацией и получать информацию из системы;</li>
</ul>
<p>Обычно актеры выявляются из описания задачи системы.<br />
Для выявления актеров может быть использована следующая группа вопросов:</p>
<ol>
<li> Кто заинтересован в определенном системном требовании?</li>
<li>Какую роль система будет выполнять в организации ?</li>
<li>Кто получит приимущества от использования системы?</li>
<li>Кто будет снабжать систему информацией, использовать информацию, и получать информацию из системы?</li>
<li>Кто будет осуществлять поддержку и обслуживание системы ?</li>
<li>Использует ли система внешние ресурсы?</li>
<li>Выступает ли какой-либо участник системы в нескольких ролях ?</li>
<li>Выступают ли различные участники в одной роли?</li>
<li>Будет ли новая система взаимодействовать со старой?</li>
</ol>
<div id="attachment_54" class="wp-caption alignnone" style="width: 142px"><img class="size-full wp-image-54" src="http://xo66ut.ru/wp-content/uploads/2009/05/actor.jpg" alt="Изображение Актера в RR" width="132" height="134" /><p class="wp-caption-text">Актер</p></div>
<p>Актер в RR отображается в виде человечка.</p>
<p>В моей системе основными актерами были выбраны:</p>
<ol>
<li> Гость;</li>
<li>Зарегистрированный пользователь;</li>
<li>Администратор;</li>
</ol>
<p>Актерами могут быть не только типы людей(пользователей), но и <strong>внешние</strong> системы. Например, актер &#8220;система оплаты&#8221;, <strong>внешняя</strong> система выполняющая функции расчетов.</p>
<p>В случае проектирования сложных систем в модель целесообразно включать описание актеров. Для этого необходимо в окно описания, которое находится внизу дерева объектов, ввести описание требуемому актеру.</p>
<p><strong>Описание актера</strong><br />
<img class="size-full wp-image-75" title="documen" src="http://xo66ut.ru/wp-content/uploads/2009/06/documen.jpg" alt="Описание актера" width="395" height="785" /></p>
<h1 style="text-align: center">Прецеденты</h1>
<p>С помощью прецедентов (Use cases) в RR моделируется взаимосвязь между системой и актерами. Прецеденты определяют возможности обеспечиваемые системой для актера. Набор всех прецедентов системы определяет ее возможности и способы использования.<br />
<strong>Прецедент</strong><br />
<img class="size-full wp-image-76" style="border: 1px solid #000000;" title="usecase" src="http://xo66ut.ru/wp-content/uploads/2009/06/usecase.jpg" alt="Прецедент" width="156" height="124" /></p>
<p>Для того, чтобы выделить прецеденты для системы, можно использовать следующую серию вопросов:</p>
<ol>
<li>Каковы задачи каждого актера ?</li>
<li>Будет ли актер создавать, хранить, изменять, удалять или получать информацию из системы?</li>
<li>Какой прецедент будет создавать, хранить, изменять, удалять или получать эту информацию?</li>
<li>Должен ли актер информировать систему о внезапных изменениях внешней среды ?</li>
<li>Должен ли актер быть информирован об изменениях состояния системы?</li>
</ol>
<h1 style="text-align: center">Диаграммы прецедентов</h1>
<p>Диграмма прецедентов (use case diagram) это графическое представление актеров и прецедентов и их взаимодействия в системе.<br />
Пример диаграммы прецедентов<br />
<img class="size-full wp-image-77" style="border: 1px solid #000000;" title="usecasediagram" src="http://xo66ut.ru/wp-content/uploads/2009/06/usecasediagram.jpg" alt="Диаграмма прецедентов" width="509" height="313" /><br />
Для создания диграммы прецедентов мы либо выносим с дерева проекта на рабочее поле уже готовые прецеденты или актеров, либо с помошью панели инструментов создаем новые.<br />
Значки актера и прецедента на панели инструментов<br />
<img class="size-full wp-image-79" title="panel" src="http://xo66ut.ru/wp-content/uploads/2009/06/panel.jpg" alt="Панель инструментов" width="47" height="230" /><br />
Между актером и прецедентом может существовать ассоциативная связь, связь может быть как от  Актера к прецеденту так и наоборот. Направление свзяи показывает кто является ее инициатором (актер или прецедент).<br />
Чтобы создать свзяь между актером и прецедентом необходимо щелкнуть на соответсвующую связь, это либо<br />
<strong>Association</strong> (Ассоциативная связь), либо чаще всего это<br />
<strong>Undirectional Association</strong> (Однонаправленная ассоциативная связь).</p>
<p>Существует два типа отношений между прецедентами <strong>extend</strong> и <strong>include</strong>. Отношение  <strong>include</strong><strong> </strong>обычно создается, когда один прецедент использует другой, отношение   <strong>include </strong>отображается отношением которое направлено от базового элемента к зависимому.</p>
<p>Отношение <strong>extend</strong> используется для отражения дополнительных режимов, которые запускаются при наступлении кого-либо условия, а также альтернативных потоков, которые запускаются по выбору Актера.</p>
<p>Для создания отношений <strong>extend</strong> и <strong>include </strong>необходимо дважды щелкнуть на линию связи, и в появившемся окне, в выпадающем списке Stereotype выбрать необходимый стереотип.<br />
Вроде бы все, что касается этой диаграммы.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=52&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/52/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Памятка начинающего ООП-программиста</title>
		<link>http://xo66ut.ru/archives/23</link>
		<comments>http://xo66ut.ru/archives/23#comments</comments>
		<pubDate>Thu, 21 May 2009 12:06:36 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[UML проектирование]]></category>
		<category><![CDATA[Программирование на PHP]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=23</guid>
		<description><![CDATA[Небольшая памятка для начинающего ООП-программиста.
Я постарался простым языком дать определения  основных понятий в Объектно-Ориентированном Программировании.
Пока только основные понятия, потихоньку буду дополнять.
Объектно-ориентированные программы состоять из классов и объектов. Класс можно сравнить с &#8220;чертежом&#8221;, согласно которому создаются объекты. Объект это экземпляр класса. Класс в отличие от объекта всегда один, тоесть по коду класса (&#8220;чертежу&#8221;), мы можем  создать [...]]]></description>
			<content:encoded><![CDATA[<p>Небольшая памятка для начинающего ООП-программиста.<br />
Я постарался <em>простым </em>языком дать определения  основных понятий в Объектно-Ориентированном Программировании.<br />
Пока только основные понятия, потихоньку буду дополнять.<br />
<span id="more-23"></span>Объектно-ориентированные программы состоять из классов и объектов. <strong>Класс</strong> можно сравнить с &#8220;чертежом&#8221;, согласно которому создаются <strong>объекты</strong>.<strong> Объект</strong> это экземпляр <strong>класса</strong>. <strong>Класс</strong> в отличие от объекта всегда один, тоесть по коду <strong>класса</strong> (&#8220;чертежу&#8221;), мы можем  создать неограниченное число <strong>объектов</strong>, но не наоборот. <strong>Класс</strong> является описываемой на языке программного кода моделью, ещё не существующей сущности &#8211; <strong>объекта</strong>. <strong>Объект</strong> &#8211; это некоторый объем памяти выделяющийся при создании экземпляра <strong>класса</strong> (например, после запуска результатов компиляции (для компилируемых языков)  исходного кода на выполнение). Для интерпретируемых просто вызов экземпляра <strong>класса</strong> при выполнении.<strong> Объект </strong>сочетает данные и процедуры для их обработки. Такие процедуры обычно называют <em>методами </em>или <em>операциями. </em>Объект выполняет операцию, когда получает <em>запрос</em> или <em>сообщение</em> от <em>клиента</em>. Посылка запроса &#8211; это <em>единственный</em> способ заставить объект выполнить операцию. А выполнение операции &#8211; <em>единственный</em> способ изменить внутреннее состояние объекта. Имея в виду два эти ограничения, говорят, что внутреннее состояние объекта <strong>инкапсулировано</strong>: к нему нельзя получить непосредственный доступ, то есть представление объекта закрыто от внешней программы. <strong></strong></p>
<p><strong><br />
Инкапсуляция</strong> — это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только интерфейсную часть класса (т. е. список объявленных свойств и методов класса) и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип <strong>инкапсуляции</strong> (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимость классов друг от друга. Одной из целей <strong>инкапсуляции</strong> является невозможность для пользователя узнать или испортить внутреннее состояние объекта.</p>
<p><strong>Наследованием</strong> называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Набор классов, связанных отношением наследования, называют иерархией.<br />
<strong>Полиморфизмом</strong> называют явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода. Тоесть во время выполнения метода выполняется не фиксированный программный код, как у обычного метода, а код (метод) того объекта, который лучше всего подходит для выполнения данной задачи. <strong>Полиморфизм</strong> позволяет отделить объекты друг от друга и дает объектам возможность изменять взаимоотношения во время выполнения. Такая взаимозаменяемость является важнейшей особенностью объектно-ориентированных  систем.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=23&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/23/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Как я учился проектировать в Rational Rose</title>
		<link>http://xo66ut.ru/archives/17</link>
		<comments>http://xo66ut.ru/archives/17#comments</comments>
		<pubDate>Mon, 18 May 2009 09:59:26 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[UML проектирование]]></category>
		<category><![CDATA[Rational Rose]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=17</guid>
		<description><![CDATA[Встал вопрос о проектировании серьезного проекта. Так как в универе нас знакомили с UML-средствами проектирования, таким как Rational Rose, был выбран именно этот программный продукт для проектирования.
Как выяснилось проектирование в RR (здесь и далее, ПО Rational Rose) дело не простое, большое количество разных диаграмм для описания работы системы. Того что нам рассказывали в университете оказалось [...]]]></description>
			<content:encoded><![CDATA[<p>Встал вопрос о проектировании серьезного проекта. Так как в универе нас знакомили с UML-средствами проектирования, таким как Rational Rose, был выбран именно этот программный продукт для проектирования.<br />
Как выяснилось проектирование в RR (<em>здесь и далее, ПО Rational Rose</em>) дело не простое, большое количество разных диаграмм для описания работы системы. Того что нам рассказывали в университете оказалось явно недостаточно. Поэтому появилась острая необходимость изучить и понять, как же все-таки проектировать в RR. Была скачана книга Терри Кватрани “Rational Rose 2000 и UML визуальное моделирование”. Можно по разному охарактеризовать мои способности к моделированию, но оперативно разобраться, с помощью этой книги, как это делается, я не смог. Поэтому постараюсь в следующих статьях поэтапно и <strong>доступным языком</strong> расписать, как я проектировал свой проект в RR.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=17&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/17/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Паттерны проектирования</title>
		<link>http://xo66ut.ru/archives/6</link>
		<comments>http://xo66ut.ru/archives/6#comments</comments>
		<pubDate>Sun, 17 May 2009 07:34:44 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[UML проектирование]]></category>
		<category><![CDATA[Программирование на PHP]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=6</guid>
		<description><![CDATA[По совету Хабрасообщества обзавелся буржуйской книгой &#8220;Приемы объектно-ориентированного проектирования. Паттерны проектирования.&#8221; Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес, Издательство: &#8220;Питер&#8221;, 2006 368 страниц

Кстати найти книгу в Питербурге оказалось не простым занятием, заявленная практически во всех Буквоедах, оказалась она только в 1 из 3, да и то вместе продавцом разыскивали ее на полках. Нашлась заваленная [...]]]></description>
			<content:encoded><![CDATA[<p>По совету Хабрасообщества обзавелся буржуйской книгой &#8220;Приемы объектно-ориентированного проектирования. Паттерны проектирования.&#8221; Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес, Издательство: &#8220;Питер&#8221;, 2006 368 страниц<br />
<img class="alignleft" src="http://www.rsdn.ru/res/book/oo/design_patterns.jpg" alt="" width="200" height="291" /><br />
Кстати найти книгу в Питербурге оказалось не простым занятием, заявленная практически во всех Буквоедах, оказалась она только в 1 из 3, да и то вместе продавцом разыскивали ее на полках. Нашлась заваленная какими-то книжками по программированию. Книга очень сильная, так сразу и не разберешься (а сразу то и не надо). По словам авторов должна стать настольной книгой, к которой постоянно возвращаться и возвращаться (почитай консультироваться). Авторы кстати известные в проектированнии люди, так называемые &#8211; GOF, Gang Of Four (Банда четырех). Что купил не жалею нисколько, уже даже применил пару паттернов проектирования на практике, это Одиночка (Singleton) и Строитель(Builder). Минусы этой книги в переводе, все объясняется каким-то запутанным языком, приходится перечитывать по нескольку раз предложения. Мне почему-то кажется, что на анлийском(оригинальном) все более доступно объясняется. Со своим уровнем английского, покупать оригинальную книгу я побоялся, может быть зря ?!</p>
<p>Так что каждый ООП программист must have.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=6&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/6/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
