- •Проектирование информационных моделей информационной системы (ис).
- •1. Теоретический материал.
- •1. Переменные и параметры.
- •2. Сложные типы данных.
- •2.1 Формальная запись информационной модели сложного объекта.
- •2. Требования к построению информационной модели объекта реального мира.
- •3. Построение информационной модели сложного объекта «Автотранспортное предприятие»
- •3.1 Неформальная постановка задачи. Описание общей функциональности ис «атп».
- •Формулировка глобальной цели создания ис «атп»
- •Декомпозиция глобальной цели по подзадачам.
- •Получение заказа на перевозку.
- •Подготовка к перевозке.
- •Процесс перевозки.
- •Работа службы технической эксплуатации.
- •Пакет «атр»
- •Пакет «атр.GisSystem»
- •Пакет атп.Транспорт
Пакет «атр»
Объект «Автотранспортное предприятие».
ATP {
//атрибутивная часть АТП
//Название фирмы
String atp_name;
//Юр. адрес
String address;
//подвижной состав АТП
Transport[] transport;
//отдел технической эксплуатации
ExplotationDep expl_dep;
//отдел перевозок
TransportationDep transp_dep;
//подсистема работы с пространственными данными
GISSystem gis;
//Контрагенты АТП
Contragent[] cntr;
//Водители АТП
Driver[] driv;
//функциональная часть АТП
//получение заявки на перевозку, исходя из которой необходимо определить
//техническую готовность подвижного состава и рассчитать стоимость перевозки
Transport[] getTransportAvaliable(Cargo c, Date start, Date end) {}
//определение транспорта, который может везти указанный груз
Transport[] filterTransportByCargoType(Cargo cr) {}
//определение свободных ТС в заданный период перевозки, отфильтрованных по соответствию груза
Transport[] defineTransportAvaliability(Transport[] tr, Date start, Date end) {}
//определение стоимости перевозки
float getTransportationPrice(Route r, Cargo c) {}
//функции, связанные с внутренними задачами объекта
создание объекта АТП
ATP()
}
Объект «Контрагент»
Contraсtor {
//атрибутивная часть
//Название юр. лица
String contr_name;
//лицо, заключающее договора
String executive_name;
//основание заключение договора ответственным лицом контрагента
//(Устав, Доверенность, пр.)
String cause;
//Контактные лица
String[] contacts;
//контактные телефоны
String[] phone_nums;
//функциональная часть
//Выдать название юр. лица
String getName()
//Выдать перечень контактных лиц контрагента
String[] getContactNames()
//выдать контактный телефон заданного контактного лица
String getPhoneByContact(String cont)
}
Объект «Калькулятор стоимости перевозки»
PriceCalculator {
//атрибутивная часть
//пробег порожний
float emptyRunKm;
//стоимость, нормированная по пробегу и массе груза
float kgKm;
//пробег, нормированный по пробегу и объему груза
float m3Km;
//функциональная часть
//расчет стоимости по стране
float calcPriceOverCountry(float dist_empty, float dist_loaded, Cargo c)
//расчет стоимости международной перевозки
float calcPriceAbroad(float dist_empty, float dist_loaded,int borderCount, Cargo c)
}
Объект «Планируемые работы транспортного средства»
TransportReservation {
//атрибутивная часть
//Тренапортное средство
Transport ts;
//массив дат начала планируемых работ
Date[] dt_start;
//пробег, нормированный по пробегу и объему груза
Date[] dt_end ;
//функциональная часть
//получение транспортного средства
Transport getTransport()
//проверка, - зарезервировано ли ТС на данный период
boolean checkTransportReserved(Transport tr,Date s,Date e)
//добавление планируемых работ
boolean addReservation(Transport t,Date s,Date e)
//удаление планируемых работ
boolean removeReservation(Transport t,Date s,Date e)
}
