Система управления проектами - набор инструментов, методов

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ ВПО САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
МЕЖДУНАРОДНЫЙ ФАКУЛЬТЕТ ПРИКЛАДНЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Лабораторная работа №1
по курсу «Современные технологии
объектно-ориентированного программирования»
«Анализ предметной области, построение UML-диаграмм»
Выполнили:
Проверил:
Вертаков И. И.,
0804266
Сотенко А.А.,
0804348
группа ИСТ-41
ассистент каф. ПИТ
Верескун Д. М.
Подпись:
Дата: _________
Саратов, 2011
Цель работы: начальное проектирование информационной системы управления
проектами, в частности - анализ предметной области и построение модели разрабатываемой
системы с использованием языка UML.
Анализ предметной области
Анализ вариантов использования
Система управления проектами - набор инструментов, методов, методологий, ресурсов и
процедур, используемых для управления проектом. Она может быть как формальной, так и
неформальной и помогает менеджеру проекта эффективно завершить проект. Система
управления проектами - это ряд процессов и связанных с ними функций контроля,
объединенных в единую целенаправленную структуру.
В общем случае, применение системы управления проектами позволяет:
1. Создавать, внедрять и корректировать план работы по проекту
2. Эффективно распределять материальные и человеческие ресурсы, необходимые
для реализации проекта
3. Контролировать основные показатели темпов и качества выполнения проекта
4. Добиваться повышения эффективности производства
5. Устанавливать наличие взаимосвязей в работе различных проектов
6. Учитывать достоинства и недостатки выполненной работы при планировании
нового проекта
Разрабатываемая система хранит информацию о персонале компании, о выполняемых ею
проектах, производит учет задач внутри компании, осуществляет поддержку в планировании
работ. Данная система предназначена как только для компаний, выполняющих работу на заказ,
так и для сопровождения деятельности внутри организации.
В ходе анализа предметной области были выделены следующие действующие лица:
●
Администратор (Administrator), осуществляющий управление объектами
Заказчиков и Проектов, включает в себя все варианты использования Работника (Employee);
●
Начальник (сотрудник) отдела кадров (HR Manager), который следит за
изменением количества людских ресурсов;
●
Менеджер проекта (Project Manager), который осуществляет контроль за
выполнением вверенного ему проекта.
●
Работник (Employee), выполняющий закрепленные за ним задания и поручения;
●
Заказчик (Customer), представляющий собой лицо, которое сделало заказ на
выполнение того или иного проекта.
Были выделены следующие варианты использования:
●
Управление проектами (Control Projects): создание нового, редактирование
проекта, включая смену его менеджера, и удаление (Администратор (Administrator));
●
Управление заказчиками (Control Customers): добавление, просмотр и
редактирование информации о заказчике проекта (Администратор (Administrator));
2
●
Управление работниками (Control Employees):добавление нового сотрудника,
редактирование информации о нем, а также его удаление (Начальник (сотрудник) отдела
кадров (HR Manager));
●
Редактирование информации о себе (сотруднике) (Работник (Employee));
●
Просмотр и “выполнение” (смена статуса задания на “выполнено”и “начато”)
своих заданий (Работник (Employee));
●
Управление заданиями на проект: создание нового задания, его редактирование,
включая установку deadline (крайнего срока выполнения) и смену статуса, назначение задания
работнику, просмотр списка заданий на проект и отображение статистики по ним(Менеджер
проекта (Project Manager));
●
Просмотр информации о заказанном/выполняемом проекте (Заказчик
(Customer)/Менеджер проекта (Project Manager));
●
Редактирование информации о себе (заказчике), включая изменения своего списка
контактов (Заказчик (Customer)).
3
Диаграмма вариантов использования
uc Short Use Cases
Edit Ow n Customer
Info
(from Primary Use Cases)
Customer
View Specified
Proj ect Info
(from Actors)
(from Primary Use Cases)
Control Specified
Proj ect Tasks
Proj ect Manager
(from Actors)
(from Primary Use Cases)
Edit Ow n Employee
Info
(from Primary Use Cases)
Employee
(from Actors)
View Ow n Employee
Tasks
(from Primary Use Cases)
Complete Ow n
Employee Tasks
(from Primary Use Cases)
Control Employees
HR Manager
(from Actors)
(from Primary Use Cases)
Control Customers
(from Primary Use Cases)
Administrator
(from Actors)
Control Proj ects
(from Primary Use Cases)
4
Анализ сущностей системы
Для проектирования информационной системы были выделен класс Человек (Person):
содержит ФИО, E-mail и номер телефона.
У каждого человека, зарегистированного в системе, есть свои реквизиты входа. Поэтому
был выделен класс Реквизиты входа (Credentials), содержащий имя пользователя и пароль, и он
связан с предыдущим классом композицией.
Класс Работник (Employee) расширяет класс Человек (Person) полями Дата приема на
работу, Дата увольнения (если уволен), Модификатор зарплаты и Дата рождения (абстракция).
Работник занимает определенную должность. Для обозначения должности введена сущность
Должность (Appointment), на которую ссылается Работник (Employee).
В системе существует класс Заказчик (Customer), которой отождествляет собой клиентов
компании-заказчика. Эта сущность включает в себя следующие поля: Название клиента,
Описание и Адрес. Каждый заказчик имеет как минимум одно Контактное Лицо
(CustomerContacts), которое в свою очередь наследуется от Человека (Person), расширяя его
полем Описание типа контакта (абстракция). Проекты, отслеживаемые в системе, представлены
сущностью Проект (Project). Она содержит в себе информацию об Имени проекта, Описании,
Дате начала, Запланированной дате конца и Фактической дате окончания (если проект
завершился). Также в ней содержится ссылка на Работника (Employee), который является
менеджером этого проекта. Сущность Проект (Project) связана с соответствующей сущностью
Заказчика (Customer) (агрегация).
Проект (Project) содержит список Заданий (Task) (агрегация). Этот класс включает поля
Описание, Дата создания, Дата закрытия, Статус («Открыто», «В процессе выполнения»,
«Решено», «Закрыто», «Открыто» вновь», «Отменено»), Приоритет (Критический, Высокий,
Средний, Низкий), Оценка затрат на выполнение (часы), а также списки Начала и Завершения
работ над ним. Класс Задание (Task) связан агрегацией с классом Работника (Employee),
ответственным за его выполнение. Для иллюстрации сущностей в системе приведена диаграмма
классов.
В проектируемой системе существует много связанных друг с другом классов, поэтому
необходимо описать кратность этих связей. Работник (Employee) может выполнять несколько
Заданий (Task), но у Задания (Task) может быть только один исполнитель. Похожая ситуация и у
Проекта (Project) и Заказчика (Customer): у Заказчика (Customer) может быть несколько
Проектов, но Проект имеет только одного Заказчика. Возможная ситуация в системе приведена
в примере диаграммы объектов.
5
Диаграмма классов сущностей
class Class Model
«enumeration»
TaskStatus
Proj ect
+Tasks
+Status
Customer
DeadLine: DateTime
Description: string
EndDate: DateTime
Name: string
StartDate: DateTime
-
Opened
InProgress
Resolved
Closed
Reopened
Canceled
1
+Manager
has
Address: string
Description: string
Name: string
CustomerContacts
+Contacts
1
1..*
-
Type: string
0..1
Credentials
+Project 0..*
-
Task
-
1
1..*
-
CloseDate: DateTime
CreateDate: DateTime
Description: string
LOE: int
Name: string
ResolveDates: List<DateTime> +Assignee
StartDates: List<DateTime>
0..*
Password: string
Username: string
is
manager
1
+Credentials
Person
1
+Priority
+Tasks
Employee
1
-
-
Email: string
FirstName: string
LastName: string
MiddleName: string
PhoneNumber: string
AcceptDate: DateTime
DateOfBirth: DateTime
RejectDate: DateTime
SalaryModifier: float
is 1
1
«enumeratio...
TaskPriority
Critical
Major
Normal
Minor
Appointment
-
BaseSalary: float
Description: string
Name: string
6
Диаграмма объектов
obj ect Obj ect diagram
EAG :Customer
JMPC-CS :Proj ect
Address = some address
Description = Big serious company
Name = EAG
DeadLine = 25.12.2011
Description = customer support system
EndDate = null
ExpectedLOE = 100
Name = JMPC-CS
StartDate = 01.07.2011
Lila :CustomerContacts
Email = lila@eag.com
FirstName = Lila
LastName = Mila
MiddleName = Z
PhoneNumber = +1234567
Type = Manager
pm
Max :Employee
AcceptDate = 12.03.2010
DateOfBirth = 10.10.1985
Email = max@we.com
FirstName = Max
LastName = Pax
MiddleName = X
PhoneNumber = +12312131
RejectDate = null
SalaryModifier = 2
credentials :
Credentials
Username = max
Password = pass3
task1 :Task
JMPA-A :Proj ect
DeadLine = 25.12.2012
Description = service inventory
EndDate = null
ExpectedLOE = 200
Name = JMPC-SI
StartDate = 10.10.2011
pm
John :CustomerContacts
Email = john@eag.com
FirstName = John
LastName = Dorn
MiddleName = Y
PhoneNumber = +7654321
Type = CTO
credentials :Credentials
Password = pass2
Username = john
BaseSalary = 80000
Description = Manager
Name = Project Manager
task3 :Task
Description = find water
LOE = 10
Name = Water
Priority = Major
Status = Resolved
CreateDate = 05.07.2011
ResolveDates = [20.07.2011]
CloseDate = null
StartDates = [08.07.2011]
Description = implement module
LOE = 20
Name = Impl
Priority = Normal
Status = Opened
CreateDate = 19.07.2011
ResolveDates = null
CloseDate = null
StartDates = null
Mark :Employee
AcceptDate = 10.08.2010
DateOfBirth = 21.05.1989
Email = mark@we.com
FirstName = Mark
LastName = Shark
MiddleName = S
PhoneNumber = +000000000
RejectDate = null
SalaryModifier = 1.1
Password = pass1
Username = lila
Proj ect Manager :Appointment
task2 :Task
Description = get triforce
LOE = 2
Name = Get Triforce!
Priority = Critical
Status = Closed
CreateDate = 01.07.2011
ResolveDates = [03.07.2011, 06.07.2011]
CloseDate = 08.07.2011
StartDates = [02.07.2011, 05.07.2011]
credentials :Credentials
task4 :Task
Description = write test
LOE = 30
Name = Text
Priority = Major
Status = InProgress
CreateDate = 03.07.2011
StartDates = [04.07.2011]
ResolveDates = null
CloseDate = null
Kate :Employee
Softw are Engineer :Appointment
BaseSalary = 30000
Description = Coder
Name = Software Engineer
AcceptDate = 14.10.2010
DateOfBirth = 01.01.1988
Email = kate@we.com
FirstName = Kate
LastName = Mate
MiddleName = M
PhoneNumber = +111121212
RejectDate = null
SalaryModifier = 1.1
credentials :Credentials
credentials :Credentials
Password = pass4
Username = mark
Password = pass5
Username = kate
7
Анализ состояний
Подробно стоит рассмотреть возможные состояния у Задания (Task). Как говорилось
выше, оно может находиться в шести состояниях. При создании оно находится в состоянии
«Открыто». В этот момент оно имеет только дату создания, а списки дат старта и завершения
пусты, и дата закрытия отсуствует. Далее, если сотрудник начал выполнение данного задания,
статус переводится в состояние «В процессе выполнения», или же, в случае, если менеджер
решил отменить данное задание, в состояние «Отменено». В случае перевода задания в статус
«В процессе выполнения», в список дат Начала работ добавляется дата. Из этого состояние
задание может быть либо «Отменено», либо перейти в состояние «Решено». При переводе в
состояние «Решено» в список Дат завершения работ добавляется текущая дата. Если менеджера
устроит решение данной задачи, то он может перевести задачу в состояние «Закрыто». В этом
случае у задачи проставляется дата закрытия. В противном случае менеджер может переоткрыть
задачу, переведя в состояния ««Открыто» вновь». Из состояния ««Открыто» вновь» задача
может перейти в состояние «Закрыто», или же в состояние «В процессе выполнения».
Диаграмма состояний
stm Task State Model
Initial
[created]
Opened
[cancel]
Canceled
[cancel]
[cancel]
[start]
InProgress
Reopened
[start]
[resolve]
[reopen]
Resolv ed
[close]
Closed
8
Вывод: в результате проведения анализа предметной области по разработке
информационной системы управления проектами были выделены основные сущности, варианты
использования и варианты состояния системы, изучены основные правила построения UMLдиаграмм и произведено построение модели разрабатываемой информационной системы на
языке UML, а именно построены диаграммы классов, объектов, вариантов использования и
состояний.
9
Download