Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];

Вниз

Кто разбирается в ОО проектировании? Совет бы мне...   Найти похожие ветки 

 
SPeller ©   (2010-09-16 12:29) [0]

Всем доброго времени суток!

Хочу уйти от простого кодирования и заняться проектированием. Начал касаться этой темы и понял что это моё. Читаю отрывочные материалы по проектированию и ОО проектированию и чувствую что мне понятны принципы как это всё делается, зачем и для чего. Некоторые моменты нахожу для себя актуальными, вспоминаю что сталкивался с этими проблемами, искал решения, но для вывода итогов "по фэншую" не хватало теоретических познаний. Мне это очень интересно. А когда мне интересно - я изучаю это достаточно быстро, главное начать. На нынешней работе заниматься этим бесполезно, ибо процесс разработки поставлен архаично и улучшать никому не надо. Точнее, надо, но есть препятствия личностного характера. Не суть. Суть в том, что нашел хорошую вакансию, всё подходит. Основной род занятий - проектирование с использованием UML, ООП и паттернов. С ОО программированием я дружу очень хорошо, умею в голове строить абстракции, выделять общее, разделять функционалы и т.п., в общем, с объектами обращаться умею и умею использовать преимущества ООП. Я эти объекты понимаю. И нужно выполнить тестовое задание. Главное - нарисовать диаграмму классов с использованием UML и паттернов. Поскольку ни опыта, ни теории, ни практики в этом направлении у меня не было, то дошел до некого предела понимания из того, что успел на скорую руку изучить. Мне нужен пинок под зад чтобы сообразить дальше. Спрашивать и советоваться в живую у меня не с кем, поэтому прошу помощи здесь.

Вот текст задания:

Существуют документы: счет и накладная.

Счет имеет следующие атрибуты:
• дата счета;
• номер счета;
• сумма счета;
• поставщик.
В табличной части содержатся товары.
Атрибуты товара:
• наименование товара:
• производитель;
• цена;
• количество.

Накладная имеет атрибуты:
• дата;
• номер;
• сумма по накладной;
• грузоотправитель;
• номер счета.
В табличной части содержатся товары (товары могут отличаться).
Атрибуты товара:
• наименование товара;
• производитель;
• серия;
• цена;
• количество.

Предусмотреть проверки:
1. Введенная дата счета не больше текущей даты;
2. Введенная дата накладной не больше даты счета и не больше текущей даты;
3. При сохранении документов  табличная часть не должна быть пустой;
4. При редактировании накладной не можем изменять поле грузоотправитель.

Требуется спроектировать предложенные сущности в нотации UML, создав диаграмму классов, и реализовать классы на любом языке программирования.
При проектировании обязательно использовать паттерны ООП (MVC, Factory, Singleton и т.д.).


Вот схема: http://personal.primorye.ru/speller/Drawing1.gif . Сразу скажу что может быть это всё элементарно, может быть я нарисовал полную фигню. Я не прошу нарисовать за меня диаграмму или разжевать всё до мелочей. Мне нужны направления куда думать, где я не прав, полезные ссылки где можно быстро (или сравнительно быстро) найти решение. Практически такой же вариант схемы я уже отправлял и получил такой ответ:

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

Мне кажется что всё это я отобразил. Но выходит что не до конца. Вот тут то и затык у меня случился и сам разобраться дальше не могу. Может, и могу, но времени уйдет больше, чем работодатель согласится ждать. Поэтому прошу волшебного пендаля у здешних мастеров :)


 
Kerk ©   (2010-09-16 12:45) [1]

У тебя на схеме есть Model, есть Controller, но не видно View.


 
SPeller ©   (2010-09-16 12:47) [2]

Я так понял что view - это интерфейс пользователя. Его нужно подробнее расписать? Или это не пользовательский интерфейс?


 
Дмитрий Тимохов   (2010-09-16 12:50) [3]

спроси на RSDN в форумы / общие вопросы программирования / архитектура прогр. обеспечения.

там тебе точно хорош ответят. я в свое время много там чего узнал.

только первую часть вопроса убери.
там извиниться за вопрос не надо.


 
Kerk ©   (2010-09-16 12:57) [4]


> SPeller ©   (16.09.10 12:47) [2]
>
> Я так понял что view - это интерфейс пользователя. Его нужно
> подробнее расписать? Или это не пользовательский интерфейс?

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

> Дмитрий Тимохов   (16.09.10 12:50) [3]
>
> спроси на RSDN в форумы / общие вопросы программирования
> / архитектура прогр. обеспечения.

Хорошая мысль.


 
Anatoly Podgoretsky ©   (2010-09-16 12:58) [5]

> SPeller  (16.09.2010 12:29:00)  [0]

Это жестоко и вероятно неоправдано.

1. Введенная дата счета не больше текущей даты;
2. Введенная дата накладной не больше даты счета и не больше текущей даты;

Лишаем возможности подготовки будущих документов.

-------------------------------------------

А это приводит к дублированию данных и возможно их несогласованности

• сумма счета;
• сумма по накладной;

Это должно быть расчетной величиной.


 
SPeller ©   (2010-09-16 13:13) [6]


Дмитрий Тимохов   (16.09.10 12:50) [3]
> спроси на RSDN в форумы / общие вопросы программирования
> / архитектура прогр. обеспечения.
Ок, учту ) Я чувствую что мне не хватает чего-то простого, поэтому не стал лезть на специализированные форумы, а решил тут поинтересоваться. Меня этот сайт программировать научил, поэтому за первым советом сюда же и пришел )


> только первую часть вопроса убери.
> там извиниться за вопрос не надо.
Это я спецом написал. Чтобы было предельно понятно что к чему. А то тут опасно задавать короткие вопросы :)


> Kerk ©   (16.09.10 12:57) [4]
> Это классы, реализующие пользовательский интерфейс. Оно
> же все не из воздуха берется. Насколько я понял, необходимо
> дать три четких слоя.
А какими классами описать интерфейс? Формочками-кнопочками? До какой глубины нужно детализировать? Наследование форм?


> Anatoly Podgoretsky ©   (16.09.10 12:58) [5]
> Лишаем возможности подготовки будущих документов.
> Это должно быть расчетной величиной.
Согласен что суммы должны в динамике считаться :) Об этом тоже в первую очередь подумал. С датами - просто не приходилось с такими документами сталкиваться. Наверное это нужно. Хотя задача скорее всего для простой проверки способности описывать, а вопросы оптимизации могут быть припасены на засыпку.


 
Anatoly Podgoretsky ©   (2010-09-16 13:19) [7]

> SPeller  (16.09.2010 13:13:06)  [6]

Ну так и сделай в проекте данный комментарий.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
15-1284489244
0x00FF00
2010-09-14 22:34
2010.12.26
Реклама Delphi на ВМК


15-1284622490
ocean
2010-09-16 11:34
2010.12.26
Защита автономного компьютера


6-1232411128
RGV
2009-01-20 03:25
2010.12.26
Чат для интернета


11-1227257194
heilong
2008-11-21 11:46
2010.12.26
использование fastmove с fastmm4


2-1285857008
faiwer
2010-09-30 18:30
2010.12.26
Уничтожение объекта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский