Требования к системам в мировой литературе

77bd4daa3ab9f9d88cb6d2c89eabc3f5.jpg

Вступление

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

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

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

1. Бизнес-правила

— Мона, — попросила она, — прочти-ка мне четвёртую заповедь. Она ведь запрещает спать в кроватях, разве нет?

Мона с трудом разобрала по складам.

— «Животное да не спит в кровати под простынями», так там написано, — доложила она наконец. И вот что любопытно: Кашка не помнила, чтобы в четвёртой заповеди говорилось о простынях, но раз так написано на стене, выходит, что говорилось.

Джордж Оруэлл, «Скотный двор» [1, с. 338]

Бизнес-правила (корпоративные политики, законы, отраслевые стандарты, алгоритмы вычислений и пр.) — не самый широко учитываемый класс требований. Меж тем Карл Вигерс отмечает их важность и обращает внимание на то, что если бизнес-правила не задокументированы и не хранятся должным образом, то сотрудники «могут по-разному понимать правила, в результате чего отдельные программные системы могут пo-разному выполнять одно и то же бизнес-правило» [18, с. 162].

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

Герои «Скотного двора» явно пренебрегали этими рекомендациями.

2. Бизнес-требования

Прямо сказать, я не смог бы здесь пожаловаться на ограниченность выбора, так как надписи «сдаётся в наём» и «квартира свободна» виднелись чуть ли не в каждом втором окне. Я направился в первый показавшийся мне привлекательным дом, переговорил с довольно бестолковой и жадной матроной, его хозяйкой. Комната сдавалась за тринадцать шиллингов в неделю. Так как мне не доводилось снимать комнат, то я не имел понятия, дёшево это или дорого. Скорее последнее, так как я, услышав такую цену, попробовал вскинуть брови, и хозяйка тогда сбавила до десяти шиллингов и шести пенсов. Я опять поднял бровь и издал возглас удивления, но теперь она твёрдо стояла на своём, и я понял, что достиг настоящей цены. Итак, мне удалось нанять комнатку за десять шиллингов шесть пенсов.

Артур Конан-Дойль, «Загадка Старка Монро» [2, с. 194]

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

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

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

— Капитан Немо, — сказал я, — результаты налицо, и я не притязаю на объяснения. Я не забыл ещё, как искусно маневрировал «Наутилус» вокруг «Авраама Линкольна», и мне известна его быстроходность. Но развить скорость — этого ещё недостаточно. Нужно видеть, куда идёшь! Нужно иметь возможность направлять судно вправо, влево, вверх, вниз!

Жюль Верн, «Двадцать тысяч лье под водой» [3, с. 99]

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

4. Нефункциональные требования

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

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

4.1. Совместимость, удобство и концептуальная целостность

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

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

Льюис Кэрролл, «Приключения Алисы в Стране чудес» [4, с. 34–35]

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

Если копнуть чуть глубже, то можно в приведённой цитате разглядеть сразу несколько видов неучтённых НФТ:

  • Совместимость. Несоответствие размера ключа и замочной скважины — явное нарушение требования совместимости.

  • Удобство использования. Не знаю, как вам, а у меня стол на трёх ножках вызывает вопросы. Что касается двери высотой в 15 дюймов (38,1 см), то это точно фиаско.

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

4.2. Надёжность

Однако он не успел выговорить этих слов, как заговорил иностранец:

— Да, человек смертен, но это было бы ещё полбеды. Плохо то, что он иногда внезапно смертен, вот в чём фокус! И вообще не может сказать, что он будет делать в сегодняшний вечер.

Михаил Булгаков, «Мастер и Маргарита» [5, с. 19]

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

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

— Это значит, что я был полным идиотом! Быстрее, быстрее в Вестминстер! Мы ещё можем успеть!

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

Запасной ключ должен был находиться у портье и после некоторых сложностей нам всё же удалось его заполучить.

Агата Кристи, «Большая четвёрка» [6, с. 112]

4.3. Доступность

Старуха разместила бурсаков: ритора положила в хате, богослова заперла в пустую комору, философу отвела тоже пустой овечий хлев.

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

— А что, бабуся, чего тебе нужно? — сказал философ.

Но старуха шла прямо к нему с распростёртыми руками.

