Реализация готовой продукции




Технология разработки программного обеспечения

Лабораторная работа №2

Тема: Анализ предметной области ПО.

Цель работы: приобретение навыков анализа предметной области.

Содержание работы:

  1. Анализ текстового описания предметной области.
  2. Выделение основных абстракций в предметной области и определение их параметров. Построение инфологической модели.
  3. Построение реляционной, иерархической и сетевой моделей.

Задание:

  1. Проанализировать данные, описанные в предметной области.
  2. Выделить основные абстракции.
  3. Для каждой из абстракций определить параметры, ее характеризующие.
  4. Выяснить, как абстракции связаны друг с другом.
  5. Рассмотреть различные варианты построения инфологической модели. Выбрать наилучший. Обосновать выбор.
  6. Провести моделирование в рамках реляционной, иерархической и сетевой модели.

Пример выполнения лабораторной работы

Краткое задание

Дано словесное описание простой предметной области. В лабораторной работе рассматривается задача о зачислении абитуриентов на бюджетные места в некоторый вуз Краснодара. Абитуриенты сдают экзамены на один или несколько факультетов вуза. Известно расписание экзаменов: дата, предмет экзамена, факультет, на который экзамен сдается. На экзаменах абитуриенты получают оценки. По каждому абитуриенту хранятся некоторые данные, в частности номер и дата выдачи аттестата. Требуется построить различные варианты инфологической модели данных (представления данных), сравнить предложенные варианты.

Пример выполнения

Рассмотрим несколько вариантов инфологической модели.

Вариант 1

Представим всю информацию как характеристики одного объекта – экзаменационной оценки.

Видим, что информация об абитуриенте дублируется, т.е. при внесении данных о новой оценке мы должны заново вносить уже введенную ранее информацию по абитуриенту (фамилия, имя, отчество, номер аттестата, дата выдачи аттестата). При вводе одной и той же информации можно допустить ошибки. Соответственно база данных перейдет в противоречивое состояние. Предположим, что Сергеев Сергей Петрович сдал экзамен по математике на ВМК на оценку 5. Мы внесли информацию об этом (математика, 15 июля 2003 г., ВМК, Сергеев, Сергей, Петрович, № аттестата – 123123, дата выдачи аттестата – 21 июня 2003 г., оценка 5) в нашу базу данных. Через некоторое время данный абитуриент сдает информатику. Мы вносим информацию (информатика, 21 июля 2003 г., ВМК, Сергеев, Сергей, Петрович, № аттестата – 123123, дата выдачи аттестата – 22 июня 2003 г., оценка 5). При вводе была допущена ошибка – мы неправильно ввели дату выдачи аттестата. Таким образом, наша база данных дает противоречивую информацию. По одним данным аттестат был получен Сергеевым 21 июня, по другим – 22 июня. Кроме того, даже если информация была бы введена правильно, мы увеличиваем ее объем, что приводит к необходимости увеличения ресурсов и замедлению работы программного обеспечения. Постараемся избавиться от данного недостатка и построим другую инфологическую модель.

Вариант 2

Между двумя сущностями должна существовать связь (абитуриент получает оценки):

АБИТУРИЕНТ <Получает> ОЦЕНКА

Для каждой полученной каждым абитуриентом оценки дублируется информация о предмете экзамена, дате экзамена, факультете. Попробуем избавиться и от этого недостатка.

Вариант 3

Между тремя сущностями существуют две связи:

1. АБИТУРИЕНТ <Получает> ОЦЕНКА;

2. АБИТУРИЕНТ <Сдает> ЭКЗАМЕН.

В этой модели данных нет недостатков, отмеченных в предыдущих двух моделях. Возьмем этот вариант модели за основной при построении сетевой, иерархической и реляционной моделей.

Сетевая модель

Напомним, что для отображения связи в сетевой модели используется дополнительный файл (группа) связей. Общий вид сетевой модели представлен на рис. 1.

