Некоторые правила выявления классов



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

1. Для каждого класса должно быть ясно сформулировано егоназначение в системе.

2. Каждый класс – это шаблон описания множества объектов.

Единичные классы, для которых можно представитьсуществование только одного объекта, весьма маловероятны среди«бизнес-объектов». Подобные классы обычно составляют вприложении «общее знание» и, как правило, жесткозапрограммированы в программах приложения. Например, еслисистема спроектирована для единственной организации,существование класса Organization (Организация) может быть неоправдано.

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

4. Каждый класс должен отличаться от атрибута. Представляется липонятие классом или атрибутом зависит от области приложения.

Цвет автомобиля обычно воспринимается как атрибут класса Car(Автомобиль). Однако на фабрике по производству красок Color(Цвет) – это определенно класс со своими собственнымиатрибутами (яркостью, насыщенностью, прозрачностью и т. д.).

5. Каждый класс содержит набор операций. Однако на данном этапемы не касаемся вопросов идентификации операций. Операции,входящие в интерфейс класса (сервисы, предоставляемые классомсистеме), являются логическим следствием формулировкиназначения класса (пункт 1).

Пример выявления классов

Рассмотрим следующие требования к системе «Запись науниверситетские курсы» и выделим потенциальные классы.

1. Для получения каждой университетской степени существуетнесколько обязательных и несколько выборочных курсов.

2. Каждому курсу соответствует заданный уровень и значениеусловных очков (CreditPoint – условное очко, начисляемое запрослушивание какого-либо курса (за один курс может бытьначислено несколько очков), студент обязан на одном году набратьтакое число курсов, чтобы число очков за них было не нижеопределенного значения).

3. Курс может быть составной частью системы полученияпроизвольного количества степеней.

4. Каждая степень определяет минимальное общее значение условныхочков, требуемое для получения степени (например, для степенибакалавра (вычислительные и информационные системы) требуется68 очков, включая обязательные курсы).

5. Студенты могут составлять из дисциплин программы обучения,приспособленные к их индивидуальным нуждам и обеспечивающие имполучение степени, на которую они претендуют.

В первом утверждении подходящими классамиявляются классы Degree (Степень) и Course (Курс). Эти два классаудовлетворяют пяти правилам, перечисленным ранее.

Уверенности нет в том, должен ли и каким образом класс Course бытьсужен до классов CompulsoryCourse (Обязательный курс) и ElectiveCourse(Выборочный курс). Например, ясно, что курс является обязательным иливыборочным в зависимости от степени. Возможно, что различие междуобязательными и выборочными курсами может быть зафиксировано спомощью ассоциации или даже атрибута класса. Таким образом,CompulsoryCourse и ElectiveCourse рассматриваются как нечеткие классы.

Второе утверждение идентифицирует только атрибуты классаCourse, а именно course_level (уровень курса) и credit_point_value(количество условных очков). Третье утверждение характеризуетассоциацию между классами Course и Degree. Четвертая формулировкавводит атрибут min_total_credit_points (минимальное общее количествоусловных очков) в качестве атрибута класса Degree.

Последнее утверждение позволяет выделить три новых класса:Student (Студент), CourseOffering (Предлагаемый курс) и StudyProgram(Программа обучения). Первые два являются релевантнымиклассами, а StudyProgram можно превратить в ассоциацию междуклассами Student и CourseOffering. Поэтому StudyProgramклассифицируется как нечеткий класс (см. таблицу 1)

 

Таблица 1 

Релевантные классы Нечеткие классы
Course (Курс) ComplosoryCourse (Обязательный курс)
Degree (Степень) ElectiveCourse (Выборочный курс)
Student (Студент) StudyProgram (Программа обучения)
CourseOffering (Предлагаемый курс) -

 

Спецификация классов

После того как перечень потенциальных классов сформирован,необходима их дальнейшая спецификация: классы требуется включить вдиаграмму классов и определить их свойства. Некоторые свойства можноввести и отобразить внутри графических пиктограмм, представляющихклассы на диаграмме классов. Многие другие свойства, включенные вспецификацию класса, имеют только текстовое представление. CASE-средства, как правило, обладают возможностями редактирования,позволяющими легко вводить или модифицировать подобнуюинформацию посредством диалоговых окон, снабженных вкладками, илис помощью аналогичных способов.


Дата добавления: 2018-04-05; просмотров: 92; ЗАКАЗАТЬ РАБОТУ