Лекция 14.

Тема: Программные средства для исследования, проектирования и применения в инженерных задачах.

 

План.

 

1. Математические пакеты для решения научных и инженерных задач.

2. CASE-средства. Общая характеристика и классификация.

3. Модели описания систем.

4. Характеристики upper CASE.

5. Понятие языка четвертого поколения – 4GL.

6. Технология внедрения и направление развития CASE-средств.

 

Ключевые слова

Программное обеспечение, моделирование, система автоматизированного проектирования, пакет программ, система MATLAB, MatCAD, CAD, CAE, математические модели, инструментальные средства, характеристика, CASE-технология, upper CASE, язык четвертого поколения, компиляция, жизненный цикл, хранилище метаданных, реинжиринг.

 

Разработка информационных систем (ИС) становится в последние годы распространенной задачей, решаемой федеральными, региональными органами управления и коммерческими структурами: банками, торговыми домами и т.п. Проекты такого рода по масштабу могут быть небольшими, средними, большими и сверхбольшими. Типичными примерами уникальных проектов является информатизация центрального банка РФ, государственной налоговой службы, управления космическими аппаратами и т.п. Обычно большие и уникальные проекты характеризуются многоуровневой структурой объектов автоматизации, их разнесенностью в пространстве, сложной технологией функционирования, базой данных большого объёма и/или высокой сложности, временем жизни, превышающим срок жизни оборудования, использованием в информационной системе части уже имеющегося оборудования.

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

Для решения научных ИС, связанных с вычислениями используются математические пакеты MATLAB, MathCAD, Maple V, Mathematica, Statistica. Эти пакеты называются математическими, так как их основным назначением является выполнение вычислений и математических преобразований. В пакетах предусмотрены средства для представления результатов в виде графиков, гистограмм и сложных чертежей. Входные языки программ близки к обычному математическому языку, что представляет удобства для пользователей.

Типичный пример математического пакета – система MATLAB. С её помощью выполняют математические вычисления и визуализацию результатов расчетов в графической форме.

Система MATLAB предназначена для применения в следующих областях:

· математические исследования;

· разработка алгоритмов и вычисления;

· вычислительный эксперимент, имитационное моделирование, макетирование;

· анализ данных, исследование и визуализация результатов;

· научная и инженерная графика;

· разработка приложений, включая графический интерфейс пользователя.

Система MATLAB – интерактивная система, её отличительной особенностью является легкость решения задач с векторно-матричными формулировками. Пакет MATLAB в России распространяет компания Softline. Среди других продуктов, предлагаемых Softline, имеется программа FEMLAB для решения систем нелинейных дифференциальных уравнений в частных производных.

Другая известная система Maple V создана в компании Waterloo Maple. Это среда для выполнения математических расчетов, имеющая развитые средства символьных математических преобразований. С её помощью выполняют сложные алгебраические преобразования, находят конечные и бесконечные суммы, произведения, пределы и интегралы, системы дифференциальных уравнений, теории чисел, теории математической статистики, теории вероятностей, линейной оптимизации (симплекс-метод) и др.

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

Мировым лидером среди программ аналогового моделирования в электронике является программа Spice, для моделирования динамических процессов в механических объектах – программа Adams.

В машиностроении автоматизация конструирования выполняется с помощью CAD-систем. Среди них различают системы нижнего и верхнего уровней. Первые из них сравнительно дешевы, ориентированы преимущественно на 2D-графику, реализуются на ПК. Системы верхнего уровня дороже, более универсальны ориентированы на 3D-моделирование, оформление чертежной документации в них осуществляется с помощью предварительной разработки геометрических моделей.

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

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

CASE имеет двоякое толкование, соответствующее двум направлениям использования CASE-систем. Первое из них – Computer Aided System Engineering – подчеркивает направленность на поддержку концептуального проектирования сложных систем, преимущественно слабоструктурированных. CASE-системы этого направления будем называть системами CASE для концептуального проектирования. Второе направление называют Computer Aided Software Engineering, что переводится как автоматизированное проектирование программного обеспечения. Их называют инструментальными средами разработки ПО.

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

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

