Форум Сообщества Аналитиков

×


Последние сообщения

Страницы: 1 2 3 4 5 6 7 8 9 10
1
Теория моделирования и нотации / Re: UML. Имя Activity
« Последний ответ от [прилетело НЛО и...] 26 Марта 2024, 13:22:06 »

Вот иллюстрация.
Деятельность Trib внутри себя содержит три рекурсивных вызова (3 узла действия вызова деятельности). Моделируется вычисление n-ого числа трибоначчи.
2
Теория моделирования и нотации / Re: UML. Имя Activity
« Последний ответ от Galogen 22 Марта 2024, 19:08:18 »
Добрый день!

Делаю простую диаграмму Activity Diagram с помощью PowerDesigner.
Диаграмма описывает алгоритм некоторой процедуры, обрабатывающей текущую строку таблицы.
На этой диаграмме несколько объектов Activity по сути являются вызовом одной и той же подпрограммы, выполняют одни и те же действия, но в разных местах алгоритма.
Естественно, для этих объектов Activity я в имени указываю одно и то же имя вызываемой подпрограммы.
Однако, PowerDesigner не дает этого сделать и выдает ошибку о том, что имя не уникально.

Объясните, пожалуйста, в соответствии с требованиями стандарта UML разве имена всех объектов должны быть уникальными?
Какой в этом смысл?
А если имя уникальное, то как на диаграмме отобразить тот факт, что несколько объектов Activity вызывают одну и ту же подпрограмму?

На самом деле процедура в программе определена одна, а вот вызовов конечно может быть много.
3
Теория моделирования и нотации / Re: UML. Имя Activity
« Последний ответ от [прилетело НЛО и...] 23 Февраля 2024, 03:35:21 »
Стандарт языка не запрещает одноимённые деятельности.
EA не может строить догадки о том, что Вы моделируете.
PD аллертит из-за нарушения встроенных в него правил.

По [моей] идее, очень мало поводов рисовать именно деятельность на диаграмме деятельности. В описанном Вами случае на диаграмме деятельность одна и она выполняет роль рамки всей диаграммы. Это описываемая процедура.
Вызываемая подпрограмма как деятельность на диаграмме не присутствует. Присутствуют её вызовы -- узлы действия, Action Node.
Написанное выше не является требованием стандарта. Это что-то вроде перевода написанного Вами в термины UML.
4
С первым куском кода не всё ОК. Имя cardDetails используется, но не описано.
На каждой приведённой диаграмме к интерфейсу от класса-реализации должно идти не обобщение (сплошная стрелка с треугольным выколотым наконечником), а реализация (пунктирная стрелка с треугольным выколотым наконечником).
Диаграммы на которых Program соединен с интерфейсом обобщением (сплошной стрелкой с треугольным выколотым наконечником) ошибочны, там должна быть ассоциация.
Статическая операция должна быть подчёркнута.
В UML в сигнатуре операции её имя предшествует типу возвращаемого значения.
Разумно нарисовать зависимость от Program к классу-реализации, т. к. он используется и его имя известно Program.
5
UML SysML и пр. / Re: Шутки и UML
« Последний ответ от [прилетело НЛО и...] 23 Февраля 2024, 03:10:02 »
А что-то ничего не отображается
Это хост временно лёг, на котором картинка лежит.(
6
Теория моделирования и нотации / Re: UML. Имя Activity
« Последний ответ от Resen70 21 Февраля 2024, 10:15:41 »
Здравствуйте!

Недавно делал диаграмму в Enterprise Architect.
И оказалось, что EA свободно дает создавать несколько Activity с одинаковыми именами!

Что это значит? Что EA нарушает стандарт?
Или то, что Activity в EA имеют другой смысл?
7
Реализация / Как правильно нарисовать диаграмму классов?
« Последний ответ от Виталий И 20 Февраля 2024, 19:48:45 »
Как правильно нарисовать диаграмму классов?


Диаграмма в онлайн редакторе: https://www.plantuml.com/plantuml/uml/VP71IWCn443l-OevjaZx0KMaseC85Znu4m_3PimEpKxAP5PPr7ytYsPT3sikERoyUJ3PPqErleikdrZEgDX1P24RpWH9hKtEDH5pXWTDOQJl3igvW2Eoh513ta4sPGbFp-iTl2RsxhCwnoGqt61pcgnRiWEgVopZL-jgpfYIPxldZct4BFRBhaLwZ8UsDAd2KdBb9dt1Xk3kMny39RYSMuxzdvhFlzpuz2QRQIr_uSSFdHRWwhkjScXjUpL3Un9VVk0B


**Код**
**Program**
```cs
class Program
{
    static void Main(string[] args)
    { 
        ICreditCard creditCard = new MoneyBack();
        Console.WriteLine("CardType : "    + cardDetails.GetCardType());
        Console.WriteLine("CreditLimit : " + cardDetails.GetCreditLimit());
        Console.WriteLine("AnnualCharge :" + cardDetails.GetAnnualCharge());
    }
}
```


**ICreditCard**
```cs
public interface ICreditCard
{
    string GetCardType();
    int GetCreditLimit();
    int GetAnnualCharge();
}

```

**MoneyBack**
```cs
public class MoneyBack : ICreditCard
{
    public string GetCardType()
    {
        return "MoneyBack";
    }
    public int GetCreditLimit()
    {
        return 15000;
    }
    public int GetAnnualCharge()
    {
        return 500;
    }
}
```



Solut-1 --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---



```puml
@startuml
skinparam linetype ortho

class Program {
    + Main(args: string[]): void
}

class MoneyBack {
    + GetCardType(): string
    + GetCreditLimit(): int
    + GetAnnualCharge(): int
}


interface ICreditCard {
  + GetCardType(): string
  + GetCreditLimit(): int
  + GetAnnualCharge(): int
}

ICreditCard <-down- Program
ICreditCard <|-down- MoneyBack
Program .right.> MoneyBack
@enduml
```

Solut-2 --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---


```puml
@startuml
class Program {
    static void Main(string[] args)
}

interface ICreditCard {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

class MoneyBack {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

Program -right-|> ICreditCard
ICreditCard <|.. MoneyBack
@enduml
```



Solut-3 --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---


```puml
@startuml
left to right direction

class Program {
    static void Main(string[] args)
}

interface ICreditCard {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

class MoneyBack {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

Program --|> ICreditCard
ICreditCard <|.. MoneyBack
@enduml
```

Solut-4 --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
8
UML SysML и пр. / Re: Шутки и UML
« Последний ответ от Galogen 20 Февраля 2024, 11:24:26 »

С наступающим!
UML-ёлочка вышла немного нестандартная. Это Visual Paradigm разрешает так складывать подарки под неё. В стандарте таким художествам нет места.

Но симпатично, можно свой UML profile заточить
9
UML SysML и пр. / Re: Шутки и UML
« Последний ответ от Galogen 20 Февраля 2024, 11:23:17 »

С наступающим!
UML-ёлочка вышла немного нестандартная. Это Visual Paradigm разрешает так складывать подарки под неё. В стандарте таким художествам нет места.

А что-то ничего не отображается
10
UML SysML и пр. / Re: Шутки и UML
« Последний ответ от [прилетело НЛО и...] 30 Декабря 2023, 21:10:18 »

С наступающим!
UML-ёлочка вышла немного нестандартная. Это Visual Paradigm разрешает так складывать подарки под неё. В стандарте таким художествам нет места.
Страницы: 1 2 3 4 5 6 7 8 9 10