![]() |
Модераторы: Се ля ви |
![]() ![]() ![]() |
|
||
|
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Прочитал пол-Фаулера
![]() Теперь ещё буду активити, пакедж и юзэкэйс диаграммы юзать ![]() --------------------
|
|||
|
||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: нет Всего: 10 |
UML - НУЖЕН, не даром ведь Буч и вся остальная компания так долго с им занимались...
![]() А то что типа нужно все знать сразу это и есть проектирование - это утопия, так не бывает.... ![]() |
|||
|
||||
javastic |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 2 Всего: 27 |
Я считаю что UML нужен как средство кооперации Аналитика, Архтектора и Разработчика. Во многих книгах по УМЛ идёт сравнение строительства дома и разработки ПО, что в обоих случаях должен получиться качественный продукт, это стоит затрат, т.к. отдача будет адекватна. Заложив хороший "фундамент" и определившись какой будет дом, с какими стенами, потолком, полом, открыванием/закрыванием окон и дверей, комуникаций и пр. будет гораздо проще и быстрее его построить, а в нашем случае разработать хороший и качественный софт.
Другое дело что это у нас пока не получило распространения, действительно, на тебя (если ты предлагаешь использовать УМЛ пускай даже в небольшом проекте, просто как начало нового способа разработки) смотрят как на романтика или как на Чапая сидящего на коне махая шашкой. Внедрять УМЛ в разработку (не имея понимающей в УМЛ команды ) получается накладно, потому что в результате можно проковыряться с изучением УМЛ и ничего дельного толком не сделать. Вывод: УМЛ уместно применять (на мой взгляд): 1. когда команда разработчиков понимает УМЛ. 2. когда реально используется какой-то процесс анализа, проектирования, разработки, тестирования, внедрения, сопровождения. 3. применять его лично для себя, для понимания тех или иных моментов проектирования системы, алгоритмизации и т.д. ![]() Но потом я понял почему, потому что очень сложно перестроиться из текстового восприятия (обычный исходный код) к графическому, потому что в сознание остаётся клин о том что это всё равно нужно будет переписывать в текст (автогенеринг кода или руками не важно). У меня был точно такой же ступор когда я переходил с процедурного программирования на объектный. ![]() Главное знать куда идти, а путь всё равно проложится. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 4 Всего: 151 |
Верное мнение.
![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
hatsumeika |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.5.2005 Где: Минск Репутация: нет Всего: 2 |
Наглядное графическое изображение всегда хорошо. Стандартизированное еще лучше. Но рассматривать UML как панацею наверно не правильно. Я вижу следующие проблемы с UML:
- неполная поддержка рисовалками (например RationalRose), - динамику, т.е. сам алгоритм к сожалению не более удобно рисовать, чем в любом графическом редакторе. - при генерации диаграммы из кода коллекции встают стеной: мне совсем не нужно на диаграмме видеть, что класс ссылается на ArrayList, мне нужно видеть, что класс ссылается на список объектов класса С2. Мысль конечно слишком спорная, чтобы оставлять ее без примеров. Вот и примеры: 1) Как описать альтернативные связи между классами ? 2) Как описать алгоритм, выполнение которого проходит через 5 разных классов ? 3) Как описать, что метод М использует классы С1 и С2 (именно метод) ? (в стандартном UML это есть, а в Розе нет). 4) Как показать, что делают методы класса в его разных состояниях ? 5) Как показать, что объект класса С1 вызывает метод М у объекта класса С2 и передает ему объект класса С3 (по логике это д.б. возможно на sequrence или colaboration диаграммах) ? Я думаю, во-первых должен быть хорошо читаемый код и толковые комментарии. А UML можно использовать для выборочного иллюстрирования. |
|||
|
||||
lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: нет Всего: 8 |
Нас в универе тоже очень упорно знакомили с этими многочисленными диаграммами. Брали фиктивные проект и прямо по схеме концепт->логика->физический уровень строили. Поэтапно составляешь эти диаграммы.
1. Бизнес план + Business Process Model 2. Спецификация требований для проекта (я по-русски не знаю, как будет) 3. Use case model 4. Activity diagram 5. Class diagram 6. Statechart 7. ERA diagram План можно ещё расширить на другими схемами. И это всё рисовали. В универе упор на это и делается: главное - это аналитика, подготовка проекта, планирование. Программирование - в последнюю очередь, и вообще, программировать должны программисты, а мы, типа, им всё на блюдечке подать ![]() Потом в PowerDesigner -в конце концов и код писать не надо, он сам сгенерирует (Java, .. ). Не знаю, на фиктивных вещах это всё так скучно, что интерес пропадает. На практике ведь всё по-другому. А так подумать - спасибо, что хоть какие-то практические навыки дали, а то университетское образование известно своей академичностью - выпускники учили кучу вещей, а как это всё выглядит на практике, не знают. Оно, может, и удобно, когда проект состоит из нескольких модулей, сотни классов, группа разработчиков, да ещё и на разных языках всё это пишется. Для мелких проектов это лишне и переплачивать за это никто не будет. Хотя преподы пытаются донести мысль о том, что и на маленьких проектах нужно соблюдать культуру создания ИС: всё делать по плану, всё рассчитывать. Минус в том, что большая часть студентов потом всё равно не будет работать с такими большими проектами, где без UML (даже не обязательно их уметь составлять - на это аналитики есть, а просто понимать, как член команды разработчиков) не обойтись. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 4 Всего: 151 |
Я тоже так думал, пока работать не начал ![]() Реально, за время своей работы я видел только один маленький проект (он носил вспомогательный характер). Все остальное - это именно сотни классов, мультиязычность, распределенные команды разработчиков и прочие радости жизни. А ведь я не в транснациональной корпопорации рабтаю - забегаловка. ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
javastic |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 2 Всего: 27 |
ИС уже под собой подразумевает что проект не маленький ![]() -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
borisvolfson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.2.2005 Репутация: нет Всего: 3 |
Class Diagrams для проектирование и реинжиниринга. И различного рода вспомогательные рисунки и чертежи, если нужно.
|
|||
|
||||
lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: нет Всего: 8 |
javastic, ИС - я сократил "информационная система". Маленькая фирмочка: интранет + сайт -- это ведь тоже информационная система уже в своём роде, только для неё команды разработчиков не надо.
Lamer George, спасибо за делёжку опытом ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 4 Всего: 151 |
Он у меня невелик ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Итак. В последнее время (с апреля) я довольно активно занимался проектированием в UML, правда проект не сложный по сути (3D игра). Могу выделить несколько моментов из своего опыта:
1) UML рулит. 2) См. 1) ![]() Если серьёзно, то: 1) Лучше не создавать с самого начала очень детализированных диаграмм, имхо такой подход: "Сначала все-всё спроектируем, до метода у самого распоследнего класса а потом сядем и будем писать реализацию." не прокатывает. У нас в проекте используеться в основном проектирование отдельных модулей с точностью до отдельного класса, но не дальше. 2) Мой 4-месячный опыт показал что лучше как можно быстрее сесть писать код, ибо при написании кода приходят мысли о полной перекройке UML диаграммы, что и приходиться делать. Таким образом, по Фаулеру мы используем UML для проектирования набросков, чертежей, чисто для того чтобы самому понять как будет работать программа а также обьяснить команде. 3) При этом я использовал Visio 2003, class и package диаграммы с отдельными элементами из sequence и component диаграмм, какой символ больше подходил под описание такой и использовали, опять-же, чисто для скетчей. --------------------
|
|||
|
||||
Denn |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 6.8.2005 Репутация: нет Всего: 2 |
Никогда не пользовался UML. Я люблю писать своими руками. Может для следующей программы и и буду использовать UML.
Посему вопросы: Как в UML поддерживается постоянное изменение требований со стороны заказчика? Use cases по-моему говорят о уменьшении времени итераций разрабатываемого проекта. Но так собственно и происходит в реальной жизни. Если я изменяю иерархию классов в программе, я должен это делать только с помощью UML? Что делать с имеющимся кодом, написанным руками? Кроме каркаса классов что-нибудь генерится? Я думаю что UML не получил большого распространения, потому что он по большому счету ничего нового не привнес. Ту же диаграмму классов я нарисую на бумаге, напишу каркас классов. Всю функциональность все равно придется писать в функциях. Тоже самое с use case. Методология от Rational описывает то, что уже имеется. Проектирование, программирование, тестирование и развертывание... Просто введены новые понятия и все. Это сообщение отредактировал(а) Denn - 13.8.2005, 18:33 |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 3 Всего: 127 |
Вот неплохая статья:
http://ooad.asf.ru/develop/articles/UMLinRussia.asp
Это сообщение отредактировал(а) Се ля ви - 23.8.2005, 19:11 -------------------- |
|||
|
||||
javastic |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 2 Всего: 27 |
Спору нет. ![]() -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Системный анализ, проектирование и UML" | |
|
Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем: • предпроектные обследования объектов автоматизации; • разработка концепции создания систем; • моделирование бизнес-процессов (в т.ч. на UML); • проектирование архитектуры систем; • управление проектами; • управление качеством; • CASE-средства; • реинжиниринг. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |