Анализ требований к автоматизированным информационным системам

Виды ИТ анализа

Четвертая лекция курса «Анализ требований к информационным системам» посвящена фундаментальному понятию анализа в контексте информационных технологий. Вводный модуль рассматривает анализ как особый вид деятельности, направленный на снижение сложности и преобразование проблем в решаемые задачи. Слушатели познакомятся с основными видами IT-анализа (бизнес-анализ, продуктовый, системный, анализ данных и процессный), узнают об их специфике, сферах применения и ценности для разработки. Особое внимание уделяется понятию «алгоритм» как ключевому результату аналитической деятельности, его свойствам (конечность, определенность, эффективность) и роли аналитика как автора алгоритма.

Основные мысли

1. Анализ как метод мышления: Анализ — это не просто набор действий, а способ мышления, направленный на декомпозицию сложных объектов или явлений на простые, понятные элементы для последующего синтеза решения.
2. Контекст определяет инструменты: В IT существует несколько устоявшихся контекстов деятельности, для каждого из которых сформировался свой вид анализа (процессный, продуктовый, бизнес-анализ и т.д.), использующий специализированные методы и техники.
3. Цель анализа — алгоритм: Основная функция анализа — преобразовать рассматриваемую ситуацию в набор четких артефактов, которые лягут в основу алгоритма — последовательного набора действий для достижения результата.
4. Качество алгоритма: Эффективность решения задачи зависит от свойств алгоритма: его конечности (завершаемости), определенности (однозначности трактовки) и эффективности (оптимального использования ресурсов), а также от компетентности автора, понимающего контекст.
5. Единство подхода: Несмотря на различия в объектах (бизнес, продукт, система, данные), все виды анализа следуют общей схеме: идентификация проблемы, уточнение, поиск решения, реализация и проверка результата.
Показывать лекцию целиком
Краткое изложение


Мы начинаем четвертую лекцию курса «Анализ требований к информационным системам». В первом модуле мы обсудим виды анализа, в которых применяется инженерия требований для решения прикладных задач. Требования, как мы выяснили, – это способ преобразования, который необходимо использовать для решения задач в конкретной деятельности, направленной на достижение результатов. Анализ – тип такой деятельности. Суть анализа – уменьшить суммарную сложность, представив ее в виде связанных рисков, каждый из которых решается за счет выполнения конкретных действий. Именно о типах анализа, каждый из которых направлен на решение проблем определенного контекста, мы и будем говорить в этой лекции.

Анализ как вид деятельности направлен на то, чтобы решить проблему, любую. Но в зависимости от того, какой контекст имеет проблема, к ней лучше подходить с специализированным инструментарием, то есть с набором методов и техник, которые позволят выработать точные и эффективные решения. Информационные технологии – комплексный, разносторонний вид деятельности, в котором много проблем и задач. Информационные технологии, как прикладной вид деятельности, содержит прикладной контекст. Этот контекст влияет на суть проблемы и подходы к ее решению. По мере эволюционирования информационных технологий сложилось несколько основных контекстов. Они продолжают формироваться и трансформироваться все время, но нужно сказать, что основные на данный момент известны и выявлены. Виды IT-анализа направлены на эти контексты и помогают решать конкретные задачи.

Лекция 4 и все ее модули будут именно про анализ. Мы внимательно рассмотрим процессный анализ, продуктовый анализ, бизнес-анализ, системный анализ и анализ данных. Каким-то видам анализа мы уделим больше внимания, каким-то меньше, но рассмотрим все. Мы поговорим о сферах их применения, специфике и выделим ценность, которую они несут. Мы обязательно свяжем анализ с артефактами проектирования и посмотрим на то, как они влияют друг на друга. Говоря про анализ, нужно помнить о том, что это деятельность, которая состоит из определенных работ и приносит результат после того, как выполняются определенные действия. Обо всем этом мы и будем говорить в лекции 4.

