Научная статья на тему 'Разработка компонентно-сервисной платформы обучения: диаграммы классов программного компонента сценария на UML-языке'

Разработка компонентно-сервисной платформы обучения: диаграммы классов программного компонента сценария на UML-языке Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
290
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КИБЕРНЕТИКА / ИНТЕЛЛЕКТ / САПР / СИСТЕМЫ ОБУЧЕНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Афанасьев Александр Николаевич, Войт Николай Николаевич

Разработан программный компонент реализации сценария с помощью языка UML в диаграммах классов

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Афанасьев Александр Николаевич, Войт Николай Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка компонентно-сервисной платформы обучения: диаграммы классов программного компонента сценария на UML-языке»

УДК 004.896

А. Н. АФАНАСЬЕВ, Н. Н. ВОЙТ

РАЗРАБОТКА КОМПОНЕНТНО-СЕРВИСНОЙ ПЛАТФОРМЫ ОБУЧЕНИЯ: ДИАГРАММЫ КЛАССОВ ПРОГРАММНОГО КОМПОНЕНТА СЦЕНАРИЯ НА ЦМЬ-ЯЗЫКЕ

Разработан программный компонент реализации сценария с помощью языка ИМЬ в диаграммах классов.

Ключевые слова: кибернетика, интеллект, САПР, системы обучения.

Введение

В продолжение к предыдущей статье («Вестник УлГТУ», №1, 2012) разработаны UML-диаграммы классов программного компонента сценария. Диаграммы классов компонента описывают объектно-ориентированную модель с помощью классов, атрибутов и функций, обеспечивают успешное написание кода на языке программирования Java.

Диаграммы классов

В компоненте сценария содержатся следующие основные классы:

ClientModule, mainWindowClass,

multiGraphsClass [1-3].

На рис. 1 представлена диаграмма класса ClientModule, обеспечивающего связь сервиса компонента сценария с сервером обучающей системы. Диаграмма содержит атрибуты (Attributes) и функции (Operations). К атрибутам относятся поля _coreApi - клиентская часть сервера, _graphsService - сервис компонента сценария, COMPONENT_NAME - название компонента. К функциям относятся следующие: getGraphsService - запрос на получения сервиса компонента сценария;

getUser - запрос на получение профиля пользователя;

getCoreApi - запрос на получение клиентской части сервера;

setCoreAPI - назначение клиентской части сервера;

getName - запрос на получение названия компонента;

getDescription - запрос на получение описания компонента;

getAuthor - запрос на получение имени автора компонента;

§е^егеюп - запрос на получение версии компонента;

getNeedServerSide - запрос на получение подтверждения на связь с сервером;

getRoleAccess - запрос на получение роли пользователя;

getModuleType - запрос на получение типа пользовательского интерфейса.

ClientModule

Attributes

package ICIientCoreAPI coreApi

package Graphs-Service graphsSeivice

package String COMPONENT NAME = "GraohsServer"

Operations

public GrsphsService qetGraphsSen/icef )

public User oetüserf ?

public ICIientCoreAPI qetCoreAoiC i

••••••••I a

• • • • it

public Object getModuleC!ass(••. , pubüc void sstCoreAPK IClientGoreAPI api) public Siring; gstNamsf •):

. i . - •• »

— —J -a —• — • • »• • • I

rz-^jr. i/«

— • : t - >«—

© Афанасьев A. H., Войт H. H., 2012

Рис. i. Диаграмма класса ClientModule компонента сценария

На рис. 2 представлена диаграмма отношений зависимости, определяющая виды зависимости классов, типы данных.

Класс ClientModule содержит интерфейс IClientModule и типы данных ModuleType, GraphsService, User, ICIientCoreA.pi, Boolean, Object, String.

На рис. 3 представлена диаграмма класса mainWindowClass, обеспечивающего функциональность графического пользовательского интерфейса.

К атрибутам относятся элементы графического пользовательского интерфейса:

A ttrfo&rais

private JToolBar jTooIBarl = new JToolBarO

public JToggleButton jToggleButtorvl AddVertex = new JToggleButtonO public JToggleButton JToggleButtonAddControlN/ertex = new JToggleButtonO private double koefWidth = 1 private double koefHeight = I

private int width = (int)(getToolkitO-getScreenSizeO.getWidthQ ~ koefWidth)

private int height = (int)C(getToolkitO. getScreenSizeO-getHeightO - 30) ~ koefHeight)

private JMenuBar MenuBarl = new JMenuBarO

private Jlvlenu menul = new JMenuQ

private JMenu menuService = new JIvlenuQ

private JMenu menu3 = new JMenuQ

