Проектирование АИС. С аратовский госуниверситет м еханико математический факультет проектирование информационных систем Составил
Скачать 3.17 Mb.
|
def __hash__ (self): 113 return hash ((self.telephone, self.collaborator, self.group)) 114 115 def __eq__ (self, other): 116 return self.telephone == other.telephone and \ 117 self.collaborator == other.collaborator and \ 118 self.group == other.group 119 120 class TelephoneDir ( set ): 121 """ 122 Телефонный справочник 123 """ 124 def __init__ (self, telephones, collaborators, groups): 125 set __init__ (self) 126 self.telephones = telephones 127 self.collaborators = collaborators 128 self.groups = groups 129 130 def add (self, telephoneRecord): 131 assert telephoneRecord.telephone in self.telephones 132 assert telephoneRecord.collaborator in self.collaborators 133 assert telephoneRecord.group in self.groups 134 assert telephoneRecord not in self 135 set add (self, telephoneRecord) 136 137 if __name__ == ’__main__’ : 138 import tdcsv 139 140 telephoneDir = tdcsv. load () 141 142 for r in telephoneDir: 143 if r.group.name == ’помощник проректора’ and r.collaborator.family. find ( ’ск’ ) >= 0 : 144 print r.telephone.number, "%s %s. %s." % \ 145 (r.collaborator.family, r.collaborator.name[: 2 ], r.collaborator.patronym[: 2 ]) 146 147 for r in telephoneDir: 148 if r.group.name == ’зав. кафедрой’ and r.collaborator.family. find ( ’сс’ ) >= 0 : 149 print r.telephone.number, "%s %s. %s." % \ 150 (r.collaborator.family, r.collaborator.name[: 2 ], r.collaborator.patronym[: 2 ]) Заметно, что один и тот же сотрудник может быть членом различных групп. Поэтому работа запросов дала немного другой результат. 51-57-39 Виноградский С. Г. 51-18-84 Лосатинская А. С. 26-16-96 Коссович Л. Ю. Сработал и второй запрос. 0.3 Набор заданий 0.3.1 Страховая компания Описание предметной области Вы работаете в страховой компании. Вашей задачей является отслеживание финансовой деятельно- сти компании. Компания имеет различные филиалы по всей стране. Каждый филиал характеризуется названием, адресом и телефоном. Деятельность компании организована следующим образом: к Вам обращают- ся различные лица с целью заключения договора о страховании. В зависимости от принимаемых на страхование объектов и страхуемых рисков, договор заключается по определенному виду стра- хования (например, страхование автотранспорта от угона, страхование домашнего имущества, доб- ровольное медицинское страхование). При заключении договора Вы фиксируете дату заключения, страховую сумму, вид страхования, тарифную ставку и филиал, в котором заключался договор. Классы объектов Договоры (Номер договора, Дата заключения, Страховая сумма, Тарифная ставка, Филиал, Вид страхования). Вид страхования (Вид страхования, Наименование). Филиал (Филиал, Наименование филиала, Адрес, Телефон). Развитие постановки задачи Нужно учесть, что договоры заключают страховые агенты. Помимо информации об агентах (фами- лия, имя, отчество, адрес, телефон), нужно еще хранить филиал, в котором работают агенты. Кроме того, исходя из базы данных, нужно иметь возможность рассчитывать заработную плату агентам. Заработная плата составляет некоторый процент от страхового платежа (страховой платеж это стра- ховая сумма, умноженная на тарифную ставку). Процент зависит от вида страхования, по которому заключен договор. 0.3.2 Гостиница Описание предметной области Вы работаете в гостинице. Вашей задачей является отслеживание финансовой стороны работы го- стиницы. Ваша деятельность организована следующим образом: гостиница предоставляет номера клиентам на определенный срок. Каждый номер характеризуется вместимостью, комфортностью (люкс, полу- люкс, обычный) и ценой. Вашими клиентами являются различные лица, о которых Вы собираете определенную информацию (фамилия, имя, отчество и некоторый комментарий). Сдача номера кли- енту производится при наличии свободных мест в номерах, подходящих клиенту по указанным выше параметрам. При поселении фиксируется дата поселения. При выезде из гостиницы для каждого ме- ста запоминается дата освобождения. Классы объектов Клиенты (Клиент, Фамилия, Имя, Отчество, Паспортные данные, Комментарий). Номера (Номер, Количество человек, Комфортность, Цена). Поселение (Клиент, Номер, Дата поселения, Дата освобождения, Примечание). Развитие постановки задачи Необходимо хранить информацию не только по факту сдачи номера клиенту, но и осуществлять бронирование номеров. Кроме того, для постоянных клиентов, а также для определенных категорий клиентов, предусмотрена система скидок. Скидки могут суммироваться. Внести в структуру сущностей изменения, учитывающие этот факт, и изменить существующие запросы. Добавить новые запросы. 0.3.3 Ломбард Описание предметной области Вы работаете в ломбарде. Вашей задачей является отслеживание финансовой стороны работы лом- барда. Деятельность Вашей компании организована следующим образом: к Вам обращаются различные лица с целью получения денежных средств под залог определенных товаров. У каждого из при- ходящих к Вам клиентов Вы запрашиваете фамилию, имя, отчество и другие паспортные данные. После оценивания стоимости принесенного в качестве залога товара Вы определяете сумму, которую готовы выдать на руки клиенту, а также свои комиссионные. Кроме того, определяете срок возврата денег. Если клиент согласен, то Ваши договоренности фиксируются в виде документа, деньги вы- даются клиенту, а товар остается у Вас. В случае если в указанный срок не происходит возврата денег, товар переходит в Вашу собственность. Классы объектов Клиенты (Клиент, Фамилия, Имя, Отчество, Номер паспорта, Серия паспорта, Дата выдачи паспор- та). Категории товаров (Категория товаров, Название, Примечание). Сдача в ломбард (Категория товаров, Клиент, Описание товара, Дата сдачи, Дата возврата, Сумма, Комиссионные). Развитие постановки задачи После перехода прав собственности на товар, ломбард может продавать товары по цене, меньшей или большей, чем была заявлена при сдаче. Цена может меняться несколько раз, в зависимости от ситуации на рынке. (Например, владелец ломбарда может устроить распродажу зимних вещей в конце зимы). Помимо текущей цены, нужно хранить все возможные значения цены для данного товара. 0.3.4 Реализация готовой продукции Описание предметной области Вы работаете в компании, занимающейся оптово-розничной продажей различных товаров. Вашей задачей является отслеживание финансовой стороны работы компании. Деятельность Вашей компании организована следующим образом: Ваша компания торгует това- рами из определенного спектра. Каждый из этих товаров характеризуется наименованием, оптовой ценой, розничной ценой и справочной информацией. В Вашу компанию обращаются покупатели. Для каждого из них Вы запоминаете в базе данных стандартные данные (наименование, адрес, те- лефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с покупателем количество купленного им товара и дату покупки. Классы объектов Товары (Наименование, Оптовая цена, Розничная цена, Описание). Покупатели (Телефон, Контактное лицо, Адрес). Сделки (Дата сделки, Товар, Количество, Покупатель, Признак оптовой продажи). Развитие постановки задачи Теперь ситуация изменилась. Выяснилось, что обычно покупатели в рамках одной сделки покупают не один товар, а сразу несколько. Также компания решила предоставлять скидки в зависимости от количества закупленных товаров и их общей стоимости. 0.3.5 Ведение заказов Описание предметной области Вы работаете в компании, занимающейся оптовой продажей различных товаров. Вашей задачей является отслеживание финансовой стороны работы компании. Деятельность Вашей компании организована следующим образом: Ваша компания торгует това- рами из определенного спектра. Каждый из этих товаров характеризуется ценой, справочной инфор- мацией и признаком наличия или отсутствия доставки. В Вашу компанию обращаются заказчики. Для каждого из них Вы запоминаете в базе данных стандартные данные (наименование, адрес, те- лефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с заказчиком количество купленного им товара и дату покупки. Классы объектов Заказчики (Наименование, Адрес, Телефон, Контактное лицо). Товары (Цена, Доставка, Описание). Заказы (Заказчик, Товар, Количество, Дата). Развитие постановки задачи Теперь ситуация изменилась. Выяснилось, что доставка разных товаров может производиться раз- ными способами, различными по цене и скорости. Нужно хранить информацию по тому, какими способами может осуществляться доставка каждого товара и информацию о том, какой вид достав- ки (а, соответственно, и какую стоимость доставки) выбрал клиент при заключении сделки. 0.3.6 Бюро по трудоустройству Описание предметной области Вы работаете в бюро по трудоустройству. Вашей задачей является отслеживание финансовой стороны работы компании. Деятельность Вашего бюро организована следующим образом: Ваше бюро готово искать работни- ков для различных работодателей и вакансии для ищущих работу специалистов различного профиля. При обращении к Вам клиента-работодателя, его стандартные данные (название, вид деятельности, адрес, телефон) фиксируются в базе данных. При обращении к Вам клиента-соискателя, его стан- дартные данные (фамилия, имя, отчество, квалификация, профессия, иные данные) также фикси- руются в базе данных. По каждому факту удовлетворения интересов обеих сторон составляется документ. В документе указываются соискатель, работодатель, должность и комиссионные (доход бюро). Классы объектов Работодатели (Название, Вид деятельности, Адрес, Телефон). Сделки (Работодатель, Должность, Комиссионные). Соискатели (Фамилия, Имя, Отчество, Квалификация, Вид деятельности, Иные данные, Предполагаемый размер заработной платы). Развитие постановки задачи Оказалось, что база данных не совсем точно описывает работу бюро. В базе фиксируется только сделка, а информация по открытым вакансиям не храниться. Кроме того, для автоматического поиска вариантов, необходимо вести справочник «виды деятельности». 0.3.7 Нотариальная контора Описание предметной области Вы работаете в нотариальной конторе. Вашей задачей является отслеживание финансовой стороны работы компании. Деятельность Вашей нотариальной конторы организована следующим образом: Ваша фирма готова предоставить клиенту определенный комплекс услуг. Для наведения порядка Вы формализовали эти услуги, составив их список с описанием каждой услуги. При обращении к Вам клиента, его стандартные данные (название, вид деятельности, адрес, телефон) фиксируются в базе данных. По каждому факту оказания услуги клиенту составляется документ. В документе указываются услуга, сумма сделки, комиссионные (доход конторы), описание сделки. Классы объектов Клиенты (Название, Вид деятельности, Адрес, Телефон). Сделки (Клиент, Услуга, Сумма, Комиссионные, Описание). Услуги (Название, Описание). Развитие постановки задачи Теперь ситуация изменилась. В рамках одной сделки клиенту может быть оказано несколько услуг. Стоимость каждой услуги фиксирована. Кроме того, компания предоставляет в рамках одной сделки различные виды скидок. Скидки могут суммироваться. Фирма по продаже запчастей Описание предметной области Вы работаете в фирме, занимающейся продажей запасных частей для автомобилей. Вашей задачей является отслеживание финансовой стороны работы компании. Основная часть деятельности, находящейся в Вашем ведении, связана с работой с поставщика- ми. Фирма имеет определенный набор поставщиков, по каждому из которых известны название, адрес и телефон. У этих поставщиков Вы приобретаете детали. Каждая деталь наряду с названием характеризуется артикулом и ценой (считаем цену постоянной). Некоторые из поставщиков могут поставлять одинаковые детали (один и тот же артикул). Каждый факт покупки запчастей у постав- щика фиксируется в базе данных, причем обязательными для запоминания являются дата покупки и количество приобретенных деталей. Классы объектов Поставщики (Поставщик, Название, Адрес, Телефон). Детали (Название, Артикул, Цена, Примечание). Поставки (Поставщик, Деталь, Количество, Дата). Развитие постановки задачи Теперь ситуация изменилась. Выяснилось, что цена детали может меняться от поставки к поставке. Поставщики заранее ставят Вас в известность о дате изменения цены и о его новом значении. Нужно хранить не только текущее значение цены, но и всю историю изменения цен. 0.3.8 Курсы по повышению квалификации Описание предметной области Вы работаете в учебном заведении и занимаетесь организацией курсов повышения квалификации. В Вашем распоряжении имеются сведения о сформированных группах студентов. Группы фор- мируются в зависимости от специальности и отделения. В каждой из них включено определенное количество студентов. Проведение занятий обеспечивает штат преподавателей. Для каждого из них у Вас в базе данных зарегистрированы стандартные анкетные данные (фамилия, имя, отчество, телефон) и стаж работы. В результате распределения нагрузки Вы получаете информацию о том, сколько часов занятий проводит каждый преподаватель с соответствующими группами. Кроме того, хранятся также сведения о виде проводимых занятий (лекции, практика), предмете и оплате за 1 час. Классы объектов Группы (Специальность, Отделение, Количество студентов). Преподаватели (Фамилия, Имя, Отчество, Телефон, Стаж). Нагрузка (Преподаватель, Группа, Количество часов, Предмет, Тип занятия, Оплата). Развитие постановки задачи В результате работы с базой данных выяснилось, что размер почасовой оплаты зависит от предмета и типа занятия. Кроме того, каждый преподаватель может вести не все предметы, а только некоторые. 0.3.9 Определение факультативов для студентов Описание предметной области Вы работаете в высшем учебном заведении и занимаетесь организацией факультативов. В Вашем распоряжении имеются сведения о студентах, включающие стандартные анкетные дан- ные (фамилия, имя, отчество, адрес, телефон). Преподаватели Вашей кафедры должны обеспечить проведение факультативных занятий по некоторым предметам. По каждому факультативу суще- ствует определенное количество часов и вид проводимых занятий (лекции, практика, лабораторные работы). В результате работы со студентами у Вас появляется информация о том, кто из них записал- ся на какие факультативы. Существует некоторый минимальный объем факультативных предметов, которые должен прослушать каждый студент. По окончанию семестра Вы заносите информацию об оценках, полученных студентами на экзаменах. Классы объектов Студенты (Фамилия, Имя, Отчество, Адрес, Телефон). Предметы (Название, Объем лекций, Объем практик, Объем лабораторных работ). Учебный план (Студент, Предмет, Оценка). Развитие постановки задачи Теперь ситуация изменилась. Выяснилось, что некоторые из факультативов могут длиться более од- ного семестра. В каждом семестре для предмета устанавливается объем лекций, практик и лабора- торных работ в часах. В качестве итоговой оценки за предмет берется последняя оценка, полученная студентом. 0.3.10 Распределение учебной нагрузки Описание предметной области Вы работаете в высшем учебном заведении и занимаетесь распределением нагрузки между препода- вателями кафедры. В Вашем распоряжении имеются сведения о преподавателях кафедры, включающие наряду с ан- кетными данными сведения об их ученой степени, занимаемой административной должности и стаже работы. Преподаватели Вашей кафедры должны обеспечить проведение занятий по некоторым пред- метам. По каждому из них существует определенное количество часов. В результате распределения нагрузки у Вас должна получится информация следующего рода: «Такой-то преподаватель проводит занятия по такому-то предмету с такой-то группой». Классы объектов Преподаватели (Фамилия, Имя, Отчество, Ученая степень, Должность, Стаж). Предметы (Название, Количество часов). Нагрузка (Преподаватель, Предмет, Номер группы). Развитие постановки задачи Теперь ситуация изменилась. Выяснилось, что все проводимые занятия делятся на лекционные и практические. По каждому виду занятий устанавливается свое количество часов. Кроме того, данные по нагрузке нужно хранить несколько лет. 0.3.11 Распределение дополнительных обязанностей Описание предметной области Вы работаете в коммерческой компании и занимаетесь распределением дополнительных разовых работ. Вашей задачей является отслеживание хода выполнения дополнительных работ. Компания имеет определенный штат сотрудников, каждый из которых получает определенный оклад. Время от времени, возникает потребность в выполнении некоторой дополнительной работы, не входящей в круг основных должностных обязанностей сотрудников. Для наведения порядка в этой сфере деятельности Вы проклассифицировали все виды дополнительных работ, определившись с суммой оплаты по факту их выполнения. При возникновении дополнительной работы определенного вида Вы назначаете ответственного, фиксируя дату начала. По факту окончания Вы фиксируете дату и выплачиваете дополнительную сумму к зарплате с учетом Вашей классификации. |