Несколько диаграмм на модельmultiple diagrams per model

Реализация инерционных алгоритмов на примере логического моделирование цифровых схем

1. Введение

Приступаем ко второй части темы, посвященной вложенным автоматам. В первой мы рассматривали рекурсивные алгоритмы, которые, имея модель вложенных автоматов и подключив возможности ООП, реализовать оказалось не столь уж сложно. Но возможности вложенных автоматов этим не исчерпываются. Так, при описании модели управления автоматных программ были определены инерционные алгоритмы, в основе которых также идея вложении автоматов. Инерционные алгоритмы сложно представить в рамках обычной блок-схемной модели вычислений, в которой совсем не предусмотрен возврат управления в точку, предшествующую вызову подпрограммы. Но надо сказать, что и у обычных автоматов предусматривается отмены переходов «на лету». Тем не менее, для автоматов подобное можно не только представить, но и реализовать.

DesignerItem Style

For convenience, we wrap the ‘s control template into a style, where we also set various properties like , and . A trigger allows us to make the resize and rotate decorator visible only when the item is selected, which is indicated by the attached property .

Note: WPF comes with a class named , which is a control that allows you to select items from among its child elements. I do not make use of this control in this article, but I use the attached property to mimic selection.

 <Stylex:Key="DesignerItemStyle"TargetType="ContentControl">
  <SetterProperty="MinHeight"Value="50">
  <SetterProperty="MinWidth"Value="50">
  <SetterProperty="RenderTransformOrigin"Value="0.5,0.5">
  <SetterProperty="Template">
    <Setter.Value>
      <ControlTemplateTargetType="ContentControl">
        <GridDataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
          <Controlx:Name="RotateDecorator"Template="{StaticResource RotateDecoratorTemplate}"Visibility="Collapsed">
          <s:MoveThumbTemplate="{StaticResource MoveThumbTemplate}"Cursor="SizeAll">
          <Controlx:Name="ResizeDecorator"Template="{StaticResource ResizeDecoratorTemplate}"Visibility="Collapsed">
          <ContentPresenterContent="{TemplateBinding ContentControl.Content}">
        </Grid>
        <ControlTemplate.Triggers>
          <TriggerProperty="Selector.IsSelected"Value="True">
            <SetterTargetName="ResizeDecorator"Property="Visibility"Value="Visible">
            <SetterTargetName="RotateDecorator"Property="Visibility"Value="Visible">
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>  

That’s it. Now we can move, resize and rotate objects. One has to realize that a few lines of XAML code together with three classes provide all we need to do that! Best of all, we don’t need to touch the objects themselves: all the behaviour is completely wrapped into a .

About the Code

The attached Visual Studio Express 2008 solution consists of three projects:

: This version shows you how to move and resize objects without WPF Adorners.

: In addition, this project provides rotation of objects, still without WPF Adorners. Rotation has some minor side effects that need to be considered when moving or resizing objects. You can easily track these side effects when you compare this project with the previous one.

: The third project finally shows you how to move, resize and rotate items with the help of WPF Adorners. It also gives you an example of how Adorners can be used to provide visual feedback to indicate the actual size of an object during a resize operation.

Работа с диаграммамиWorking with Diagrams

По умолчанию конструктор EF создает одну схему с именем Diagram1.By default the EF Designer creates one diagram called Diagram1. Если у вас есть схема с большим количеством сущностей и ассоциаций, вам будет проще разделить их логически.If you have a diagram with a large number of entities and associations, you will most like want to split them up logically. Начиная с Visual Studio 2012, концептуальную модель можно просматривать на нескольких схемах.Starting with Visual Studio 2012, you can view your conceptual model in multiple diagrams.   