private JScrollPane scrollPanel = new JScrollRaneO

public JScrollPane treeScroll

private DefaultMutableTreeNode root

private DefaultTreeModel model

package Jfvlenultem menulteml = new JMenultemO package Jlvlenultem menultemSaveXML = new JMenultemO package JMenultem menultemLoadXML = new JMenultemO package JMenultem menultem2 = new JMenultemO package JMenultem menultem3 = new JMenultemO package JMenultem menultem4 = new JMenultemO package JMenultem menultemo = new JMenultemO package JMenultem menulternS = new JMenultemO package JMenultem menultemBuildHTML = new JMenultemO package String saveFileContent

package JButton jButton20penFile = new JButtonO package JButton jButton3SaveFile = new JButtonO package JButton jButtonNewDocument = new JButtonO package Component component'1 = Box. createHorizontalStrut(8) package Component components = Box.createHorizontalStrut(8) package JButton jButtonl PlayScen = new JButtonO package JPanel StatusBar = new JPanelQ package JLabel jLabell = new J La be 10

package BorderLayout borderLayoutl = new BorderLayoutQ package JLabel statusText = new JLabelO package JComboBox scaleFeildBox = new JComboBoxQ package Component hstrutl = Box.createHorizontalStrut(S) package Component hstrut2 = Box. createHorizontalStrut<3) package JButton gridColor = new JButtonO

package Component hstrutS = Box. createHorizontalStrut(B) package JComboBox styleText = new JComboBoy() package JComboBox sizeText = new JComboBoxQ package JButton colorText = new JButtonO

package BorderLayout borderLayout2 = new BorderLayoutQ private String loadedFileName = "" private String loadedFileNamePath = "" package JMenultem menultem7 — new JMenultemO package JMenultem jMenultem'l = new JMenultemO package JMenultem about = new JMenultemO

public mainWindowClass( )

public void addReferenceVertex( String filePath. String fileName )

public void wtndOwOpened( WindowEvo-nt e )

public void windowClosing( WindowEvent e )

public void windowClosed( WindowEvent e )

public void window!conified( WindowEvent e )

public void windowDeiconified( WindowEvent e )

public void windowActivated( WindowEvent e )

public void windowDeactivated( WindowEvent e )

private void jblnitif )

private void initSizeText( )

private void initSty leText( )

private void initScaleFeildBox( )

public void jToggleButtonAddControl\/ertex_actior.Performedi ActionEvent e )

public void jToggleButtonl __actionPeiformed( ActionEvent e )

public void menultem2_actionPeiform&d( ActionEvent e )

public void menulteml_actionPeiformed( ActionEvent e >

public void menultemLoadXML_actionPerformed( ActionEvent e )

public void menultem6__actionPerformed( Act ion Event e )

public painter getjpaintei 1 ( )

private String getCurrentDii ictoi y ( )

private void showSavedDialog( String title )

private EntityGraph ConveitMultiGiaphToEntityGraph( EntityGraph egr ) private void showLoadDialog( String title )

public void menultem3__actionF'erformed( Action Event e )

public void menu!temNewDoc__actionPerfoi med( ActionEvent e ) private void clearTree( ) public void public void public void public void public void public void public void public void public void public void public void public void public void public void

menultem5_actionPeiformad( ActionEvent e ) Menul __actionPeiformed( ActionEvent e ) jButton3SaveFile_actionPerformed( ActionEvent e } jButton20penFile_actionPerformed( ActionEvent e ) jButtonNewDocument_actionPerformed( ActionEvent © ) jToggleButtonl PlayScen__actionPerformed( ActionEvent e ) scaleFeildBox_act»onPerformed( ActionEvent e ) gridColor__actionPeiformed( ActionEvent e ) jComboBox I _actionPerformed< ActionEvent e ) colorText_actionPerformedf ActionEvent e ) sizeText_actionPerformed( ActionEvent e ) menulternZ___actionPerformed( ActionEvent e } jMenultem2_actionPerformed( ActionEvent e ) jMenulterril __actionPeifoi med( ActionEvent e )

Рис. 2. Диаграмма отношений зависимости класса ClientModule

Fnc. 3. Диаграмма класса main WindowClass компонента сценария

«datatype»

тщшт

V-' v. V •• • •

<datatype» S3User

Cli@ntM$dule

'; Attributes

package IClientCoreAPI coreApi

package GraphsSeryice _oraphsService

package String COMPONENTJ4AME = "GraphsSercer"

ч-ч-^-у-

Operations

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

