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

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Denis Beskov

1817
Статья начинается с важности целей и важности их "правильности".

Мне кажется, обсуждение любого понятия должно начинаться с его определения (это сделано), а также его месте в какой либо деятельности. Откуда оно берётся и на что влияет. Так вот тема "откуда берётся" не раскрыта совершенно. А смею предположить, что именно процесс генезиса целей критически влияет на их "правильность".

Какие ещё вопросы волнуют меня в отношении целей:
1. Всегда ли цели персонифицированы, принадлежат субъекту, или могут висеть в воздухе.
2. Какое количество одновременных целей эффективно.
3. Как убедиться, что задавая вопрос ЗАЧЕМ - мы добрались до нужного уровня целей - в какой момент делать остановку.
4. Каков процесс формализации целей.

...
Попить чаю - это вообще-то не цель. Так как ответить на вопрос каков образ результата удается с натяжкой.
надо было писать: утолить жажду попив чаю.
Прекрасно, так значит всё-таки цели предшествует "жажда" - что это такое? По-моему, ничто иное, как потребность. Вот тогда возникает интересный вопрос, почему был выбран именно чай.  И тут скорее всего, действительно, ограничения на средство достижения цели были продиктованы интересами.

И не смотря на все словарные определения, я не согласен, что "утолить жажду попив чаю" - это цель. Скорее это концептуальный образ решения (способа достижения), включающий цель (проблему).

Есть идея, что процесс инженерного анализа целей (goal reverse engineering) стоит останавливать в момент, когда мы добираемся до базовых ценностей субъекта-носителя целей.

По формату подачи материала - для читаемости лучше использовать разбиение на абзацы тэгом P, а не DIV. Хорошо бы дать возможность комментировать прямо по тексту - используя механизм вики или блога.

1818
А почему бы это не делать на страничке перевода или на худой конец в wikipedia.org? Зачем изобретать велосипед?
В чём велосипед? Попробуй сам "сделать на страничке перевода" - я на тебя посмотрю) На википедии лежат более-менее готовые, а не рабочие материалы. К тому же на википедии и http://wiktionary.org/ нет словарей на одну страницу, только отдельными статьями на каждое слово + там тебе в любой момент кто угодно его оттюнит в собственную сторону.

см. напр. http://ru.wiktionary.org/wiki/actor

1819
Работы по переводу OpenUP заморожены, т.к. в английской версии происходило слишком много изменений. Например, они отказались от постфикса Basic в названии, переименовали Analysis & Design в Architecture и т.д. Переводить стоит только тогда, когда более-менее утрясутся основные вещи.

А вот словарь вполне можно делать уже сейчас, т.к. он нужен в отрасли, а не только в рамках OpenUP.

greesha, рекомендую посмотреть книги по OpenUP на pdfchm.com

artifact или work product я бы перевёл как "результаты работ".

Предлагаю результаты перевода фиксировать в вики: http://chernoviki.ru/index.php/OpenUP_Dictionary

1820
Разница между БД и объектно-ориентированым приложением в том, что объект инициализируется кодом и изменение его структуры и поведения воспринимается при перекомпиляции и новом запуске приложения.  А тебе, Денис, тут толкуют, что схема данных в БД обременена данными, которые в ней лежат, по этому кроме изменения схемы надо писать скрипты, перекидывающие данные, а информацию, как данные перекладывать принципиально нельзя достать из старой схемы и новой, ну недостаточно ее там.
Я напомню, что в большинстве случаев развитие модели БД идёт по конструктивному принципу - т.е. появляются новые объекты, увеличиваются домены данных и т.д. Трансформационные же изменения, описанные в книге по рефакторингу баз данных, в большинстве случаев можно сопроводить автоматическими операциями над данными. В тех редких случаях, когда изменения не тривиальны, можно выполнить их на уровне СУБД и реинтегрировать в модель. Общее правило такое: "частным задачам - частные решения".

Цитировать
Тот процесс, что ты описал для каждой итерации ("и так на каждой итерации") может быть проведен, если каждый раз база разворачивается пустой, но тогда вопрос, куда деваются все накопленные данные?
Где написано, что база разворачивается пустой? Давай я себя  ещё раз процитирую, если непонятно:
Ан рисует объектную модель в виде классов UML
Инструмент генерит логическую модель БД (на итерации - +дельта)
Ар БД генерит физическую модель (на итерации - +дельта)
Ар БД сравнивает её с имеющейся моделью
Ар БД производит слияние и синхронизацию моделей (получает дельту моделей)
Ар БД рисует заголовки хранимых процедур
Ар БД генерит код для выбранного подмножества объектов и ХП (получает DDL-дельту)
Ар БД выполяет тут же его из CASE-а

Цитировать
И все же ты так и не показал, как сравнить две модели, а сравнение версий - ключ к версионному контролю.
Что помешало тебе посмотреть видеоролики? Как я тебе ещё должен показывать, на пальцах? Тебе лень поставить PD, открыть 2 модели и сделать Compare, Merge? Прикладываю свои картинки.

Цитировать
А из того, что сама модель при компиляции никак не участвует (по твоим словам) вытекает, что это не MDA, то есть приложение, управляемое моделью, а просто генератор шаблонного кода с использованием UML. Но это во-первых не новость, а во-вторых не так уж и ценно.
Так, а что такое MDA? Смотрим текст.

В частности, интересно следующее:

Цитировать
MDA Concerns
...
Idealistic: MDA is conceived as a forward engineering approach in which models are transformed into implementation artifacts (e.g. executable code, database schema) in one direction via a fully or partially automated "generation" step. This aligns with OMG's vision that MDA should allow modelling of a problem domain's full complexity in UML (and related standards) with subsequent transformation to a complete (executable) application[7].

This approach does, however, imply that changes to implementation artifacts (e.g. database schema tuning) are not supported. This constitutes a problem in situations where such post-transformation "adapting" of implementation artifacts is seen to be necessary. Evidence that the full MDA approach may be too idealistic for some real world deployments has been seen in the rise of so-called "pragmatic MDA"[8]. Pragmatic MDA blends the literal standards from OMG's MDA with more traditional model driven mechanisms such as round-trip engineering that provides support for adapting implementation artifacts.
(выделение моё). Я - про прагматичный MDA, который работает.

1821
Выделение подсистем происходит на уровне группировки требований.

Функциональные требования

Фронтенд
Вариант исп 1.
Вариант исп 2.
...

Бэкенд
Вариант исп 14.
Вариант исп 15.
...

1822
Отдельные функциональные требования по Фронтэнду (Фронтофису) и Бэкэнду (Бэкофису). Нефункциональные требования общие.

1823
Я обычно либо делаю под юзкейсом секцию "Используемые структуры данных", либо секцию "Макет интерфейса".

1824
Обучение / Re: Новый курс по UML. Выбор среды
« : 07 Августа 2007, 14:49:34 »
И ещё - по поводу аналогий между Строительством и Разработкой ПО (а точнее - автоматизацией деятельности).

Аналогия очень просится, сам пытался к ней несколько раз прибегать.

Но есть существенная разница - в строительстве жизненный цикл объекта и процессы, в него входящие базируются на технологиях, обкатанных столетиями. Строительство - это процесс в высокой степени предсказуемый, он имеет сравнимые по значимости фазы:
1. Исследование
2. Разработка требований
3. Проектирование
4. Сооружение
5. Эксплуатация

В разработке ПО основной упор идёт на проектирование, фаза сооружения пренебрежимо мала. На этапах 1-3 высокая степень неопределённости, сохраняющаяся из проекта в проект, чего нет в строительстве.

Да, сфера разработки ПО стремится к предсказуемости и управляемости, для этого появились CMMI, Analysis & Design, Requirements Engineering и Business Modeling как отдельные дисциплины, но до аналогичных характеристик в строительстве пока далеко, и будет достаточно долго, в силу неустойчивости предметной области проектов.

1825
Обучение / Re: Новый курс по UML. Выбор среды
« : 07 Августа 2007, 14:27:35 »
Нет курс называется "Представление знаний в ИС"
Отличная тема у курса!

Я ожидал бы, что речь пойдёт об:
* Жизненном цикле знаний
* Онтологиях, управляемых словарях
* Бизнес-правилах и алгоритмах и продукционных системах
* Функциональных моделях - процессных и интерактивных
* Нечётких моделях - текст, нечёткие отношения, множественные классификации, дескрипторные описания
* Data Mining, Knowledge Discovery

Так вот UML позволяет задавать лишь их некоторую часть. И почему встал вопрос о выборе именно UML инструмента, мне не очень понятно.

Безусловно, цель- научать студента самостоятельно разрабатывать системы с помощью UML. Но видимо вы не знаете, что  учить студента разработке систем с нуля - бессмысленная затея. Это все равно,что заставить строить дом человека, который топора  и ножовки не разу в руках не держал! Я считаю что сначала лучше научить рубить  дрова - т.е. пользоваться инструментом, потом обтесывать бревна - т.е. учить языку UML. А исскуству строить дом учатся всю жизнь и лишь единицы овладевают им в полной мере... Также и в проектировании.   К тому же цель образования в вузе в конечном счете скорее не выпуск высококвалифицированных кадров- это нереально, а дать базовые знания студентам, научить их методологии получения знаний. А потом  они самостоятельно смогут освоить все что им нужно.
Только на днях писал об обратном - что людей в основном учат совершать движения, научают операциям (даже не техникам и не методам!) как карго-культу, без понимания целей, уместности, умения взвешивать, оценивать и ставить задачу.

Про "искусство строить дом" странно слышать - как будто бы не существует такого понятия, как инженерное дело. Чтобы "учить рубить дрова" - есть ПТУ.

1826
По поводу применения UML в разработке веб-приложений есть вот такая хорошая книга:
Коналлен Д. Разработка Web-приложений с использованием UML

1827
Сообщество Аналитиков / Re: Видео РИТ-2007
« : 05 Августа 2007, 14:09:04 »
Просмотрел выборочно пару докладов с конференции ... вот например этот http://www.rit2007.ru/paper_view.html?id=1049 .... "О чем этот доклад? Да ни о чем :-) ..." (с).
Юра, комментарии прямо там оставить можно.

1828
bo, это опять к вопросу о скорости прохождения изменений в среде, культуре разработки.

В 70-80-х годах доминировала процессная парадигма (data processing) - данные поступают на вход системы, преобразуются, идут на выход. Доминировал каскад.

В 80-х смоллтоковцы придумали кучу хороших штук, пошла волна популяризации объектного подхода.

Но - разработчики БД так и остались в процедурно-функциональной парадигме и каскаде. Они продолжали считать, что изменения - это ненормально, это результат ошибочного проектирования и анализа и платить за ошибки проектирования ковырянием  в коде и данных - это естественная, хотя и неприятная необходимость.

В 90-х смоллтоковцы и проч. поняли, что изменения - это норма жизни, и надо уметь с ними работать. Популяризовались итерационные подходы, появился рефакторинг, развились компонентно-модульные практики.

Но - разработчики БД только встревоженно смотрели по сторонам и всё крепче держались за доброе старое-вечное. Тем более что объективно БД - это сильносвязанная система.

2000-е годы - рефакторинг в объектной разработке стал осознанной нормой жизни, встраивается в объектные инструменты.

Пионеры объектной разработки в лице Скотта Амблера и Фаулера добираются до баз данных, изучают их и предлагают методы "оживления" БД: http://www.agiledata.org/essays/tools.html

Понятно, что пока это не стало общим местом, но Microsoft стал включать элементы рефакторинга в свои БД-инструменты, стали появляться специализированные инструменты: http://www.sundog.net/index.php/databaserefactoring/page/overview/ , плагины: http://www.red-gate.com/about/news/jolt_award_2007.htm

Процесс идёт, но очень сильна инерция - базданщиков старой школы очень много и они с трудом воспринимают перемены (таков их естественный менталитет).

1829
Правильно ли я Вас понял, что Вы не считате, что роль оценщика аналитика существенна для результата оценки? Или что "оценщик" аналитика может быть выбран тем же способом, что и "оценщик" программиста и тестировщика?
Существенна конечно, роль - работодатель в лице руководителя той или иной оргструкуры. Понятно, что тестовые задания будут готовиться с участием работодателя, но не только им.

1830
Вопрос: кто должен оценивать аналитика? В какой позиции, роли должен находиться тот, кто должен оценивать аналитика?
1. С одной стороны, результаты работы аналитика оцениваются разработчиками (архитектор, программисты), которые должны использовать его результаты в своей работе.
2. С другой стороны последние посты данной темы подразумевают оценку аналитка, аналитками же. Зачем? Для коллективной анлитической работы? Интересно, что проблемы коллективной аналитической работы (не коллективной разработки в целом!)  до сих пор не обсуждались.
3. Или подразумевается оценка аналитка со стороны лидера проекта, который стоит и над разработчками и аналитиками?
А кто оценивает программиста? Кто оценивает тестировщика?