При добавлении новых схем они отображаются в папке диаграммы в окне Обозреватель моделей.As you add new diagrams, they appear under the Diagrams folder in the Model Browser window. Для переименования диаграммы: Выберите диаграмму в окне «Обозреватель моделей», щелкните один раз над именем и введите новое имя.To rename a diagram: select the diagram in the Model Browser window, click once on the name, and type the new name. Можно также щелкнуть правой кнопкой мыши имя схемы и выбрать команду Переименовать. You can also right-click the diagram name and select Rename.

Имя схемы отображается рядом с именем EDMX-файла в редакторе Visual Studio.The diagram name is displayed next to the .edmx file name, in the Visual Studio editor. Например, Model1. EDMX .For example Model1.edmx.

Содержимое диаграмм (форма и цвет сущностей и ассоциаций) хранится в файле EDMX. Diagram.The diagrams content (shape and color of entities and associations) is stored in the .edmx.diagram file. Чтобы просмотреть этот файл, выберите обозреватель решений и unfold файл EDMX.To view this file, select Solution Explorer and unfold the .edmx file. 

Не следует изменять файл EDMX. diagram вручную, содержимое этого файла может быть перезаписано конструктором EF.You should not edit the .edmx.diagram file manually, the content of this file maybe overwritten by the EF Designer.
 

Цвета

  • Color Hunt – подбор сочетаний цвета. Можно подбирать до четырех цветов. Есть готовые решения для выбора.
  • TinEye – анализирует сайт и выводит список ресурсов, на которых используется картинка с сайта.
  • ColorZilla – позволяет создавать цвета и градиенты. Выводит css свойства для них.
  • Adobe Color CC – создание цветовых схем.
  • Colicious – нажимайте на пробел и генерируйте новый цвет.
  • Colorscheme — подбор цветовых схем. Есть версия на английском и на русском. Позволяет подобрать цвета к сайту. Имеет тонкую настройку, показывает код цвета. В конечном итоге позволяет просмотреть страницу в выбранной цветовой гамме. Самый большой плюс – просмотр гаммы с точки зрения отклонения цветовосприятия. Также позволяет выбрать разные цветовые модели. Сохраняет в палитру Gimp, CSS,PNG и т.д. Имеет конвертер цветов для перевода из одной цветовой модели в другую.
  • Paletton – инструмент для создания комбинаций цветов. Ничем не отличается от Colorscheme.
  • Pictaculous – анализирует палитру изображения PNG, JPG или GIF. Загружайте изображение и получите набор всех цветов, которые в нем присутствуют.
  • Hex Color Tool – инструмент выбора цвета. Ползунками настраивается цвет, можно выбрать яркость. Затем выбранный цвет сохраняется. Можно подобрать палитру.
  • (Un)clrd – плагин для браузера, который удаляет все цвета и оставляет сайт в черно-белом цвете.
  • BrandColors — самая большая коллекция официальных фирменных цветовых кодов. Выбираете название бренда и скачиваете названия его цветов, в том числе и в css- файл.
  • Colortyper — подбор цветов с необычного ракурса. На экране показываются разноцветные символы, которые пересекаются. Результат пересечения – новый цвет. Выглядит интересно.

Как пользоваться

Дальше в два этапа давайте рассмотрим, как бесплатно скачать Gravit Designer, а также разберем инструкцию по установке и использованию приложения.

Загрузка и установка

Изначально нам нужно загрузить графический редактор. Для этого действуем по такой схеме:

  1. Прокрутив данную страничку немного ниже, мы жмем кнопку, которая запустит загрузку архива.
  2. Когда процесс скачивания будет завершен, мы распаковываем исполняемый файл, применив пароль, прикрепленный там же.
  3. Запускаем наш инсталлятор, и согласно подсказкам пошагового мастера, производим установку программы.

Теперь можно переходить к работе с нашим ПО.

Инструкция по работе

