=-=-=-=-=-=-=-=
План разработки
=-=-=-=-=-=-=-=
Содержание:
-=-=-=-=-=-
1. Требования к версии 1.0.
2. Список задач для версии 1.0.
3. План текущей итерации.
4. План следующей итерации
0. Приблизительные требования для внедрения в эксплуатацию.
- выход. меню, клавиша.
- панели со списком файлов. перемещение клавишами.
- коммандная строка, синхронизированая с панелями.
- поддержка локали (возможность локализации (i18n), перекодировка).
- копирование (меню, клавиша)
- удаление (меню, клавиша)
- поддержка внешнего редактора (брать из переменной EDIT{OR} ??) //
- перемещение / переименование.
- создание файла, одной клавишей (или двумя).
- создание директории.
- размеры файлов и директорий.
- выделение файлов и каталогов
- маски для выделения.
- поддержка аналога CTRL+O - полноэкранный шелл
- настраиваемый конфиг. (синхронизация с текстовым файлом реестра).
- экспорт/импорт в текстовый файл.
- возможность настройки временного интервала в реестре для переодического импорта из файла.
(желательно real time)
1. Требования к версии 1.0.
-=-=-=-=-=-=-=-=-=-=-=-=-=-
Требования к первой версии является набор приемочных тестов, или сценариев.
Такие сценарии могут быть записаны в виде набора команд - макросов для
системы очереди событий. Так же для автоматизации приемочных тестов следует
написать систему "фотографирования" содержимого панелей и сравнения с
заренее сохраненным образцом.
Тест 1. Запуск и выход.
- запуск фм.
- выход из фм.
Тест 2. Запуск внешнего приложения:
- запуск фм.
- запуск внешней программы.
- сравнение идентичности вывода запуска из фм, и вывода программы запущеной
обычным способом.
- выход из фм.
Тест 3. Просмотр директории.
- запуск фм.
- открытие панели директории с файлами.
- проверка результата??
- выход из фм.
Тест 4. Смена текущей директории.
- запуск фм.
- просмотр списка файлов и дерикторий в панели.
- смена директории
- просмотр списка файлов и дерикторий в панели.
- проверка результата??
- выход из фм.
Тест 4. Удаление директории.
- запуск фм.
- открытие панели директории с файлами.
- удаление директории.
- проверка результата.
- выход из фм.
Тест 5. Копирование директории.
- запуск фм.
- открытие в левой панели директории с директорией.
- открытие в правой панели директори для копирования.
- копирование директории.
- проверка результата.
- выход из фм.
Тест 6. Перенос директории.
- запуск фм.
- открытие в левой панели директории с директорией.
- открытие в правой панели директори для копирования.
- перенос директории.
- проверка результата.
- выход из фм.
Тест 7. Просмотр файла.
- запуск фм.
- открытие в левой панели директории с файлом.
- просмотр файла.
- проверка результата??
- выход из фм.
Тест 8. Редактирование файла.
- запуск фм.
- открытие в левой панели директории с файлом.
- Редактирование файла.
- проверка результата.
- выход из фм.
Тест 9. Создание файла.
- запуск фм.
- открытие в левой панели директории для создания в ней файла.
- Создание и редактирование файла.
- проверка результата.
- выход из фм.
Тест 10. Удаление файла.
- запуск фм.
- открытие в левой панели директории с файлом.
- удаление файла.
- проверка результата.
- выход из фм.
Тест 11. Копирование файла.
- запуск фм.
- открытие в левой панели директории с файлом.
- открытие в правой панели директори для копирования.
- копирование файла.
- проверка результата.
- выход из фм.
Тест 12. Перенос файла.
- запуск фм.
- открытие в левой панели директории с файлом.
- открытие в правой панели директори для копирования.
- перенос файла.
- проверка результата.
- выход из фм.
2. Список задач для версии 1.0.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Список задач далек от полноты и в дальнейшем будет доработан, на данный
момент более важными являются планы текущей и следующих итераций.
Общие:
- публикация CVS
libregistry:
на данный момент готова к выпуску с версией 1.0, хотя возможны
риски доработки.
libabstractwidget:
- написание интерфейсов основных виджетов
- интеграция с libregistry
- реализация основных виджетов
libeventqueue:
- написание интерфейса библиотеки
- реализация интерфейса
- интеграция с onion.
onion:
- командная строка
- меню
- файловые панели
- диалог копирования
- диалог удаления
- редактирование файлов (внешний редактор)
- просмотр файлов (внешний редактор)
3. План текущей итерации.
-=-=-=-=-=-=-=-=-=-=-=-=-
(2 units == week):
Начало второй итерации: 12 октября 2003
Окончание второй итерации: 1 ноября 2003
В конце второй итерации нужно будет добиться функциональности системы
реализующей следующий сценарий:
1) запускаем onion
2) нажимаем клавишу F10
3) NcursesKeyboardGenerator генерирует событие KeyPressed для F10
4) сообщение получает KeyMapTranslator
5) KeyMapHandler генерирует событие OnionFM::Command для exit
6) OnionFMHandler получает событие и выполняет OnionFM->exit()
7) затем OnionFMHandler бросает исключение ExitEventException для
обрабоки клиентом класса Onion::EventControl
8) main() перехватывает исключение ExitEventException и выходит
из фм.
Список необходимых задач для реализации сценария:
1) разработка класса EventController (менеджер очереди событий).
расчетное время: 1 unit
2) разработка интерфейсов EventHandler (обработчик события) и
EventGenerator (генератор событий)
расчетное время: 1 unit
3) разработать код для EventController с помощью которого можно
регестрировать и удалять из контроллера обработчики и генераторы.
расчетное время: 1 unit
4) разработать KeyMapTranslator, который будет отображать нажатие
клавиш на события для OnionFMHandler
расчетное время: 1 unit
5) добавить команду OnioFM::exit(), и исключение ExitEventException.
расчетное время: 1 unit
Итого: общее расчетное время для второй итерации - около 2,5 недель
(1 unit == 1/2 недели)
4. План следующей итерации
-=-=-=-=--=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Во время следующей итерации нужно будет приблизиться к реализации следующего
сценария действий:
1) запуск onion
2) нажимаем F10
3) появляется диалоговое окно с кнопками OK и CANCEL
4) при нажатии OK, onion выходит.
5) при нажатии CANCEL, пишет "я бы не выходил, но не вижу смысла
этого не сделать" и выходит