Пример технического задания на разработку Андроид-приложения
Создать подобное ТЗ можно с помощью приложения.
1. Общее описание примера-приложения:
Лаунчер (launcher) — оболочка операционной системы Android, запускающийся кнопкой ДОМОЙ (Home). Кнопка НАЗАД — игнорируется. Выхода из приложения (остановки, выгрузки) внутри кода — не предусмотрено, возможно только сторонними средствами
1.1. Только горизонтальная ориентация экрана
1.2. Работа на Android v.2.3+
1.3. Графика будет разработана дизайнером заказчика. Нужна будет тщательная отладка внешнего вида приложения.
2. Настройки:
2.1. При первом старте — диалог настроек
2.1.1. Каталоги на FTP сервере:
2.1.1.1. Пакеты — скачивание .ZIP файлов или файла update.apk (например, rootfolder/routes)
2.1.1.2. Статистика использования устройства: загрузка в каталог .TXT файлов c информацией (например, rootfolder/stat)
2.1.2. Имя этого устройства (планшета), принадлежность клиенту, имя пользователя и т.п.
2.1.3. Для сведения дан уникальный ID этого устройства, который должен быть зарегистрирован на FTP для легальной работы
2.1.4. Изменить настройки:
2.1.4.1. Удалить лаунчер и поставить снова
2.1.4.2. Или УДАЛИТЬ ВСЕ ДАННЫЕ в системном диалоге свойств приложения
3. Внешний вид и реакция на нажатия экрана:
3.1. Фоновая картинка
3.1.1. Короткий тап:
3.1.1.1. Скрытие лога
3.1.1.2. Запуск синхронизации с FTP-сервером
3.2. Зеленая кнопка слева-внизу
3.2.1. Короткий тап:
3.2.1.1. Запуск навигационной программы YYYY, если система в легальном статусе
3.2.1.2. Вывод сообщения о нелегальности системы в данный момент, если статус нелегален. Запуск YYYY запрещен.
3.3. Правый верхний угол экрана (невидимая кнопка)
3.3.1. Длинный тап: открытие лога обмена с FTP сервером
4. Синхронизация с FTP-сервером:
4.1. Логин и чтение листинга каталога с файлами пакетов (routes)
4.1.1. Пароль FTP-каунта хранится зашифрованным
4.1.2. При ошибке чтения листинга — отправка email на адрес www@ssss.com с ящика rrrrr@fff.com
4.1.2.1. Пароль SMTP-экаунта хранится зашифрованным
4.2. Загрузка файлов .ZIP пакетов (и обновления update.apk) из каталога, если присутствуют и если момент времени их записи на сервер — больше времени, сохраненного в предыдущий сеанс связи с сервером
4.2.1. Если обнаружено обновление приложения update.apk c бОльшим номером версии:
4.2.1.1. Остановка работы с выводом сообщения о необходимости перезагрузить устройство
4.2.1.2. Запуск обновления его на установку
4.3. Чтение листинга каталога security
4.3.1. Загрузка файла security/registered.txt, в котором находится список легальных ID устройств
4.3.2. Проверка присутствия ID устройства в списке, при отсутствии — блокировка системы
4.4. По окончании синхронизации файлов пакетов — вывод на весь экран диалог ввода номера пакета, с подсказкой в виде списка скачанных пакетов:
4.4.1. Отказаться от ввода — нельзя, при ошибочном вводе — перезапрос номера
4.4.2. После ввода номера пользователем:
4.4.2.1. Распаковка пакета в каталог маршрутов YYYY (с удалением всего прочего в этом каталоге)
4.4.2.2. Показ фона и кнопки запуска YYYY вручную пользователем
5. Работа с навигатором YYYY
5.1. Запуск зеленой кнопкой слева-внизу
5.2. Фиксация времени начала работы
5.3. Фиксация номера пакета, скопированного для работы
5.4. При завершении YYYY и возврате в лаунчер — фиксация времени окончания работы с YYYY
5.5. Сохранение этой статистики в памяти и в файл
5.6. При наличии Интернет-соединения — отправка этих данных в файле на FTP в каталог stat
5.7. Новый запрос номера пакета и ожидание ввода
6. Фоновая работа:
6.1. При пропадании Интернет-соединения — всплывающее сообщение об этом
6.2. При появлении Интернет-соединения:
6.2.1. Отправка сохраненной статистики использования пакетов в общем файле с суффиксом saved.txt в каталог stat
6.2.2. Запуск нового цикла синхронизации c FTP-сервером
6.3. Каждые 24 часа — принудительная попытка синхронизации c FTP-сервером:
6.3.1. При неудаче — увеличение счетчика неудач
6.3.2. Если синхронизация прошла — счетчик сбрасывается
6.3.3. При достижении 10 неудач (суток) — предупреждение пользователя, что нужна синхронизация
6.3.4. При достижении 60 суток без синхронизации — блокировка системы
6.3.5. Каждые 10 секунд после старта — проверка наличия отладки по USB (через которое может быть нелегальный доступ к файлам устройства)
6.3.5.1. При наличии включенной отладки — блокировка системы
6.3.5.2. Если отладка отключена — то после касания фона, т.е. ручной синхронизации с FTP — блокировка снимается.
7. Блокировка системы:
7.1. Удаление файлов:
7.1.1. Пакетов скачанных с FTP
7.1.2. Распакованных маршрутов пакета в каталоге маршрутов YYYY
7.1.3. Блокировка запуска YYYY зеленой кнопкой
7.1.4. Вывод сообщения о нелегальности работы и просьбой обращаться к Администратору.
7.1.5. Принудительная синхронизация с FTP-сервером (для повторной проверки легальности, сброса счетчика неудач) — доступна при тапе экрана.
8. Общая защита системы производится с помощью приложения-киоска SureLock, запрещающего доступ к другим частям устройства, включая USB-интерфейс.