Итак, для того чтобы начать работать с графическим редактором, обозреваемым в статье, придерживаемся следующего общего алгоритма:

  1. Изначально, как и в любых других графических редакторах, мы должны будем добавить все объекты, используемые в проекте. Для этого достаточно воспользоваться набором функций главного меню. В данном конкретном случае нам понадобится пункт «Импорт» в меню «Файл».
  2. Следующий этап предусматривает обработку изображения или нескольких картинок. Мы комбинируем, обрезаем, работаем со слоями, а также применяем различные эффекты.
  3. Последний, финальный этап предусматривает экспорт готового результата на компьютер или ноутбук. Для этого, как и на первой стадии, мы воспользуемся возможностями главного меню.

Preparations

We start with a simple diagram:

<Canvas>
  <EllipseFill="Blue"Width="100"Height="100"Canvas.Top="100"Canvas.Left="100">
</Canvas>

You might not be impressed by this diagram, nevertheless it is a good starting point. It is easy to understand and it has all a basic diagram needs to have: a drawing canvas with a shape. But you are right, this diagram isn’t really useful — it’s just too static.

So let’s start with some preparations by wrapping the ellipse into a :

 <Canvas>      
   <ContentControlWidth="100"Height="100"Canvas.Top="100"Canvas.Left="100">
      <EllipseFill="Blue">
   </ContentControl>
</Canvas>

Not much better you may say, we still can’t move the ellipse, so what is it good for? Well, the serves as a container for the object that we want to place on the canvas and it is actually this that we are going to move, resize and rotate! And because the content of a can be of any type, we will be able to move, resize and rotate objects of any type on our canvas!

Note: Because of its key role, this is also referred to as .

We conclude our preparations by assigning a to the . This introduces a further level of abstraction, so that from now on we will just expand this template and leave the and its content completely untouched.

 <Canvas>    
   <Canvas.Resources>
      <ControlTemplatex:Key="DesignerItemTemplate"TargetType="ContentControl">
         <ContentPresenterContent="{TemplateBinding ContentControl.Content}">
      </ControlTemplate>
   </Canvas.Resources>  
   <ContentControlName="DesignerItem"Width="100"Height="100"Canvas.Top="100"Canvas.Left="100"Template="{StaticResource DesignerItemTemplate}">
      <EllipseFill="Blue">
   </ContentControl>
</Canvas>

Now that we have finished our preparations, we are ready to bring some activity on the canvas.

Почему PlantUML

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

Во всех трех случаях использовалось слово «более менее», потому что все эти критерии в конкретных ситуациях можно нарушать без ущерба для дела. Есть много больших диаграмм, созданных в самодельной нотации и доведенных до совершенства (та же карта метрополитена). Другой вопрос, что создание таких диаграмм — проекты, на которые потрачены серьезные ресурсы. Далеко не всегда (читай, никогда) такие ресурсы выделяются на создание автоматизированных информационных систем. Заказчику нужна совершенная система, а не совершенная диаграмма системы.

Тем не менее для меня эти критерии являются точкой отсчета, от которого начинаешь придумывать диаграмму. Дальше…​ как сложится.

Очень долгое время золотым сечением для себя я считал использование Microsoft Visio и рисовал там диаграммы, стараясь быть разумно близким к UML. При этом использовался стандартный набор компонентов, поскольку он дает больше свободы, чем специализированный stencil для UML. Также некоторые диаграммы для показа на проекторе рисовались в Microsoft PowerPoint.

Да, управлять такими диаграммами нельзя. Если поменялось название какой-либо сущности, открываем каждую диаграмму и меняем ее. Зато получается почти красиво. И есть определенная гибкость в формулировании мысли.

Также пробовал специализированные инструменты бизнес-моделирования: Rational Rose, Aris, Enterpise Architect (Sparx Systems), — в наибольшей степени Rational Rose. Проблема в том, что конечный результат моей работы — это документы. И в этом смысле, если что-то серьезное меняется в требованиях, все равно необходимо вручную проходить по всем проекту и заново вставлять диаграммы в нужные места текста. Что-то придумывать, возможно, автоматизировать в этой части мне показалось слишком сложным и не стоящим усилий.

