Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > диаграммa последовательности (sequence diagram)


Автор: Nin 18.11.2004, 15:04
Привет знатокам!!!

Дали задание, я его написал, а теперь пристают с диаграммой последовательности (sequence diagram)...
Как нарисовать DataFlow diagram между двумя процессами? И как я могу отобразить на диаграмме обмен даннымми между этими двумя процессами?


Вот пример использования "DataFlow"
Код

DataFlow df;
DataFlowManager dfm;
df = new DataFlow("MyDataFlow");

df.createProcess("tmViewer", herschel.hifi.ilt.dmtuning.TmViewer.class );
df.createProcess("packetsGenerator", herschel.hifi.ilt.dmtuning.PacketAccess.class );

//connecting Processes
df.connect("packetsGenerator.hk", "tmViewer.input");
dfm = new DataFlowManager(df);

В общем всё работает примерно вот так:
Мы запускаем паралельно два процесса, из них один заботится о том чтобы параметры были отображены в таблице, а второй "PacketsGenerator" доставляет эти параметры. Причем откуда он их берёт не огаваривается, т.е. он их может считывать из базы данных или симулировать.
Основои обмена данными между этими двумя процессами является наследования каждого из них от родительского класса
IaProcessImpl.class который имеет следующие методы addInputListener(), createInput(); createOutput();

В классе "TmViewer" мы создаём так называемую точку через которую происходит обмен данных. Этой точкой будет объект packetInput

ProcessInput packetInput = createInput("input", TmSourcePacket.class);

packetInput.addInputListener(il);

Я сам не доканца понимаю как это работает ...

Но вот событием при котором объект il от класса InputListener.class выполняет какое либо деиствие является получение нового пакета (TmSourcePacket.class) с параметрами. Т.е. как я понимаю обьект packetInput добавляет ссылку в таблицу с сылками зарегестрировванных объектов и имеющиx специальные методы которые должны быть выполнены при ранее оговаренном событии.

Вопрос: Как нарисовать " Data Flow diagram " к этим двум процессам, так чтобы было понятно чем они обмениваются (TmSourcePacket.class)
И как нарисовать диаграмму последовательности к классу "TmViewer.class" так чтобы объект il от класса InputListener.class также там фигурировал. Как его рисовать? Он создаётся при инициализации "TmViewer", и от него зависят все последующие деиствия
TmViewer. Если не считать самой таблицы которая тоже живет как бы сама по себе и обнавляется когда пользователь выбирает
другие параметры из листа или когда приходят новые пакеты с параметрами.

внизу я помещаю конструктор класса TmViewer, может поможет разобратся....

Заранее благодарен,

Ильдар
Код

public TmViewer ( String name ) {
 super ( name );
// -------------------------So we have gоt ParameterDefinition from TmVersion()-------------------------------
 InstrumentProperties ip = InstrumentProperties.getInstance();
 TmVersion tv = ip.getTmVersion(DateConverter.dateToFineTime(new Date()));
 Iterator iteratorParameterDefinitions = tv.getPdIterator();
//--------------------------------------------------------------------------------------------


// ------------------Initializati name to measure map------------------------------------------
 nameToMeasure = new TreeMap();
 while (iteratorParameterDefinitions.hasNext()) {
  nameToMeasure.put( ((ParameterDefinition)iteratorParameterDefinitions.next()).getName(), null );
  }

// ------------------GUI------------------------------------------
 tableModel = new MyTableModel();
 nameList = new JList(nameToMeasure.keySet().toArray());
 JTable table = new JTable (tableModel);
 tabbedPane = new JTabbedPane();
 tabbedPane.addTab("List", nameList);
 tabbedPane.addTab("Properties", table);
/*
It has one InputConector that is colled "input" en it has to get TmSourcePacket.
*/
 ProcessInput packetInput = createInput("input", TmSourcePacket.class);

//--------------Listeners-------------------------------------------------------------------------------------------
 packetInput.addInputListener(il);
 nameList.addListSelectionListener(lsl);

 }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)