· мощные графические средства для описания и документирования ИС;

· интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки ИС;

· использование хранилища проектных метаданных (репозитория).

Средства CASE-систем по своему функциональному назначению принадлежат к одной из следующих групп:

· средства программирования;

· средства управления программным проектом;

· средства верификации (анализа) программ;

· средства документирования.

К средствам программирования относятся компиляторы с алгоритмических языков; построители диаграмм потоков данных; планировщики ПО (возможно на основе баз знаний); интерпретаторы языков спецификаций и языков четвертого поколения; драйверы устройства программного управления, отладчики программ и др. При этом под языками спецификаций понимают средства укрупненного описания разрабатываемых алгоритмов и программ, к языкам 4GL относят языки для компиляции программ из набора готовых модулей, реализующих типовые функции общих приложений.

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

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

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

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

Документаторы служат для оформления программной документации, например: отчетов по данным репозитория; различные редакторы для объединения, замены, поиска фрагментов программ и других операций редактирования.

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

Подсистема CASE в составе системной среды САПР предназначена для адаптации САПР к нуждам конкретных пользователей, разработки и сопровождения прикладного ПО.

Международная организация по стандартизации выработала концепцию построения переносимых компонент (рис. 1).

Согласно рекомендации, основные ИС следует выбирать из числа переносимых, имеющих стандартные интерфейсы: операционную системы, систему управления базами данных (POSIX, SQL и др.), компоненты интерфейса прикладных программ с другими прикладными программами (API) и с конечным пользователем (CUI,GUI).

 

 

Рис. 1. Структурная схема построения переносимых компонентов.

 

Проекты средней, высокой сложности и уникальные рекомендуется создавать с помощью CASE-средств и языков четвертого поколения (4GL). Целесообразность применения CASE-средств (upper CASE), прежде всего интегрированных, определяется возможностью точного учета требований конечного пользователя к проектируемой ИС, значительным снижением общей трудоемкости разработки и особенно отладки программ. Наконец, с применением CASE-средств у заказчика появляется возможность более осознанно планировать инвестиции в создание ИС и её внедрение в организации, поскольку все неавтоматизированные процессы описаны и могут быть оценены и технологически, и с позиций трудоёмкости. Целесообразность использования языков четвертого поколения определяется несколькими факторами: снижением трудоемкости программирования сложных программных средств (не отдельных компонент) в несколько раз (5÷10); выполнением международных стандартов, определяемым средой 4GL; переносимостью прикладной ИС при использовании переносимого 4GL.

 

Модели описания систем

 

В различных CASE-средствах применяются разные модели автоматизируемых систем и баз данных. модели описывают различные свойства систем и баз данных, важные с точки зрения их автоматизации, а также позволяющие количественно оценить параметры проектов. Обычно модели имеют графическую нотацию, используемые как проектировщиками, так и системными аналитиками при взаимодействии с заказчиком на стадии обследования. Следует отметить, что спектр свойств систем различного назначения очень широк, и не все они к настоящему времени отражены в адекватных моделях. Однако для класса информационных систем организационного типа (Management Information Systems - MIS) адекватные модели разработаны (Gane&Sarson, Shlaer-Melor, Vourdon/DeMarco, Merise, Buhr и др.) поддерживаются соответствующими средствами автоматизации.

Рассмотрим виды моделей, которые потенциально необходимы для адекватного проектирования ИС (рис. 2). Расширяя класс автоматизируемых систем, рассмотрим в качестве «максимального» объекта территориальную систему, функционирующую в режиме реального времени и имеющую распределенную базу (базы) данных. описание такой системы требует применения нескольких моделей.

 

 

емы

 

Рис. 2. Виды моделей.

 