С появлением PlantUML ситуация в корне изменилась.

  1. Раз диаграммы создаются в виде текста, значит в любом текстовом редакторе (мне нравятся Atom и Notepad++) можно найти требуемый текст в наборе файлов и даже заменить его. Рефакторинг проекта вполне удобен. Также текстовый формат дает возможность легко организовывать групповую работу и осуществлять отслеживание изменений в системе контроля версий.

  2. В PlantUML создавать диаграммы быстрее, чем в любых визуальных редакторах (по крайней мере, для меня). На этот счет есть и другие мнения, например, здесь говорится, что создание диаграммы в PlantUML дольше, чем, скажем в Enterpise Architect (Sparx Systems). Думаю, это скорее вопрос вкуса и привычки.

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

  3. PlantUML достаточно гибко подходит к нотации UML. Поддерживая все основные ее элементы, он дает пользователю множество возможностей для их свободного использования в диаграмме. Например, очень удобной является поддержка использования вики-разметки в содержимом элементов.

    Более того, разработчки PlantUML, видимо, ничего плохого в нарушении нотации не видят. И это большое достоинство данного инструмента. В конечном счете, клиент не должен знать, UML это или не UML — он должен понимать смысл диаграммы. Все, что ведет к улучшению восприятия смысла, хорошо.

    И тем не менее PlantUML — это UML, т.е. общепринятая нотация, стандарт, а значит для документации, особенно в государственных проектах, очень подходит.

  4. PlantUML не позволяет создавать больших диаграмм. Он распределяет элементы самостоятельно и, естественно, при большом количестве элементов результат начинает быть сомнительным. Но это не совсем ограничение. Обычно, когда PlantUML начинает выдавать неадекватный результат, понимаешь, что не PlantUML плохой, а диаграмма плохая, и лучше ее разделить или уменьшить количество несущественных деталей.

  5. Диаграммы PlantUML можно генерировать автоматически. Пример такого использования приведен в здесь.

    Мы используем PlantUML для автоматической генерации схемы базы данных. Функция такой генерации встроена в используемый нами инструмент управления структурой баз данных  — 2bass. Таким образом, при сборке документации диаграмма классов со структурой БД находится всегда в актуальном состоянии. На следующем рисунке показан кусок описания структуры базы данных и автоматически созданная диаграмма.

Описание и возможности

Начинать обзор приложения мы будем именно с разбора его возможностей. Список основных функций Gravit Designer выглядит примерно следующим образом:

  • Поддерживается не только растровая, но и векторная графика.
  • Присутствует широкая библиотека различных готовых картинок.
  • Можно работать онлайн.
  • В программе вы найдете множество различных эффектов, которые можно накладывать на ваше изображение.
  • Движок написан при помощи распространенных языков программирования WebGL, HTML Canvas и JavaScript.
  • Используются собственные механизмы рендеринга, позволяющие намного быстрее обрабатывать проекты.
  • Программа постоянно обновляется, причем происходит это в автоматическом режиме и без участия пользователя.

PlantUML

PlantUML отличается от всех других приложений в этом списке. Вместо графического интерфейса вы создаете свои диаграммы, используя язык сценариев PlantUML. Это отличный инструмент для программистов, которые не любят перетаскивать мышью. PlantUML требует Java в вашей системе.

Основные характеристики и особенности:

  • Определение объектов и связей с помощью языка сценариев PlantUML.
  • Поддерживает множество типов диаграмм: последовательность, пользовательский регистр, класс, Гантт и т.д.
  • Экспортируйте диаграммы в формате PNG, SVG или LaTeX.

перевод с makeuseof.com

Спасибо, что читаете! Подписывайтесь на мои каналы в Telegram, и . Только там последние обновления блога и новости мира информационных технологий.

Бесплатные программы для рисования на компьютере

Krita

