1.1 Тестовое задание

AURUS
Тестовое задание
Version: 1.0
Содержание
1. Обзор. 3
2. Требования к исходному коду. 3
3. Комплект поставки. 3
4. Постановка задачи. 3
5. Требования к реализации. 4
6. Требования к окружению.. 4
7. Сроки. 4
Тестовое задание
1.2. Обзор
Целью тестового задания является оценка уровня подготовки кандидата, умение разрабатывать приложения с использованием ООП, и создавать качественный программный код. Компания гарантирует, что полученный в результате разработки код будет использован исключительно в целях оценки кандидата, и не будет включен ни в один из разрабатываемых Компанией продуктов.
Номер задачи | Ключевые слова | Краткое описание |
03 | Java Core (IO, Collections, Threads), Swing, OOP. | Создание простого справочника в виде desktop-приложения. |
3. Требования к исходному коду
Код должен соответствовать Java Naming Conventions (http:///docs/codeconv/html/CodeConvTOC. doc. html); Классы, методы и поля должны иметь Javadoc-комментарии (на русском или английском языке, по выбору исполнителя тестового задания); Имена классов, методов, переменных должны быть на английском языке; Приложение должно быть устойчиво к ошибкам пользователя и выдавать понятные и информативные сообщения об ошибках; Приложение должно поддерживать протоколирование основных событий, отладочных событий и сообщений об ошибках; Разрешены любые действия, кроме явно запрещенных.4. Комплект поставки
Выполненное тестовое задание должно содержать следующие артефакты:
1. Исходный код на языке Java;
2. Все необходимые для работы системы ресурсы (конфигурационные файлы, сторонние библиотеки).
3. Набор тестов, доказывающий работоспособность системы.
4. Инструкцию по установке и использованию.
5. Постановка задачи
Необходимо создать телефонный справочник. Каждый абонент в справочнике идентифицируется уникальным значением пары атрибутов: ФИО, домашний адрес. Для каждого абонента система должна позволять указать несколько телефонных номеров: домашний, рабочий, мобильный и т. п. Набор типов номеров в системе должен быть расширяемым с помощью пользовательского интерфейса. Система должна хранить дату создания записи об абоненте в справочнике.
Хранение данных должно быть реализовано в файлах. Структура хранения данных определяется исполнителем тестового задания.
После запуска приложения должна отображаться таблица абонентов со следующими полями:
· ФИО;
· Домашний адрес;
· Дата создания записи.
В таблице должна быть реализована сортировка по любому столбцу в прямом или обратном порядке и функция поиска абонента по полям: ФИО, адрес, телефон. Поиск по ФИО и адресу должен выполняться без учёта регистра, поиск по телефону – для любого типа телефонного номера абонента.
Должна быть предусмотрена функциональность создания/редактирования записи об абоненте, диалоговое окно с возможностью указания: ФИО, адреса, телефонных номеров. Кроме того, должна быть предусмотрена функциональность удаления выбранных записей.
Кроме того, система должна предусматривать возможность добавления и редактирования типов телефонных номеров.
Все действия пользователей системы, как-то: запуск/завершение приложения, сортировка, поиск, добавление/редактирование/удаление абонентов должны логироваться системой в текстовый файл. В этот же файл логируются все исключительные ситуации, возникающие при работе системы.
6. Требования к реализации
Приложение должно иметь архитектуру с чётким разделением уровней: работа с данными и представление данных. Реализованное API по выборке, сохранению и работе с данными должно позволять легко переиспользовать его в другой системе, например в Web-приложении.
Реализованная абстракция по работе с данными должна позволять в будущем легко реализовать и использовать другое хранилище данных, нежели файлы.
Система должна корректно обрабатывать все ошибочные случаи в работе, например отсутствие необходимых файлов или невалидные значения, введенные пользователем.
7. Требования к окружению
Система должна разрабатываться как desktop приложение с использованием Swing компонент. Допустимо использование JDK 1.4.1 и выше.
Допускается использование любых сторонних некоммерческих библиотек, если это необходимо.
8. Сроки
На выполнение тестового задания дается одна календарная неделя.
Основные порталы (построено редакторами)