Этот модуль будет вводным. Мы постараемся дать общее понятие анализа и посмотрим на то, что лежит в его основе, каково его назначение, какие задачи он решает, где его место в разработке информационных систем. Анализ – общее понятие. Говоря об анализе, нужно осознавать, что в информационных технологиях не менее пяти разных общих видов анализа и каждый из них имеет свои артефакты, структуру, функции и сферу применения. Каждый тип анализа приносит свою ценность. Она обосновывается затратами на достижение результатов, которые были выработаны в результате проведения того самого анализа.

Процитирую компетентный источник: анализ – один из основных механизмов процесса мышления, который заключается в выявлении субъектом свойств познаваемого объекта посредством включения объекта в систему связей с другими объектами. Так мы приходим к тому, что анализ – это образ мышления, направленный на критическое осмысление действительности через ее декомпозицию на отдельные объекты. В последующем эти отдельные мини-объекты используются для разработки более сложных объектов. Сложность объектов характеризуется количеством использованных простых объектов и связей между ними. То есть, декомпозируя конкретный объект или ситуацию реального или ментального мира, аналитик накапливает опыт, который потом используется как топливо для процесса проектирования. Анализ разбирает, делит. Иногда очень трудно приступить к рассмотрению сложного и комплексного объекта. Трудно потому, что аналитик пытается сразу осознать сложность объекта целиком. Но это вредит, потому что мешает в осознании сложности через суммы простых вещей. Профессионализм в том числе заключается во взвешенном и спокойном восприятии любой сложности через образ мышления. Анализ формирует багаж, который состоит из элементов. Этот багаж используется для построения функционирующих механизмов и сложных структур, объединяющих в себе элементы и функционирующих по типу отдельных механизмов.

Основная функция анализа заключается в преобразовании рассматриваемого объекта или явления в набор простых, понятных и однозначных элементов. Эти элементы должны стать артефактами, используемыми при построении задуманного решения. Слова, общение, договоренности, письма – это важно, это часть коммуникации, но это не надежные помощники при выполнении анализа. Слова забываются, трактуются по-разному, в зависимости от того, как были поняты. Коммуникации сильно зависят от контекста, отношений между коммуницирующими и других эмоциональных факторов. Договоренности, как правило, определяются конкретной ситуацией, а ситуации очень часто меняются. Письма – это лишь небольшие кусочки информации, не определяющие общего контекста, но влияющие на развитие ситуации, как и многие другие факторы. Все это ненадежно. Важен набор артефактов, которые позволят сделать поэлементный снимок текущей ситуации. Для каждого типа анализа существуют свои артефакты. Они должны воплощать описание элементов и функций, которые необходимо реализовать для достижения желаемого состояния. Все артефакты должны содержать последовательный, пошаговый набор действий, которые приведут к результату. Такую последовательность действий принято называть алгоритмом. Алгоритм – основа построения любого автоматизированного решения. По ходу проведения анализа нужно выбрать наиболее подходящий алгоритм и реализовать его при выполнении практической деятельности.

Алгоритм состоит из последовательности действий, результат выполнения которых – решение конкретной задачи или получение доказательств того, что ее решить нельзя. Конечно, такое описание весьма абстрактно и под него подходит практически любой процесс. Мы приходим к необходимости анализа специфичных понятий и деталей, полученных на основе дополнительно рассмотренных определений. Еще раз перечислим понятия, которые стоит рассмотреть подробнее для понимания сути значения алгоритма: автор алгоритма, определенность алгоритма, конечность алгоритма, эффективность алгоритма, ввод и вывод.

Автор алгоритма привносит в него точку зрения и вариант решения конкретной задачи. От компетентности и профессионализма автора алгоритма зависят многие его дополнительные атрибуты. Автор должен разбираться в контексте решаемой задачи. Это позволит выбрать эффективный алгоритм с точки зрения рассматриваемой ситуации. То, насколько алгоритм будет эффективно решать ту или иную задачу, предопределяет успешность решения. Контекст – полнота описания конкретной прикладной задачи – является источником разработки эффективного алгоритма. Контекст задачи, формулируемый автором, – это первый шаг на пути создания успешного алгоритма. Вывод – автор алгоритма должен хорошо представлять предметную область, для которой разрабатывается алгоритм. В противном случае решение будет не обоснованным с прикладной, утилитарной позиции. Алгоритм приводит к решению задачи за конечное число действий. В принципе, решить можно любую задачу, но решения иногда бывают длительными и очень запутанными. Если мы получаем большое число шагов, это затрудняет решение, делает его сложным.

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

Для достижения эффективности нужно работать над уменьшением ресурсов, которые используются на этапах выполнения алгоритма. Ресурсы (время, скорость) нельзя напрямую сравнить друг с другом. Сравнение не всегда возможно одним эквивалентным значением. Какой из вариантов этапов алгоритма считать более эффективным, определяется дополнительным контекстом выполнения задачи. Ввод – параметр или набор параметров, материалы или прочие артефакты, которые алгоритм использует в качестве входных данных для решения задачи. Эти параметры и условия их использования составляют контекст, который определяет большинство основных и дополнительных характеристик алгоритма. Анализ параметров при выработке алгоритма позволяет сосредоточиться на самых важных его частях. Алгоритмы используются в каждом виде выполняемого анализа. О них и поговорим далее.

Ранее мы выделили виды анализа. Итак, бизнес-анализ. Объект его деятельности – конкретная бизнес-область или коммерческое направление деятельности. При декомпозиции мы опускаемся до уровня объектов, понятных экспертам в предметной области. Этот тип анализа помогает в решении бизнес-проблем, предлагает варианты решения той или иной бизнес-задачи. Далее – продуктовый анализ. Традиционно объект его внимания – цифровой продукт. Декомпозиция проводится до уровня конструктивной единицы продукта. Продуктовый анализ решает задачи повышения ценности продукта за счет выявления наиболее слабых и сильных сторон рассматриваемого продукта и выделения наиболее привлекательных для клиента функций продукта и вариантов их развития. Есть и системный анализ, объект рассмотрения которого – информационная система и ее окружение, а также способы работы с ней. Декомпозиция проводится до уровня конструктивной единицы системы, таких как модуль, таблица базы данных, структура хранения данных. Системный анализ решает задачи развития системы и ее функциональности. Следующий вид анализа – анализ данных. Объект его рассмотрения – бизнес-данные. Декомпозиция проводится до уровня атомарной единицы данных, имеющей ценность для конкретной задачи. Анализ данных решает задачи выявления «чистоты данных», их взаимосвязь, корреляции.

Можно сказать, что, несмотря на такой спектр решаемых задач, каждый тип анализа имеет схожее назначение. Все они призваны идентифицировать источник проблемы, уточнить имеющимися инструментами с привлечением ресурсов, что проблема именно такая, как мы выявили, предложить решение или набор решений, реализовать выбранное решение и проверить, что оно устранило проблему или решило задачу. Если все это не сработало, то нужно повторить. Анализ предлагает двигаться продуманными небольшими шагами в решении поставленной проблемы, чтобы в конечном итоге прийти к желаемой цели. Специфика каждого вида анализа проявляется на конкретном этапе. Выражается это в виде используемых инструментов и методов. Решаются разные задачи, но эти решения должны быть эффективными.

Что интересно, алгоритм решения задач тоже не зависит от типа используемого анализа. Да, отдельные этапы могут занимать разное время, могут использоваться разные инструменты и ресурсы, но можно говорить о каком-то общем метаалгоритме. Такие метаалгоритмы выделяются в аналитические шаблоны и составляют аналитическую базу знаний специалиста. Абстрактно для решения задачи составляется или используется выбранный алгоритм, который потом подвергается проверке. В принципе, мы с вами можем использовать уже знакомый нам термин «валидация». Затем, анализируя результат, мы либо корректируем алгоритм, либо приступаем к решению следующей задачи. Так, у нас есть две основных задачи – составить алгоритм и проверить алгоритм. Для составления алгоритма мы используем извлеченные и разработанные требования, которые помогают в формализации задачи, а для проверки алгоритма мы снова будем использовать требования, чтобы подтвердить, провалидировать, что этот алгоритм помогает в достижении требуемого результата.

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

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

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

Приложения

Презентация 4.1
Введение в тему
Лекция открывает четвертый модуль курса и посвящена видам анализа, используемым в инженерии требований. Анализ определяется как деятельность по уменьшению сложности через преобразование проблемы в набор связанных рисков, каждый из которых требует определенных действий. Выбор подхода к анализу зависит от контекста задачи.

Понятие и функции анализа
Анализ — это механизм мышления, заключающийся в выявлении свойств объекта через его связи с другими объектами. Профессионализм аналитика заключается в способности спокойно воспринимать сложность и раскладывать ее на элементы. Эти элементы становятся артефактами (в отличие от слов и договоренностей, которые ненадежны) и служат основой для построения решения в виде алгоритма.

Алгоритм как результат анализа
Алгоритм — это последовательность действий для решения задачи. Ключевые аспекты алгоритма:
• Автор: Его компетентность и понимание контекста определяют качество решения.
• Определенность: Однозначность каждого шага.
• Конечность: Завершение за конечное число шагов.
• Эффективность: Оптимизация использования ресурсов (время, скорость) в зависимости от контекста.
• Ввод/Вывод: Входные параметры, определяющие условия работы алгоритма.

Виды анализа в IT
В лекции перечислены основные виды анализа:
1. Бизнес-анализ: Объект — бизнес-область. Декомпозиция до уровня, понятного экспертам. Решает бизнес-задачи.
2. Продуктовый анализ: Объект — цифровой продукт. Декомпозиция до функций продукта. Повышает ценность продукта для клиента.
3. Системный анализ: Объект — информационная система. Декомпозиция до модулей, таблиц БД. Развивает функциональность системы.
4. Анализ данных: Объект — бизнес-данные. Декомпозиция до атомарных единиц. Выявляет чистоту данных и корреляции.

Общий подход к решению задач
Все виды анализа объединяет общий метаалгоритм: составить алгоритм решения и проверить его (провалидировать). Требования здесь играют двойную роль: помогают формализовать задачу при составлении алгоритма и служат эталоном для проверки результата. Глобальные проблемы решаются путем секторизации (разделения на связанные части) и трассировки влияния элементов друг на друга

Выводы

• Анализ в IT — это самодостаточная и критически важная область деятельности, которая не существует изолированно, а опирается на собранные требования и неразрывно связана с проектированием.
• Каждый вид анализа (бизнес, продукт, система, данные) обслуживает свой «слой» реальности и требует специфических инструментов, но все они служат одной цели — эффективному решению проблем заказчика.
• Ключевым продуктом аналитика является алгоритм. Понимание свойств алгоритма (конечность, определенность, эффективность) и контекста его применения отличает профессиональное решение от любительского.
• При внесении изменений в отдельные элементы системы (будь то бизнес-процесс или модуль ПО) аналитик обязан оценить готовность всей организационной системы к этим изменениям и их возможные последствия.

Вопросы для самопроверки

1. В чем заключается суть анализа как вида деятельности, согласно лекции, и почему простые договоренности и слова не могут его заменить?
2. Какие пять видов IT-анализа перечислены в лекции? Кратко охарактеризуйте объект декомпозиции для каждого из них.
3. Дайте определение алгоритма. Перечислите и объясните четыре ключевых свойства алгоритма, упомянутых в лекции.
4. Какую роль играет «контекст» в работе аналитика? Почему понимание контекста важно как для выбора вида анализа, так и для оценки эффективности алгоритма?
5. В чем заключается «метаалгоритм» решения задач, общий для всех видов анализа? Какое место в этом цикле занимают требования?
Вернуться к учебному плану