|
|
Разработка и тестирование программного обеспечения
|
«Книга посвящена методам предметно-ориентированного проектирования (DDD). Автор придерживается принципа «от общего к частному», плавно переходя от стратегических шаблонов к средствам тактического программирования. Вон Верной описывает специализированные подходы к реализации систем на основе современной архитектуры, подчеркивая важность ориентации на предметную область с учетом технических ограничений. Опираясь на знаменитую книгу Эрика Эванса Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем, автор описывает методы DDD на примерах известных предметных областей. Каждый принцип подкреплен реалистичными примерами на языке Java, которые представляют интерес и для программистов, работающих на языке С#. Все примеры объединены в рамках единого сценария разработки системы SaaS для многоарендной среды на основе методологии Scrum. Автор выходит далеко за пределы «облегченного подхода DDD», в котором принципы DDD рассматриваются только с технической точки зрения, и показывает, как извлечь максимальную пользу из стратегических шаблонов предметно-ориентированного проектирования с помощью ограниченных контекстов, карт КОНТЕКСТОВ и ЕДИНОГО ЯЗЫКА. Используя описанные методы и приведенные примеры, разработчики смогут сократить время выхода на рынок и повысить качество проектов, создавая более гибкое, масштабируемое и ориентированное на достижение бизнес-целей программное обеспечение.» |
|
Книга посвящена программированию микросервисов — небольших автономных компонентов, позволяющих добиться модульности и отказоустойчивости любой программы. Теория микросервисов тесно связана с философией Unix, способствует улучшению архитектуры любых приложений, помогает избегать громоздкого и запутанного кода. Эта книга поможет читателю заново взглянуть на многие, казалось бы, трудноразрешимые проблемы, масштабировать любые проекты, ювелирно разрабатывать даже самые сложные системы. |
|
Данная книга создавалась на протяжении пяти лет. За это время автор обобщил неписаную, с трудом познающуюся мудрость проектирования программного обеспечения, накопленную за тридцать лет существования UNIX. Реймонд впервые преподносит вместе философию, модели проектирования, инструменты, культуру и традиции, делающие UNIX очагом развития лучших в мире и самых новаторских программ, и показывает, как все это принимается Linux и сегодняшним движением открытого исходного кода. Используя примеры из ведущих проектов с открытым исходным кодом, автор показывает Unix- и Linux-программистам, как применять эту мудрость для создания более изящного, более переносимого, более долговечного многократно используемого программного обеспечения. |
|
Если вы хотите разрабатывать по методике Scrum программные продукты, способные удовлетворить любого заказчика, то в этой книге вы обнаружите единый источник и исчерпывающее руководство по Scrum, которые вы так долго искали. Автор книги, ведущий специалист по обучению методике Scrum, раскрывает в ней основные ценности, принципы и нормы практики Scrum, а также описывает гибкие, проверенные временем подходы, которые помогут вам эффективно внедрить эту методику в своей практике. Книга поможет начинающим приобрести, а имеющим опыт работы по методике Scrum — уточнить и расширить свои знания этой методики на уровне команды разработчиков, продукта и портфеля заказов. Ее материал, основанный на богатом опыте автора, помогавшего многим организациям успешно внедрять Scrum, легко усваивается и подкрепляется многочисленными иллюстрациям, составленными на совершенно новом языке визуальных образов, красноречиво описывающем роли, артефакты и виды деятельности в Scrum. Книга снабжает каждого члена команды разработчиков, руководителя подразделения и организации общим представлением о Scrum, обширным словарем общепринятых терминов, которым они могут пользоваться, применяя методику Scrum в своей деятельности, а также практическими знаниями, позволяющими извлечь из нее максимальную пользу. |
|
Алан Купер начал работу над первым изданием этой книги 20 лет назад. Он убеждал программистов в том, что пришла пора шагнуть навстречу пользователям и начать писать программы, которые будут им нравиться. В наши дни сложилась совершенно иная ситуация — оцифровка всех видов информации заставила пользователей с головой окунуться в новые технологии. Четвертое издание книги учитывает все изменения в отрасли, произошедшие за последние семь лет, с сохранением всех идей из предыдущих изданий, не потерявших актуальности. Проектирование взаимодействия — это ориентированный на человека подход проектирования интерактивных цифровых продуктов, сред, систем и сервисов. Много внимания уделено проектированию поведения — аспекту, которым традиционные дисциплины проектирования нередко пренебрегают. В этой книге во главу угла ставится целеориентированный подход, при котором основное внимание проектировщиков концентрируется на целях пользователей (то есть на причинах, по которым те используют данный продукт), на их ожиданиях, мировоззрении и склонностях. Именно он позволяет создавать мощные решения, с которыми приятно работать. |
|
«В книге рассказано о том, что необходимо для превращения вверенной ИТ-инфраструктуры в отказоустойчивую систему. Какие существуют способы защиты информации, какие этапы необходимо пройти при проектировании, как создать Disaster Recovery Plan (план полного восстановления), как создать эффективную систему резервного копирования, как организовать защиту перемещаемых данных — обо всем об этом и о множестве других полезных вещей вы узнаете, прочтя эту книгу. Большое внимание уделяется связи информационных систем и бизнеса, выстраиванию эффективных, экономически оправданных и легких в освоении систем. Изложение материала построено по принципу «теория + практика», автор не только приводит информацию по основополагающим вопросам, но и щедро делится своим богатым опытом. Издание предназначено для системных архитекторов, инженеров, администраторов, разработчиков отказоустойчивых систем и систем резервного копирования, руководителей ИТ-подразделений, ИТ-менеджеров, специалистов по продажам, а также преподавателей и студентов технических вузов.» |
|
В современных вычислениях программы нередко объединяют несколько процессов. Основная проблема, возникающая при создании таких распределенных программ, состоит в том, чтобы заставить все процессы вместе работать над решением общей задачи, даже в случае отказов некоторых из них. Под отказами подразумеваются: аварийное завершение некоторых процессов, потеря связи с ними и даже злонамеренное нападение на некоторые процессы. Качин, Гуерру и Родригес в данной книге представили вводное описание фундаментальных абстракций распределенного программирования и алгоритмов их реализации в распределенных системах. Авторы используют последовательный подход, знакомя читателей сначала с базовыми абстракциями, действующими в простых окружениях, постепенно смещаясь ко все более сложным абстракциям и окружениям. Данная книга содержит введение в абстракции распределенного программирования и знакомит с фундаментальными алгоритмами и их реализациями в нескольких распределенных окружениях. Перед читателем будут раскрыты важные проблемы распределенных вычислений и основные алгоритмические приемы их решения. На подробных примерах читатель сможет понять, как с помощью этих приемов конструировать распределенные приложения. Обсуждение каждой темы завершается множеством упражнений и их решений. Эту книгу должен прочитать каждый, кто разрабатывает программное обеспечение в нашу многоядерную эпоху! |
|
В учебном пособии рассматривается новый класс автоматизированных информационных систем, реализующих функционал обеспечения доверия к циркулирующим в них данным. Исследуются модели их функционирования в условиях априорной неопределенности поведения предполагаемых нарушителей информационной безопасности и методы повышения уровня информационной безопасности. Издание предназначено для специалистов в области разработки и создания защищенных автоматизированных систем, студентов и аспирантов, а также может быть полезным для научных работников, ведущих исследования в различных областях информатики. |
|
Книга адресована разработчикам микрокода, пишущим те самые программы, на которых работают технологии XXI века. Она заполняет важнейший пробел в литературе по встраиваемому программному обеспечению. Существует настоятельная потребность в сборнике идей и концепций, справочнике, настольной книге инженеров, куда они заглядывали бы, чтобы найти решение своих задач и освежить в памяти забытый материал. Главной темой этой книги является микрокод, однако суровая реальность мира встраиваемого ПО такова, что код и аппаратура взаимозависимы. Они не могут существовать в изоляции; ни в одной другой области программирования нет такой глубокой связи между реальным и виртуальным. Аналоговые инженеры постоянно твердят, что у них прекрасная профессия. Конечно, очень здорово ворочать операционными усилителями. Но бедняги не ведают, как это увлекательно — сделать так, чтобы все двигалось, огоньки мигали, газ тек. Это мы, разработчики встраиваемого ПО, управляем работой моторов, перекачиваем кровь, приводим в действие автомобильные тормоза, и выдвигаем компакт-диски из дисководов. Что может сравниться по притягательности с этой размытой границей между микрокодом и реальным миром? В книге описываются инструментальные средства и методы улучшения качества программного кода, эволюционная разработка ПО, встраиваемые конечные автоматы, системы реального времени, обработка и управление ошибками. Примеры сопровождаются многочисленными листингами на языках С и С++. Издание предназначено инженерам и программистам, использующих встраиваемое ПО в своей работе, а также будет полезно студентам вузов и всем читателям, интересующимся микропрограммным обеспечением. На сайте издательства ДМК-Пресс выложены исходные коды всех примеров программ из книги. |
|
В монографии дается современное изложение теории проектирования алгоритмов быстрых преобразований и модульных нейронных сетей. С системных позиций рассматриваются быстрые преобразования и многослойные нейронные сети с прореженным набором связей и модульной организацией. Предложены алгоритмы структурного проектирования и обучения перестраиваемых быстрых преобразований и нейронных сетей. Исследованы потенциально достижимые свойства быстрых преобразований по пластичности, разделяющей мощности и обобщающей способности. Все рассмотренные алгоритмы сопровождаются примерами и программными реализациями на языке MatLab. Изложение ориентировано на практическое использование в задачах сжатия сигналов высокой размерности, классификации и распознавания образов, спектрального анализа и фрактальной фильтрации. Кроме специалистов по информационным телекоммуникационным технологиям, книга может быть полезна для аспирантов и студентов магистерского уровня подготовки. |
|
«Тестирование программного обеспечения, поставляемого пользователям, часто бывает болезненным, рискованным и длительным процессом. Перед вами книга, представляющая совершенно новую стратегию разработки — набор принципов и практических методик, обеспечивающих быструю инкрементную поставку высококачественного программного обеспечения. Благодаря автоматизации процессов сборки, установки и тестирования и улучшению взаимодействия разработчиков, тестировщиков и администраторов команда проекта получает возможность поставлять изменения и новые средства в течение считанных часов или даже минут, независимо от размера проекта и сложности его кодовой базы. Авторы начинают с рассмотрения основ процесса быстрой и надежной поставки программного обеспечения с минимальными рисками. Затем они вводят понятие «конвейера развертывания» — автоматизированного процесса, управляющего всеми изменениями проекта, от регистрации изменений до выпуска очередной версии программы. И наконец, в книге, обсуждаются способы поддержки непрерывного развертывания, начиная с инструментов управления инфраструктурами, данными и конфигурациями и заканчивая управлением целыми проектами. Авторы предлагают передовые методики, включая автоматизированное управление инфраструктурами, перенос данных и применение средств виртуализации. Для каждой представленной стратегии приведен обзор ключевых проблем, возникающих при ее применении, описаны способы уменьшения рисков и оптимальные методики реализации.» |
|
Книга содержит теоретические сведения и практические инструкции по выполнению рефакторингов, управляемых шаблонами проектирования, а именно последовательности низкоуровневых рефакторингов, позволяющих разработчикам безопасно переходить в своих проектах к реализации шаблонов проектирования, по направлению к ним или выполнять рефакторинг с отказом от шаблонов проектирования. Используя код реальных проектов, Кериевски документирует размышления и действия, имевшие место при реальных рефакторингах более чем двух десятков проектов. Параллельно с этим он проясняет различия между разными шаблонами проектирования и предлагает наиболее простые и эффективные пути их реализации. |
|
В монографии «Мультипроцессорные среды суперЭВМ. Масштабирование эффективности» изложены методы создания мультипроцессорных сред с наперед заданными значениями основных параметров, в частности производительности, эффективности, надежности. Книга адресована специалистам, разрабатывающим сложные вычислительные системы, а также студентам и аспирантам соответствующих специальностей. |
|
«Книга Шаблоны тестирования xUnit может служить полным руководством по написанию автоматизированных тестов на основе xUnit — наиболее популярной инфраструктуры модульного тестирования. Специалист по гибким процессам разработки и эксперт по автоматизации тестирования Джерард Месарош описывает 68 проверенных шаблонов, упрощающих написание, понимание и обслуживание тестов. Кроме того, в книге показан процесс получения устойчивых к изменениям повторяемых тестов, что делает их значительно более эффективными с точки зрения затрат. Из-за большого объема полезной информации книга воспринимается как «три книги в одной». В части I приводится подробное описание процессов автоматизации тестирования, включающее в себя как обзор стратегий тестирования, так и низкоуровневые идиомы кодирования теста. В части II приводится каталог 18 часто встречающихся «запахов» тестов и даются рекомендации по определению основной причины проблемы и выбору шаблона, который позволит ее устранить. В части III подробно описан каждый шаблон, включая инструкции по рефакторингу, сопровождающиеся подробными примерами кода на нескольких языках программирования.» |
|
«Тестирование является ключевым компонентом гибкой разработки. Широкое внедрение гибких методов привело к необходимости помещения в центр внимания приемов эффективного тестирования, а гибкие проекты существенно трансформировали роль тестировщиков ПО. Тем не менее, большинство функций тестировщика остается в значительной степени недопонятыми. В чем же состоит истинная роль тестировщика? Нужны ли гибким командам члены, разбирающиеся в вопросах контроля качества? Что на самом деле означает должность «гибкий тестировщик»? Двое из наиболее опытных в области гибкого тестирования практиков и консультантов, Лайза Криспин и Джанет Грегори, объединились в команду, чтобы предоставить окончательные ответы на эти и многие другие вопросы. В настоящей книге они дают определение гибкого тестирования и показывают роль тестировщиков в реальных гибких командах. Вы узнаете, как использовать квадранты гибкого тестирования для идентификации потребностей в тестировании, требований к тестировщикам и набору инструментальных средств, который поможет проводить тестирование наиболее эффективно. В книге описана итерация гибкой разработки программного обеспечения с точки зрения тестировщика, а также объясняются семь ключевых факторов успеха гибкого тестирования. В этой книге описаны следующие темы. — Как вовлечь тестировщиков в процесс гибкой разработки ПО — Какое место в гибкой команде занимают тестировщики и менеджеры по контролю качества — Как определить нужный момент для найма гибкого тестировщика — Как совершить переход от традиционной циклической к гибкой разработке — Как обеспечить полное выполнение всех действий по тестированию в течение коротких итераций — Как использовать тесты для успешного управления процессом разработки Эта книга предназначена для гибких тестировщиков, гибких команд, их менеджеров и заказчиков.» |
|
В книге подробно описана новая модель данных и ее программная реализация, предложенная и выполненная автором. Цель — дать возможность каждому предприятию построить единую информационную систему высокого качества. Работающая программа и общий подход, описанный в книге, дают возможность решить эту задачу. Особе место в книге занимает применение системы в средней школе — как для тестирования учащихся, так и для управления всем педагогическим процессом. К книге прилагается компакт-диск с копиями экранов и демо-версией программы. |
|
В книге рассмотрены вопросы построения адаптивных систем параметрического оценивания на основе информационного синтеза свойств системы «объект + среда» в рамках гарантированного подхода к проблеме идентификации. Введена новая динамическая структура, описывающая процессы в системе, — наблюдаемый информационный портрет, который расширяет понятие фазового портрета на случай информационного множества системы. На основе наблюдаемого информационного портрета и метода секущих предложены модели и алгоритмы оценки структурных свойств системы «объект + среда». Разработаны процедуры получения параметрических ограничений в условиях неопределенности. Изложен метод адаптивных алгоритмов, позволяющий синтезировать алгоритмы идентификации, адекватные реальным условиям функционирования системы «объект + среда». Изучено влияние условия предельной невырожденности на выбор параметров адаптивной системы. Приведены методы синтеза алгоритмов идентификации непрерывных и дискретных объектов. В заключение рассмотрены информационные технологии, позволяющие реализовать элементы информационного синтеза. Настоящая книга будет полезна всем, кто занимается вопросами построения систем управления, изучением процессов и явлений на основе анализа экспериментальных данных, а также студентам, обучающимся по специальностям «Прикладная информатика в экономике», «Автоматизированные системы обработки информации и управления», «Прикладная математика» при освоении дисциплин, связанных с получением моделей и их применением. |
|
«Результатом анализа и проектирования больших, сложных систем ПО должен стать законченный продукт. Его можно изобразить на бумаге или выразить в виде завершенной модели. Однако аналитики и разработчики ПО редко переносят на бумагу «анатомию» своего труда. В данной книге показан процесс объектно-ориентированного анализа и проектирования реальных систем. Помимо терминологии, обозначений и модельной структуры рассматриваются вопросы анализа, разработки проекта и управления им. Книга помогает перейти от изучения теории объектно-ориентированного анализа/проектирования (OOA/OOD) к ее применению в сложном реальном мире. Она охватывает следующий круг тем: — Поиск правильных объектов. — Построение модели анализа. — Документирование, проверка и исправление модели анализа. — Переход к проектированию. — Построение модели проектирования. — Вопросы реализации. — Переход к объектно-ориентированной технологии. Книга предназначена для практиков. В ней содержится детальное описание действующих структурных моделей: постановка проблемы, анализ/проектирование и, наконец, реализация. Переводчик: П. Быстров.» |
|
Во втором томе представлено полное введение в теорию получисленных алгоритмов, причем случайным числам и арифметике посвящены отдельные главы. В книге даны основы теории получисленных алгоритмов, а также их основные примеры. Тем самым установлено прочное связующее звено между компьютерным программированием и численным анализом. Особого упоминания заслуживает предложенная Кнутом в этом третьем издании новая трактовка генераторов случайных чисел, а также рассмотрение способов вычислений с помощью формальных степенных рядов. |
|
«Рассматриваются методы анализа и синтеза при проектировании прикладных интеллектуальных систем для экономических и технических областей применения. Даются основы теории нечетких систем, нейронных сетей и генетических алгоритмов. Особое внимание уделяется структурам гибридных сетей и алгоритмам обучения нечетких нейронных сетей. Лабораторные работы практикума посвящены применению инструментальной среды Matlab для углубленного изучения указанных сетей и систем. Для студентов ВУЗов, обучающихся по специальностям «Прикладная информатика в экономике», «Системы автоматизированного проектирования» и другим компьютерным специальностям. Представляет интерес для широкого круга специалистов.» |
|