Платформы: Windows, macOS, Linux.

Krita — это настолько продвинутая и функциональная программа для рисования, что не верится, что перед тобой не коммерческий продукт, а разработка с открытым исходным кодом. В этом редакторе есть поддержка слоёв, огромное количество кистей и инструментов, куча самых разных фильтров и эффектов.

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

GIMP

Платформы: Windows, macOS, Linux.

Мощный, гибкий, настраиваемый растровый редактор с открытым исходным кодом. Правда, интерфейс и горячие клавиши тут своеобразные — привыкшим к Photoshop художникам придётся переучиваться.

В GIMP есть большинство инструментов, доступных в Photoshop: слои, маски, цветокоррекция, умное выделение, кисти, фильтры и гора других возможностей. Часть отсутствующих можно прикрутить с помощью сторонних расширений.

Inkscape

Платформы: Windows, macOS, Linux.

А вот это уже инструмент для создания векторной графики — бесплатный и опенсорсный аналог Adobe Illustrator. Он хорошо подходит для создания логотипов, значков, веб-графики, векторных иллюстраций и прочих дизайнерских продуктов.

Inkscape содержит в себе всё для комфортного создания и редактирования векторных изображений: инструменты управления цветом и текстурами, слои, умное размещение и выравнивание объектов, а также возможность векторизировать растровые картинки.

Paint.NET

Платформы: Windows.

Это, конечно, не полноценный аналог Photoshop, а, скорее, старый добрый Paint на стероидах, но для любительского рисования и его хватит.

Именно благодаря своей простоте Paint.NET хорошо подходит для начинающих художников. Плюс ко всему он способен быстро работать даже на маломощных устройствах.

Paint.NET поддерживает работу со слоями и обладает большим количеством эффектов. Здесь есть инструменты для размытия, стилизации, повышения чёткости и подавления шума, а при желании возможности программы можно расширить при помощи плагинов.

MediBang Paint Pro

Платформы: Windows, macOS.

Это специализированный инструмент, который придётся по душе создателям комиксов, аниме и манги. Приложение очень лёгкое, быстрое и при этом абсолютно бесплатное. В библиотеке MediBang Paint Pro больше 800 предустановленных фонов и шаблонов аниме-тематики. Кроме того, здесь есть порядка 50 кистей и большой выбор бесплатных шрифтов.

Gravit Designer

Платформы: Windows, macOS, Linux, веб.

Gravit Designer — это довольно мощный и продвинутый, но при этом бесплатный редактор векторной графики. С его помощью можно легко создавать значки, логотипы, баннеры и прочие изображения. В приложении много инструментов: кривые, слои, формы, выделение и трансформация объектов, работа с текстом и шрифтами.

Помимо этого, в Gravit Designer есть встроенная библиотека векторных объектов, создаваемых пользователями. Их можно свободно задействовать в собственных работах. Ещё одна фишка приложения: при желании его можно запустить без установки, прямо в браузере через родной веб-сервис Gravit.

Изменение цвета сущностейChanging the Color of Entities

Помимо разделения модели на несколько диаграмм можно также изменить цвета сущностей.In addition to splitting a model into multiple diagrams, you can also change colors of your entities.

Чтобы изменить цвет, выберите сущность (или несколько сущностей) в области конструктора.To change the color, select an entity (or multiple entities) on the design surface. Затем щелкните правой кнопкой мыши и выберите пункт Свойства.Then, click the right mouse button and select Properties. В окно свойств выберите свойство Цвет заливки .In the Properties window, select the Fill Color property. Укажите цвет, используя допустимое имя цвета (например, красный цвет) или допустимый RGB (например, 255, 128, 128).Specify the color using either a valid color name (for example, Red) or a valid RGB (for example, 255, 128, 128). 

Разделение сущностей и ассоциаций на новую диаграммуSplitting Entities and Associations into a New Diagram

Можно выбрать сущности на существующей диаграмме (для выбора нескольких сущностей удерживайте клавишу Shift).You can select entities on the existing diagram (hold Shift to select multiple entities). Щелкните правой кнопкой мыши и выберите переместить в новую диаграмму.Click the right mouse button and select Move to new Diagram. Создается новая диаграмма, и выбранные сущности и их связи перемещаются на схему.The new diagram is created and the selected entities and their associations are moved to the diagram.

Кроме того, можно щелкнуть правой кнопкой мыши папку диаграммы в обозревателе моделей и выбрать команду Добавить новую диаграмму.Alternatively, you can right-click the Diagrams folder in Model Browser and select Add new Diagram. Затем можно перетащить сущности из папки «типы сущностей» в обозревателе моделей в область конструктора.You can then drag and drop entities from under the Entity Types folder in Model Browser onto the design surface.

Можно также вырезать или копировать сущности (с помощью клавиш CTRL + X или CTRL + C) из одной диаграммы и вставить (с помощью клавиши CTRL + V) на другой.You can also cut or copy entities (using Ctrl-X or Ctrl-C keys) from one diagram and paste (using Ctrl-V key) on the other. Если схема, в которую вставляется сущность, уже содержит сущность с тем же именем, в модель будет создана и добавлена новая сущность.If the diagram into which you are pasting an entity already contains an entity with the same name, a new entity will be created and added to the model.Например: Diagram2 содержит сущность Department.  For example: Diagram2 contains the Department entity. Затем вы вставляете другой отдел в Diagram2.Then, you paste another Department on Diagram2. Сущность Department1 создается и добавляется в концептуальную модель.The Department1 entity is created and added to the conceptual model.   

Чтобы включить связанные сущности в схему, Рик щелкните сущность и выберите включить связанные.To include related entities in a diagram, rick-click the entity and select Include Related. Это приведет к копированию связанных сущностей и ассоциаций в указанной диаграмме.This will make a copy of the related entities and associations in the specified diagram.

DeltaGraph – почувствуй себя настоящим профессионалом

И на десерт: одно из самых популярных и востребованных приложений для создания графиков и диаграмм – DeltaGraph. От такого количества функций и шаблонов у многих пользователей просто захватывает дух. А удобный интерфейс делает работу с этим софтом приятной и быстрой.

В первую очередь стоит отметить достоинства DeltaGraph:

  • возможность создавать двух- и трехмерные объекты;
  • работа с множественными массивами данных, в том числе из других приложений;
  • экспорт готовых диаграмм и графиков фактически в любую программу, будь то Microsoft Word, PowerPoint или Excel;
  • широкий спектр разрешений для сохранения объектов;
  • реализация многоуровневых графиков, с использованием разных типов.

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

Естественно, без недостатков никуда, вот и DeltaGraph не является исключением:

  • ограниченное бесплатное использование (демо-версия с необходимостью покупки полнофункциональной версии);
  • несколько усложненное меню команд.

Логично, что за высокое качество нужно платить. Ну а что касается проблем с интерфейсом, то несколько туториалов легко устраняют этот недочет.

И в завершение стоит сказать: умение создать красивые статистические, финансовые и прочие данные в виде сложных графиков и диаграмм является достаточно ценным сегодня

Потому так важно подойти к выбору рабочего инструмента, то есть программы

Автомат — вещь событийная?

1. Введение

