Введение 4
Постановка задачи и её актуальность 6
Сбор требований 8
Систематизация и анализ требований 11
Систематизация требований - 1 этап 11
Первичные требования 11
Определяющие положения: 11
Подробности: 11
Вторичные требования 12
Систематизация требований - 2 этап 13
Первичные требования 13
Определяющие положения: 13
Подробности: 13
Возможные улучшения 15
Требования - финальная версия 15
1. API к информации, хранимой в системе 15
2. Информация, хранимая в системе 15
3. Пользователи системы и их возможности. 16
4. Полномочия пользователей. 16
5. Администраторы системы и их возможности. 16
Требования в Use-Cases 17
Выбор технологий 19
Архитектура 21
Архитектура представления данных 21
Разделение интерфейсов. Представления 23
Архитектура шаблонов 24
Менеджмент-команды 24
Использование дополнительных библиотек 25
Возникшие проблемы и их решения 26
Неявные требования 26
django-w2ui 26
enum 26
Первый пользователь системы 27
Решение с точки зрения пользователя, администратора, иных систем 28
Интерфейс пользователя 28
Интерфейс администратора 32
Интерфейс для внешних сервисов 33
Перспективы развития ServiceForServices 34
Заключение 35
Список использованных источников 36
Приложение 1. Листинг исходного кода
В любой относительно большой организации рано или поздно поднимается вопрос централизованного управления учетными записями сотрудников. Этот вопрос является важным как с точки зрения удобства - сотрудникам сложнее потерять входные данные, легче ориентироваться и вносить изменения, так и, что более важно, с точки зрения безопасности, поскольку наглядность и организованность данных позволяет более качественно управлять ими и контролировать доступы. Поэтому в различных компаниях регулярно возникает задача приобретения и внедрения такой системы в электронную инфраструктуру организации. Эта задача решается организациями по-разному: покупается и адаптируется готовая система, или разрабатывается собственная, в зависимости от существующей инфраструктуры, структуры и масштабов организации, стоимости подходящих систем и необходимого функционала.
В этой работе ставится задача разработать основу подобной системы управления учетными записями сотрудников, а именно - веб-сервис, хранящий в себе информацию о сотрудниках организации, об их учетных записях в различных программных системах и об их текущем статусе, а также предоставляющий информацию об этом статусе посредством API. Информация о статусе сотрудника должна показывать, имеет ли он в данный момент право входа в системы. Смена этого статуса должна позволять блокировать его учетные записи временно или окончательно. Поскольку делать это по часам неудобно пользователю, должна быть возможность заранее запланировать изменения.
В работе приводится обоснование актуальности решения приведенной задачи, а именно приводится её рассмотрение в контексте существующих программных систем, выявляются несоответствия существующих решений тем или иным аспектам постановки задачи или требованиям. В сравнении рассматриваются такие популярные в России системы, как Avanpost IDM, КУБ, Solar inRights и 1IDM, и показывается, что их функционал слишком широк для поставленной задачи, и их использование для её решения не является эффективным ни с точки зрения производительности и удобства использования, ни с финансовой точки зрения. Это подтверждает, что задача является актуальной, имеет некоторую новизну и перспективы использования.
Далее показывается разработка программной системы: анализ требований, их описание в виде прецедентов, выбор технологий для реализации решения, его архитектура, использование дополнительных библиотек, возникшие в процессе разработки проблемы и способы их решения. Приводится описание результата разработки и перспективы развития системы.
В результате работы над проектом была разработана программная система, которая хранит данные о сотрудниках организации, их учетных записях в различных сервисах, и информацию о текущих их статусах; позволяет работать с этой информацией пользователю; имеет планировщик изменений статусов с последующим их применением; ограничивает пользователя системой прав; имеет интерфейс администратора для управления правами пользователей и работы с системными сущностями; имеет внешний API для предоставления информации внешним сервисам и использует его для ограничения доступа собственных пользователей.
Дополнительно к системе разработаны руководство по установке, руководство пользователя и руководство администратора.
Программная система готова к использованию и имеет перспективы развития, как в области повышения удобства использования, так и в области расширения системы новым функционалом.