![](/user_photo/2706_HbeT2.jpg)
- •Основные процессы жизненного цикла Приобретение
- •Поставка
- •Разработка
- •Эксплуатация
- •Сопровождение
- •Адаптация стандарта
- •Ibm Rational ProjectConsole
- •Ibm Rational SoDa
- •1. Основы программных требований
- •Методология разработки сложных программных систем
- •Технология освоения и внедрения case-средств
- •Методика разработки функциональных моделей в среде idef0
- •14.1 Общие положения
- •14.2 Классификация функций, моделируемых блоками idef0
- •14.3 Организационно-технические структуры и механизмы idef0-моделей
- •14.4 Управление - особый вид процесса, операции, действия
- •14.5 Типизация функциональных моделей и idef0-диаграмм
- •Информационное моделирование в методике idef1x Концепция idef1x
- •Инструменты разработки программных средств.
- •Инструментальные среды разработки и сопровождения программных средств.
- •Инструментальные среды программирования.
- •Понятие компьютерной технологии разработки программных средств и ее рабочие места.
- •Инструментальные системы технологии программирования.
- •Структура программы на ассемблере
- •Синтаксис ассемблера
- •Директивы сегментации
- •Алфавит языка
- •Комментарии
- •Простые типы
- •Примечание
- •Сложные типы
- •Описание простых типов
- •Допустимое использование
- •Тип bit
- •Допустимое использование
- •Тип std_logic
- •Допустимое использование
- •Перечислимый тип
- •Пример:
- •Допустимое использование
- •Пример:
- •Тип severity_level
- •Тип character
- •Массивы
- •Примеры:
- •Строки, битовые строки и агрегаты
- •Подтипы
- •Пример:
- •Другие примеры:
- •Пример:
- •Общие сведения
- •Переопределенные типы (redefined types)
- •Методика верификациии синтезируемого описания (Verification methodology)
- •Верификация комбинационных устройств (Combinational verification)
- •Верификация последовательностных устройств (Sequential verification)
- •Моделирование элементов аппаратуры (Modeling hardware elements)
- •Синхронные последовательностные схемы (Edge-sensitive sequential logic) Типы тактового сигнала (Clock signal type)
- •Определение фронта тактового сигнала
- •Передний фронт
- •Задний фронт
- •Описание синхронных последовательностных устройств
- •Использование оператора if
- •Использование конструкции wait
- •Асинхронные сброс и установка (asynchronous set-reset)
- •Последовательностные узлы с потенциальным управлением (level-sensitive sequential logic)
- •Логика с третьим состоянием и моделирование шин (Three-state and bus modeling)
- •Описание комбинационных логических схем (Modeling combinational logic)
- •Директивы компилятора (псевдокомментарии, Pragmas)
- •Атрибуты (Attributes)
- •Атрибут компилятора enum_encoding
- •Метакомментарии (Metacomments)
Методология разработки сложных программных систем
При создании сложного программного обеспечения (ПО) для корпоративных информационных систем (ИС) требуется четко и грамотно организовать весь процесс разработки/заказа ПО – от написания технического задания до внедрения на предприятии и дальнейшего развития этого ПО. Среди основных проблем, возникающих при разработке ПО без использования специальных технологий, можно выделить следующие:
- Разночтения в требованиях. Разработчики и пользователи разговаривают на "разных языках", что не позволяет точно перевести разрозненные неформальные требования в целостную формальную спецификацию системы. В результате трудно создать систему, отвечающую требованиям пользователей. Необходимы постоянные доработки и изменения.
- Отсутствие “чертежей”.Отсутствие проектных спецификаций ("чертежей") на систему приводит к отсутствию структуры и единой концепции системы. Развитие такой системы трудоемко и ведет к дальнейшему росту "хаотичности".
- Документирование постфактум. Трудоемкость документирования в ходе разработки выливается либо в неприемлемые сроки создания точной проектной документации в соответствии с требованиями стандартов, либо в неприемлемое качество документации, что влечет за собой проблематичность последующей модификации ПО ИС.
- Ошибки проектирования. Ошибки, возникающие на этапах анализа и проектирования, часто не удается обнаружить до самого начала внедрения, когда уже стоимость их исправления становится на порядок выше.
- Отсутствие общего контекста проекта. Подсистемы, создаваемые разными группами разработчиков, трудно интегрировать из-за отсутствия или недостаточной проработки общего контекста проекта.
- Обособленность проекта. Информационные системы не переносятся с одной платформы на другую, имеют сложное взаимодействие с внешними системами и являются тяжелыми для последующего развития. В результате разработка нового и изменение существующего программного обеспечения отнимают слишком много времени и средств.
Мировой опыт показывает, что для успешного создания подобного ПО необходимы апробированные современные методологии, опирающиеся на мощные и удобные инструментальные средства. Осуществление таких проектов в заданные сроки с высоким качеством невозможно без применения инженерных методов автоматизации программного производства, т.е. без современных CASE-технологий.
Ведущей методологией, в которой инструментально поддерживаются все этапы жизненного цикла разработки ПО, является методология Rational Unified Process (RUP). Она опирается на проверенные практикой методы анализа, проектирования и разработки ПО, методы управления проектами. RUP обеспечивает прозрачность и управляемость процесса и позволяет создавать ПО в соответствии с требованиями заказчика на момент сдачи ПО, а также в соответствии с возможностями инструментальных средств поддержки разработки.
Методология IDEF. Виды IDEF-моделей.
IDEF— методологии семействаICAM(Integrated Computer-Aided Manufacturing) для решения задачмоделированиясложных систем, позволяет отображать и анализировать модели деятельности широкого спектра сложных систем в различных разрезах. При этом широта и глубина обследования процессов в системе определяется самим разработчиком, что позволяет не перегружать создаваемую модель излишними данными.
IDEF— методологии создавались в рамках предложеннойВВС СШАпрограммы компьютеризации промышленности — ICAM, в ходе реализации которой выявилась потребность в разработке методов анализа процессов взаимодействия в производственных (промышленных) системах. Принципиальным требованием при разработке рассматриваемого семейства методологий была возможность эффективного обмена информацией между всеми специалистами — участниками программы ICAM (отсюда название: Icam DEFinition — IDEF другой вариант — Integrated DEFinition). После опубликования стандарта он был успешно применен в самых различных областях бизнеса, показав себя эффективным средством анализа, конструирования и отображениябизнес-процессов(к слову сказать, он активно применяется и в российскихгосструктурах, например вГосударственной Налоговой Инспекции). Более того, собственно с широким применением IDEF (и предшествующей методолoгии — SADT) и связано возникновение основных идей популярного ныне понятия —BPR(бизнес-процессреинжиниринг).
Семейство стандартов
В настоящий момент к семейству IDEF можно отнести следующие стандарты:
IDEF0—Function Modeling— методология функционального моделирования. С помощью наглядного графического языка IDEF0 изучаемая система предстает перед разработчиками и аналитиками в виде набора взаимосвязанных функций (функциональных блоков — в терминах IDEF0). Как правило, моделирование средствами IDEF0 является первым этапом изучения любой системы. Методологию IDEF0 можно считать следующим этапом развития хорошо известного графического языка описания функциональных системSADT(Structured Analysis and Design Technique);
IDEF1—Information Modeling— методология моделирования информационных потоков внутри системы, позволяющая отображать и анализировать их структуру и взаимосвязи;
IDEF1X(IDEF1 Extended) —Data Modeling— методология построения реляционных структур (баз данных), относится к типу методологий «Сущность-взаимосвязь» (ER — Entity-Relationship) и, как правило, используется для моделирования реляционных баз данных, имеющих отношение к рассматриваемой системе;
IDEF2— Simulation Model Design — методология динамического моделирования развития систем. В связи с весьма серьезными сложностями анализа динамических систем от этого стандарта практически отказались, и его развитие приостановилось на самом начальном этапе. В настоящее время присутствуют алгоритмы и их компьютерные реализации, позволяющие превращать набор статических диаграмм IDEF0 в динамические модели, построенные на базе «раскрашенных сетей Петри» (CPN — Color Petri Nets);
IDEF3— Process Description Capture — Документирование технологических процессов,
IDEF3 — методология документирования процессов, происходящих в системе (например, на предприятии), описываются сценарий и последовательность операций для каждого процесса. IDEF3 имеет прямую взаимосвязь с методологией IDEF0 — каждая функция (функциональный блок) может быть представлена в виде отдельного процесса средствами IDEF3;
IDEF4—Object-Oriented Design— методология построения объектно-ориентированных систем, позволяют отображать структуру объектов и заложенные принципы их взаимодействия, тем самым позволяя анализировать и оптимизировать сложные объектно-ориентированные системы;
IDEF5— Ontology Description Capture — Стандарт онтологического исследования сложных систем. С помощью методологии IDEF5онтологиясистемы может быть описана при помощи определенного словаря терминов и правил, на основании которых могут быть сформированы достоверные утверждения о состоянии рассматриваемой системы в некоторый момент времени. На основе этих утверждений формируются выводы о дальнейшем развитии системы и производится её оптимизация;
IDEF6— Design Rationale Capture — Обоснование проектных действий. Назначение IDEF6 состоит в облегчении получения «знаний о способе» моделирования, их представления и использования при разработке систем управления предприятиями. Под «знаниями о способе» понимаются причины, обстоятельства, скрытые мотивы, которые обуславливают выбранные методы моделирования. Проще говоря, «знания о способе» интерпретируются как ответ на вопрос: «почему модель получилась такой, какой получилась?» Большинство методов моделирования фокусируются на собственно получаемых моделях, а не на процессе их создания. Метод IDEF6 акцентирует внимание именно на процессе создания модели;
IDEF7 — Information System Auditing — Аудит информационных систем. Этот метод определён как востребованный, однако так и не был полностью разработан;
IDEF8— User Interface Modeling — Метод разработки интерфейсов взаимодействия оператора и системы (пользовательских интерфейсов). Современные среды разработки пользовательских интерфейсов в большей степени создают внешний вид интерфейса. IDFE8 фокусирует внимание разработчиков интерфейса на программировании желаемого взаимного поведения интерфейса и пользователя на трех уровнях: выполняемой операции (что это за операция); сценарии взаимодействия, определяемом специфической ролью пользователя (по какому сценарию она должна выполняться тем или иным пользователем); и, наконец, на деталях интерфейса (какие элементы управления, предлагает интерфейс для выполнения операции);
IDEF9— Scenario-Driven IS Design (Business Constraint Discovery method) — Метод исследования бизнес ограничений был разработан для облегчения обнаружения и анализа ограничений в условиях которых действует предприятие. Обычно, при построении моделей описанию ограничений, оказывающих влияние на протекание процессов на предприятии уделяется недостаточное внимание. Знания об основных ограничениях и характере их влияния, закладываемые в модели, в лучшем случае остаются неполными, несогласованными, распределенными нерационально, но часто их вовсе нет. Это не обязательно приводит к тому, что построенные модели нежизнеспособны, просто их реализация столкнется с непредвиденными трудностями, в результате чего их потенциал будет не реализован. Тем не менее в случаях, когда речь идет именно о совершенствовании структур или адаптации к предсказываемым изменениям, знания о существующих ограничениях имеют критическое значение;
IDEF10 — Implementation Architecture Modeling — Моделирование архитектуры выполнения. Этот метод определён как востребованный, однако так и не был полностью разработан;
IDEF11— Information Artifact Modeling. Этот метод определён как востребованный, однако так и не был полностью разработан;
IDEF12— Organization Modeling — Организационное моделирование. Этот метод определён как востребованный, однако так и не был полностью разработан;
IDEF13— Three Schema Mapping Design — Трёхсхемное проектирование преобразования данных. Этот метод определён как востребованный, однако так и не был полностью разработан;
IDEF14— Network Design — Метод проектирования компьютерных сетей, основанный на анализе требований, специфических сетевых компонентов, существующих конфигураций сетей. Также он обеспечивает поддержку решений, связанных с рациональным управлением материальными ресурсами, что позволяет достичь существенной экономии.
Методология SADT.
SADT(акронимотангл.Structured Analysis and Design Technique) —методологияструктурного анализаи проектирования, интегрирующая процесс моделирования, управление конфигурацией проекта, использование дополнительных языковых средств и руководство проектом со своим графическим языком. Процесс моделирования может быть разделен на несколько этапов: опрос экспертов, создание диаграмм и моделей, распространение документации, оценка адекватности моделей и принятие их для дальнейшего использования. Этот процесс хорошо отлажен, потому что при разработке проекта специалисты выполняют конкретные обязанности, а библиотекарь обеспечивает своевременный обмен информацией.
SADT возникла в конце 60-х годов в ходе революции, вызванной структурным программированием. Когда большинство специалистов билось над созданием программного обеспечения, немногие старались разрешить более сложную задачу создания крупномасштабных систем, включающих как людей и машины, так и программное обеспечение, аналогичных системам, применяемым в телефонной связи, промышленности, управлении и контроле за вооружением. В то время специалисты, традиционно занимавшиеся созданием крупномасштабных систем, стали осознавать необходимость большей упорядоченности. Таким образом, разработчики решили формализовать процесс создания системы, разбив его на следующие фазы:
Анализ— определение того, что система будет делать,
Проектирование— определение подсистем и их взаимодействие,
Реализация— разработка подсистем по отдельности, объединение — соединение подсистем в единое целое,
Тестирование— проверка работы системы,
Установка— введение системы в действие,
Эксплуатация— использование системы.
Методология UML. UML-диаграммы.
Методология UML
UML(англ.Unified Modeling Language— унифицированный язык моделирования) —языкграфическогоописания дляобъектного моделированияв областиразработки программного обеспечения. UML является языком широкого профиля, этооткрытый стандарт, использующий графические обозначения для созданияабстрактной моделисистемы, называемойUML-моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML-моделей как интерпретируемого кода возможна кодогенерация.
Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектированияи отображения организационных структур.
Использование
UML позволяет также разработчикам программного обеспечения достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение), и больше сконцентрироваться на проектировании и архитектуре.
Диаграммы
В UML используются следующие виды диаграмм(для исключения неоднозначности приведены также обозначения на английском языке):
Structure Diagrams:
Behavior Diagrams:
|
Структурные диаграммы:
Диаграммы поведения:
|
Структуру диаграмм UML 2.3 можно представить на диаграмме классов UML:
Диаграмма классов
Диаграмма классов(Class diagram) — статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы, их атрибуты, методы и зависимости между классами.
Существуют разные точки зрения на построение диаграмм классов в зависимости от целей их применения:
концептуальная точка зрения — диаграмма классов описывает модель предметной области, в ней присутствуют только классы прикладных объектов;
точка зрения спецификации — диаграмма классов применяется при проектировании информационных систем;
точка зрения реализации — диаграмма классов содержит классы, используемые непосредственно в программном коде (при использовании объектно-ориентированных языков программирования).
Диаграмма компонентов
Диаграмма компонентов(Component diagram) — статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонент могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п.
Диаграмма композитной/составной структуры
Шаблон проектирования Декораторна диаграмме кооперации
Диаграмма композитной/составной структуры(Composite structure diagram) — статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.
Подвидом диаграмм композитной структуры являются диаграммы кооперации(Collaboration diagram, введены в UML 2.0), которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделированиишаблонов проектирования.
Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.
Диаграмма развёртывания
Диаграмма развёртывания(Deployment diagram) — служит для моделирования работающихузлов(аппаратных средств,англ.node) иартефактов, развёрнутых на них. В UML 2 на узлах разворачиваются артефакты (англ.artifact), в то время как в UML 1 на узлах разворачивались компоненты. Между артефактом и логическим элементом (компонентом), который он реализует, устанавливается зависимость манифестации.
Диаграмма объектов
Диаграмма объектов(Object diagram) — демонстрирует полный или частичный снимок моделируемой системы в заданный момент времени. На диаграмме объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений их атрибутов и связей между объектами.
Диаграмма пакетов
Диаграмма пакетов(Package diagram) — структурная диаграмма, основным содержанием которой являютсяпакетыи отношения между ними. Жёсткого разделения между разными структурными диаграммами не проводится, поэтому данное название предлагается исключительно для удобства и не имеет семантического значения (пакеты и диаграммы пакетов могут присутствовать на других структурных диаграммах). Диаграммы пакетов служат, в первую очередь, для организации элементов в группы по какому-либо признаку с целью упрощения структуры и организации работы с моделью системы.
Диаграмма деятельности
Диаграмма деятельности(Activity diagram) — диаграмма, на которой показано разложение некоторойдеятельностина её составные части. Под деятельностью (англ.activity) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельныхдействий(англ.action), соединённых между собой потоками, которые идут от выходов одного узла к входам другого.
Диаграммы деятельности используются при моделировании бизнес-процессов, технологических процессов, последовательных и параллельных вычислений.
Аналогом диаграмм деятельности являются схемы алгоритмовпо ГОСТ 19.701-90.
Диаграмма автомата
Диаграмма автомата(State Machine diagram,диаграмма конечного автомата,диаграмма состояний) — диаграмма, на которой представленконечный автоматс простымисостояниями, переходами и композитными состояниями.
Конечный автомат(англ.State machine) — спецификация последовательности состояний, через которые проходитобъектили взаимодействие в ответ на события своей жизни, а также ответные действия объекта на эти события. Конечный автомат прикреплён к исходному элементу (классу,кооперацииили методу) и служит для определения поведения его экземпляров.
Диаграмма вариантов использования
Диаграмма вариантов использования(Use case diagram) — диаграмма, на которой отражены отношения, существующие междуакторамиивариантами использования.
Основная задача — представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы.
Диаграммы коммуникации и последовательности
Диаграммы коммуникации и последовательности транзитивны, выражают взаимодействие, но показывают его различными способами и с достаточной степенью точности могут быть преобразованы одна в другую.
Диаграмма коммуникации(Communication diagram, в UML 1.x —диаграмма кооперации,collaboration diagram) — диаграмма, на которой изображаются взаимодействия между частями композитной структуры или ролями кооперации. В отличие от диаграммы последовательности, на диаграмме коммуникации явно указываются отношения между элементами (объектами), а время как отдельное измерение не используется (применяются порядковые номера вызовов).
Диаграмма последовательности(Sequence diagram) — диаграмма, на которой изображено упорядоченное во времени взаимодействие объектов. В частности, на ней изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются.
Диаграмма сотрудничества— Этот тип диаграмм позволяет описать взаимодействия объектов, абстрагируясь от последовательности передачи сообщений. На этом типе диаграмм в компактном виде отражаются все принимаемые и передаваемые сообщения конкретного объекта и типы этих сообщений.
По причине того, что диаграммы Sequence и Collaboration являются разными взглядами на одни и те же процессы, Rational Roseпозволяет создавать из Sequence диаграммы диаграмму Collaboration и наоборот, а также производит автоматическую синхронизацию этих диаграмм.
Диаграмма обзора взаимодействия
Диаграмма обзора взаимодействия(Interaction overview diagram) — разновидность диаграммы деятельности, включающая фрагменты диаграммы последовательности и конструкции потока управления.
Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.
Диаграмма синхронизации
Диаграмма синхронизации(Timing diagram) — альтернативное представление диаграммы последовательности, явным образом показывающее изменения состояния на линии жизни с заданной шкалой времени. Может быть полезна в приложениях реального времени.
CASE-технологии. Средства, реализующие CASE-технологии.
Многие организации-разработчики программного обеспечения информационных систем (ПО ИС), пытаясь внести усовершенствования в процесс разработки, обращаются к CASE-технологии. Согласно обзору передовых технологий (Survey of Advanced Technology), составленному фирмой Systems Development Inc. в 1996 г. по результатам анкетирования более 1000 американских фирм, CASE-технология в настоящее время попала в разряд наиболее стабильных информационных технологий (ее использовала половина всех опрошенных пользователей более чем в трети своих проектов, из них 85% завершились успешно). Однако, несмотря на все потенциальные возможности CASE-средств, существует множество примеров их неудачного внедрения, в результате которых CASE-средства становятся "полочным" ПО (shelfware). В связи с этим необходимо отметить следующее:
CASE-средства не обязательно дают немедленный эффект; он может быть получен только спустя какое-то время;
реальные затраты на внедрение CASE-средств обычно намного превышают затраты на их приобретение;
CASE-средства обеспечивают возможности для получения существенной выгоды только после успешного завершения процесса их внедрения.
Ввиду разнообразной природы CASE-средств было бы ошибочно делать какие-либо безоговорочные утверждения относительно реального удовлетворения тех или иных ожиданий от их внедрения. Доступная информация о реальных внедрениях крайне ограничена и противоречива. Она зависит от типа средств, характеристик проектов, уровня сопровождения и опыта пользователей. Некоторые аналитики полагают, что реальная выгода от использования некоторых типов CASE-средств может быть получена только после одно- или двухлетнего опыта. Другие полагают, что воздействие может реально проявиться в фазе эксплуатации жизненного цикла ИС, когда технологические улучшения могут привести к снижению эксплуатационных затрат.
Ключом к успешному внедрению CASE-средств является готовность организации, которая включает следующие аспекты:
Технология. Понимание ограниченности существующих возможностей и способность принять новую технологию;
Культура. Готовность к внедрению новых процессов и взаимоотношений между разработчиками и пользователями;
Управление. Четкое руководство и организованность по отношению к наиболее важным этапам и процессам внедрения.
В случае отсутствия готовности по данным аспектам внедрение CASE-средств скорее всего закончится неудачей независимо от степени тщательности следования различным рекомендациям по внедрению.
Пользователи CASE-средств должны быть готовы к необходимости долгосрочных затрат на эксплуатацию, частому появлению новых версий и возможному быстрому моральному старению средств, а также постоянным затратам на обучение нового персонала и повышение квалификации действующего персонала.
Несмотря на все высказанные предостережения и некоторый пессимизм, грамотный и разумный подход к использованию CASE-средств может преодолеть все перечисленные трудности. Успешное внедрение CASE-средств должно обеспечить такие выгоды как:
высокий уровень технологической поддержки процессов разработки и сопровождения ПО;
положительное воздействие на некоторые или все из перечисленных факторов: производительность, качество продукции, соблюдение стандартов, документирование;
приемлемый уровень отдачи от инвестиций в CASE-средства. повышение внимания к планированию деятельности, связанной с информационной технологией;
улучшение коммуникации между пользователями и разработчиками.