Услышав из авторитетных уст, что «автоматы — вещь событийная» , понял, что конечные автоматы заклеймили окончательно. Судите сами: в библиотеке Qt реализована событийная модель автоматов , в UML — они же , смотрим на автоматы пакета расширений Simulink-Stateflow системы MATLAB (далее просто Stateflow) и там о событиях и т.д. и т.д. В таком контексте утверждение д.т.н. А.А. Шалыто трактовать по-другому сложно, т.к. ничего иного уже не может быть, потому что быть не может.
Но, если вспомнить теорию конечных автоматов (ТКА), то в ней о событийных автоматах нет ни слова! Но чтобы противоречить теории нужны веские аргументы. А есть ли основания сомневаться в профессионализме Д. Харелла, как создателя нотации, на которой базирует свои идеи язык UML, пакет Stateflow, которые в свою очередь небезызвестны А.А. Шалыто? Ведь, UML, Stateflow, SWITCH-программирование и иные варианты автоматного программирования существуют и в той или иной мере успешно работают.
Так можно ли снять «клеймо событийности» с модели конечных автоматов, отделив «котлеты от мух»? Т.е. разделить теорию автоматов и вычислительные модели, подобные модели Д.Харела. И считать, что последние, хотя и используют терминологию теории автоматов, представляют, судя по их реализации, развитие модели блок-схем программ.

Уточняем описание функций системы с помощью диаграммы Sequence

Уточняем описание функций системы с помощью диаграммы Sequence (продолжение «Белки»)

В данной статье рассмотрим, как можно детализировать (уточнить) описание автоматизируемой функции с помощью UML Sequence Diagram — диаграммы последовательности.

В данном примере я использую среду Enterprise Architect от австралийской компании Sparx Systems .
Полную спецификацию UML см. здесь .

Для начала поясню, что мы будем детализировать.
В 1-ой части статьи «От моделирования процессов к проектированию автоматизированной системы» мы моделировали процессы «сказочной» предметной области — строчки про белку из «Сказки о царе Салтане» А.С.Пушкина. И начали мы с диаграммы Activity. Потом во 2-ой части мы разработали функциональную модель с помощью диаграммы Use-case, на Рисунке 1 представлен фрагмент.

Рисунок 1. Связь требования и функции
Теперь мы хотим уточнить информацию о выполнении данной автоматизируемой функции:

  • с какими компонентами интерфейса будет взаимодействовать наш пользователь;
  • какие управляющие компоненты нам понадобятся;
  • что мы будем хранить;
  • какими сообщениями будут обмениваться пользователь и компоненты системы для выполнения функции.

Rotate

To provide rotation of objects, we follow the same solution path as in the chapter before, but this time we create a and arrange four instances of it in a control template named . Together with the resize decorator, it looks like this:

The structure of the code for and the is very similar to what we have seen in the chapter before, so I will not list the code here.

Note: My first approach to drag, resize and rotate items was to use WPF’s , and . But that turned out to be the wrong way, because Transforms in WPF do not really change an object’s properties like width or height, WPF Transforms are just a rendering issue. So I didn’t use and to drag and resize items, but I had to use because of no alternative.

UML для разработчиков

Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то уже имеет смысл отрисовать 2-3 вида диаграмм. В одной нашей команде более 30 человек, проект длительностью более 3 лет, и мы используем…2-3 вида диаграмм.
Нотация UML избыточна. С другой стороны она недостаточна для проектирования распределенных систем, и здесь нам помогает Archimate. В этой статье мы расскажем, что действительно полезно из всего этого многообразия, и рассмотрим на примере полный цикл создания диаграмм для проекта.

Программы для работы с блок-схемами

LibreOffice Draw

LibreOffice — это бесплатный офисный пакет, своего рода аналог MS Office (неоднократно мной рекомендуем, кстати). В его арсенале есть спец. программа Draw, позволяющая буквально 2-3 кликами мышки рисовать простенькие блок-схемы (см. скрин ниже).

Типовая блок-схема // Draw

С помощью левой панельки можно быстро добавить различные фигуры: ромбы, прямоугольники, линии, стрелки и т.д. К тому же в отличие от многих других продуктов — Draw поддерживает русский язык в полном объеме.

В общем, однозначно рекомендую!

Dia

Это добротный и бесплатный редактор диаграмм, блок-схем и пр. подобных «штук»

По сравнению с предыдущей программой, Dia обладает куда большим функционалом — да просто хотя бы обратите внимание на панель задач: там есть практически любые фигуры и значки!

