Форум Сообщества Аналитиков

×


помогите сделать диаграмму классов(Прочитано 8199 раз)
    Есть уже реляционная модель данных - вложение 1. Буду писать программу, которая будет выполнять запросы. Можно было конечно сделать все просто, но надо через интерфейс, класс, реализующий интерфейс и все подобное.
    Программа позволяет админу добавить нового арендодателя. Для этого в интерфейсе надо создать метод addNewLessor, в классе его реализовать, а аргументами метода хочу назначить не ФИО арендодателя и телефон, а класс, который имеет поля ФИО и телефон.
    Далее необходим метод для добавления квартиры, которую арендодатель хочет сдавать. Аргументами метода будут не регион, адрес, стоимость за месяц, а класс, полями которого будут соответсвующие поля таблицы.
    Тоже самое касается и таблицы "Фотографии квартир" и "Оплаты".
    Вот вся задача, которая стоит передо мной.
    Помогите пожалуйста отобразить это на диаграмме классов.
« Последнее редактирование: 17 Декабря 2009, 10:26:00 от cmygeHm »



Re: помогите сделать диаграмму классов Ответ #1 : 17 Декабря 2009, 10:50:28
Я бы вам рекомендовал прочитать эту лекцию http://www.intuit.ru/department/se/intuml/3/
Думаю сразу найдете у себя несколько ошибок. Потом задавайте вопросы.



Re: помогите сделать диаграмму классов Ответ #2 : 17 Декабря 2009, 10:55:02
спасибо :)



Re: помогите сделать диаграмму классов Ответ #3 : 18 Декабря 2009, 19:41:16
распечатал статью и прочитал ее, мне это не дало возможности решить ту проблеме - как указать метод, который оперирует объектом другого класса. Это зависимость??? Или это ассоциация??? Или что??? Я не могу до конца понять! Объясните пожалуйста.



Re: помогите сделать диаграмму классов Ответ #4 : 18 Декабря 2009, 22:43:03
распечатал статью и прочитал ее, мне это не дало возможности решить ту проблеме - как указать метод, который оперирует объектом другого класса. Это зависимость??? Или это ассоциация??? Или что??? Я не могу до конца понять! Объясните пожалуйста.

Хотя и против правил делать большие цитаты, я все-таки решусь в данном случае. Приведу ряд цитат из Г Буч, Д Рамбо, А Джекобсон Язык UML Руководство пользователя.

Зависимостью (Dependency) называют отношение использования, согласно которому изменение в спецификации одного элемента (например, класса Event) может повлиять на другой элемент, его использующий (в данном случае - класс Window), причем обратное не обязательно. Графически зависимость изображается пунктирной линией со стрелкой, направленной от данного элемента на тот, от которого он зависит. Используйте зависимости, когда хотите показать, что один элемент использует другой.

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

восемь стереотипов, применимых к отношениям зависимости между классами и объектами на диаграмме классов (см. главу 8).

    * bind - определяет, что источник инстанцирует целевой шаблон с заданными фактическими параметрами. Этот стереотип используют при моделировании деталей шаблонов классов (см. главу 9). Например, отношения между шаблоном класса-контейнера и экземпляром этого класса моделируются как зависимость bind. Стереотип bind должен содержать список фактических аргументов, соответствующих формальным аргументам шаблона;
    * derive - показывает, что источник может быть вычислен по целевому элементу. С помощью этого стереотипа моделируют отношения между двумя атрибутами (см. главу 4 и 9) или ассоциациями (см. главу 5), причем один из соотносимых элементов является конкретным, а другой - концептуальным. Скажем, класс Человек имеет атрибут Дата Рождения (конкретный) и атрибут Возраст (который может быть выведен из первого и потому не объявлен в классе отдельно). Отношения между ними можно определить с помощью зависимости типа derive, при этом Возраст будет производным от ДатаРождения;
    * friend - указывает, что источнику даются специальные права видимости свойств цели (см. главу 5). Используйте этот стереотип для моделирования отношений, подобных отношениям между классом и его друзьями в языке C++;
    * instanceOf - говорит, что исходный объект является экземпляром целевого классификатора;
    * instantiate - показывает, что источник создает экземпляры целевого элемента.
      Последние два стереотипа позволяют явно моделировать отношения "класс/ объект" (см. главу 2). instanceOf применяется для моделирования отношения между классом и объектом на одной и той же диаграмме или же между классом и его метаклассом instantiate указывает, какой элемент создает объекты другого;
    * powertype - означает, что все объекты целевого классификатора являются потомками заданного родителя. Этот стереотип применяется при моделировании классов, содержащих другие классы, например при проектировании баз данных, о чем идет речь в главах 8 (логические базы данных) и 29 (физические базы данных).
    * refine - свидетельствует, что источник находится на более низком уровне абстракции, чем цель. Данный стереотип используется для моделирования концептуально одинаковых классов, рассматриваемых на различных уровнях абстракции. Так, класс Клиент, возникший на стадии анализа, будет уточнен в фазе проектирования, в результате чего появится более детальный класс Клиент вместе со своей реализацией;
    * use - показывает, что семантика исходного элемента зависит от семантики открытой части целевого. Этот стереотип позволяет явно указать, что зависимость по своему типу принадлежит к отношениям использования, в отличие от отношений зависимости, обозначаемых другими стереотипами.