public GraphsSetvice qetGrgphsSenfice( ) public User geiUserf ) public IClientCoreAPI getCor&Apif ) public Object getModuleClass( ) public void setCGreAPI(; IClientCoreAPI api) public String getName{ ) public. String. getDescriptjonf ) public String gefAuihor( )

hiihlir ¡¿friniri rioiVotfcinnf" V

xi - iv

т

I

«interface»

f@ iciientMociuis

Attributes .....

rttl- r.' •t.m . U i.::

«datatype» GS JCIisniSoraAPI

«datatype» .Ш Boolean

«datatype» ¡^^oduIeType

jToolBarl - панель инструментов; jToggleBuitonl Add Vertex - кнопка добавления вершины сценария;

jToggieButtonAddControlVertex - кнопка добавления контрольной вершины сценария; koefWidth, koeffieighi - коэффициенты масштабирования экрана соответственно по горизонтали и вертикали;

width, height - ширина и высота экрана соответственно;

MenuBarl - панель главного меню;

menul - элемент панели главного меню (файл);

menu Service - элемент панели главного меню

(инструменты);

тепиЗ - элемент панели главного меню (помощь);

scrollPanei - панель представления графа со скроллингом;

treeScroll - панель списковой структуры вершин со скроллингом;

root - корень списочного дерева вершин; model - элемент списка вершин; menultem 1, menuitemSaveXMLs

memiltemLoadXML, menultem2, menu Item 3, menultem4, menultem5, menultem6,

menuItemBuildHTML. menultem?, jMenuIteml, about - элементы панелей главного меню (файл, инструменты и помощь); saveFileContent - содержание документа; jButton20penFile, jButton3SaveFiie, jButtonNewDocument, j Button 1 Play Seen - кнопки на панели инструментов;

component 1, component2, hstrutl, hstrut2, hstrut3 -горизонтальные разделители панелей; StatusBar, statusText - строки состояния программы;

j Label i, borderLayoutl, borderLayout2 - метки надписей;

scaieFeildBox - поле с числом масштаба; gridColor - поле выбора цвета сетки рабочего поля;

styleText - поле выбора стиля текста надписей; colorText - поле выборы цвета текста надписей; loadedFileName - название сценария; ioadedFileNamePath - название пути.

К функциям класса относятся: mainWindowClass - конструктор класса; addReferenceVertex - добавление ссылочной вершины;

windowOpened, windowCIosing, windowClosed, windowiconified, windowDeiconified, windowActivated, windowDeactivated - операции работы с окном;

jblnit - инициализация переменных объекта класса;

initSizeText - инициализация кегля текста; initStyleText - инициализация стиля текста; initScaleFeiidBox - инициализация масштаба рабочего поля;

jToggleButtonAddControIVertex_actionPeriormed - добавление контрольной вершины; jToggIeButtonl_aciionPerformed - добавление вершины;

menuItem2_actionPerformed, menultem l_actionPerformed, menuItemLoadXMLactionPerformed, menu Item 6_act i on Perform ed, m en u lté m 3 act i onPerform ed, men ultemN ewDoc_action Performed, menuItem5_actionPerformed5 MenulactionPerformed - обработки соответствующих элементов меню;

getjpainterl - получение компонента отображения элементов рабочего поля; getCurrentDirictory - получение текущего пути; showSavedDialog - вызов диалога сохранения сценария;

ConvertMultiGraphToEntityGraph - преобразование сценария;

showLoadDialog - вызов диалога загрузки сценария;

clearTree - вызов очистки списка элементов; jButton3SaveFile_actionPerformed, Button20penFile_actionPerformed, ButtonNewDocument_actionPerformed, jToggleButton 1 PlayScen_actionPerformed, scaleFei ldBox_actionPerformed, gridColor_actionPerformed, j ComboBox 1 _actionPerformed, colorTextactionPerformed, sizeText_actionPerformed, menuItem7_actionPerformed, jMenuItem2_actionPerformed, jMenuIteml_actionPerformed - вызовы обработчиков событий для соответствующих элементов панели.

На рис. 4 представлена диаграмма класса multiGraphsClass, содержащего структуру (атрибуты) и методы (функции) модели сценария.

К атрибутам относятся следующие элементы. Name - имя модели; idjnodel - номер модели; ActiveVertexIndex - номер активной модели; StartVertexIndex - номер стартовой (начальной) вершины;

Model - структура узла;

is Added VertexOn - признак включённого режима добавления вершины;

isAddedControlVertex - признак включённого режима добавления контрольной вершины; isLinkedVertexOn - признак включённого режима добавления дуги;

К функциям класса относится: multiGraphsClass - конструктор класса; getModel - получение структуры узла; setModel - назначение структуры узла; setAddedMode - включение режима добавления вершины (узла) сценария;

setAddedControlVertex - включение режима добавления контрольной вершины сценария; isAddedControlVertex - запрос на получение признака добавления контрольной вершины; setNotAddedMode - выключение режима добавления вершины;

isAddedMode - запрос на получение признака добавления вершины;

setLinkMode - включение режима добавления дуги;

setNotLinkMode — выключение режима добавления дуги;

isLinkMode - запрос на получение признака добавления дуги;

getVertexCount - получение числа вершин;

get Active Vertex - получение активной вершины;

setStartVertex - назначение стартовой вершины;

add Vertex - добавление вершины;

addEdge - добавление дуги;

paintVertexies - рисование вершин на рабочем

поле;

paintEdges - рисование дуг на рабочем поле; initGraph - инициализация переменных графа; setEdgeLocation - назначение координат дуги; jblnit - инициализация переменных класса; getClickedVertex - получение выбранной мышью вершины;

getClickedVertexld - получение номера выбранной мышью вершины;

getVertexByName - получение вершины по её имени;

getClickedEdge - получение выбранной мышью дуги;

setActiveVertex - назначение активной вершины; startElement - назначение надписи стартовой вершины;

endEIement - назначение надписи конечной вершины;

characters - форматирование строки; addTreeltem - добавление названия вершины в список вершин;

getVertexByld - получение вершины по её номеру.

Заключение

На UML-языке описаны классы разработки программного компонента реализации сценария на концептуальном уровне с целью использования настоящих диаграмм при программировании исходного кода и внесения изменений.

_gj multiGraphsCBass_

Attributes

public String Name = M"

public int id_model

package int ActiveVertexIndex = 0

package int StarfcVertexIndex = 0

private Model model = null

private boolean isAddedVertexOn = false

private boolean isAddedControlVertex = false

private boolean isLinkedVertexOn = false

Operations

public multiGraphsClass( mainWindowClass mWindow) public Model getModelf ) public void setModel( Model rn ) public void setAddedMode( )

public void setAddedControfVertex( boolean value )

public boolean isAddedControlVeriex( )

public void setNutAddedMode( )

public boolean isAddedMode( )

public void setUnkMode( )

public void setNotLinkMode( }

public boolean isLinkMode( )

public int getVertexCountf )

public jsimpleVertex getActiveVertex( )

public void seiStartVertex( int NewStartVertexIndex )

public void addVertex( jsimpleVertex vertex )

public void addEdge( int Vertexlndex )

public void paintVertexies( Graphics2D g )

public void paintEdgesi Graphics2D g )

public void initGraph( )-■•.-

public void setEdgeLocation( int iajvertex, int x, int y )

private void jblnit( )

public jsimpleVertex getClickedVertex( int x, int y ) public int getClickedVertexld( int x, inty ) public jsimpleVertex getVertexByName( String name ) public jEdge getClickedEdge( int x, int y )

public void set Act iveVertex( jsimpleVertex vertex, int aciive__num )

public void startElementi String elementName )

public void endElement( String elementName )

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

public void character^ char buf[0..*]t int offset, int len )

private void addTreeltem( jsimpleVertex simpleVertex. painter jpainterl. int num ) public jsimpleVertex getVertexBylaY int id ) . •

Рис. 4. Диаграмма класса muliiGraphsClass компонента сценария

БИБЛИОГРАФИЧЕСКИИ СПИСОК

1. Афанасьев, А. Н. Анализ парадигм, разработка архитектуры и компокентно-сервис-ной платформы обучения: модель предметной области в диаграмматике UML-языка / А. Н. Афанасьев, H. Н. Войт /У Вестник УлГТУ. -2011. — №4. — С. 29-40.

2. Афанасьев, к. И. Разработка компонент-но-сервисной платформы обучения: диаграммы использования и деятельности программного компонента сценария на UML-языке / А. Н. Афанасьев, H. Н. Войт // Вестник УлГТУ.

-2012.-№1.- С. 66-69.

3. Voit, N. Development of intelligent mobile

learning system of CAD // Proceedings of Internationa! Conference. Interactive Systems and Technologies: The Problem of Human-Computer Interaction. - Collection of scientific papers. -

Ulyanovsk : ULSTU, 2011. - P. 100-104. ©®@«@®©&©©©©®©@©®®®®

Афанасьев Александр Николаевич, кандидат технических наук, профессор кафедры «Вычислительная техника» УлГТУ. Войт Николай Николаевич, кандидат технических наук, доцент кафедры «Вычислительная техника» УлГТУ.

i Надоели баннеры? Вы всегда можете отключить рекламу.