20.8. Пример реализации прецедента на этапе проектирования 467
Рис. 20.21. Проектная модель классов
+__init__(parent : wxPySimpleApp, id : String, title : String, size : Point, style : int)
#makeToolBar()
#makeMenu()
#connectEvents()
#enableButtonsAndMenus( enabled : Boolean )
#updateView()
#update( event : wxEvent)
#newActor( event : wxEvent)
#newUseCase( event : wxEvent)
#newUseCaseFromSchema( schemaName : String )
#newAlternativeFlow( event : wxEvent)
#newExtensionUseCase( event : wxEvent)
#generateXML( event : wxEvent)
#itemSelected( event : wxEvent)
#openUseCaseModel( event : wxEvent)
#save( event : wxEvent)
#setFont( event : wxEvent)
#getNewName( message : String, caption : String ) : String
#autoNumber()
#autoNumberSelected( event : wxEvent)
#syntaxHilight()
#hilightSelected( event : wxEvent)
#findAIIAndHilight( regularExpression : String, hilight : wxTextAttr)
#saveFile()
#loadFile()
UseCaseEditor
!hilights : Dictionary
!actorList : wxListCtrl
!useCaseList : wxListCtrl
!textControl : wxTextCtrl
wxFrame
{dictionary}
!actors1
!fileName : String
!buffer : String[]
!root : String
SUMRToXMLRenderer
+render( fileName : String )
+saveAs( fileName : String )
+save()
+printOut()
!clean( line : String )
+autoNumber( lines : String[] )
+autoDeNumber( lines : String[] )
!removeNumbers( line : String )
!getlndent( line : String )
+__init__()
AutoNumber
!includedUseCases : String[]
!extensionPoints : String[]
SUMRUseCaseParser
+__init__( fileName : String )
+getName(): String
+getlD(): String
+autoNumber()
+deNumber()
!useCasePath : String
!useCaseFileNames : Dictionary
!actorFileNames : Dictionary
!actorExtension : String = ".ac"
!useCaseExtension : String = ".uc"
UseCaseModel
+__init__()
+setUseCasePath( useCasePath : String )
+load()
+getModelElement( name : String ) : SUMRUseCaseParser
+getUseCaseNames() : String[]
+getUseCaseFileName( name : String ) : String
+getNewUseCaseFileName( name : String ) : String
+getUseCase( name : String ) : SUMRUseCaseParser
+newUseCaseFromSchema( schemaName : String,
useCaseName : String ) : SUMRUseCaseParser
+useCaseNameExists( name : String ) : Boolean
+getActorNames() : String[]
+getActorFileName( name : String ) : String
+getNewActorFileName( name : String ) : String
+getActor( name : String ) : SUMRUseCaseParser
+newActorFromSchema( schemaName : String,
actorName : String ) : SUMRUseCaseParser
+namelsValid( name : String ) : Boolean
+nameExists( name : String ) : Boolean
+actorNameExists( name : String ) : Boolean
1
!useCaseModel 1
1
+__init__(fileName : String )
+refresh()
+saveAs( fileName : String )
+save()
+search( pattern : String )
+getTagMultiplicity( tagName : String )
+isTag() : Boolean
SUMRFileParser
!fileName : String
!filePath : String
!lines : String[]
!tags : String[]
!elements : Dictionary
!schemaName : String
!legalTags : Dictionary
!illegalTags : Dictionary
+__init__( fileName : String )
+getMissingTags() : String[]
+getExtraTags() : String[]
SUMRValidRleParser
0..*
{dictionary}
!useCases
0..*
0..1
!schema 1
Уровень
GUI
Уровень
приложе!
ния