Стереотипы наверное Вам тут не нужны особо

А вот по интерфейсам
Типы и роли

Класс может реализовывать несколько интерфейсов. Любой экземпляр данного класса должен поддерживать их все, так как интерфейс определяет условия контракта, и все соответствующие ему абстракции обязаны соблюдать эти условия. Тем не менее в конкретном контексте экземпляр может предоставлять только те интерфейсы, которые соответствуют ситуации. Это означает, что каждый интерфейс определяет роль, которую играет объект. Роль, таким образом, - это именованное поведение некоторой сущности в конкретном контексте, или, иными словами, - лицо, которым абстракция обращена к миру. (Роли принимают участие также в кооперациях - см. главу 27.)

Рассмотрим, например, экземпляр класса Человек. В зависимости от контекста экземпляр этого класса может играть роль Матери, Налогоплательщика, Работника, Покупателя, Менеджера, Летчика, Певца и т.д. Следовательно, объект предъявляет миру ту или иную "личину", и взаимодействующие с ним клиенты ожидают от него соответствующего поведения. Например, экземпляр класса Человек в роли Менеджера обладает не таким набором свойств, какой был бы у него в роли Матери.

На языке UML роль, которую одна абстракция играет по отношению к другой, можно описать, дополнив соответствующую концевую точку ассоциации (см. главы 5 и 10) именем интерфейса. Например, на рис. 11.5 показан интерфейс Работник, определение которого включает три операции. Между классами Человек и Компания существует ассоциация, в контексте которой Человек играет роль е, относящуюся к типу Работник. В другой ассоциации этот класс может быть "обращен к миру иным лицом". При наличии явного типа роль, которую играет Человек, - это не просто слово, понятное для читателя, изучающего диаграмму. В UML это означает, что класс Человек играет для класса Компания роль Работника, и в данном контексте для Компании будут видимы и существенны только свойства, определенные данной ролью.



Re: помогите сделать диаграмму классов Ответ #5 : 18 Декабря 2009, 23:56:15
распечатал статью и прочитал ее, мне это не дало возможности решить ту проблеме - как указать метод, который оперирует объектом другого класса. Это зависимость??? Или это ассоциация??? Или что??? Я не могу до конца понять! Объясните пожалуйста.
Ассоциация
Есть класс ClassА с методом methodA() у метода есть параметр param:ClassB. Т.е. param является экземпляром класса ClassB
Если я ничего не перепутал :)
Если вы не знаете куда идете, то вы вряд ли туда дойдете [Форест Гамп]
www.grigorash.ru



Re: помогите сделать диаграмму классов Ответ #6 : 19 Декабря 2009, 05:22:42
Хотя и против правил делать большие цитаты, я все-таки решусь в данном случае. Приведу ряд цитат из Г Буч, Д Рамбо, А Джекобсон Язык UML Руководство пользователя.

я и это читал:

http://alice.pnzgu.ru/~dvn/uproc/books/uml_user_guide/gl_10.htm
http://alice.pnzgu.ru/~dvn/uproc/books/uml_user_guide/gl_11.htm

Так что??? Между классами зависимость??? или Ассоциация???



Re: помогите сделать диаграмму классов Ответ #7 : 19 Декабря 2009, 13:01:18
Зависимость



Re: помогите сделать диаграмму классов Ответ #8 : 19 Декабря 2009, 16:30:09
Так что??? Между классами зависимость??? или Ассоциация???
Студент, я тебя русским голосом говорил, зависимость. Тебя это не убеждало. Пришлось прибегнуть к цитатной артиллерии. И это мимо.

Как уж еще сказать? Ну вот хоть Денис высказался!



Re: помогите сделать диаграмму классов Ответ #9 : 20 Декабря 2009, 10:54:03
Всем спасибо! Буду юзать зависимость!




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19