Программная инженерия: анализ, проектирование, моделирование

Системный анализ

Показывать лекцию целиком

Цель лекции: После того как мы рассмотрели анализ в целом, а также бизнес-анализ и продуктовый анализ, перейдем к системному анализу, развитие которого было наиболее сложным и прерывистым в нашей стране — его отягощала неверная адаптация принципов и подходов к развивающейся сфере информационных технологий.

4.1       Системный анализ

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

Системный анализ — научный метод, который отличается междисциплинарным подходом к решению сложных проблем. Объектом системного анализа выступают практические проблемы, связанные с созданием новых и модернизацией существующих систем[1].

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

Системный анализ — междисциплинарный подход, охватывающий все технические усилия по развитию и верификации интегрированного и сбалансированного в жизненном цикле множества системных решений, касающихся людей, продукта и процесса, которые удовлетворяют потребности заказчика[2].

Тогда появилось несколько исследовательских групп, которые пытались разобраться с системным подходом в его научном (а не инженерном) виде. В те времена системный подход очень часто обсуждался в связи с кибернетикой, которая считалась чуть ли не синонимом компьютерной науки и уж точно ее обобщением[3]. Позднее выяснилось, что кибернетика совсем не так всеобща, как может показаться, — общей науки управления в живой природе так и не получилось, а управление в неживой природе свелось лишь к небольшому курсу теории автоматического регулирования в инженерных вузах. Тогда и возник анализ ПО — не как отдельный, самодостаточный вид анализа, а как предмет, который применяется в процессе разработки программного обеспечения на стадии проектирования (design). Сейчас в фокусе нашего внимания — системный анализ с точки зрения его классического понимания (системной инженерии). Об анализе ПО мы поговорим подробнее в главах, посвященных инженерии требований и проектированию ПО.

Если системный анализ сравнить сравнивать с бизнес- и продуктовым анализом, то по своей распространенности и комплексности методов он является самодостаточным видом аналитической деятельности.

 

4.1.1       Немного истории и об истоках

Основной фокус системного анализа сконцентрирован на понятии «система».

Система — множество элементов, находящихся в отношениях и связях друг с другом, которое образует определенную целостность, единство[4].

Для комплексного понимания этого термина разберем понятие более подробно.

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

Современный этап развития системного анализа в большей степени обязан трудам Л. Фон Берталанфи, который первым из западных ученых разработал концепцию организма как открытой системы и сформулировал программу построения общей теории систем. Он обобщил принципы целостности, организации, эквифинальности и изоморфизма[5].

Система — очень широкое и комплексное понятие. Этим термином можно описать многое в реальном мире. Основное внимание при рассмотрении системного анализа уделяется системам, которые имеют следующие характеристики:

Объединение нескольких систем, обладающих системными свойствами, называют суперсистемой (надсистемой) или системой более высокого порядка[8].

Системный анализ формировался этапами. Его развитие происходило под влиянием различных философских воззрений, теорий о структуре познания и возможности предсказания (Бэкон, Гегель, Ламберт, Кант, Фихте и др.). В результате такого развития системный анализ вышел на позиции методологической науки[11]. И именно с этого момента началось его формирование в качестве практического вида деятельности, который может приносить определенный результат за счет комплексного (системного) взгляда на объекты или события окружающего мира.

Системный анализ тесно связан с философией. Она дает общие методы содержательного анализа, а системный анализ — общие методы формального, межпредметного анализа предметных областей[12].

 

4.1.2       Личности

Исторических личностей, которые заслуживают упоминания в контексте системного анализа, не так много. Первый, кого необходимо упомянуть, — это Л. Ф. Берталанфи, отец современного вида системного анализа.

Людвиг Фон Берталанфи, основатель обобщенной системной концепции под названием «Общая теория систем». Постановщик системных задач — прежде всего в сфере разработки математического аппарата описания типологически несходных систем[13]

Л. Ф. Берталанфи стал первым, кому удалось провести полную систематизацию разрозненной информации складывающегося направления «системный анализ». Он был представителем академической когорты исследователей.

Рассел Линкольн Акофф, американский ученый, исследователь системного подхода и организационного управления, автор и соавтор 35 книг и множества статей, которые внесли значительный вклад в развитие теории систем и научных методов управления[14]

Следующим стоит упомянуть Рассела Акоффа, известного американского ученого в областях исследования операций и теории систем, методы которых активно используются в теории организации и управления[15]. Он является практиком, испробовавшим и доказавшим успешность методов системного анализа в повседневной деятельности.

Л. Ф. Берталанфи был теоретиком, который заложил базу этого направления деятельности, сформулировал цели и задачи, а Рассел Акофф и другие последователи показали практическую значимость системного анализа и продемонстрировали его прикладное значение для исследований в различных областях деятельности.

 

4.1.3       Назначение

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

Системный анализ нацелен на выявление причин сложностей, возникающих перед организациями и коллективами, а также на выработку вариантов решения проблемы.

Системный анализ как прикладной вид деятельности опирается на широкий спектр современных средств научных исследований — моделирование, математику, информатику, наблюдения, эксперименты. Особое внимание уделяется методологии исследований и взаимодействию специалистов различных дисциплин.

Прикладная деятельность непосредственно и прямо ориентирована на практику. Эта деятельность обеспечивает получение желаемого продукта[16].

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

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

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

Волюнтаризм способ принятия решений, игнорирующий объективно существующие условия и закономерности развития чего-либо[17].

С 70-х годов прошлого века системный подход стал использоваться в информатике как основа системного анализа.  Cybersyn — один из первых крупных проектов, который объединил методы системного анализа в целях построения масштабной и весьма амбициозной системы по управлению экономикой Сальвадора. В системе было предусмотрено четыре уровня управления:

Разрабатываемая система должна была обладать обратной связью. Если проблема не разрешалась на более низком уровне за определенный промежуток времени, то автоматически происходила ее передача на более высокий уровень принятия решения. Проект Cybersyn был прерван после переворота Пиночета в 1973 году. Параллельно в это же время в СССР создавалась ОГАС (Общегосударственная автоматизированная система учета и обработки информации) — проект системы автоматизированного управления экономикой СССР. Проектирование и разработка ОГАС были прекращены в начале 1990-х. Сейчас в мире ведется внедрение разнообразных систем управления, использующих принципы системного анализа. Создаются автоматизированные системы управления, которые решают прикладные задачи за счет использования конкретных методов бизнес-анализа и анализа данных для профильных задач сбора данных, расширения узких звеньев производства и увеличения времени обратной связи (рис. 16).

Рис.16

 

4.1.4       Структура и функции

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

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

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

Контекст — законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение входящих в него отдельных слов, предложений и т. п.[18]

Понимание контекста и умение оперировать им — факторы, поддерживающие комплексность результата. Основная функция системного анализа — структурная (целое → части) декомпозиция предмета рассмотрения на соответствующем уровне (глобальная/ секторная/ отраслевая/ предприятий) с пониманием и вниманием ко всем иерархическим деталям. Функциональное рассмотрение (что должно делать? / что делает?) обосновывается тем, что достижение результата возможно при наличии объекта рассмотрения, который как раз и должен быть подвергнут декомпозиции. Реализация функции объекта возможна при наличии материальной или информационной основы. Впоследствии по ходу жизненного цикла функция будет способствовать трансформации объекта рассмотрения.

Спроектированная система может быть определена как комбинация компонентов, которые работают совместно для коллективного выполнения полезной функции.

Для иллюстрации взаимосвязи понятий функции и конструкции (структуры) полезно рассмотреть следующее представление системы (рис. 17).

Рис.17

Структура в своем законченном представлении — конструкция системы, формирующая ее границы. Границы могут быть как физическими, так и информационными. Основное назначение структуры (конструкции) — законченное представление системы определенного уровня. Конструкция как законченное представление структуры совместно с функцией формирует комплексное представление любой системы.

Система определяется как иерархия холонов — холархия. Холон — это что-то, что является целым для своих частей и одновременно само является частью для какого-то объемлющего целого. Система — это холон, у которого есть появляющиеся (emergent) свойства, возникающие в результате взаимодействия его частей[19].

Системный анализ рассматривает любую систему как объект своей деятельности. Над этой системой поэтапно могут выполняться следующие виды работ:

«Черный ящик» термин, используемый для обозначения системы, внутреннее устройство и механизм работы которой очень сложны, неизвестны или неважны в рамках данной задачи[21].

Практически структура системного анализа формируется на основе рассматриваемой системы и задач/функций, выполняемых системой. Функции системного анализа помогают в выстраивании самой конструкции объекта (законченного структурного представления).

 

4.1.5       Артефакты деятельности

Мы подошли к рассмотрению основных артефактов системного анализа, которые должны поддерживать и обеспечивать целевой процесс, в данном случае — процесс проведения системного анализа. Выполнение системного анализа позволяет решать проблемы различного уровня абстракции — от совсем высокоуровневых до крайне конкретных, на соответствующих нижних уровнях. Каждый уровень абстракции предполагает работу над разными аспектами информации с разной степенью детализации. На верхнем уровне критично выявить основные системные закономерности и связи. Чем ниже уровень, тем корректнее надо фокусироваться на конкретных проблемах и задачах, которые стоят перед разными группами целевых пользователей, реализующих функции системы. Один из вариантов декомпозиции выглядит следующим образом (рис. 18):

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

Рис. 18

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

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

Рассмотрение системы с разных точек зрения является логичным продолжением и дополнением декомпозиции системы на структурные элементы (рис. 19). Такое рассмотрение позволяет дополнить иерархию артефактами, назначение которых —интегрировать разрозненные компоненты в единое представление (функционирующий продукт). Каждое представление является законченным функциональным взглядом на аспект системы.

Рис. 19

Теперь мы можем говорить о системе артефактов, которые должны поддерживать представление о рассматриваемой системе как о ее модельном отражении.

Модель системы — способ абстрактного представления объекта в какой-либо форме, предназначенной для представления определенных аспектов этого объекта, в целях их изучения и последующей манипуляции над ними.

Модель системы — пространственное представление взаимосвязанных аспектов и атрибутов, которые представляют для нас наибольший интерес. Система артефактов может быть реализована с разной степенью погружения в детали функционального направления. Основным является верхний уровень представления, который формирует контекст использования того или иного атрибута. Большая детальность может быть обоснована сложностью системы или условиями ее разработки, а также поддержки:

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

Рис. 20

Есть еще один важный момент, на котором стоит акцентировать внимание перед тем, как рассматривать разные уровни и разные артефакты, принятые в направлении системного анализа.

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

На этом уровне задается цель функционирования системы и определяется миссия предприятия.

Миссия деятельность предприятия, предусматривающая производство потребительской продукции или услуги, ради которых оно было создано; механизм, посредством которого предприятие достигает своих целей и задач[22].

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

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

Если первые два уровня во многом можно описать «внешними» уровнями системы — то есть на них мы ничего не говорим про устройство нашей системы, а описываем требования к ней и то, как эти требования декомпозируются на отдельные части системы, — то на этом уровне мы переходим «внутрь» системы и проводим ее детальное описание с точки зрения того, как указанные возможности будут раскладываться на части системы, а также каким образом и в каких ее частях они будут реализовываться. Для этого представления используется шаблон функциональных требований.

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

 

4.1.6       Как развиваться в этом направлении

Профессиональная траектория развития в системном анализе имеет ряд направляющих. Как и в ситуации с типами анализов, рассмотренными ранее, эти направляющие определяются профессиональным контекстом, в котором развивалась личность аналитика (рис. 21). Из наиболее вероятных траекторий выделяют:

Рис. 21

Этот тип роста обоснован в случаях, когда аналитик концентрируется на знании и освоении конкретной системы (SAP, Oracle, …) или класса систем (электронного документооборота, построения сквозной бизнес-аналитики компании). В этом случае аналитик постепенно трансформируется в эксперта по выделенному инструменту. Это интересный и сложный путь, который ограничивает развитие рамками конкретной информационной системы, что является его определенным преимуществом и то же время недостатком. Развитие и востребованность будут зависеть не столько от развитости профессионала, сколько от востребованности платформы.

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

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