DIA — скрин главного окна

Особенности:

  1. простой и лаконичный интерфейс: разобраться с ним не составит труда любому начинающему пользователю;
  2. есть коллекция стандартных блок-схем (не обязательно всегда создавать что-то новое);
  3. есть возможность добавлять в коллекцию свои фигуры и значки;
  4. любую фигуру на схеме можно перекрасить в нужный вам цвет (см. скрин выше);
  5. ПО можно использовать как в ОС Windows и Linux.

Pencil Project

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

Скрин блоков из Pencil Project

Особенности:

  1. возможность импортировать рисунки и вставлять их в свои схемы;
  2. возможность создавать собственные фигуры и блоки;
  3. огромная коллекция готовых графиков, схем, шаблонов и т.д.;
  4. есть опция для сохранения блоков в такие популярные форматы, как HTML, PNG, PDF и пр.

Diagram Designer

Добротный векторный графический редактор для создания графиков, блок-схем, диаграмм. Программа выгодно отличается от других продуктов своей «простотой» — посмотрите на ее интерфейс, он выполнен в стиле тотального минимализма!

Чтобы создать свою схему — достаточно 2-х кликов мышки (и это не преувеличение).

Diagram Designer — главное окно программы

Особенности:

  1. простой интерфейс: нет ничего лишнего (только инструменты для создания схем);
  2. импорт/экспорт файлов в формате: WMF, EMF, BMP, JPEG, PNG, MNG, ICO, GIF и PCX;
  3. встроенная функция для просмотра слайд-шоу;
  4. возможность сжимать файлы блок-схем (архиватор);
  5. есть опция по объединению нескольких схем в одну (весьма удобно, если вам нужно скомпоновать что-то одно из разных «кусков»).

yEd Graph Editor

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

yEd Graph Editor — пример построенной блок-схемы

Особенности:

  1. легкое и быстрое построение схем любой сложности (и с любым количеством условий и ответвлений);
  2. поддержка комментариев, аннотаций;
  3. возможность работать параллельно сразу с несколькими документами;
  4. есть спец. «сворачивающиеся» блоки (подобные инструменты редко встречаются в др. аналогичных продуктах);
  5. наличие алгоритмов для автоматической компоновки (выручает при работе с большими диаграммами и схемами);
  6. возможность сохранения созданных графиков в HTML, PNG, JPG и PDF файлы.

по теме — приветствуются!

Удачи!

Comments and Discussions

You must Sign In to use this message board.
First Prev
charleypeng 4-Jul-20 23:11 
Stigzler74 16-Nov-19 2:31 
Faust Sintez 14-Nov-18 11:43 
Cool Smith 13-Sep-18 21:13 
patongjs 17-Jun-16 6:07 
Razvoj POS Elektroncek 22-Sep-15 4:42 
Razvoj POS Elektroncek 22-Sep-15 21:11 
Member 8808225 6-Apr-15 19:54 
ZiefJB 23-Feb-15 1:18 
dipwater 3-Jan-15 22:09 
Nicke Manarin 28-Oct-14 13:05 
Miguel Salcedo 2-Sep-14 13:01 
Fay Huang 8-Sep-14 21:10 
Hanns Dietrich 25-Aug-14 2:48 
fatoş 27-Aug-14 9:29 
Stigzler74 20-Feb-20 12:11 
Fay Huang 11-Aug-14 22:16 
ke_sathish 31-Jul-14 3:40 
Sturms 11-Jul-14 10:58 
karthikin 27-May-14 4:06 
kmf 15-May-14 10:57 
dashiya 3-Apr-14 9:45 
whatforever 24-Mar-14 0:00 
syz3r 23-Oct-13 1:55 
wuzhenda 16-Nov-13 1:33 

General    News    Suggestion    Question    Bug    Answer    Joke    Praise    Rant    Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий