|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Привествую. Есть задача - есть ряд документов и экранных форм. Надо увязать их между собой попутно выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определив то, что надо еще доделать. Хотелось бы это сделать с использованием некоего уже существующего ПО. Вроде бы это относится к Функционально-структурному анализу (но не уверен). Может кто что посоветует? Направит в нужную сторону? PS. Только сильно не пинайте. Я пока еще сам не могу четко сформулировать, что мне надо. Но пытаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2007, 17:42 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Alex MarmuzevichЕсть задача - есть ряд документов и экранных форм. Надо увязать их между собой попутно выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определив то, что надо еще доделать. Можно описать как с помощью структурных методологий, так и объектных. Дело вкуса. Из структурных лучшим образом подойдет DFD (рисуется в BPWin'е). Что такое DFD надо читать на citforum.ru - там всегда было много вводных хороших статей (автор Вендров, если не забыл). BPWin лучше всего найти версии 3.5.х. Версия 4.х была ужасно корявая. О последующих не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2007, 18:10 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Серж Alex MarmuzevichЕсть задача - есть ряд документов и экранных форм. Надо увязать их между собой попутно выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определив то, что надо еще доделать. Можно описать как с помощью структурных методологий, так и объектных. Дело вкуса. Из структурных лучшим образом подойдет DFD (рисуется в BPWin'е). Что такое DFD надо читать на citforum.ru - там всегда было много вводных хороших статей (автор Вендров, если не забыл). BPWin лучше всего найти версии 3.5.х. Версия 4.х была ужасно корявая. О последующих не знаю. BPWin знаю. Работал (кстати, автор скорее Верников или Маклаков :) ) И глючность оценил в полной мере :) Но я там не нашел возможности рассматривать модель с разных точек зрения (разве что наваять ее заново). + у DFD есть небольшая проблема с декомпозицией (ее там вроде бы нет вообще), что не позволяет строить большие модели (на 1000 - 10000 сущностей) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2007, 18:16 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
"Я пока еще сам не могу четко сформулировать, что мне надо" А шо собственно надо ? - Реинжиринг своей системы - Реинжиринг чужой системы - Построение новой системы на основе чужой системы - Построение новой системы с нуля Первый и последний случай я так понимаю отметаем ... В прочих - начинаем с модели предметной области. В этом случае что документы, что формы (все относится к категории документы). И еще есть пожелания (требования) заказчика Модель более высокий уровень абстрации, помогает выделить и понять процессы. А вот потом снова переходим к документам и формам накладывая их на модель и "выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определяем то, что надо еще доделать" Для первого шага подойдет ручка, бумажка, любой гипертекстовый редактор с рисовалкой (будет очень много исправлений и текста) Для второго шага (в т.ч. итоговое документирование модели) любой DFD редакьор Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2007, 18:55 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
shelsoft"Я пока еще сам не могу четко сформулировать, что мне надо" А шо собственно надо ? - Реинжиринг своей системы - Реинжиринг чужой системы - Построение новой системы на основе чужой системы - Построение новой системы с нуля Первый и последний случай я так понимаю отметаем ... В прочих - начинаем с модели предметной области. В этом случае что документы, что формы (все относится к категории документы). И еще есть пожелания (требования) заказчика Модель более высокий уровень абстрации, помогает выделить и понять процессы. А вот потом снова переходим к документам и формам накладывая их на модель и "выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определяем то, что надо еще доделать" Для первого шага подойдет ручка, бумажка, любой гипертекстовый редактор с рисовалкой (будет очень много исправлений и текста) Для второго шага (в т.ч. итоговое документирование модели) любой DFD редакьор Код: plaintext
Надо вообще реинжиниринг как чужой так и своей системы. Одна из задач - сверить систему с ТЗ, найти пробелы. Обычно ручной и бумажкой это и делаю. Достало. Со вторым шагом все очень даже понятно, тут и вопросов нет. А вот чем поможет гипертекстовый редактор - не понятно. Потом по HTML сделать выборку по перекрестным ссылкам? Типа описать что-то в WiKi и сформировать разные представления? Идея интересная. Надо будет посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2007, 19:57 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Alex Marmuzevich 1) BPWin знаю. Работал (кстати, автор скорее Верников или Маклаков :) ) И глючность оценил в полной мере :) 2) Но я там не нашел возможности рассматривать модель с разных точек зрения (разве что наваять ее заново). 3) у DFD есть небольшая проблема с декомпозицией (ее там вроде бы нет вообще), что не позволяет строить большие модели (на 1000 - 10000 сущностей) 1) Маклаков книжку по нему писал, но там по сути хелп переведенный... 2) А у DFD, IDEF0 это по определению невозможно, т.к. каждая модель имеет Point of View, т.е. точку зрения. Нужна другая точка зрения -- другая модель. 3) Декомпозиция есть, иначе просто невозможно, детализировать можно сколь угодно. Но DFD, IDEF0 нацелены на ФУНКЦИИ системы, на декомпозицию функций. Не алгоритмов, а именно функций, т.е. они не описывают порядок и условия выполнения срабатыванйи функций. ----------- IDEF0 нацелена на описание деятельности реально существующих предприятий. Описывать с ее помощью виртуальные системы (например, среду разработки) очень тяжело. DFD немного ближе к программированию, но описывать с ее помощью софт тоже тяжело. Все ж таки они обе нацелены на описание деятельности предприятий, а не для проектирования софта. Поэтому, если структурный анализ не принципиален, то взять за основу UML и вперед заре навстречу. А инчае нужно будет положить объектый исходный код на структурный метод. Рисовалок UML много, совсем недавно был топик про выбор. P.S. Диаграммы use-case в UML по сути являются теми же DFD/IDEF0, только более "слабыми". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2007, 06:22 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Да... в UML точки зрения как таковой нет. Смотрим на систему с нескольких точек зрения, рисуем разные диаграммы. Поскольку use-case -- функция системы, то явным образом видно что уже сделано, а что еще нужно. К каждому use-case'у можно привязать дочернюю диаграмму(диаграммы ?), которые будут описывать что и как должно быть реализовано. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2007, 06:25 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
"Потом по HTML сделать выборку по перекрестным ссылкам? Типа описать что-то в WiKi и сформировать разные представления?" Зачот. Догадался :-) ... Как что достать - вторая эскадрилья. А как самолеты сбивать - первая эскадрилья ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2007, 10:41 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Alex MarmuzevichПривествую. Есть задача - есть ряд документов и экранных форм. Надо увязать их между собой попутно выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определив то, что надо еще доделать. Пишите точнее - что значит - "есть ряд документов и форм"? Система-то сама есть? Контакт с авторами есть? Исходный код системы есть? Я так пониманию, что есть описание того, что должна делать система (требования, ТЗ) и собственно сама система с какой-то пользовательской документацией. Для удобства давайте разделим все описания системы на внешнее (Бизнес-архитектура, Информационная архитектура - архитектуры анализа и проектирования) и внутреннее (Техническая архитектура, Технологическая архитектура - архитектуры проектирования и реализации). Бизнес-архитектура описывается в терминах ролей пользователей, их потребностей, задач, сценариев и регламентов работы (User Role, Tasks, Goals, Needs, Scenario, Business-script, Business use-case). Потребности и задачи группируются в соответствии с кластерами предметной области, скажем, Управление Заказами, Управление Поставками, Взаимодействие с клиентами, эти кластеры назовём Бизнес-модули . Информционная архитектура описывает структуру данных (аналитическая, инфологическая модель), использумых при работе с системой, информационные потоки (DFD), а также пользовательские сценарии (User story, Use-case), навигационную модель системы и интерфейсы для работы в системы. Техническая архитектура описывается в терминах узлов, слоёв, уровней, пакетов, компонентнов, программных модулей, программных функций, сообщений, вызовов, классов. Можно всё это соотнести с некоторыми Техническими модулями , скажем Подсистемы орагнизации интерфейса с пользователем, Подсистема интеграции с внешними системами, Подсистема логики приложения, Подсистема бизнес-логики, Подсистема доступа к данным, Подсистема бизнес-правил, Подсистема хранения данных. Технологическую архитектуру (конфигурация оборудования и сетей) особо трогать нужды нет, т.к. она мало меняется от проекта к проекту и мало значима. Но в каждом конкретном проекте решать вам. Подробнее см. Модель Захмана. Так вот я понимаю так, что если вы выступаете в роли аналитика, но не архитектора, то вас интересует Бизнес-архитектура и Информационная архитектура. Вообще говоря Бизнес-архитектура должна прослеживаться уже в ТЗ - т.к. обычно там аналитик приводит группировку функциональных свойств системы по Зонам предметной области. Если этого нет, значит модель Бизнес-архитектуры и Информационной архитектуры вам придётся воссоздавать, начиная с бизнес-целей, заинтересованных лиц, описания предметной области, выявления задач пользователей и самое главное - сделать трассировку всего между собой. Это всё, если вы хотите получить достаточно полное и корректное описание системы с целью её дальнейшего развития. Можно сделать проще - обойтись только деревом функциональных требований в любом подходящем инструменте. Затем по нему пройтись проставить - что есть, чего нет. На основании этого строить отчёт по нереализованным свойствам. Но уровень вашего понимания системы будет не очень высоким. Хотелось бы это сделать с использованием некоего уже существующего ПО. Вроде бы это относится к Функционально-структурному анализу (но не уверен). Может кто что посоветует? Направит в нужную сторону?ПО вторично. Сначала надо сформулировать задачу, потом понять методы её решения, затем выбрать походящий, а потом уже говорить о ПО. В общем и целом я бы действительно смотрел в сторону гипертекстовых решений, потому как: "текст" - нет ничего проще чем текст, "гипер" - обеспечение трассируемости + вставил бы несколько неформальных диаграмм взаимосвязей частей системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2007, 14:31 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Майевтик Alex MarmuzevichПривествую. Есть задача - есть ряд документов и экранных форм. Надо увязать их между собой попутно выделив некий обобщающие принципы (модули, подсистемы, АРМы и т.д.), удалив дублирование функциональности, определив то, что надо еще доделать. Пишите точнее - что значит - "есть ряд документов и форм"? Система-то сама есть? Контакт с авторами есть? Исходный код системы есть? 1. Система есть. 2. Контакты с авторами есть 3. Исходные коды есть 4. Описание системы есть (что сделано) 5. Есть описание того, что требуется. Одна из простейших задач - определить, что сделано лишнее, что не сделано. Майевтик Я так пониманию, что есть описание того, что должна делать система (требования, ТЗ) и собственно сама система с какой-то пользовательской документацией. Для удобства давайте разделим все описания системы на внешнее (Бизнес-архитектура, Информационная архитектура - архитектуры анализа и проектирования) и внутреннее (Техническая архитектура, Технологическая архитектура - архитектуры проектирования и реализации). Бизнес-архитектура описывается в терминах ролей пользователей, их потребностей, задач, сценариев и регламентов работы (User Role, Tasks, Goals, Needs, Scenario, Business-script, Business use-case). Потребности и задачи группируются в соответствии с кластерами предметной области, скажем, Управление Заказами, Управление Поставками, Взаимодействие с клиентами, эти кластеры назовём Бизнес-модули . Информционная архитектура описывает структуру данных (аналитическая, инфологическая модель), использумых при работе с системой, информационные потоки (DFD), а также пользовательские сценарии (User story, Use-case), навигационную модель системы и интерфейсы для работы в системы. Техническая архитектура описывается в терминах узлов, слоёв, уровней, пакетов, компонентнов, программных модулей, программных функций, сообщений, вызовов, классов. Можно всё это соотнести с некоторыми Техническими модулями , скажем Подсистемы орагнизации интерфейса с пользователем, Подсистема интеграции с внешними системами, Подсистема логики приложения, Подсистема бизнес-логики, Подсистема доступа к данным, Подсистема бизнес-правил, Подсистема хранения данных. Технологическую архитектуру (конфигурация оборудования и сетей) особо трогать нужды нет, т.к. она мало меняется от проекта к проекту и мало значима. Но в каждом конкретном проекте решать вам. Подробнее см. Модель Захмана. Меня терзают смутные сомнение, что это не совсем то, что надо, но гляну. Майевтик Так вот я понимаю так, что если вы выступаете в роли аналитика, но не архитектора, то вас интересует Бизнес-архитектура и Информационная архитектура. Вообще говоря Бизнес-архитектура должна прослеживаться уже в ТЗ - т.к. обычно там аналитик приводит группировку функциональных свойств системы по Зонам предметной области. Если этого нет, значит модель Бизнес-архитектуры и Информационной архитектуры вам придётся воссоздавать, начиная с бизнес-целей, заинтересованных лиц, описания предметной области, выявления задач пользователей и самое главное - сделать трассировку всего между собой. Это всё, если вы хотите получить достаточно полное и корректное описание системы с целью её дальнейшего развития. Самое неприятное состоит в том, что я выступаю и в роли аналитика и в роли архитектора и в роли разработчика :) Если бы не совмещение ролей, то, вероятнее всего, и не возникло бы непонятной идеи о некоем инструменте, который бы позволил все увидеть, опеределить дыры, неясности, дублирование функционала, четко структуировать систему. Майевтик Можно сделать проще - обойтись только деревом функциональных требований в любом подходящем инструменте. Затем по нему пройтись проставить - что есть, чего нет. На основании этого строить отчёт по нереализованным свойствам. Но уровень вашего понимания системы будет не очень высоким. Этим я регулярно занимаюсь. И чем дальше тем больше понимаю, что эти задачи можно серьезно автоматизировать. Но пока не знаю, как. Майевтик Хотелось бы это сделать с использованием некоего уже существующего ПО. Вроде бы это относится к Функционально-структурному анализу (но не уверен). Может кто что посоветует? Направит в нужную сторону?ПО вторично. Сначала надо сформулировать задачу, потом понять методы её решения, затем выбрать походящий, а потом уже говорить о ПО. В общем и целом я бы действительно смотрел в сторону гипертекстовых решений, потому как: "текст" - нет ничего проще чем текст, "гипер" - обеспечение трассируемости + вставил бы несколько неформальных диаграмм взаимосвязей частей системы. Попытаюсь привести пример того, что я хочу. Запись Подсистема Модуль Функция 1 П1 М1 Ф1 2 П1 М2 Ф1 3 П2 М2 Ф2 4 П2 М3 Ф3 5 П2 М4 Ф2 6 П3 М4 Ф4 Точка зрения - Подсистема. К подсистеме П1 относятся модули М1, М2 и функция Ф1 Видим, что структура системы некорректная, т.к. в рамках одной подсистемы 2 разных модуля содержат одну функцию. Решение - убить модуль М2 или создать версию функции Ф1.1 Точка зрения - Функция К функции Ф1 относятся модули М1, М2, подсистема П1 В рамках подсистемы П2. Точка зрения - Модуль К модулю М2 относится функция Ф2 Может это как-то что-нибудь прояснит PS. Я сам пока плаваю в задаче. Я уже понял, какие данные анализируются. Примерно понял алгоритмы анализа. Но не понял, что это такое :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2007, 00:53 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
СержДа... в UML точки зрения как таковой нет. Смотрим на систему с нескольких точек зрения, рисуем разные диаграммы. Поскольку use-case -- функция системы, то явным образом видно что уже сделано, а что еще нужно. К каждому use-case'у можно привязать дочернюю диаграмму(диаграммы ?), которые будут описывать что и как должно быть реализовано. Use Case отнюдь не функция системы. При вашем подходе у вас будут сотни юзкейсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 11:56 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
byurUse Case отнюдь не функция системы. При вашем подходе у вас будут сотни юзкейсов. А в чем принципиальное отличие? Если дойти до абсурда, то можно, конечно, и сотни и тысячи наплодить... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 12:48 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Серж byurUse Case отнюдь не функция системы. При вашем подходе у вас будут сотни юзкейсов. А в чем принципиальное отличие? Если дойти до абсурда, то можно, конечно, и сотни и тысячи наплодить... Отличие Use cases от функций не связано с количеством, как тех так и других. Функция предполагает, что у неё есть вход и выход, алгоритм преобразования входа в выход в заисимости от возможных "вмешательств" пользователя. А Use case - это описание ситуативного использования (возможно) сразу нескольких функций системы, акцентированное на описание процессов использования системы на уровне "черного ящика" (возможно, без детализации способа исполнения каждой конкретной функции "внутри" системы). Часто полезно использовать USe cases чтобы вытащить из них функции в качестве базиса для разложения по нему конкретных Use cases (если потребуется). 1. Один Use case может потребовать обращения к нескольким функциям системы. 2. Может потребоваться написать несколько Use cases, использующих несколько функций в разных сочетаниях. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 13:40 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Concept Это все частности, по сути в обоих случаях и use case и функция -- это некая функциональность системы, важная с рассматриваемой точки зрения. Дальше детали... не построим детализирующих диаграмм, скажем для dfd, вот и будет черный ящик. Опишем детально use case и он перестанет быть черным ящиком.... Просто подходы немного разные, терминология... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 14:39 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
Серж Concept Это все частности, по сути в обоих случаях и use case и функция -- это некая функциональность системы, важная с рассматриваемой точки зрения. Дальше детали... не построим детализирующих диаграмм, скажем для dfd, вот и будет черный ящик. Опишем детально use case и он перестанет быть черным ящиком.... Просто подходы немного разные, терминология... Вообще-то принципиальное отличие UML от BPWin в том, что UML изначально затачивался под объектную модель - рисуешь в Розе переходы между состояниями объекта, определяешь методы, которые эти переходы осуществляют, а она тебе эти методы сразу кидает в соответствующий объект на диаграмме классов, причем автоматически - сразу видно, кто что делает. Еще одно удобство UML и Use case в частности, это то, что в USe case в собственно деятельности (use case) можно агрегировать виды деятельности, требующие участия сразу нескольких actor'ов. Т.е. привязать к одному USe cas'у несколько действующих лиц. На диаграмме, которая в терминах USe cases описывает работу предприятия, получается наглядно - несколько видов деяетльности и несколько Actor'ов, одна деятельность use-case выполняется несколькими actorами, один actor вовлечен в несколько деятельностей (use-cases). А в BPwin как ни рисуй - все больше конвейер получается :)... Это все следы функицонального подхода к программированию, который царил в момент создания первых IDEF, он ощущается в BPwin. Для автора данного форума диаграмма USe cases может быть полезной, чтобы верифицировать свое общее представление о системе у её пользователей (их начальника). При всей каказлось бы триваильности этой схемы для рисующего, часто когда показываешь её пользователям выяснияются очень интересные нюансы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 15:50 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
ConceptUML изначально затачивался под объектную модель - рисуешь в Розе переходы между состояниями объекта Угум. Он даже не затачивался, а изначально был объектным языком. Только не надо противопоставлять структурный и объектный подход -- второй является продолжением первого. И многие идеи одинаковы, разнятся лишь воплощения этих идей. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 16:47 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
ConceptА в BPwin как ни рисуй - все больше конвейер получается :)... Внешне конвейер, а по сути нет. Стрелки которые изображают зависимости функций от друга и внешней среды иногда путают с переходами управления. На диаграммах IDEF акторов нет в явном виде. Кому нужны аналогии могут считать, что стрелки соединяющие блоки с краями диаграммы соответствуют концепции актора (как объекта внешнего по отношению к моделируемой системе) в UML. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2007, 17:24 |
|
Функционально-структурный анализ
|
|||
---|---|---|---|
#18+
UseCase - вещь конечно очень хорошая и правильная, но не декомпозируется? Больше 8-12 UsaCase на диаграмме - и ничего не разобрать. BpWin (IDEF) с функциями декомпозиции - гораздо более эффективная (с моей точки зрения вещь). НО. Декомпозировав диаграмму я не могу собрать другую диаграмму с рамках одной и той же модели но с другой точки зрения. И это бесит. Делать другую модель конечно очень интересно. Но если у нас формируется 10-12 точек зрения, в которых используются общие элементы, мягко говоря затруднительно будет изменять логику нижнего уровня (нижний уровень декомпозиции) сразу для нескольких моделей. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2007, 12:28 |
|
|
start [/forum/topic.php?fid=33&msg=34330852&tid=1549152]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 258ms |
total: | 539ms |
0 / 0 |