«Эге-ге!- подумал философ.— Только нет, голубушка! устарела». Он отодвинулся немного подальше, но старуха, без церемонии, опять подошла к нему.

— Слушай, бабуся! — сказал философ, — теперь пост;, а я такой человек, что и за тысячу золотых не захочу оскоромиться.

Николай Гоголь, «Вий» [7, с. 364]

Доступность, если совсем по-простому, это время непрерывной работы системы.

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

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

4.4. Поддерживаемость

— Прелестное объяснение, — сказал мистер Трой.— Как к нему отнеслись ваши гости из страховой конторы?
— Они спросили, есть ли у меня доказательства, что муж умер.
— И что вы им сказали?
— Я сказала: у меня есть больше чем доказательства. У меня есть уверенность

Уилки Коллинз, «Отель с привидениями» [8, с. 67]

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

4.5. Удобство использования

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

Франц Кафка, «Свадебные приготовления в деревне» [9, с. 155]

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

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

4.6. Безопасность

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

Герберт Уэллс, «Остров доктора Моро» [10, с. 123–124]

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

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

4.7. Ремонтопригодность

Слуги начали вытаскивать из кареты огромные чемоданы. Федяшев, заметив в толпе Степана, поманил его пальцем.
— Степан, у гостя карета сломалась…
— Вижу, барин. Ось полетела, да спицы менять надо.
— Починить сможешь?
— За день сделаю.
— А за два?
Степан глянул на барина, перевел взгляд на карету:
— Можно и за два.
— А за пять?
Степан задумчиво почесал в затылке:
— Трудновато, барин. Но ежели постараться, можно и за пять…
— А за десять дней?
Степан аж крякнул:
— Ну, барин, тут тогда самому не справиться. Помощник нужен. Хомо сапиенс!
— Бери помощников! — приказал Федяшев и, многозначительно подмигнув, поднялся по ступенькам в дом.

Григорий Горин, «Формула любви» [11, с. 110]

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

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

4.8. Локализация

— Тебя как человека просят, — петушился старик и надувал грудь.— А ты мне говоришь, что в твоём кабаке не найдётся пинтовой кружки?
— Да что это за чертовщина такая — пинта, — возражал бармен, упершись в стойку.
— Нет, вы слыхали? Бармен называется — что такое пинта, не знает! Пинта — это полкварты, а четыре кварты — галлон. Может, тебе азбуке поучить?
— Сроду не слышал, — отрезал бармен.— Подаём литр, подаём пол-литра — всё. Вон на полке посуда.
— Пинту хочу, — не унимался старик.— Трудно, что ли, нацедить пинту? В моё время никаких ваших литров не было.
— В твоё время мы все на ветках жили, ответил бармен, оглянувшись на слушателей.

Джордж Оруэлл,»1984» [1, с. 91]

Казалось бы, чем плохи пол-литра?

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

4.9. Производительность и масштабируемость

В лесу Урфин Джюс пометил деревья, которые нужно было свалить, и указал, как их надо распиливать.

Заготовленные кряжи из лесу во двор Урфина перевозил Топотун…

Сделав второго солдата, Урфин Джюс задумался: много месяцев уйдёт на создание его армии. А ему не терпелось отправиться в поход. И он решил обратить в подмастерьев двух первых солдат.

Александр Волков, «Урфин Джюс и его деревянные солдаты» [12, с. 22–23]

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

В то же время Урфина спасла возможность горизонтально масштабировать своё производство деревянных солдат: добавив в свой «кластер» двух первых солдат, он в конечном счёте смог без каких-либо сложностей обеспечить увеличение объёма выполняемых операций.

4.10. Особенности хранения данных

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

Михаил Булгаков, «Роковые яйца» [13, с. 134]

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

4.11. Повторное использование

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

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

Эрнест Хемингуэй, «Старик и море» [14, с. 59]

Хорошо, что рыболовные снасти можно использовать многократно.

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

4.12. Переносимость

Аладдин совсем забыл про это кольцо. Он потёр его, и перед ним явился джин Дахнаш и сказал:
— О владыка кольца, я перед тобой! Чего ты хочешь? Приказывай!
— Хочу, чтобы ты перенёс мой дворец на прежнее место! — сказал Аладдин.
Но джин, слуга кольца, опустил голову и ответил:
— О господин, я не могу этого сделать! Дворец построил раб лампы, и только он один может его перенести. Потребуй от меня чего-нибудь другого.

Арабская сказка «Аладдин и волшебная лампа» [15, с. 37]

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

4.13. Сертификация

— Доктор Борменталь, умоляю вас, оставьте икру в покое! И, если хотите послушаться доброго совета, налейте не английской, а обыкновенной русской водки. Красавец-тяпнутый (он был уже без халата, в приличном чёрном костюме) передёрнул широкими плечами, вежливо ухмыльнулся и налил прозрачной водки.
— Новоблагословенная? — осведомился он.
— Бог с вами, голубчик, — отозвался хозяин.— Это спирт. Дарья Петровна сама отлично готовит водку.
— Не скажите, Филипп Филиппович, все утверждают, что очень приличная. Тридцать градусов.
— А водка должна быть в сорок градусов, а не в тридцать, — это во-первых, — наставительно перебил Филипп Филиппович, —, а во-вторых, бог их знает, чего они туда плеснули. Вы можете сказать, что им придёт в голову?
— Всё, что угодно, — уверенно молвил тяпнутый.
— И я того же мнения, — добавил Филипп Филиппович и вышвырнул одним комком содержимое рюмки себе в горло…

Михаил Булгаков, «Собачье сердце» [13, с. 201–202]

BABOK отдельно выделяет такой вид НФТ, как сертификация. Под ним понимаются разного рода ограничения решения, которые необходимо удовлетворить для соответствия стандартам или отраслевым соглашениям [19, с. 362]

Иными словами, мы не должны допускать ситуации, когда в общепринятых и стандартных ситуациях система ведёт себя неожиданным образом. Так, нажимая на кнопку с крестиком в правом углу окна приложения под управлением MS Windows, вы со всеми основаниями ожидаете закрытие окна, а не то, что окно развернётся или будет метаться по всему экрану. Ровно также и с водкой — только сорок градусов, никаких компромиссов!

4.14. Энергоэффективность

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

Жюль Верн, «Вокруг света за 80 дней» [16, с. 60]

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

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

Лен Басс с коллегами, заявляя, что современные выпускники инженерных и IT-специальностей зачастую не сталкиваются с вопросами энергоэффективности [20, с. 90] и что «энергоэффективность — это качество, о котором лишь немногие архитекторы задумывались десять лет назад» [20, с. xvi], фактически только подтверждают это.

4.15. Ограничения

— Э, Одарка! — сказала весёлая красавица, оборотившись к одной из девушек, — у тебя новые черевики! Ах, какие хорошие! и с золотом! Хорошо тебе, Одарка, у тебя есть такой человек, который всё тебе покупает;, а мне некому достать такие славные черевики.
— Не тужи, моя, ненаглядная Оксана! — подхватил кузнец.— я тебе достану такие черевики, какие редкая панночка носит.
— Ты? — сказала, скоро и надменно поглядев на него, Оксана.— Посмотрю я, где ты достанешь черевики, которые могла бы я надеть на свою ногу. Разве принесёшь те самые, которые носит царица.
— Видишь, каких захотела! — закричала со смехом девичья толпа.
— Да, — продолжала гордо красавица, — будьте все вы свидетельницы: если кузнец Вакула принесёт те самые черевики, которые носит царица, то вот моё слово, что выйду тот же час за него замуж.

Николай Гоголь, «Ночь перед рождеством» [7, с. 111]

Ограничения — формулировки условий, модифицирующих требования и сужающие выбор возможных решений по их реализации. Это могут быть требования к использованию конкретных протоколов, СУБД или учёт иных параметров, которые напрямую влияют на реализацию. В некоторых ситуациях могут также предъявляться физические ограничения на вес, габариты и пр. (см. [18, с. 125])

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

5. Переходные требование

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

Александр Дюма, «Три мушкетёра» [17, с. 17–18]

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

А что у нас? А у нас молодой д'Артаньян отправляется в Париж, чтобы из провинциального дворянина стать мушкетёром и иметь возможность построить карьеру при дворе.

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

Заключение

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

P.S.

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

Подписывайтесь на мой Telegram-канал. Желаю всем хорошего дня и отличного настроения!

Список использованных источников

Художественная литература

  1. Оруэлл, Джордж. 1984; Скотный двор: [перевод с английского] / Джордж Оруэлл.— Москва: Эксмо, 2021.— 384 с.

  2. Конан-Дойль, Артур. Загадка Старка Монро: Роман / А. Конан-Дойль; [пер. с англ. Антоновой М. и Гелевы П.].— Москва: Гелеос, 2008.— 320 с.

  3. Верн, Жюль. Двадцать тысяч лье под водой / Жюль Верн; [перевод с французского Н. Яковлевой, Е. Корша].— Москва: Эксмо, 2021.— 480 с.: ил.— (Всемирная литература (с картинкой).

  4. Кэрролл, Льюис. Алиса в Стране чудес и в Зазеркалье: [перевод с английского] / Льюис Кэрролл.— Москва: Эксмо, 2021.— 384 с.: ил.— (Всемирная литература (с картинкой).

  5. Булгаков, Михаил Афанасьевич. Мастер и Маргарита / Михаил Булгаков.— Москва: Эксмо, 2021.— 480 с.— Всемирная литература (с картинкой).

  6. Кристи Агата. Избранные произведения. Том 27. Большая четвёрка. Тис и роза: [перевод с английского] / А. Кристи.— Новосибирск: издательство «Гермес», 1996.— 479 с.

  7. Гоголь Н.В. Вечера на хуторе близ Диканьки. Миргород/Послесл. П.А. Николаева; Ил. и оф. А.Г. Антонова.— М.: Правда, 1985.— 464 с., ил.

  8. Коллинз, Уилки. Отель с приведениями / Уилки Коллинз; [перевод с английского].— Москва: Эксмо, 2022.— 320 с.

  9. Кафка, Франц. Превращение: [перевод с немецкого] / Франц Кафка.— Москва: Эксмо, 2022.— 352 с.— (Всемирная литература (с картинкой).

  10. Уэллс Г. «Машина времени», «Остров доктора Моро», «Человек-невидимка», С.Пб., СП «Паллада-ПЭК», 368 с., ил.

  11. Горин Григорий. Тот самый Мюнхгаузен.— М.: Искусство, 1990.— 207 с.: ил.

  12. Волков А.М. Урфин Джюс и его деревянные солдаты.— Новосибирск: Западно-Сибирское книжное издательство, 1981, 175 с., ил., 1л. ил.

  13. Булгаков, Михаил Афанасьевич. Собачье сердце / Михаил Булгаков.— Москва: Эксмо, 2021.— 288 с.— (Всемирная литература (с картинкой).

  14. Хемингуэй, Эрнест. Старик и море. Зелёные холмы Африки : [повести : перевод с английского] / Эрнест Хемингуэй.— Москва: Издательство АСТ, 2017.— 384 с.— (Эксклюзивная классика).

  15. Тысяча и одна ночь.— Арабские сказки. [/Перессказ с арабского М. Салье.] — Новосибирск: Новосибирское книжное издательство, 1991.— 192 с.

  16. Верн, Жюль. Вокруг света за 80 дней [Текст] / Жюль Верн; [пер. с фр. Н. Габинского; худож.Леон Бенетт, Альфонс де Невиль].— М.: Лабиринт Пресс, 2021.— 315, [5] с.: ил.— (Библиотека приключений).

  17. Дюма, Александр. Три мушкетёра. Книга 1 / Александр Дюма; [пер. с франц.].— М.: ИК «Столица» (Изд. группа GELEOS Publishing House); АрхивКонсалт, 2010.— 320 с.— (Книжная коллекция МК).

Профессиональная литература

  1. Вигерс Карл. Разработка требований к программному обеспечению / Пер. с англ.— М.: Издательско-торговый дом «Русская Редакция», 2004. — 576с.: ил.

  2. BABOK. Руководство к своду знаний по бизнес-анализу. Версия 3.0/ Международный институт бизнес-анализа [Пер. с английского].— Москва, 2015.

  3. Len Bass, Paul Clements, Rick Kazman. Software Architecture in Practice, 4th Edition. Addison-Wesley Professional, 2021.

© Habrahabr.ru