![]() |
Модераторы: Се ля ви |
![]() ![]() ![]() |
|
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
chipset, у вас специфика другая скорее всего.
Хотя разработчик в любом случае не должен быть аналитиком. Он пляшет от реализации, а не от задачи. Нам же требуется задачу (пользователя) решить, а не написать оптимальный код. Уже потом достаточно квалифицированный разработчик, поняв задачу, найдет оптимальное решение с использованием известных ему технологий - но заказчика это затрагивать не должно. Не знаю, понятно ли я объяснила... |
|||
|
||||
altspam |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.5.2008 Репутация: нет Всего: нет |
Здравствуйте, ida и товарищи обучающиеся!
Меня зовут Иван, я веб-разработчик. Интересуюсь грамотным проектированием, и задачка подходящая имеется. У вас еще открыт набор в группу? |
|||
|
||||
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
altspam, проходите, проходите...
Пока Esperito курит (похоже, что-то крепкое... ![]() ![]() |
|||
|
||||
Esperito |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 2.9.2007 Репутация: нет Всего: 3 |
Извиняюсь, что так долго отсутствовал. Локальная сеть падала.
Согласен. Я просто пока смотрю как с точки зрения программиста, извините за ограниченность мышления ![]() Торговая точка в данной задаче - это склад товаров + человек, который их принимает на склад и продаёт их со склада, а также ведёт отчётность этих операций. Насчёт рынка - это просто атрибут торговой точки, где она находится. Определяющего значения для чего-либо не имеет.
Есть издержки, которые вычитаются из прибыли торговой точки. Есть издержки, общие для всех точек, вычитаются из общей прибыли владельца торговых точек. Не совсем понимаю, как бы подробнее это описать... Просто в обороте товаров они не участвуют, но на прибыль влияют. Честно говоря, я выделил издержки в отдельный класс по аналогии с товарами. В чём моя ошибка?
Владелец всех торговых точек. Владелец хочет видеть прибыль, получаемую от товаров, завезённых и проданных на каждой торговой точке, прибыль, получаемую от каждой торговой точки (с учётом прибыли от всех товаров и издержек) и всех точек вместе для того, чтобы определить: 1) нужно ли ему, владельцу, продолжать закупать определённые наименования товаров (зависит от их прибыльности, не прибылен - не закупать) 2) стоит ли держать торговую точку или её нужно закрыть (издержки превышают прибыль от оборота товаров) 3) прибылен ли вообще этот бизнес и насколько (возможно стоит его закрыть и оборотные деньги пустить на другой бизнес). Пользователей больше нет. Данные от реализаторов собирает себе один человек (владелец, либо главный бухгалтер). Теоретически - проект рассчитан на частного предпринимателя, либо на небольшую фирму, с указанной выше структурой отношений участников в нём.
Не совсем понял вопроса. Формат данных или формат отчётности? Если второе - не имеет значения, нужно просто передать данные с компьютера реализатора на компьютер владельца, просматривать эти данные вне программы люди не будут. Если первое, то это может быть внутренний для программы формат данных. Возможно, для будущего расширения проекта, потребуется широкораспространённый формат.
Мне хотелось бы разобраться в проектировании на примере небольшого проекта, поэтому я рассчитываю на "три человека и выполнять с ее помощью пять-шесть операций" ![]() P.S. Чем я только не занимался, пока не было сети... Какое там крепкое курево, тут без интернета не проживёшь и 3х дней, наркомания прямо ![]() Это сообщение отредактировал(а) Esperito - 22.5.2008, 15:22 |
||||||||||
|
|||||||||||
altspam |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.5.2008 Репутация: нет Всего: нет |
Имеется довольно большой сайт, который скоро станет еще больше.
Мы переделываем его по принципу блога, то есть с регистрацией, вложенным комментированием и всеми пирогами. Сейчас на нем:
Есть несколько типов данных, по сути — постов:
К любому посту можно присоединить фотографии, файлы и объекты на карте. Незарегистрированный посетитель может оставить комментарий, указав и подтвердив email. Зарегистрированный может задавать вопросы, заказывать услуги, редактировать профиль и создавать посты в открытых разделах (например, в населенных пунктах). Админ может отвечать на вопросы (и управлять сайтом). Важный момент — фильтрация контента. Мы планируем для каждого типа данных ввести всевозможные фильтры, по которым человек легко сможет выбрать нужное для себя. Скажем для документа это будет тип (Закон, ГОСТ, СНиП), для заявки на участок — местоположение, приемлимая цена, наличие дома и т.п. И для всех объектов: раздел, метки и дата публикации. --- Почитал статьи про UML и сейчас читаю книги:
Из книг и статей я заключил, что сначала нужно построить диаграмму прецендентов, которая будет описывать логику работы. Это важно, потому что логику нужно продумать до конца, обсуждая все с владельцем сайта и оперируя схемой. Но что считать прецендентом? Просмотр страницы, регистрация, авторизация, комментирование, фильтрация… Тут мысль останавливается, но такое поверхностное описание не подходит, хочется изобразить систему целиком. В конце концов я попробовал выделить некоторые сущности и начал рисовать диаграмму классов, пока что она выглядит так: ![]() Буду очень благодарен за наставление на путь истинный :) Это сообщение отредактировал(а) altspam - 28.5.2008, 03:33 |
|||
|
||||
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
Тогда я считаю, что нам нужен класс Торговая точка. А классы Рынок и Склад не нужны. А владелец с торговой точкой каким отношением связаны? Один ко многим? В контексте данной задачи у всех торговых точек один владелец? Или есть много владельцев, и у каждого по несколько торговых точек? Выделять издержки в отдельный класс смысла не имеет, поскольку они не могут существовать отдельно от торговой точки или владельца. А торговая точка прекрасно существует и сама по себе. Это уже немного нюансы, которые отслеживаешь, когда решишь много однотипных задач. На первый взгляд может быть и непонятно. Тогда получится такой набор классов: Торговая точка Товар Владелец Поставщик Покупатель Согласны? А в вариантах использования действующими лицами будут Владелец и Реализатор (как пользователи программы). Это сообщение отредактировал(а) ida - 22.5.2008, 22:11 |
|||
|
||||
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
altspam, у вас задача на проектирование, а не на анализ.
То, что вы перечислили, это обрывки функциональных требований, перемешанные с элементами модели проектирования. Поэтому вы и зашли в тупик. Уровни попутаны. Давайте по порядку. В модели анализа нам нужны - классы предметной области, процессы, алгоритмы и состояния реальных объектов предметной области. В модели проектирования будут фигурировать уже программные классы, которые не обязаны являться одновременно классами предметной области (в большинстве случаев есть пересекающиеся классы и есть такие, которые присутствуют в одной из моделей, но отсутствуют в другой; некоторые классы модели анализа могут распадаться на несколько классов модели проектирования или наоборот собираться в один). Варианты использования предназначены для выявления функциональных требований. Они описывают, какие действия будут выполнять пользователи с помощью программы. Классы (или роли) пользователей - это не обязательно классы предметной области. Их нужно определять отдельно, варианты использования вообще стоят немного особняком. Если вы хотите начать именно с вариантов использования, то я бы выделила три класса пользователей по отношению к вашему сайту: Администратор Зарегистрированный пользователь Незарегистрированный пользователь Дальше определите наборы функций, которые должны быть доступны каждому из них.
Логически завершенную последовательность действий, результат которой имееет значение для пользователя. Фильтрация или просмотр не являются вариантами использования - они имеют смысл только в контексте цели, которой пользователь достигает с их помощью, т.е., входят как отдельный шаг в какие-то варианты использования, например "Найти такую-то фигню". Это сообщение отредактировал(а) ida - 22.5.2008, 22:50 |
|||
|
||||
Esperito |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 2.9.2007 Репутация: нет Всего: 3 |
Единственный владелец, много торговых точек. Один ко многим.
Да, понял, спасибо. Согласен. |
||||
|
|||||
altspam |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.5.2008 Репутация: нет Всего: нет |
Спасибо за пояснения. Попробую расписать варианты использования.
А они разве не взаимосвязаны? Мы проанализировали предметную область в силу своих скромных способностей, учитывали при этом опыт нынешнего сайта и его ошибки. Теперь можно начать делать сайт «на коленке», и решать проблемы по ходу появления, но хочется все же спроектировать цельную расширяемую систему и воплотить ее. |
|||
|
||||
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
И где результаты анализа?... Где процессы? Где жизненные циклы объектов? Где функциональные требования? Ограничения? И т.п. |
|||
|
||||
sandello |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
А как быть с типизацией издержек? Есть издержка такая, есть сякая. И они как класс не зависят ни от чего. К примеру издержка "транспортные расходы", Эти транспортные расходы не зависят ни от чего. Конкретные Т.Р., конечно же, привязаны к конкретной торговой точке, владельцу, товару и т.д. С другой стороны, экземпляр класса "транспортные расходы" не может существовать без торговой точки и прочих. Т.е. это какой-то второстепенный класс. Если я правильно понял, на данном этапе (построение модели анализа) нужно выделить независимые классы предметной обласи. Т.е. классы, экземпляры которых «в жизни» могут существовать сами по себе. Так оно? -------------------- ![]() |
|||
|
||||
ida |
|
||||||||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
Тогда варианты использования предлагаю следующие: 1. Владелец: Получить отчеты (разновидности отчетов вы перечисляли) 2. Реализатор: Ввести данные из накладных Получить отчеты Насколько я понимаю, данные для всех типов отчетов берутся исключительно из накладных?... Если нет, то надо определить, откуда они берутся, и какими путями попадают в систему. Это похоже на еще один вариант использования. К размышлению: Если требуется импорт данных из системы наружу, то надо подумать, кто будет производить этот импорт (или он будет производиться в автоматическом режиме?). Возможно, это будет делать Владалец, а возможно, другое действующее лицо - например, Бухгалтер. Т.е. есть вероятность, что мы сейчас нашли упущенного пользователя.
Когда возникают такие вопросы, нужно спросить у источника требований (в данном случае - автора примера): что такое типизация издержек и собираетесь ли вы как-либо с ней работать в этой конкретной программе?
Обобщенно - да. sandello, вы можете предложить свою задачу, и мы ее разберем, по порядку. Это сообщение отредактировал(а) ida - 25.5.2008, 20:22 |
||||||||
|
|||||||||
sandello |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
Попробую кратко описать.
Рассмотрим компанию, предоставляющие некоторые услуги абонентам. Особенность услуг - продолжительность: услуга начинает оказываться регулярно с момента заключения договора и до его разрыва. К примеру, услуга "телефонная связь". Или "вывоз мусора". Для предоствления конкретной услуги конкретному абоненту нужно обладать некоторой информацией, на пример, номером телефона для "телефонной связи" или "адресом" для "вывоз мусора. Нужно построить систему которая 1. Будет хранить абонентов, услуги 2. Позволит понять каким абонентам какие услуги предоставляются. Когда начали предоставлять эти услуги, когда закончим. 3. Хранит информацию, необходимую для предоставления услуги каждому абоненту. Далее. Система предназначена для сотрудников абонентского отдела. Последние хотят: 1. завести нового абонента 2. найти существующего 3. заключить договор и начать предоставлять услуги 4. разорвать договор и прекратить предоставлять услуги 5. переключить в рамках одного договора с одной услуги на другую. 6. посмотреть абонента и его услуги Пока все. Если это описание окажется не целостным (вдруг я что-то забыл ![]() Это сообщение отредактировал(а) sandello - 26.5.2008, 14:33 -------------------- ![]() |
|||
|
||||
ida |
|
|||
![]() замужем ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2277 Регистрация: 14.5.2002 Где: Санкт-Петербург Репутация: 6 Всего: 58 |
sandello, а если повысить уровень абстракции - для чего нужна эта система?
Т.е. какие задачи компания хочет решить с ее помощью. Это понятно, что заводить абонентов, хранить, смотреть, и т.п. - стратегически какие задачи? |
|||
|
||||
sandello |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 18.5.2005 Где: Пермь Репутация: нет Всего: 2 |
Основная задача - деньги. Нужно считать, какой клиент сколько должен. И за что.
-------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Системный анализ, проектирование и UML" | |
|
Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем: • предпроектные обследования объектов автоматизации; • разработка концепции создания систем; • моделирование бизнес-процессов (в т.ч. на UML); • проектирование архитектуры систем; • управление проектами; • управление качеством; • CASE-средства; • реинжиниринг. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |