- •Пояснительная записка
- •Перечень условных обозначений
- •Цели и Задачи
- •Введение
- •Технико-экономическое обоснование проектируемой интеллектуальной системы
- •3.Реализация всплывающей подсказки Класс Explain представляет собой структуру, состоящую из нескольких виджетов, при взаимодействии с которыми происходит извлечение подсказок из базы знаний.
- •4.1.Планирование тестирования
- •4.2. Средства автоматизации процедуры тестирования.
- •4.3.Техника модульного тестирования.
- •4.4.Проведение юнит-тестирования
- •5.Заключение
- •6. Библиографический указатель
3.Реализация всплывающей подсказки Класс Explain представляет собой структуру, состоящую из нескольких виджетов, при взаимодействии с которыми происходит извлечение подсказок из базы знаний.
Реализация класса Explain
class Explain():
def __init__(self):
import render.mygui as mygui
self.explainPanel = render_engine.Gui.createWidgetT("Window", "Panel",
mygui.IntCoord(0, 0, 200, 200), mygui.Align(),
"Info", "")
self.explains = self.getExplains()
self.curExplain = 0;
self.text = self.explainPanel.createWidgetT("StaticText",
"ToolTipText",
mygui.IntCoord(12, 12, 0, 0),
mygui.Align())
self.text.setCaption(self.explains[0])
w = 450
h = 200
self.explainPanel.setSize(w + 24, h + 24)
self.text.setSize(w, h)
x = (render_engine.Window.width - w) / 2
y = (render_engine.Window.height - h) / 2
self.explainPanel.setPosition(x, y)
self.explainPanel.setAlpha(1.0)
self.button_prev = self.explainPanel.createWidgetT("Button", "Button", mygui.IntCoord(10, 200, 50, 20), mygui.Align())
self.button_prev.setCaption("Prev")
self.button_next = self.explainPanel.createWidgetT("Button", "Button", mygui.IntCoord(65, 200, 50, 20), mygui.Align())
self.button_next.setCaption("Next")
exiteExplain = self.explainPanel.createWidgetT("Button",
"MainPanel_OutputWindowDelButton",
mygui.IntCoord(450, 5, 20, 20),
mygui.Align(),
"")
exiteExplain.subscribeEventMouseButtonClick(self, "_onExitExplain")
self.button_prev.subscribeEventMouseButtonClick(self, '_onPrevExplain')
self.button_next.subscribeEventMouseButtonClick(self, '_onNextExplain')
self.button_prev.setEnabled(False)
self.explainPanel.subscribeEventMouseDrag(self, "_eventMouseDragPanel")
self.explainPanel.subscribeEventMouseButtonPressed(self, "_eventMouseButtonPressedPanel")
def getExplains(self):
import suit.core.sc_utils as sc_utils
import sc_core.pm as sc
session = Kernel.session()
result = []
attr = sc_utils.getElementByIdtf("next*", ["/seb/test"])
el = sc_utils.getElementByIdtf("first", ["/seb/test"])
result.append(sc_utils.cp1251ToUtf8(session.get_content_str(el)))
cur = sc_utils.searchBinPairsAttrFromNode(session, el, attr, sc.SC_POS)
while cur:
el = cur[0]
result.append(sc_utils.cp1251ToUtf8(session.get_content_str(el)))
cur = sc_utils.searchBinPairsAttrFromNode(session, el, attr, sc.SC_POS)
return result
def _eventMouseDragPanel(self, _sender, _left, _top):
dx = _left - self.x
dy = _top - self.y
pos = self.explainPanel.getPosition()
self.explainPanel.setPosition(pos.left + dx, pos.top + dy)
def _eventMouseButtonPressedPanel(self, _sender, _left, _top, _id):
"""Event on identifier pressed
"""
self.x = _left
self.y = _top
def _onExitExplain(self, widget):
render_engine.Gui.destroyWidget(self.explainPanel)
def _onPrevExplain(self, widget):
if self.curExplain == 1:
self.button_prev.setEnabled(False)
if self.curExplain == len(self.explains)-1:
self.button_next.setEnabled(True)
self.curExplain -= 1
self.text.setCaption(self.explains[self.curExplain])
def _onNextExplain(self, widget):
if self.curExplain == len(self.explains)-2:
self.button_next.setEnabled(False)
if self.curExplain == 0:
self.button_prev.setEnabled(True)
self.curExplain += 1
Пример работы программы:
Рис 3.1. Пример подсказки
Рис.3.2. Пример подсказки
Рис3.3. Пример подсказки
4.Тестирование С++( Расчетная работа)
Процесс тестирования является завершающим этапом разработки программного обеспечения. В ходе тестирования проверяются результаты реализации после каждой сборки компонента или системы. В первом случае проводятся тесты на целостность, во втором – системные тесты.
Основными задачами процесса тестирования являются следующие:
1) планирование тестов, необходимых на каждой итерации, включая
тесты на целостность и системные тесты;
2) определение предмета тестирования, тестовых примеров, процедур
тестирования, и, по возможности, реализация тестовых компонентов (компонентов, которые автоматизируют процедуру тестирования или ее часть);
3) выполнение тестов и обработка результатов каждого теста.
В случае обнаружения дефектов, компонент или сборка подвергается повторному тестированию. После этого может произойти откат к предыдущим рабочим процессам для исправления ошибок.