Поток требований на такую систему может быть весьма сложным и иметь «собственные» правила построения, как правило, статистические. Примерами таких потоков могут быть «регулярные» - космическая обстановка при эксплуатации спутников, планового воздушного, морского, речного движения, работа прокатного стана и т.п.; либо нерегулярные – «налеты» самолетов для систем управления оружием, аварийные ситуации для систем управления реакторами и т.п. Модель внешней обстановки необходима прежде всего для проектирования систем класса MIS. В настоящее время такие модели на международном уровне пока не опубликованы.

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

Наиболее распространенными и отработанными является модели, описывающие поведение систем, технологию их работы без привязки ко времени (Gane&Sarson, Shlaer-Melor, Vourdon/DeMarco и др.) или в привязке ко времени (например, Buhr, Booch, разные варианты модели State/Transition).

Ряд моделей ориентирован на описание структуры реализации ИС на основе предварительно полученных знаний о функционировании автоматизируемой системы. К этому классу относятся модели Constantine, часть объектно-ориентированной модели Booch и др.

 

Классификация CASE-средств

 

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

 

Методол. средства

Рис. 3. Поколения CASE-средств.

 

В средствах этой генерации охватываются не только традиционные процессы проектирования и разработки, но и работы по анализу готового ПС (re-engineering) с целью устранения ошибок и, главное, оптимизации характеристик, а также и по укрупненному описанию готового ПС с целью проектирования нового по прототипу уже созданного (reverse engineering). Эти процессы, в первую очередь, традиционны для сопровождения и модификации ПС. Средства второго поколения ориентированы на решение задачи комплексной автоматизации процесса разработки и сопровождения ИС. Хотя обычно результатом проектирования с помощью upper CASE является проектная документация, а в некоторых случаях и прототип интерфейса с конечным пользователем, имеется практическая потребность в автоматическом использовании проектной информации для генерирования части ИС. В этой связи upper CASE обычно содержит мосты к СУБД и языкам четвертого поколения. С помощью этих мостов осуществляется генерация SQL-текстов для описания логической структуры баз данных или текстов на языке четвертого поколения. Иногда объём генерируемой части может составлять до 50-70% прикладной программы. Однако создание работающего приложения все-таки остается задачей программиста. Работа на языках четвертого поколения, к проработанному проекту, позволяет существенно снизить трудоемкость создания программ, но не позволяет вовсе исключить программистский труд.

Интегрированные CASE-средства, представленные на рынке, обычно поддерживают стандарт Министерства Обороны США DoD-STD-2167A, регламентирующий состав и содержание проектной документации на программное средство или ИС. Одновременно этот стандарт фактически и модель жизненного цикла. Именно поэтому многие upper CASE содержат средства поддержки выпуска проектной документации в соответствиями с требованиями этого стандарта.

 

Характеристики upper CASE

 

Средства upper CASE различаются применяемыми моделями систем и баз данных, степенного привязки к СУБД, степенью открытости и доступными платформами. Обычная схема реализации upper CASE состоит в том, что сердцем такого средства является объектно-ориентированное хранилище (repository), доступ к которому имеют все подсистемы. Хранилище содержит сведения о каждом элементе проекта отдельно вне зависимости от способа их получения: из графического редактора или таблиц. Общую схему современного upper CASE (рис. 4) можно охарактеризовать наличием подсистем для ввода и проверки моделей, управления конфигурацией проекта, интерфейсов с СУБД и языком четвертого поколения и генерации кода (включая средства реинжиниринга), а также средствами документирования проекта и средствами коммуникации с другими upper CASE.

 

 

 

Рис. 4. Общая схема современного upper CASE

 

Последние только начали появляться в последнее время, особенно в связи об разованием консорциумов “вокруг” удачно реализованных хранилищ. Существуют upper CASE, ориентированные на поддержку определенных методологий и свободные от такой ориентации.

 

Классификация языков четвертого поколения.

 

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

 

Рис. 5. Подразделы прикладной программы 4GL

 

Суть понятия «язык четвертого поколения» состоит в создании среды разработчика прикладной программы. Обычно в 4GL собственно язык программирования в явном виде отсутствует. Его заменяет совокупность заполняемых таблиц или рисуемых программистом экранов, меню и т.п. По способу создания прикладной программы 4GL подразделяется (рис. 5) на реализующие генерацию (Oracle), либо компилирующие, либо интерпретирующие прикладную программу (PRО-IV) с помощью библиотек процедур или классов (объектов). В последние годы появились более сложные интерпретаторы, основанные на сращивании некоторых свойств 4GL и upper CASE. Типичным примером являются средства класса WorkFlow. По отношению к СУБД языки четвертого поколения подразделяются на СУБД - зависимые и СУБД - независимые. Первые обычно поставляются вместе с СУБД (Oracle, Informix, Ingres, Progress и др.). Естественно, что они не имеют самостоятельного значения. СУБД - независимые 4GL обычно соединяются с несколькими СУБД с помощью мостов и позволяют создать приложения для работы с несколькими СУБД в одной прикладной системе (PRO-IV, JAM, Uniface). Программы, написанные на таких языках, не только практически переносимы, но представляют собой абсолютно лучшее решение для гетерогенных сетей, а также систем, использующих несколько СУБД. Для функциональной полноты язык четвертого поколения должен обеспечивать (рис. 6) поддержку международных протоколов и интерфейсов, в том числе с конечным пользователем, генерацию отчетов, взаимосвязи с upper CASE и СУБД, прототипирование и реинжиниринг. Обычно 4GL обеспечивает создание переносимых приложений. Многие 4GL содержат словари разработки (аналог хранилища в upper CASE), что увеличивает их мощность и обеспечивает потребности взаимодействия с upper CASE и средств реинжиринга.

 

 

Рис. 6.

 

Направление развития CASE-средств.

 

Направление развития CASE-средств определяются потребностями практики. Для upper CASE они ориентированы на:

· расширение применяемых моделей автоматизуемых систем;

· охват автоматизацией новых архитектур ИС, включая схему клиент/сервер;

· более глубокий уровень контроля целостности проекта;

· интеграцию с многими 4GL, СУБД и CASE;

· использованием новых платформ, прежде всего рабочих станций.

Для языков четвертого поколения:

· заимствование элементов upper CASE для повышения эффективности 4GL при создании простых и средней сложности приложений;

· появление и развитие проблемно-ориентированных 4GL;

· развитие средств создания приложений для архитектуры клиент/сервер;

· развитие графических, гипертекстовых и мультимедийных компонент.

Современный рынок программных средств насчитывает 300 различных CASE-средств, которые используются практически всеми ведущими западными фирмами. Российный рынок ПО располагает следующими CASE-средствами:

· Designer /2000;

· Silverrun;

· S-Designor;

· Erwin-BPwin;

· CASE-Аналитик и др.

Технология внедрения CASE-средств состоит из следующих этапов

· определение потребностей в CASE-средствах;

· оценка и выбор CASE-средств;

· выполнение проекта;

· практическое внедрение CASE-средств.

Контрольные вопросы и задания.

 

1. Какие математические пакеты используются для анализа, проектирования, научных и инженерных задач ИС?

2. Для каких областей применения предназначена система MATLAB?

3. Определите функции выполняемые системой MAPLE V.

4. С помощью каких программных средств можно проектировать САПР?

5. Отметьте основные направления использования CASE-систем?

6. Определите преимущества применения CASE-технологий и функциональное назначение.

7. Дайте определение понятию репозитория.

8. Что исследуют статические и динамические анализаторы в средствах верификации?

9. Какие модели описания ИС существуют в CASE-средствах?

10. Чем отличаются CASE и upper CASE средства?

11. Дайте классификацию языков четвертого поколения?

12. Определите направления развития и технологию внедрения CASE-систем?

 

Литература: 2, 4, 12, 17.