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

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - [прилетело НЛО и...]

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »
1
===
@startuml
[-> ParserWorker : Worker()
loop for i in parserSettings.StartPoint..parserSettings.EndPoint
  break isActive
  note over ParserWorker: выход из цикла
  end
  ParserWorker -> loader : GetSourceByPageId(i)
  loader --> ParserWorker : source
  create HtmlParser
  ParserWorker --> HtmlParser : new
  ParserWorker -> HtmlParser : ParseAsync(source)
  HtmlParser --> ParserWorker : document
  ParserWorker -> parser : Parse(document)
  parser --> ParserWorker : result
  opt OnNewData != NULL
   ParserWorker -> OnNewData : Invoke(this, result)
  end
end
opt OnCompleted != NULL
   ParserWorker -> OnCompleted : Invoke(this)
end
ParserWorker -> ParserWorker : isActive = FALSE
[<-- ParserWorker:return
@enduml
===

2
===
@startuml
class Program {
   {static}  + Main(args: string[]): void
}

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


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

ICreditCard "cardDetails" <-- Program
ICreditCard <|.. MoneyBack
Program ..> MoneyBack
@enduml
===


3
Вопрос, вероятно, по стилю оформления диаграммы.
Что если...

===
@startuml
class BaseViewModel {
  + event PropertyChangedEventHandler PropertyChanged
  # virtual void OnPropertyChanged([CallerMemberName] string PropertyName = null)
  # virtual bool Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null)
}

class MainViewModel {
  + MainViewModel()
}

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

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

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


 BaseViewModel <|-- MainViewModel
 BaseViewModel <|-- Entity1ViewModel
 BaseViewModel <|-- Entity2ViewModel
 BaseViewModel <|-- Entity3ViewModel

 Entity1ViewModel "_entity1ViewModel" <-- MainViewModel
 Entity2ViewModel "_entity2ViewModel" <-- MainViewModel
 Entity3ViewModel "_entity3ViewModel" <-- MainViewModel
@enduml
===


4
[Очередная попытка некротредить]
Попался материал забугорный, но тоже доставляющий в плане якобы математических обоснований.
http://arxiv.org/pdf/1304.0116
===
 В более общем случае предположим, что цель g может быть достигнута с помощью n объектов проектирования (D1, D2, ... Dn), каждый из которых обладает характеристиками (F1, F2, ... Fn). Тогда множество требований Rg можно определить как пересечение свойств (Rg = F1 ∩ F2 ∩ ... ∩ Fn).

===
Это почти то же самое, что знаменитое практически все люди, страдающие хроническими заболеваниями, ели огурцы. Что если все объекты Di ели огурцы обладают некоторым свойством, которое никакого отношения не имеет к достижению цели g? Будет ли оно требованием? По логике Паула Ральфа, будет.

5

Вот иллюстрация.
Деятельность Trib внутри себя содержит три рекурсивных вызова (3 узла действия вызова деятельности). Моделируется вычисление n-ого числа трибоначчи.

6
Стандарт языка не запрещает одноимённые деятельности.
EA не может строить догадки о том, что Вы моделируете.
PD аллертит из-за нарушения встроенных в него правил.

По [моей] идее, очень мало поводов рисовать именно деятельность на диаграмме деятельности. В описанном Вами случае на диаграмме деятельность одна и она выполняет роль рамки всей диаграммы. Это описываемая процедура.
Вызываемая подпрограмма как деятельность на диаграмме не присутствует. Присутствуют её вызовы -- узлы действия, Action Node.
Написанное выше не является требованием стандарта. Это что-то вроде перевода написанного Вами в термины UML.

7
С первым куском кода не всё ОК. Имя cardDetails используется, но не описано.
На каждой приведённой диаграмме к интерфейсу от класса-реализации должно идти не обобщение (сплошная стрелка с треугольным выколотым наконечником), а реализация (пунктирная стрелка с треугольным выколотым наконечником).
Диаграммы на которых Program соединен с интерфейсом обобщением (сплошной стрелкой с треугольным выколотым наконечником) ошибочны, там должна быть ассоциация.
Статическая операция должна быть подчёркнута.
В UML в сигнатуре операции её имя предшествует типу возвращаемого значения.
Разумно нарисовать зависимость от Program к классу-реализации, т. к. он используется и его имя известно Program.

8
UML SysML и пр. / Re: Шутки и UML
« : 23 Февраля 2024, 03:10:02 »
А что-то ничего не отображается
Это хост временно лёг, на котором картинка лежит.(

9
UML SysML и пр. / Re: Шутки и UML
« : 30 Декабря 2023, 21:10:18 »

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

10
https://link.springer.com/content/pdf/10.1007/s10270-023-01105-5.pdf
Испанские исследователи натравили ChatGPT на решение учебных задачек по составлению UML-диаграмм. Оказалось, что ИИ часто генерит диаграмму, которую составители задачи не ожидали.
Глядя с Марсу, могу судить, что такое часто происходит даже в тех случаях, когда диаграмму выдумывает неискусственный разум.

11
[глубинного некробурения псто]

Незабвенный Алистер Кокбёрн рисовал подобное -- UCD с единственным UC "Юзать систему" -- и даже разъяснял, в каком случае это имеет смысл. Заводя такой UC, Кокбёрн в его сценарии прописывал, как увязываются между собой UC "уровня моря". Но морские UC всё равно рисовал и увязывал инклюдами и т. п. с облачным UC.

Фраза из условия: "Кроме того ... также процессы настройки и деинсталляции," -- даёт некоторые основания для "декомпозирования" UC или для рисования UCD с UC уровня цели пользователя.

12
UML SysML и пр. / Re: Шутки и UML
« : 17 Августа 2023, 00:40:36 »
Вслед за анти-гайдом по UML от Яндекс.Практикума появился такой же фееричности материал на скиллбоксе Язык UML: что это такое и зачем он нужен.

13
Задачи студентов / Re: UseCase diagram. Include и Extend
« : 16 Августа 2023, 23:17:55 »
[некробурения псто]
Вопрос актуален [всё ещё]. В стандарте UML нет решения до сих пор. Вероятно, авторам этого стандарта не хватает столь ценимого кое-кем "практического опыта чего-то-там".

Есть сложившиеся практики, которые почти не описываются в учебниках, но следы их применения можно заметить на примерах UC-диаграмм.
Вот пример от Скотта Амблера:

Мы тут видим, что включённый ВИ имеет тот же набор связанных экторов, что и базовый, и поэтому явных ассоциаций от него к экторам нет. Также видим, что расширяющий ВИ имеет изменённый набор экторов по сравнению с базовым, и поэтому есть явная ассоциация. Можно заметить, что Амблер предлагает нам додумать такой момент: UC "Perform Security Check" связан неявно со Student, Registrar, Applicant и явно -- с International Student или же ассоциация-коммуникация к International Student перекрывает/переопределяет коммуникацию к Student, как-бы унаследованную от базового UC. 

14
[некробурения приступ]
То, что в теме представлено как диаграммы ВИ, взрывает мой марсианский мозг. Их невозможно прочесть по стандартным UMLьным смыслам.

15
Да, конечно. Только по стандарту тип объединяющего узла = Merge.
Можно как на рисунке: на каждый Desicion свой Merge. Можно один общий Merge с тремя входами.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 »