Цели и задачи курса и практикума
Система взаимодействия команд
Краткое описание
Руководство фирмы "Effectiveness" пришло к выводу, что производительность труда ее сотрудников не достаточно полно соответствует громкому имени компании. В результате проведенных исследований была выявлена основная причина - недостаточная эффективность обмена информацией между сотрудниками. В качестве решения руководство видит внедрение единого средства электронной коммуникации. Отделу разработчиков компании поручено создать систему, включающую в себя почтовый инструмент и инструмент для обмена мгновенными сообщениями.
Полная постановка задачи
Требуется реализовать комплексную систему обмена сообщениями для небольшого количества пользователей.
Система должна удовлетворять следующим требованиям:
- возможность отправки и получения почты;
- возможность чата с пользователями, находящимися в сети.
Объекты системы: пользователь, сервер, письмо, список контактов, быстрое сообщение, почтовый клиент, клиент для чата.
Пользователь: ФИО, логин, пароль.
Сервер: представляет собой хранилище почты и маршрутизатор сообщений. Сервер должен разграничивать доступ к информации различных пользователей. Каждый пользователь может получить только свою почту. Пользователь может присоединяться к чатам и участвовать в обсуждении, но только в том случае, если он входит в список тех, кому разрешен доступ.
Письмо: для написания писем предполагается разработка простейшего текстового редактора. Внутренний формат - некоторая динамическая структура данных. При сохранении и отправке должен генерироваться HTML-документ. При приеме HTML-документ должен разбираться во внутреннюю структуру. Предполагается ограниченный набор тегов и свойств тегов.
Быстрое сообщение: обычное текстовое сообщение, для генерации которого используется редактор письма. Отличие от почты в том, что сообщение видят все, находящиеся в чате, сразу после отправки.
Список контактов: список логинов пользователей системы.
Почтовый клиент: включает в себя редактор почты, средства просмотра и отправки почты лицам из списка контактов.
Клиент для чата: содержит список доступных чатов. Предоставляет возможность создания чатов и открытие чата для людей из списка контактов.
Учет работы персонала
Краткое описание
В компании "Justice" были проведены исследования, в результате которых компания поняла, что теряет достаточно много средств из-за не всегда равномерного распределения зарплаты. Кроме денежных потерь есть и недовольство персонала, которое вызвано тем, что те, кто много работают, и те, кто мало, получают одинаковые зарплаты.
Компания решила изменить данную ситуацию. Вашей компании предложили выработать решение описанной проблемы.
Полная постановка задачи
Нужно реализовать систему учета работы персонала.
Объекты системы: датчики, хранилища данных, менеджер, работник, система начисления зарплаты, система построения отчетов.
Датчики: считается, что фирма состоит из нескольких филиалов и в каждом филиале есть отдельные наборы датчиков. Каждый набор датчиков сохраняет информацию в свое хранилище данных. Основные данные, с которыми работает система:
- Кто и во сколько пришел.
- Кто и во сколько ушел.
- Кто когда отбыл в командировку.
- Кто и когда вернулся из командировки.
Хранилище данных: является распределенным. Предназначение - вести журнал данных, поступающих с датчиков. Доступ к хранилищу могут получать только работники и менеджеры.
В системе должны существовать две роли: работник и менеджер. При этом менеджер также может быть и работником.
Работник: ФИО, логин, пароль, табельный номер, счет для начисления зарплаты. При каждом посещении филиала записывается время прибытия отбытия и, возможно, работа, которую он выполнял. Работники могут просмотреть, сколько и когда они работали, и какая зарплата их ожидает.
Менеджер: контролирующая должность. Содержит ФИО, логин, пароль, табельный номер, счет для начисления зарплаты.
Выполняет следующие функции:
- Построение и просмотр отчетности по работникам (через систему построения отчетов ).
- Премирование выделившихся работников.
- Прием и увольнение персонала.
- Поднятие и понижение разрядов и определение квалификационной группы.
- Установление индексов зарплат для работников.
- Контроль за системой начисления зарплаты.
Система начисления зарплаты: для автоматизации необходимо два раза в месяц делать начисление зарплаты работнику. При расчете зарплаты в системе часы, проведенные работником на месте, умножаются на индекс. К полученной сумме прибавляются премиальные и из получившейся суммы вычитаются налоги. Итоговая сумма переводится на счет.
Система бронирования билетов для авиакомпании
Краткое описание
На рынок вышла новая авиакомпания "GlobalAvia". Менеджеры компании решили заказать у вашей фирмы разработку системы бронирования билетов. При заказе фирма поставила ряд условий, которые обязательно должны быть выполнены. В первой версии системы они хотят видеть две части. В первой требуется заносить необходимую информацию. Со второй частью будут работать покупатели билетов.
При формулировании требований менеджеры упомянули, что рейсы у них спланированы так, что до пункта назначения можно долететь с пересадками за разное время и с разным комфортом. Одно из требований заключалось в том, что бы система помогала покупать билеты в зависимости от требований пользователя.
Полная постановка задачи
Задача является больше математической. Система должна уметь решать трехкритериальную задачу поиска кратчайших путей на графах. Критерии:
- Время.
- Цена.
- Комфорт.
Система является распределенной, поскольку в каждом аэропорту своя база направлений полетов самолетов, соответственно, знают о рейсе только аэропорты-соседи. Одно и требований, которое выдвигает компания, - не делать базу централизованной ввиду дороговизны оборудования, которое в противном случае пришлось бы приобрести.
Объекты системы: распределенное хранилище рейсов, покупатель билетов.
Распределенное хранилище рейсов: название рейсов, номера и тип самолетов, класс самолета по комфорту и стоимость билетов.
Покупатель: ФИО, сумма. Покупатель на сайте задает параметры, связанные с суммой, которую он хочет потратить, комфорт и время. Система должна подобрать оптимальные маршруты. При отсутствии прямых маршрутов система должна попробовать найти маршруты с пересадками. Если таковых не находится, система должна дать в ответе причину, по которой не получается подобрать маршрут. Среди причин:
- Отсутствие рейсов в требуемом направлении даже с пересадками.
- Сумма слишком мала.
- Комфорт завышен.
В ответ, пользователь должен иметь возможность поменять параметры с учетом предыстории.
Система управления проектами
Краткое постановка
В компании "SuperSoft" возникла потребность автоматизировать управление проектами. В силу того, что компания существует на рынке разработки ПО недавно и не обладает достаточным количеством свободных финансовых средств, было принято решение не покупать системы управления проектами типа Microsoft Project (стоимость коробочной версии от $600), а разработать собственное простое решение.
Система управления проектами должна иметь единую базу проектов, подключаться к которой могут менеджеры и исполнители. Содержимое базы составляет информация о ведущихся в компании проектах.
Полная постановка задачи
Система управления проектами должна быть рассчитана на небольшие команды. В каждом проекте выделяются только две роли: менеджер и исполнитель.
Менеджер может управлять несколькими проектами, исполнитель участвует только в одном проекте.
Менеджер управляет проектом, то есть с точки зрения системы: формирует список задач проекта, распределяет задачи по исполнителям (ограничение: нет задач, предназначенных более чем одному исполнителю), формирует план-график выполнения проекта (задает сроки выполнения задач), выставляет состояние задач (не начата, выполняется, завершена, отложена).
Исполнитель получает от менеджера задачи, на основании которых для него формируется "ToDo-List". Список может пополняться по ходу проекта, как менеджером, так и самим исполнителем.
Объекты системы: менеджер, исполнитель, задача, проект, "ToDo-List".
Менеджер: ФИО, проект(ы).
Исполнитель: ФИО, проект, "ToDo-List".
Задача: имя, формулировка, срок начала, срок окончания (выставленный менеджером), срок фактического окончания (когда исполнитель "сдал" задачу менеджеру, а тот ее "принял"), состояние (не начата, выполняется, завершена, отложена), причина изменения срока окончания/откладывания.
Проект: имя, менеджер, исполнители, задачи.
"ToDo-List": список задач для исполнителя. Часть списка формируется автоматически, доступна только для чтения. Часть формируется исполнителем "для себя", доступна для редактирования.
Сроки для задач могут задаваться с точностью до часов (начало: 21 июля 14.00, окончание: 21 июля 16.00, фактического окончание: 21 июля 17 часов, причина изменения сроков: учения по пожарной безопасности).
Хранение всех данных централизовано. Система имеет серверную часть (хранение информации и интерфейс для администрирования) и клиентскую часть, с которой работают менеджеры и исполнители.
По данным каждого проекта в системе должна быть возможность поиска.
Система контроля и распределения ресурсов
Краткое описание
Организация "Presentation for you" профессионально занимается подготовкой и проведением презентаций для фирм. В фирме за последние несколько кварталов сильно увеличился объем заказов. В результате постоянно стали наблюдаться ситуации, когда презентации задерживались из-за нехватки каких-либо ресурсов (аудиторий, проекторов, досок).
В фирме были проведены исследования и было установлено, что ситуация сильно улучшится, если у фирмы появится электронная система распределения ресурсов, а не бумажная как это было раньше.
Полная постановка задачи
Предполагается, что система будет функционировать на сервере, к ней будут подключаться клиенты для резервирования ресурсов на определенное время.
Объекты системы: сервер, ресурс, расписание использования ресурса, пользователь, администратор, менеджер ресурсов, клиент.
Сервер: Обладает следующей функциональностью:
- Хранит информацию обо всех ресурсах и пользователях.
- Позволяет управлять пользовательскими записями:
- Добавлять.
- Удалять.
- Назначать уровень доступа.
- Разделяет уровень доступа для различных пользователей на основе ролевых кластеров:
- Администратор.
- Менеджер.
- Пользователь.
- Выдает информацию о ресурсах в соответствии с уровнем доступа.
Ресурс: название, серийный номер (номер аудитории, номер доски), расписание использования ресурса.
Расписание использования ресурсов: порождается для каждого ресурса. Включается записи о времени занятости и цели использования.
Пользователь: ФИО, логин, пароль, информация о дополнительных ролях.
Дополнительных ролей две:
- Администратор.
- Менеджер ресурсов.
У пользователя должны быть следующие функции:
- Запрос на занятие ресурса на определенное время с указанной целью.
- Различные виды просмотров занятости ресурсов.
- Конкретного ресурса.
- Группы ресурсов.
Администратор: Выполняет функции менеджера пользователей. Не может управлять ресурсами.
Менеджер ресурсов: Основные функции:
- Добавление и удаление ресурсов.
- Подтверждение или отклонение запросов на занятие ресурсов.
Клиент: Должен быть реализован в виде web-сайта и Windows приложения.