Профессия системного аналитика, в противовес бизнес- и продуктовому аналитикам, — самая старая. Это позволило накопить и систематизировать информацию о том, как поэтапно развиваться в этой профессии. Результат — стандартизация этого вида деятельности на государственном уровне. Многие страны создали и развивают такие профильные стандарты, и наша страна — не исключение. В 2014 году появился профессиональный стандарт № 809[23]. Это структурированный и детальный документ, который начинающие и развивающиеся аналитики могут использовать в качестве профессиональной карты компетенций.

Карта компетенций инструмент, который помогает развитию персонала и формированию команд для проектов на основе понимания их нужд[24].

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

 

Контрольные вопросы

Настало время вопросов для калибровки и самопроверки по системному анализу (рис. 21.1).

  1. Для чего нужен системный анализ?
    1. Кто является основными потребителями системного анализа?
  2. В чем состоит специфика системного анализа?
    1. На что направлен системный анализ?
    2. Какие отличия между продуктовым и системным анализом?
  3. Что оказывает влияние на контекст системного анализа?
    1. Что требуется для распространения системного анализа в конкретной компании?
    2. Какие факторы оказывают наиболее сильное влияние на развитие системного анализа?
  4. Какова область применения системного анализа?
    1. Какие сферы области информационных технологий сильнее всего нуждаются в системном анализе?
    2. Какова ценность от применения системного анализа?

Рис.21.1

 

[1] http://systems-analysis.ru/systems_analysis.html

[2]https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%8F

[3]http://techinvestlab.ru/files/systems_engineering_thinking/systems_engineering_thinking_2015.pdf

[4] Система // Большой Российский энциклопедический словарь. М.: БРЭ. 2003. С. 1437.

[5] http://victor-safronov.ru/systems-analysis/lectures/spicnadel/01.html

[6] http://lopatnikov.pro/slovar/c/celostnost-sistemy/

[7] http://victor-safronov.ru/systems-analysis/lectures/rodionov/01.html

[8] https://studopedia.su/15_166901_podsistema-nadsistema-komponenti-i-elementi.html

[9] https://epistemology_of_science.academic.ru/902/%D1%86%D0%B5%D0%BB%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C

[10] https://ru.wikipedia.org/wiki/%D0%A3%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D0%BE%D1%81%D1%82%D1%8C

[11] https://monographies.ru/en/book/section?id=15749

[12] https://monographies.ru/en/book/section?id=15749

[13]https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D1%82%D0%B0%D0%BB%D0%B0%D0%BD%D1%84%D0%B8,_%D0%9B%D1%8E%D0%B4%D0%B2%D0%B8%D0%B3_%D1%84%D0%BE%D0%BD

[14]https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D1%82%D0%B0%D0%BB%D0%B0%D0%BD%D1%84%D0%B8,_%D0%9B%D1%8E%D0%B4%D0%B2%D0%B8%D0%B3_%D1%84%D0%BE%D0%BD

[15] https://www.livelib.ru/author/310443-rassel-akoff 

[16]https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B0%D1%83%D0%BA%D0%B0

[17]https://ru.wiktionary.org/wiki/%D0%B2%D0%BE%D0%BB%D1%8E%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B7%D0%BC

[18] https://dic.academic.ru/dic.nsf/ruwiki/24990

[19] http://sewiki.ru/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0

[20] https://spravochnick.ru/informacionnye_tehnologii/funkcii_sisemnogo_analiza/

[21]https://ru.wikipedia.org/wiki/%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B9_%D1%8F%D1%89%D0%B8%D0%BA

[22] https://dic.academic.ru/dic.nsf/anticris/72270

[23] http://fgosvo.ru/uploadfiles/profstandart/06.022.pdf

[24] https://onagile.ru/trends/talents/agile-for-hr-stars-map

Вернуться к учебному плану