КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
CASE-технологииCASE (Computer-Aided Software/System Engineering) как новое направление в программировании сформировалось за последние 10-15 лет. CASE-технологии применяются при создании сложных информационных систем, обычно требующих коллективной реализации проекта, в котором участвуют различные специалисты: системные аналитики, проектировщики и программисты. Основное достоинство CASE-технологии - поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом. CASE-технология представляет собой совокупность методологического анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения, поддержанную комплексом программных средств автоматизации. Это инструментарий для системных аналитиков, разработчиков и программистов, который позволяет автоматизировать процесс проектирования и разработки ПО. В настоящее время практически ни один серьезный зарубежный программный продукт не осуществляется без использования CASE-средств. Известная методология структурного системного анализа SADT (точнее ее подмножество IDEFO) принята в качестве стандарта на разработку ПО Министерством обороны США. Основная цель CASE состоит в том, чтобы отделить проектирование ПО от его кодирования и последующих этапов разработки. Чем больше деятельности будет вынесено в проектирование из кодирования, тем лучше. Инструментальные средства CASE-технологий применяются на всех этапах жизненного цикла системы (от анализа и проектирования до внедрения и сопровождения), значительно упрощая решение возникающих задач. CASE-технология позволяет отделить проектирование информационной системы от собственно программирования и отладки: разработчик системы занимается проектированием на более высоком уровне, не отвлекаясь на детали. Это позволяет не допустить ошибок уже на стадии проектирования и получить более совершенные программные продукты. Эта технология изменяет все стадии разработки ИС, более всего отражаясь на этапах анализа и проектирования Нередко применение CASE-технологии выходит за рамки проектирования и разработки ИС. Технология дает возможность оптимизировать модели организационных и управленческих структур компаний и позволяет лучше решать такие задачи, как планирование, финансирование, обучение. Таким образом, CASE-технология позволяет произвести радикальное преобразование деятельности компании, направленное на оптимальную реализацию того или иного проекта или повышение общей эффективности бизнеса. Коллективная работа над проектом предполагает обмен информацией, контроль выполнения задач, отслеживание изменений и версий, планирование, взаимодействие и управление. Фундаментам реализации подобных функций чаще всего служит общая база данных проекта, которую обычно называют репозитарием. По существу, репозитарий - это информационный архив, где хранятся сведения о процессах, данных и связях объектов в разрабатываемом приложении. В большинстве современных CASE-системах применяются методологии структурного анализа и проектирования, которые основаны на наглядных диаграммах. При этом для описания модели проектируемой системы используются графы, диаграммы, таблицы и схемы. Такие методологии обеспечивают строгое и наглядное описание проектируемой системы. Оно начинается с общего обзора системы, затем детализируется, приобретая иерархическую структуру. CASE-технологии успешно применяются для построения практически всех типов ПО, как системного и управляющего, так и прикладного. Ключевым признаком CASE-средства является поддержка методологий структурного системного анализа и проектирования. С самого начала CASE-технологии развивались с целью преодоления ограничений при использовании структурных методологий проектирования 60-70-х годов (сложности понимания, большой трудоемкости и стоимости использования, трудности внесения изменений в проектные спецификации и т.п.) за счет автоматизации поддерживающих средств. Т.о., CASE-технологии не могут считаться самостоятельными методологиями, они только развивают структурные методологии и делают более эффективным их применение за счет автоматизации. Помимо автоматизации структурных методологий CASE обладают следующими основными достоинствами: · улучшение качества создаваемого ПО за счет средств автоматического контроля; · создание за короткое время прототипа будущей системы, что позволяет на ранних этапах оценить ожидаемый результат; · ускорение процесса проектирования и разработки; · освобождение разработчика от рутинной работы, позволяя ему целиком сосредоточиться на творческой части проекта; · поддержка развития и сопровождения разработки. В настоящее время CASE-технологии - одно из наиболее динамично развивающихся отраслей информатики, объединяющие сотни компаний. Из имеющихся на рынке CASE-технологий можно выделить: Application Development Workbench (ADW) фирмы Knowlegge Ware, BPwin (Logic Works), CDEZ Tods (Oracle), Clear Case (Alria Softwere), Composer (Texas Instrument), Discover Development Information System (Software Emancipation Technology). Современные CASE-технологии успешно применяются для создания ИС различного класса для банков, финансовых корпораций, крупных фирм. Они обычно имеют достаточно высокую стоимость и требуют длительного обучения и кардинальной реорганизации всего процесса создания ИС. Тем не менее экономический эффект применения CASE-технологий весьма значителен, и большинство серьезных программных проектов осуществляется именно с их помощью. Средства CASE-технологий делятся на две группы: · встроенные в систему реализации - все решения по проектированию и реализации привязаны к выбранной системе управления базами данных (СУБД); · независимые от системы реализации - все решения по проектированию ориентированы на унификацию начальных этапов жизненного цикла и средств их документирования, обеспечивают большую гибкость в выборе средств реализации. Некоторые CASE-технологии ориентированы только на системных проектировщиков и представляют собой специальные графические средства для изображения различного вида моделей: * диаграммы потоков данных (DFD - data dfow diagrams) совместно со словарями данных и спецификациями процессов; * диаграммы «сущность-связь» (ERD - entity relationship diagrams), являющиеся инфологической моделью предметной области; * диаграммы переходов состояний (STD - state transition diagrams), учитывающие события и реакцию на них системы обработки данных. Другой класс CASE-технологий поддерживает только разработку программ, включая: * автоматическую генерацию кодов программ на основании их спецификаций; * проверку корректности описания моделей данных и схем потоков данных; * документирование программ согласно принятым стандартам и актуальному состоянию проекта; * тестирование и отладку программ. Кодогенерация программ выполняется двумя способами: создание каркаса программ и создание полного продукта. Каркас программы служит для последующего ручного варианта редактирования исходных текстов, обеспечивая возможность вмешательства программиста; полный продукт не редактируется вручную. Большинство специалистов считают, что хорошее инструментальное средство CASE должно обладать следующими качествами: · наличие выбора из различных методов проектирования (разработчик может оперативно переключаться с одного метода на другой); · простота использования в сочетании с мощными функциями; · поддержка коллективной работы; · удобный просмотр иерархии классов; · возможность "нелинейной" разработки программ; · ввод программного кода в диаграмму с последующим ее обновлением; · наличие функции контроля версий; · распечатка больших диаграмм на стандартных страницах; · гибкость построения диаграмм, позволяющая пользователю каждый раз видеть то, что ему требуется; · наличие анимации, с помощью которой можно наглядно моделировать поведение системы; · наличие хороших средств контроля ошибок, в том числе проверку на наличие логических ошибок; · разделение компонентов объектной модели по категориям выполняемых функций; · применение методов "обратного проектирования": использование в разработке алгоритмов существующего кода либо построение логической модели по уже имеющейся базе данных; · Возможность генерации кода; · при наличии неоднородной вычислительной среды поддержка нескольких платформ; · возможность включения в модель элементов проверки и фильтрации данных; · поддержка сложных моделей, в частности моделей финансовых потоков, деловой и производственной активности; · приемлемая цена. Классификация CASE-средств по типам отражает их функциональную ориентацию в технологическом процессе. Анализ и проектирование, создание спецификаций системы поддерживают следующие системы: CASE. Аналитик; Excelerator (Index Technology); Design-Aid (Nastec); Analist/Designer (Yourdon); Design/IDEF (Meta Software); SELECT (Select Software Tools); System Architech (Software&Systems) и др. На выходе продуцируются спецификации компонентов системы и интерфейсов, связывающих эти компоненты, а также предварительная архитектура системы; детальная проработка проекта, включающая алгоритмы и определение структур данных. Проектирование баз данных и файлов предполагает использование следующих CASE-средств: ERWin (Logic Works); S- Designer (SDR), Designer/2000 (Oracle), Silverrun (Computer, Systems Advisers и др. Средства данной группы обеспечивают логическое моделирование данных, автоматическое преобразование моделей данных в 3НФ, автоматическую генерацию схем БД и описание форматов файлов на уровне программного кода. Программирование. Средства этой группы поддерживают этапы программирования и тестирования, а также автоматическую кодогенерацию из спецификаций, получая полную документированную выполняемую программу: СOBOL 2/Workbench (MicroFocus); DECASE (DEC); NETRON/CAP (Netron), APS (Sage Software). Помимо диаграммеров различного назначения и средств поддержки работы с репозитарием, в эту группу средств включены и традиционные генераторы кодов, анализаторы кодов (как в статике, так и динамике), генераторы наборов тестов, анализаторы покрытия тестами, отладчики. Сопровождение и реинжинеринг. К таким средствам относятся документаторы, анализаторы программ, средства реконструирования и реинжениринга: Adpac CASE Tools (Adpac), Scan/COBOL & Super Structure (Computer Data Systems), Inspector/Recoder (Language Technology). Их целью является корректировка, изменение, анализ, приобретение и реинжениринг существующей системы. Мобильность системы обеспечивается в CASE-средствах средствами миграции и реинжениринга. К средствам миграции относятся трансляторы, конверторы, макрогенераторы и др., позволяющие обеспечить перенос существующей системы в новое операционное или аппаратное окружение. Средства реинжениринга включают: - статистические анализаторы для продуцирования схем системы ПО из ее кодов, оценки влияния модификаций (например, «эффект ряби»- внесение изменений с целью исправления ошибок порождает новые ошибки); - динамические анализаторы (обычно компиляторы и интерпретаторы с встроенными отладочными возможностями); - документаторы, позволяющие автоматически получать обновленную документацию при изменении кода; - редакторы кодов, автоматически изменяющие при редактировании и все предшествующие коду структуры (например, спецификации); - средства доступа к спецификациям, их модификации и генерации нового (модифицированного кода); - средства реверсного инжиниринга, транслирующие коды в спецификации. Окружение. Средства поддержки платформ для интеграции, создания и придания товарного вида CASE-средствам Multi/Cam (AGS Management Systems), Sylva Foundry (Cagware). Управление проектом – средства, поддерживающие планирование, контроль, руководство, взаимодействие, т.е. функции, необходимые в процессе разработки и сопровождения проектов: Project Workbench (Applied Business Technology). CASE-средства классифицируются также по категориям. Такая классификация определяет уровень интегрированности по выполняемым функциям и включает: - вспомогательные программы (tools) - решают небольшую автономную задачу, принадлежащую проблеме более широкого масштаба; - пакеты разработчика (toolkit) - представляют собой совокупность интегрированных программных средств, обеспечивающих помощь для одного из классов программных задач (использует репозитарий для всей технической и управляющей информации о проекте, концентрируясь при этом на поддержке, как правило, одной фазы или одного этапа разработки ПО; - интегрированные программные средства (workbench) - поддерживают системный анализ, проектирование и разработку ПО. По сравнению с toolkit обладают более высокой степенью интеграции выполняемых функций, большей самостоятельностью и автономностью использования; наличием тесной связи с системными и техническими средствами аппаратно-вычислительной среды, на которой workbench функционирует.
|