Декомпозиция в тестировании и при анализе приложения. Иерархическая структура системы моделей. Разработка структурной декомпозиции работ

Последовательная декомпозиция целей

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

Например, вместо подцели "увеличение производительности труда" следует самостоятельно включить в состав "дерева" определяющие ее показатели: "увеличение выпуска продукции" и "экономию затрат живого труда". Вместо подцели "снижение материалоемкости продукции" достаточно предусмотреть "экономию материальных ресурсов", если подцель "увеличение выпуска продукции" уже включена в состав "дерева целей".

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

Полнота "дерева целей" и соответствие рангов подцелей. Полнота "дерева целей" обеспечивается путем:

1) разбиения исходной цели или очередной промежуточной подцели
п-то ранга на наиболее укрупненные, однородные составляющие подцели
(л+1)-го ранга. Обычно удается выделить от 2 до 5 таких подцелей;

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

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

Проверка соответствия рангов подцелей состоит в следующем: из выделенных подцелей (n + 1)-го ранга надо попытаться найти две или несколько таких, которые можно объединить по некоторому общему принципу, но в то же время к этому объединению нельзя отнести остальные подцели. Если такая попытка увенчается успехом, это будет означать, что однородность подцелей нарушена и требуется корректировка рангов подцелей (подробнее см. ).

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

Обобщая процесс формирования целей, можно сделать следующие выводы:

¨ совокупность целей проблемы имеет иерархическую структуру, поcтроение и анализ которой следует осуществлять методом последовательного разделения (декомпозиции) более общих целей на их составляющие, обеспечивая полноту выявления подцелей и их взаимное соответствие по уровню в иерархии (по рангам);

¨ результаты декомпозиции удобно фиксировать в виде "дерева целей", которое оформляется либо в виде графа иерархической структуры, либо в виде таблицы, строки которой определяют место подцели в иерархии;

¨ для проблем, проработка которых осуществляется силами одной организации, декомпозиция целей выполняется главным образом, чтобы обеспечить полное выявление аргументов целевой функции. В таких случаях в состав "дерева целей" следует включать только собственно цели. Выявление и систематизацию путей достижения целей (подпроблем) целесообразно выделить в самостоятельную процедуру, выполняемую после построения "дерева целей" и при условии его использования;

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

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

Даже для одного предприятия может быть построено несколько вариантов "дерева".

Используя ранее изложенную методологию, построим "дерево целей" для химического предприятия с широким ассортиментом продукции (рис. 4.5). Зададим цель - максимальное повышение эффективности предприятия. Целевую функцию максимального повышения эффективности деятельности предприятия можно представить в виде двух основных групп подцелей: подцель 1 - достижение конечных результатов (у j); подцель 2 - экономия ресурсов всех видов (х j).

Очевидно, каждую из этих групп можно рассматривать как одну из двух основных подцелей (т.е. подцелей 1-го ранга).

В свою очередь, среди конечных результатов выделим результаты ос-вной деятельности системы (по производству продукции, услуг, информации) и результаты решения социальных задач. Каждую из этих групп ДЦелей можно рассматривать как подцель 2-го ранга:

подцель 1.1 -- удовлетворение потребности в продукции и услугах;

подцель 1.2 - достижение социальных целей.

Со своей стороны, другая подцель 1-го ранга (экономия ресурсов всех лов) может быть также разбита на две или несколько подцелей 2-го ранга. Например, на экономию текущих (регулярных) затрат, измеряемых как правило, в рублях в год, и экономию единовременных затрат, измеряемых в рублях:

подцель 2.1 - экономия текущих затрат, снижение потерь;

подцель 2.2 - экономия единовременных затрат.

Развиваем "дерево целей" предприятия, последовательно расчленяя четыре подцели 2-го ранга, представленные на рис. 4.5.

Подцель 1.1 - удовлетворение потребности в продукции и услугах может быть дезагрегировано на три основных подцели: удовлетворение потребности по количеству продукции, по ее качеству, а также улучшение временных (динамических) характеристик производства.

Подцель 1.1.1 - удовлетворение потребности по количеству продукции следует дифференцировать далее, выделяя отдельные группы и марки продукции.



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

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

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

подцель 1.1.3.1 - обеспечение ритмичности поставок продукции;

подцель 1.1.3.2 - ускорение реакции производства на изменение спроса. Дальнейшее дезагрегирование указанных подцелей зависит от поставки анализируемой проблемы и конкретных условий ее решения.

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

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

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

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

1.1. Перечень технологических процессов ФНС России (далее - Перечень) представляет собой систематизированный посредством классификационных группировок свод всех регламентированных последовательностей взаимосвязанных действий, осуществляемых ФНС России, ее территориальными налоговыми органами и подведомственными ФНС России организациями, направленных на достижение заданного результата в сфере обеспечения функционирования, развития и реализации полномочий ФНС России (далее - технологические процессы ФНС России).

1.2. Перечень предназначен для систематизации технологических процессов ФНС России и кодирования информации о них, а также для указания начальников структурных подразделений центрального аппарата ФНС России, ответственных за получение результата по технологическому процессу ФНС России, методологическое и/или организационное сопровождение его выполнения (далее - владелец технологического процесса ФНС России).

1.3. Также в Перечне при необходимости указывается начальник структурного подразделения центрального аппарата ФНС России, ответственный за получение результата по отдельным составным частям технологического процесса (далее - операции) и методологическое сопровождение их выполнения (далее - совладелец технологического процесса ФНС России).

1.4. Целью формирования Перечня является определение всех технологических процессов ФНС России и их владельцев (совладельцев) для обеспечения эффективной взаимосвязи и взаимодействия организационных, технологических, информационных и других ресурсов в рамках комплексного подхода к осуществлению деятельности ФНС России.

1.5. Систематизация технологических процессов ФНС России в Перечне основана на иерархическом методе классификации и последовательном методе кодирования.

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

1.7. Актуальный Перечень доступен для просмотра по ссылке, размещенной на Интранет-портале ФНС России.

1.8. Декомпозиция технологических процессов ФНС России для формирования Перечня осуществляется до уровня, при котором результатом выполнения является ценность в виде оформленного решения (документа) лица, уполномоченного на его принятие (утверждение, подпись) в соответствии с документом (нормативным правовым актом и/или приказами, планами, письмами, разъяснениями, методическими рекомендациями и т.п., а также поручениями руководства ФНС России и других ведомств), регламентирующим выполнение технологического процесса ФНС России.

1.9. Декомпозицией 1-го уровня является классификация технологических процессов ФНС России на:

Технологические процессы ФНС России, выполняемые непосредственно в целях реализации полномочий в сфере налогообложения, государственных функций, государственных услуг, а также информационного взаимодействия в соответствии с заключенными соглашениями, положениями и протоколами (далее - основные технологические процессы ФНС России);

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

Вспомните, что SADT-аналитик делает набросок декомпозиция, подвергает его критической оценке, перечерчивает и затем выпускает соответствующую папку. Эта глава состоит из трех уроков, связанных с созданием декомпозиции первого уровня - т.е. декомпозиции блоков диаграммы АО. В уроке 8 создается диаграмма, декомпозирующая один блок диаграммы АО. Урок 9 - авторская критика и пересмотр диаграммы. В уроке 10 рассматривается процесс создания папки для рецензирования.

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

Урок 8. Групповое построение диаграмм

Цель

Выбрать и декомпозировать один из блоков диаграммы АО.

Действия

    Выберите блок диаграммы АО. Этот блок является контекстным на протяжении всего этого урока. Не выходите за его границы.

    Мысленно проверьте этапы построения диаграммы: составить список объектов, составить список функций, сгруппировать функции в 3-6 блоков, начертить блоки в порядке убывания доминантности; начертить внешние дуги, начертить дуги управления, начертить входные и выходные дуги.

    Прочтите диаграмму АО снова, сосредоточившись на том, как ваш блок согласуется с другими блоками. Используйте граничные дуги выбранного вами блока для начала составления списка данных.

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

    При вычерчивании делайте для себя примечания и определяйте терминологию.

    После окончания работы проверьте ICOM-коды. Удостоверьтесь, что вы не забыли использовать граничные данные.

Примечания

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

    На данном этапе не беспокойтесь о корректности этой диаграммы. Декомпозиции данного уровня редко удаются с первого раза.

Образец

    Обратите внимание на то, что сначала перечислены внешние входные дуги, дуги управления и выходные дуги, а затем -последующие данные, составляющие компоненты этих дуг. Так вы будете уверены, что не забыли контекст, в котором работаете.

    Обратите внимание на управляющую обратную связь от блока купить к блоку составить список покупок. Это описывает ситуацию, когда вы изменяете список покупок, если видите, что в магазине отсутствует что-то из запланированного.

Урок 9. Критическая оценка декомпозиции первого уровня

Цель

Критически исследовать построенную в уроке 8 диаграмму, чтобы определить, как она детализирует родительский блок диаграммы АО.

Действия

    Просмотрите построенную диаграмму и попытайтесь изложить то, как она отражает свою часть задачи питания семьи. Начните с логического начала: с поступления одного или более объектов из блока диаграммы АО. Обращайтесь непрерывно к диаграмме АО и делайте примечания, когда находите изложение неверным или неполным.

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

    Постройте видоизмененную в соответствии с вашими замечаниями диаграмму и перечертите, если необходимо, диаграмму АО. Не забывайте проверять ICOM-связи между рассматриваемой диаграммой и диаграммой АО.

Примечания

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

Образец

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

    Блок составить список покупок сделан более общим.

    Это означает, и что теперь функция Спланировать покупки управляет еще и выбором магазинов.

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

Урок 10. Подготовка папки

Цель

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

Действия

    Подготовьте как вашу диаграмму, так и глоссарий и проверьте согласованность информации.

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

    Добавьте в поле комментариев титульного листа другие специальные комментарии или замечания для читателей.

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

Примечания

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

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

Образец

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

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

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

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

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

Декомпозиция системы чаще всего представляется в виде иерархического дерева, вершина которого — сама система, а уровни — выделенные подсистемы.

Подобные иерархические деревья для приложений можно строить с целью:

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

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

· при создании чеклистов или тест-кейсов

· при выполнении тестирования исследовательским способом

· при проведении тестирования требований

· при планировании и оценке задач по тестированию

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

Признаки декомпозиции

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

Рис. 1. Скриншот приложения «Браузер»

В качестве признака разделения приложения могут использоваться:

  • внешний интерфейс (экран, окно, закладка и т.п. со всеми элементами интерфейса). На рис. 2 показан пример декомпозиции по этому признаку.
  • компонентная структура (функциональные модули приложения и их интеграция в более сложные модули). См. пример на рис. 3.
  • функции приложения и их варианты использования (см. пример на рис. 4),
  • обрабатываемые приложением объекты и данные (и часто нужно анализировать не то, что видно, а то что скрыто внутри — что передается на вход, что на выходе, что храниться внутри системы),
  • характеристики (параметры) объектов и данных или в целом всей системы (например, если объект — это файл, то параметры это — формат, размер, создатель, дата создания и т.д.),
  • действия над объектами (если объект «файл», то действия — удалить, переименовать, переместить, а если объект «список файлов», то действия — сортировать, фильтровать, выделить несколько файлов)
  • состояния, в которые переходит приложение или его модули,
  • этапы взаимодействия пользователя с приложением (см. пример на рис. 5),
  • виды пользователей,
  • характеристики качества (функциональность, удобство использования, производительность и т.д.),
  • и другие.

Рис. 2. Пример декомпозиции по элементам интерфейса приложения «Браузер»

Рис. 3. Пример компонентной декомпозиции приложения «Браузер»

Рис. 4. Пример функциональной декомпозиции приложения «Браузер»

Рис. 5. Пример декомпозиции по этапам взаимодействия пользователя с приложением «Браузер»

Часто декомпозиция одной и той же системы может осуществляться по нескольким признакам, порядок их выбора зависит от квалификации и предпочтений тестировщика. Декомпозиция – задача очень субъективная. И самое главное, чтобы тестировщик осознавал свой выбор принципа декомпозиции в каждый момент времени.

Принципы декомпозиции

1. Каждое разделение образует свой уровень.

Исходная система располагается на нулевом уровне. После её разделения получаются подсистемы первого уровня. Разделение этих подсистем или некоторых из них приводит к появлению подсистем второго уровня и т.д.

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

2. Все подсистемы одного уровня, являющиеся подсистемами одной и той же системы, должны разделяться по одному признаку. Другими словами, должны отвечать на один и тот же вопрос относительно своего родителя.

3. Вычленяемые подсистемы в сумме должны составлять всю систему (как пазл соединяться в одну картинку). При этом они должны взаимно исключать друг друга.

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

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

К неоднозначности может привести использование на одном уровне взаимно пересекающихся подсистем. Например, в сводке расходов за месяц, в большинстве случаев немного странно будут выглядеть пункты: еда, аренда помещения, канцелярия, коммунальные услуги, подогрев воды. Обычно подогрев воды относится к коммунальным услугам.Соответственно, при выделении этих пунктов на один уровень могут возникнуть вопросы формата: расходы на подогрев воды — это дополнительные расходы сверх нормы? Или это постоянные ежемесячные расходы? А не платим ли мы дважды за подогрев воды?

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

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

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

Раньше рекомендовалось выделять 3-6 уровней. В настоящее время существует специальное ПО для создания интеллектуальных карт и управлять декомпозицией стало проще. Однако всё равно следует искать золотую середину, подходящую под ваши условия работы, и учитывать, что когда в структуре получается много уровней, то система становится труднообозримой, в ней сложно ориентироваться. Если же глубину делать небольшую, то вероятнее всего возрастет число находящихся на одном уровне подсистем и становится сложно связать их в единую полную систему, сложно искать взаимосвязи.

Системы нижнего уровня называются элементарными.

Если иерархическая схема используется как чеклист, то элементарные системы — это и есть идеи тестов.

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

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

Всё ли охвачено? Не пропущено ли? Может быть есть избыточные ветви или пересекающиеся?

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

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

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