Представление связей между записями вышеуказанных групп рассмотрим на небольшом конкретном примере. Пусть абитуриент Сергеев сдал на факультет ВМК экзамены по математике и информатике и получил оценки 5 и 4. Абитуриент Смирнов сдал на факультет ВМК экзамены по математике и русскому языку и получил оценки 4 и 3. Тогда представление экземпляров записей и связей между ними будет иметь вид, представленный на рис. 2.

Поясним смысл полей записей дополнительных файлов на примере файла АБИТУРИЕНТ–ЭКЗАМЕН.

Указатель 1 (УК1) содержит адрес экземпляра записи файла ЭКЗАМЕН, т.е. указывает на сдаваемый предмет. УК4 содержит адрес экземпляра записи файла АБИТУРИЕНТ, т.е. указывает на абитуриента, сдавшего этот экзамен. УК2 содержит адрес экземпляра записи дополнительного файла АБИТУРИЕНТ–ЭКЗАМЕН, который соответствует следующему экзамену, сдаваемому этим же абитуриентом. УК3 содержит адрес экземпляра записи дополнительного файла АБИТУРИЕНТ–ЭКЗАМЕН, который соответствует следующему абитуриенту, сдавшему этот экзамен. КС – признак конца соответствующего списка.

Аналогично определяются поля второго дополнительного файла АБИТУРИЕНТ–ОЦЕНКА. Двигаясь по указателям построенной модели, можно ответить на следующие запросы:

1. «Какие экзамены сдал абитуриент Сергеев (Смирнов)?

2. «Какие абитуриенты сдали математику (информатику, русский язык)?»

3. «Какие абитуриенты получили оценку 5 (4, 3)?»

4. «Какие оценки получил абитуриент Сергеев (Смирнов)?»

Существенным недостатком построенной модели является невозможность ответа на запрос «По какому предмету абитуриент Сергеев (Смирнов) получил оценку 4?». Этот недостаток может быть устранен с помощью агрегации.

Иерархическая модель

Общий вид иерархической модели представлен на рис. 3.

Рис. 3. Общий вид иерархической модели

Представление экземпляров записей для вышеизложенного примера может, в частности, выглядеть следующим образом.

Примечание. Соответствующее дерево можно представить также с помощью указателей (по аналогии с сетевой моделью).

Реляционная модель

Реляционная модель представляется следующими отношениями:

v Экзамены (Код экзамена, Предмет, Факультет, Дата).

v Абитуриенты (Код абитуриента, Фамилия, Имя, Отчество, Номер аттестата, Дата выдачи аттестата).

v Оценки (Код экзамена, Код абитуриента, Значение оценки). Поля Код экзамена и Код абитуриента в таблице Оценки являются полями для реализации связи с соответствующими таблицами.

Вид предметной области

Реализация готовой продукции

Описание предметной области

 

Вы работаете в компании, занимающейся оптово-розничной продажей различных товаров. Вашей задачей является отслеживание финансовой стороны ее работы. Деятельность компании организована следующим образом: компания торгует товарами из определенного спектра. Каждый из этих товаров характеризуется наименованием, оптовой ценой, розничной ценой и справочной информацией. В вашу компанию обращаются покупатели. Для каждого из них вы запоминаете в базе данных стандартные данные (наименование, адрес, телефон, контактное лицо) и составляете по каждой сделке документ, запоминая наряду с покупателем количество купленного им товара и дату покупки.

Таблицы

Товары (Код товара, Наименование, Оптовая цена, Розничная цена, Описание).

Покупатели (Код покупателя, Телефон, Контактное лицо, Адрес).

Сделки (Код сделки, Дата сделки, Код товара, Количество, Код покупателя, Признак оптовой продажи).

Развитие постановки задачи

Теперь ситуация изменилась. Выяснилось, что обычно покупатели в рамках одной сделки покупают не один товар, а сразу несколько. Также компания решила предоставлять скидки в зависимости от количества закупленных товаров и их общей стоимости. Внести в структуру таблиц изменения, учитывающие эти факты, и изменить существующие запросы. Добавить новые запросы.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-03-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: