Лекция: UML. Диаграмма классов. Выделение классов предметной области и выявление отношений между ними. Этапы построения объектной модели и формальные признаки ее усовершенствования

Класс (Class) — это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Класс реализует один или несколько интерфейсов.

Классы в UML изображаются на диаграммах классов, которые позволяют описать систему в статическом состоянии — определить типы объектов системы и различного рода статические связи между ними.

На диаграмме классов (Class Diagram) показывают классы, интерфейсы, объекты и кооперации, а также их отношения. Между классами возможны различные отношения:

· зависимости, которые описывают существующие между классами отношения использования;

· обобщения используется, чтобы показать связь между классом-родителем и классом-потомком;

· ассоциации, структурное отношение, описывающее совокупность связей; связь — это соединение между объектами.

o агрегация – это когда класс в своей структуре использует часть другого класса;

o композиция. При композиции класс является целиком частью другого класса.

Этапы построения объектной модели:

· определение объектов и классов;

· подготовка словаря данных;

· определение зависимостей между объектами;

· определение атрибутов объектов и связей;

· организация и упрощение классов при использовании наследования;

Для дальнейшего улучшения ищутся:

Признаки пропущенного объекта (класса):

· несимметричности связей и обобщений (наследований); для исправления ошибки необходимо добавить пропущенные классы;

· несоответствие атрибутов и операций у класса; для исправления ошибки необходимо расщепить класс на несколько других классов, так чтобы атрибуты и операции новых классов соответствовали друг другу;

· обнаружена операция, не имеющая удовлетворительного целевого класса; для исправления ошибки необходимо добавить пропущенный целевой класс;

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

Признаки ненужного (лишнего) класса:

· нехватка атрибутов, операций и зависимостей у некоторого класса; для исправления ошибки необходимо подумать, не следует ли исключить такой класс.

Признаки пропущенных зависимостей:

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

Признаки ненужных (лишних) зависимостей:

· избыточная информация в зависимостях; для исправления ошибки необходимо исключить зависимости, не добавляющие новой информации, или пометить их как производные зависимости;

· не хватает операций, пересекающих зависимость; для исправления ошибки необходимо подумать, не следует ли исключить такую зависимость.

Признаки неправильного размещения зависимостей:

· имена ролей слишком широки или слишком узки для их классов; для исправления ошибки необходимо переместить зависимость вверх или вниз по иерархии классов.

Признаки неправильного размещения атрибутов:

· нет необходимости доступа к объекту по значениям одного из его атрибутов; для исправления ошибки необходимо рассмотреть нужно ли ввести квалифицированную зависимость.

 

7. Классы и отношения между классами. Реализация отношений между классами средствами C#

Класс (Class) — это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Класс реализует один или несколько интерфейсов.

На диаграмме классов (Class Diagram) показывают классы, интерфейсы, объекты и кооперации, а также их отношения. Между классами возможны различные отношения:

· зависимости, которые описывают существующие между классами отношения использования;

· обобщения используется, чтобы показать связь между классом-родителем и классом-потомком;

public class Employee: Man

· ассоциации, структурное отношение, описывающее совокупность связей; связь — это соединение между объектами.

public class Employee: Man{

private String position;

private IdCard iCard;

public void setIdCard(IdCard c){

iCard = c;

}

public IdCard getIdCard(){

return iCard;

}

}

public class IdCard{

private Date dateExpire;

private int number;

public IdCard(int n){

number = n;

}

}

o агрегация – это когда класс в своей структуре использует часть другого класса;

public class Department{

}

 

class other{

private Department department;

public void setDepartment(Department d){

department = d;

}

public Department getDepartment(){

return department;

}

}

o композиция. При композиции класс является целиком частью другого класса.

public class Department{

}

 

class other{

private Department department;

public void setDepartment(Department d){

department = d;

}

public Department getDepartment(){

return department;

}

}

 

class Main {

private List<> pastPosition = new HashSet();

...

public void setPastPosition(PastPosition p){

pastPosition.add(p);

}

public Set getPastPosition(){

return pastPosition;

}

public void deletePastPosition(PastPosition p){

pastPosition.remove(p);

}

}

 

 

еще рефераты
Еще работы по информатике