Ответ: RRTEI (Rose RealTime Extensibility Interface), скрипт, текст которого приводится ниже, позволяет открывать .h и .cpp файлы для капсулы, класса или протокола выбранного на RoseRT диаграмме. Для того, чтобы добиться этого необходимо:
Menu Browse
{
Separator
Option "Browse Code"
{
RoseScript $MY_SCRIPT_PATH\RoseRT_Browse_Code.ebs
}
}
Далее перезапустите RoseRT, откройте какую-либо модель, убедитесь,
что для нее выполняются требования пункта а. Выберите в меню "Browse >
Browse Code".
Установленный вами внешний редактор откроет .cpp и .h файлы.
Ниже приводится текст скрипта:
Declare Function capIsAssigned (Component As RoseRT.Component,_
CapName As String) As Boolean
Declare Function pathReturn (theModel As RoseRT.Model) As String
Declare Function getPath2Files ( theModel As RoseRT.Model,_
theComponent As RoseRT.Component ) As String#If UNIX Then
Const delim = "/"
#Else
Const delim = "\"
#End IfSub Main
Dim theModel As RoseRT.Model
Dim theItem As RoseRT.Classifier
Dim theDir As String
Dim theComponent As RoseRT.Component
Dim theEditor As String
Dim theDocH As String
Dim theDocCpp As String
Dim index As IntegerSet theModel = RoseRTApp.CurrentModel
Set theComponent = theModel.ActiveComponent'Check to see there is an active component set.
If theComponent Is Nothing Then
MsgBox "There is no Active component!", ebOKOnly, "Error"
Else
Set theItem = theModel.GetSelectedCapsules.GetAt(1)
If theItem Is Nothing Then
Set theItem = theModel.GetSelectedProtocols.GetAt(1)
End IfIf theItem Is Nothing Then
Set theItem = theModel.GetSelectedClasses.GetAt(1)
End If'Check to see there is something selected.
If theItem Is Nothing Then
MsgBox "The selected item is not a Capsule, Protocol or Class;" & _
" or nothing is selected!", ebOKOnly, "Error"
Else
'Check to see that the capsule is assigned to the active component.
If Not capIsAssigned(theComponent, theItem.Name) Then
MsgBox "The selected item is not part of the Active component!",_
ebOKOnly, "Error"
Else
theDir = getPath2Files(theModel, theComponent)
theDocH = theDir & theItem.Name & ".h"
theDocCpp = theDir & theItem.Name & ".cpp"theEditor = ReadIni$("Rational Rose RealTime", "ExternalEditor",_
RoseApp.GetRoseIniPath)'Check to see there is an external editor assigned in the options
If theEditor = "" Then
MsgBox "No external editor selected!", ebOKOnly, "Error"
Else
idH = Shell(theEditor & " " & theDocH, 1)
idCpp = Shell(theEditor & " " & theDocCpp, 1)
End If
End If
End If
End If
End Sub
'====================================================================
'This function returns true if the Capsule is assigned to the current
' active component, otherwise it returns false.
Function capIsAssigned (Component As RoseRT.Component, CapName As String)_
As Boolean
Dim index As Integer
Dim result As Boolean
Dim theCol As RoseRT.ClassifierCollection
Dim theName As Stringresult = false
Set theCol = Component.AssignedClassesFor index = 1 To theCol.Count
theName = theCol.GetAt(index).Name
If theName = CapName Then
result = true
Exit For
End If
Next indexcapIsAssigned = result
End Function 'capIsAssigned'
====================================================================
'This function returns the current model full path, excluding the name of the model.
Function pathReturn (theModel As RoseRT.Model) As String
Dim fullName As String
Dim thePath As String
Dim numStr As Integer
Dim index As Integer
Dim revIndex As IntegerfullName = theModel.GetFileName
numStr = Len(fullName)
revIndex = numStrFor index = 1 To numStr
If Mid(fullName, revIndex-1, 1) = delim Then
thePath = left$(fullName, revIndex-1)
Exit For
Else
revIndex = revIndex - 1
End If
Next indexpathReturn = thePath
End Function 'pathReturn'
====================================================================
'This function returns the full path (excluding filenames) necessary
' to find the files for opening.
Function getPath2Files ( theModel As RoseRT.Model,_
theComponent As RoseRT.Component ) As String
Dim theDir As String
Dim outDir As String
Dim codeGenDir As String
Dim length As Integer
Dim index As IntegeroutDir = theComponent.GetPropertyValue("C++ Generation", "OutputDirectory")
length = Len(outDir)For index = 1 To length
If Mid(outDir, index, 1) = "$" Then
If Mid(outDir, index + 1, 1) = "@" Then
theDir = pathReturn(theModel)
index = index + 2
End IfIf Mid(outDir, index + 1, 4) = "name" Then
theDir = theDir & theComponent.Name
Exit For
End If
Else
If Mid(outDir, index, 1) = "/" Then
theDir = theDir & delim
Else
theDir = theDir & Mid(outDir, index, 1)
End If
End If
Next index
codeGenDir = theComponent.GetPropertyValue("C++ Generation", "CodeGenDirName")
If codeGenDir = "" Then
theDir = theDir & delim & "src" & delim
Else
theDir = theDir & delim & "src" & delim & codeGenDir & delim
End IfgetPath2Files = theDir
End Function 'getPath2Files'
====================================================================
Oтвет: Это можно сделать при помощи RRTEI скрипта. Вначале создадим пункт меню,
который будет запускать данный скрипт.
(RoseRT должен быть закрыт.)
If RoseRTPackage Is Nothing Then
MsgBox "No Package Selected."
Else
Set Packages = RoseRTPackage.GetAllLogicalPackages
RoseRTApp.SelectObjectsInBrowsers Packages
RoseRTApp.SelectObjectsInBrowsers _
RoseRTModel.GetSelectedLogicalPackages
End If
End Sub
Теперь выделите на диаграмме пакет и кликните (Browse->Expand All)
Этот пакет будет подсвечен в броузере и открыт при условии, если в нем есть
еще пакеты.
Oтвет: Пример генерации кода и компиляции дан в Team Development Guide, но для Unix. Однако его можно адаптировать и под Windows.
В данном примере будет использоваться модель TrafficLights из директории %ROSERT_HOME%/Examples/Models/C++ и утилита nmake.Сгенерировать код и откомпилировать его, имея лишь модель (т.е. файл с расширением rtmdl), можно, следуя следующим шагам:
Ответ: Да, любой внешний редактор может быть запущен из RoseRT.Это дает возможность пользователям работать в более удобных текстовых редакторах, таких как MSDEV или EditPlus.
Например, следующие шаги позволяют загружать редактор MSDEV из RoseRT.
(для других редакторов аналогично):
В главном меню RoseRT выберите Tools, а в появившемся меню Options появится диалоговое окно со множеством вкладок, выберите вкладку Editor, нажмите Browse и укажите путь к файлу MSDEV.EXE (обычно "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE"). Теперь любое окно редактирования кода в RoseRT имеет в контекстном меню пункт Launch External Editor по нажатию, которого загружается редактор.
Также редактор можно загрузить по горячей клавише Ctrl+H.
Ответ: DDL скрипт создается лишь для целой схемы. И существует единственный путь ограничить генерацию DDL запросов для всех объектов схемы - создать временную схему и произвести генерацию для нее. Это можно сделать следующим образом:
Ответ: Да. Rose RealTime поддерживает кодогенерацию из UML модели на С, С++ и Java. В поддержку включается генерация Java приложений для таких виртуальных машин как KVM которая является частью Sun Microsystem's J2ME (Java 2 Micro Edition) платформы и J2SE (Java 2 Standard Edition).
Ответ: Существует два способа:
Еще одна важная особенность - возможность создания компонент внешних библиотек. Эти компоненты дают возможность создавать визуальные модели внешних библиотек и использовать их, не генерируя для них ни какого кода, так как он уже существует.
Ответ:
Ответ: При установке под ОС семейства Windows Требования к платформе: Windows NT 4.0 (SP 4, 5, или 6a), Windows 2000
Процессор: минимум Pentium 150 MHz или быстрее
Минимум 64 MB ОЗУ; но рекомендуется 128 MB RAM
Минимум 65 MB свободного дискового пространства
Минимум 800 * 600 * 256 разрешение.
Ответ: Connexis - это инструмент Rose RealTime Professional Edition, который упрощает проектирование и реализацию много-процессорных и распределённых Rose RealTime приложений. Он включает в себя мощную систему обмена информацией, которая упрощает использование UML блоков вызывая шаблоны методов написанных для много-процессорных систем. Connexis предоставляет разработчикам создавать резервные и сохраняющие работоспособность при отказе отдельных элементов сети обмена информацией Rose RealTime приложения.
Ответ: Solaris 2.5, 2.6 и 2.7, Windows NT 4.0, 2000, HPUX 10.20.
Ответ: Здесь: http://www.interface.ru/rational/prodinfo.htm.
Ответ: НЕТ, это не совсем так, Rose, при помощи специальных структурных диаграмм, описывает логику программы, но все функции описываются человеком на указанном языке программирования. Код вносится в специальные атрибуты для того или иного класса.
Ответ: Да
Ответ: Нет. Никаких конфликтов не обнаружено.
Ответ: Да. Такая работа возможна со следующими продуктами: SoDA, Requisite Pro, Purify, Quantify, PureCoverage, Synchronizer, ClearCase, RUP
Ответ: Это возможно на уровне классов (Class), протоколов (Protocols) и капсюлей (Capsule)
Ответ: Нет. Вы можете использовать только один подход в проектировании единовременно.
Ответ: Нет, никаких новых диаграмм, и уж тем более, ассоциированных с С или С++ - нет (есть только абстрактные описатели и переходы). Кодогенерация происходит на уровне моделей, в которые в качестве описания вставляются блоки текста на языке программирования (С или С++). Соответственно, код получается в результате компиляции оттранслированной модели (т.е. сначала создается модель, затем транслируется в исходный текст, который, в свою очередь, передается на компиляцию)
Ответ: Продукт Rational Rose RealTime создавался из расчета использования в системах реального времени и встраиваемых систем. Основное достоинство именно данной редакции – возможность генерации исполняемого кода. Для этого Rose RealTime использует внешний компилятор (в случае Windows NT – Visual C++, Watcom). Это значит, что Rose научилась не только генерировать шапки классов, но и смогла перейти на качественно иной уровень – уровень полноценной кодогенерации. Используя Rational Rose RealTime вы создаете модель, описываете ее, а код (исходники и исполняемый файл) продукт делает автоматически.
Ответ: Продукт Rational Rose RealTime создавался из расчета использования в системах реального времени и встраиваемых систем. Основное достоинство именно данной редакции – возможность генерации исполняемого кода. Для этого Rose RealTime использует внешний компилятор (в случае Windows NT – Visual C++). Это значит, что Rose научилась не только генерировать шапки классов, но и смогла перейти на качественно иной уровень – уровень полноценной кодогенерации. Используя Rational Rose RealTime, Вы создаете модель, описываете ее, а код (исходники и исполняемый файл) Rose RealTime делает автоматически.
Ответ: Нет, никаких новых диаграмм, и уж тем более, ассоциированных с С или С++, нет (есть только абстрактные описатели и переходы). Кодогенерация происходит на уровне моделей, в которые в качестве описания вставляются блоки текста на языке программирования (С или С++). Соответственно, код получается в результате компиляции оттранслированной модели (т.е. сначала создается модель, затем транслируется в исходный текст, который, в свою очередь, передается на компиляцию).
Ответ: Нет. Вы можете использовать только один подход в проектировании единовременно.
Ответ: Это возможно на уровне классов (Class), протоколов (Protocols) и капсулей (Capsule)
Ответ: Да. Такая работа возможна со следующими продуктами: SoDA, Requisite Pro, Purify, Quantify, PureCoverage, Synchronizer, ClearCase, RUP
Ответ: Нет. Никаких конфликтов не обнаружено.
Ответ: Да
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|