РЕЦЕНЗИИ
Мацяшек Л. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML: Пер. с англ. М.: Вильямс, 2002. - 432 с., ил.
По своей структуре книга представляет собой учебно-практический курс на тему, вынесенную в ее заголовок, и включает множество вопросов и упражнений. По содержанию же ее можно отнести к тщательно проработанному пособию по объектно-ориентированному анализу и проектированию программных систем, которое будет полезно всем прикладным специалистам данной области. Правильная и точная формализация требований, грамотное и безошибочное проектирование системной архитектуры в программной инженерии считаются ключевыми условиями для успеха любого проекта. Но в силу сложности задачи хорошей литературы по этой проблематике мало.
Книга начинается с освещения стратегических вопросов проектирования ПО. Автор подробно останавливается на построении и составляющих процесса объектно-ориентированной разработки, моделях планирования, структуре жизненного цикла ПО и CASE-подходах. Во второй-четвертой главах детально описаны важнейшие элементы объектно-ориентрованного программирования и способы анализа требований, моделирования и построения графических моделей с помощью универсального языка UML. О формализации требований заказчика и разработке модели на их основе рассказывается, начиная с общих и базовых положений. Затем читатель знакомится с прикладными способами спецификации требований. Разбор сопровождается практическими примерами.
В ходе реализации представленной авторами методологии возникает множество нюансов. Их разбору посвящена пятая глава. После анализа требований можно переходить к проектированию, хотя четко разделить эти два этапа невозможно. Мацяшек предлагает считать проектированием фазу, когда больше внимания уделяется техническим аспектам разработки (используемым средам и компонентам, определению количества звеньев и т. д.). Об этом повествует шестая глава.
Отдельные главы отведены вопросам проектирования наиболее важных и распространенных составляющих корпоративных систем: пользовательского интерфейса (седьмая глава, из которой можно узнать об общих принципах такого проектирования и конкретных особенностях организации взаимодействия пользователей с оконным интерфейсом); БД (восьмая глава); низкоуровневого проектирования программы, максимально приближенного к реализации и кодированию, и проектирования транзакций при взаимодействии с СУБД (девятая глава).
В последней, десятой главе объясняются технологии тестирования и управления изменениями. Автор отмечает, что тестирование - не отдельный этап, а процесс, охватывающий все фазы создания продукта (системы, интерфейса, БД). Исходя из этого он также предлагает технологию ведения проектной и пользовательской документации.
После прочтения у меня сложилось впечатление, что книге не хватило завершенности - например, финальной главы, в которой подводился бы общий итог и вкратце рассказывалось о направлениях и тенденциях развития программной инженерии. И тем не менее это, пожалуй, лучшее и наиболее четко систематизированное издание из десятков книг по программной инженерии (к сожалению, только переводных), которые мне посчастливилось прочитать в последние годы.