Project

General

Profile

Структура проекта Retrascope » History » Version 4

Sergey Smolov, 06/18/2014 06:56 PM

1 1 Sergey Smolov
h1. Project Structure
2
3
retrascope - базовый пакет
4
5 2 Sergey Smolov
В корне пакета помещен "пускач" *Retrascope* - исполняемый класс проекта.
6
Это единственный класс в данном пакете и его подпакетах, имеющий функцию main.
7 4 Sergey Smolov
8
Существует соглашение по размещению JUnit-тестов. Тест должен быть размещен в том же пакете, что и проверяемый класс, но в папке test/java. 
9
10
Например, если тест проверяет корректность работы класса, находящегося в файле @retrascope/src/main/java/ru/ispras/retrascope/basis/MyClass.java@,
11
 то тест должен быть размещен в файле @retrascope/test/java/ru/ispras/retrascope/basis/MyClassTestCase.java@.
12 1 Sergey Smolov
13
Пакет retrascope содержит следующие пакеты:
14
15 2 Sergey Smolov
1) *basis* - содержит базовые сущности для всего проекта. Предполагается, что эти сущности могут использоваться в классах, находящихся в пакетах того же уровня, что и basis, а также в их подпакетах любой вложенности.
16 1 Sergey Smolov
17 2 Sergey Smolov
2) *model* - содержит внутренние представления моделей исходного кода. Замечу, что сущности из пакета model.basis могут использоваться любыми классами, находящимися во всех подпакетах пакета model
18 1 Sergey Smolov
19 2 Sergey Smolov
3) *engine* - содержит инструменты, работающие с моделями из пакета model. Например, любой инструмент, работающий с моделью из пакета model.efsm, должен быть реализован в пакете engine.efsm.
20 1 Sergey Smolov
21 2 Sergey Smolov
4) *parser* - содержит инструменты, работающие с самим исходным кодом (т.е. с текстовыми файлами HDL-описаний).
22 1 Sergey Smolov
23 2 Sergey Smolov
5) *testbench* - содержит элементы представления тестового окружения
24 1 Sergey Smolov
25 2 Sergey Smolov
6) *util* - содержит разные классы с "полезными" методами. В будущем, возможно, этот пакет будет уничтожен, а его классы - распределены по более подходящим пакетам.