Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
В основе моделей жизненного цикла, которые были рассмотрены ранее, должны лежать математические модели. Но нужно понимать, что существует еще более инвариантный слой, который лежит в основе и связан с чисто математическими моделями, оперирующими прежде всего понятиями объекта.
Как уже было отмечено, важные составляющие корпоративных систем – это база данных и СУБД. Перечислим основные стандарты, которым имеет смысл следовать, определившись со стратегией и тактикой реализации корпоративного приложения. В частности, большое значение имеют стандарты UML, Rational Unified Process и Microsoft Solution Framework. Существуют корпоративные стандарты, ряд объектных стандартов, например COM, DCOM, COM+, объектные модели Microsoft, модель Java Bins, компонентная модель Java, модель брокеров объектных запросов CORBA и целый ряд других. Здесь, может быть, нет строгой математической интерпретации, но тем не менее это некая формализация и во многом официальный стандарт, которого следует придерживаться.
В сложных системах, как правило, возникает понятие объекта, как и в современных базах данных. И соответственно проектирование и реализацию этих систем нужно вести с учетом понимания природы этих объектных моделей, и, конечно, для корпоративных систем необходимо использовать достаточно строгие методологии, такие как RUP, MSF, которые дают возможность, с одной стороны, адаптироваться к требованиям заказчика, а с другой – обеспечить достаточно полный набор проектной документации и должной детализации выхода по проекту. Следует напомнить, что выход по проекту и программный продукт – это не только программный код, но и документация, техническое задание или список требований, функциональных и других проектных ограничений, целый ряд диаграмм, описывающих сценарии использования, прецеденты, классы, которые будут проектироваться, динамику взаимодействия (диаграммы переходов состояния, диаграммы последовательностей, взаимодействия, потоков данных, клиент – объект, которые ведут нас к ответственному проектированию, и др.), документация к коду, находящаяся внутри кода к каждому модулю, построчная документация к коду модуля, документация к модульным интерфейсам и общая документация, которая включает документацию для специалистов по установке программ, настройке, конфигурированию, и пользовательская документация, в том числе краткая и полная инструкции по эксплуатации программного обеспечения.
Теперь уже предметно рассмотрим CASE-средства, которые помогают автоматизировать проектирование корпоративных приложений. Попробуем выделить несколько направлений классификации CASE-средств, принципы их упорядочивания, организации, поскольку их действительно достаточно много и многие из них реализуют целый ряд полезных идей, которые было бы целесообразно использовать при производстве корпоративных приложений. Рассмотрим классификации по масштабам применения, видам моделирования (здесь речь идет не совсем о математических моделях, хотя есть CASE-средства, которые используют раскрашенные сети Петри и другие интересные математические формализации, но их не так много) и функциональному назначению. Дадим определение CASE-средств, рассмотрим их основные функции и состав, а также достаточно большое количество примеров с описанием функций основных CASE-средств, которые популярны прежде всего в нашей стране. На Западе традиционно используется немного иной набор CASE-средств. Например, в России достаточно популярно CASE-средство Borland Delphi, а в США оно практически не используется, т. е. срез распространенности, или популярности, CASE-средств в нашей стране и за рубежом выглядит иначе.
Что такое CASE, или Computer Aided Software Engineering? Software Engineering – это программная инженерия, та самая дисциплина, которая и ведет к построению качественных, надежных, производительных, масштабируемых, больших программных систем и комплексов, в том числе в масштабах корпорации. А CASE – это инструментальные средства, которые поддерживают создание таких систем, т. е., по сути, весь жизненный цикл корпоративных приложений. Рассмотрим основные этапы жизненного цикла и задачи, которые пользователи CASE-средств или разработчики решают в ходе создания корпоративных приложений. Во-первых, это анализ и спецификация требований к функционалу и других проектных ограничений к программному обеспечению, которое будет создаваться, проектирование прикладного программного обеспечения и баз данных, т. е. речь идет о диаграммировании и архитектурном проектировании. CASE-средства позволяют в отношении баз данных строить схему базы данных по ER-модели, по ER-диаграмме. Кодогенерация в определенной мере производится также автоматически, например, по диаграмме классов можно строить сигнатуры классов автоматизированно, а также вести трассировку проектных спецификаций.
Когда речь идет о модели Microsoft, или модели синхронизации и стабилизации, следует заметить, что эта модель достаточно сложна, поскольку она требует автоматизации тестирования. Также стоит отметить, что средства тестирования, такие как Rational Robot, достаточно широко распространены в мире CASE-средств. Есть похожее средство и у Microsoft.
Рассмотрим средства документирования. Когда речь идет о большом количестве билдов, большом количестве релизов ПО, нужно поддерживать каждый релиз своей версией документации, которая также имеет версии. Вести контроль этих версий и изменений, которые были внесены, достаточно сложно, особенно если документирование ведется вручную и документация имеет большой объем, вполне сопоставимый, а иногда и превосходящий объем кода. Скажем, документация только для пользователей по одному модулю Oracle Applications – это книга объемом примерно 700 страниц с большим количеством иллюстраций, перекрестными ссылками, глоссарием и целым рядом других вещей для быстрого поиска информации. Конечно, создавать такие документы вручную и отслеживать их взаимосвязи, что очень важно в проекте, в случае корпоративных систем без CASE-средств невозможно.
Далее речь пойдет о системах обеспечения качества, в том числе тестирования и трассировки спецификации. Рассмотрим управление конфигурацией. Как было отмечено ранее, проекты сложны, в них большое количество файлов (тысячи, может быть, десятки тысяч) и каждая версия характеризуется их уникальным набором. Если некорректно учитывать состав этой версии и собирать ее, ПО будет ненадежным или вообще неработоспособным. Когда речь идет о корпоративной системе, это, конечно, недопустимо. Поэтому управление конфигурацией, полный учет модулей и проектной документации, которая их сопровождает, – это тоже важная функция CASE-средств. Еще одной важной функцией является управление проектом, организация взаимодействия на основе, скажем, программного инструментального CASE-средства Microsoft Visual Studio Team System, и целый ряд других процессов.