Материал: 695_Poletajkin_A.N._Uchebno-metodicheskoe_posobie_Realizatsija_zhiznennogo_ch.1_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

элементы реального мира (детали, вагоны, сотрудники и т.д.) или инфопотоки (документы, данные, инструкции и т.д.). В зависимости от того, к какой из сторон функционального блока подходит дуга, она носит название "входящей", "исходящей" или "управляющей".

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

Декомпозиция (Decomposition) является основным понятием стандарта IDEF0. Принцип декомпозиции применяется при разбиении сложного процесса на составляющие его функции. При этом уровень детализации процесса определяется непосредственно разработчиком.

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

Глоссарий (Glossary). Для каждого из элементов IDEF0-диаграмм, функциональных блоков, интерфейсных дуг – стандарт подразумевает создание и поддержание набора соответствующих определений, ключевых слов, повествовательных изложений и т.д., которые характеризуют объект, отображенный данным элементом.

Модель IDEF0 всегда начинается с представления системы как единого целого – одного функционального блока с интерфейсными дугами, простирающимися за пределы рассматриваемой области. Такая диаграмма с одним функциональным блоком называется контекстной диаграммой.

В процессе декомпозиции базовый функциональный блок подвергается детализации на другой диаграмме. Получившаяся диаграмма второго уровня содержит функциональные блоки, отображающие главные подфункции функционального блока контекстной диаграммы, и называется дочерней (Child Diagram) по отношению к нему, а каждый функциональный блок дочерней диаграммы – дочерним блоком (Child Box). В свою очередь, функциональный блок-предок называется родительским блоком по отношению к дочерней диаграмме (Parent Box), а диаграмма, к которой он принадлежит – родительской диаграммой (Parent Diagram). Каждая из подфункций дочерней диаграммы может быть далее детализирована путем аналогичной декомпозиции соответствующего ей функционального блока. В каждом случае декомпозиции функционального блока все интерфейсные дуги, входящие в данный блок или исходящие из него, фиксируются на дочерней диаграмме. Этим достигается структурная целостность IDEF0-модели.

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

количество функциональных блоков на диаграмме – от 3 до 6;

количество интерфейсных дуг на один функциональный блок не более 5;

любой функциональный блок должен иметь, по крайней мере, одну управляющую (Control, Mechanism) интерфейсную дугу и одну

исходящую (Output);

36

компоновка блоков и интерфейсных дуг с подписями должна обеспечивать максимальную читабельность диаграммы.

Преимущества ФОП выражаются в наглядности графического языка,

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

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

4.2. Пример функционального моделирования ИС

Пример контекстной диаграммы, выполненной при помощи CASEсредства BPWin, представлен на рис. 7.

Рис. 7. Контекстная диаграмма бизнес-процесса ведения договоров и формирования заявок на изготовление готовой продукции, выполненная в

BPWin

37

Диаграмма декомпозиции данного «черного ящика» представлена на рисунке 8. Дальнейшая декомпозиция до уровня операций производится в отдельности для каждого из четырех подпроцессов – блоков диаграммы, показанной на рис. 8.

Рис. 8. Диаграмма декомпозиции бизнес-процесса ведения договоров и формирования заявок на изготовление готовой продукции, выполненная в BPWin

Требования к содержанию отчета

Вподразделе 1 выполняется разработка контекстной диаграммы в нотации IDEF0 при помощи пакета программ BPWin 4.1. В основе модели лежит принцип «черного ящика» (см. рис. 2). Построение диаграммы выполняется на основании разработанной при выполнении лабораторной работы №1 структурной схемы типа «черный ящик» с обозначенными входными (Input) выходными (Output) данными, а также списков нормативносправочной документации (Control) и лиц, состав, задействованных в бизнеспроцессе (Mechanism).

Вподразделе 2 также при помощи CASE-средства BPwin 4.1 строится диаграмма декомпозиции А0. Дочерние процессы диаграммы должны в точности соответствовать задачам, заявленным при формулировании функциональных требований к ПО (лабораторная работа №3). Связи (интерфейсные дуги) диаграммы должны учитывать функциональные

38

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

В подразделе 3 выполняется дальнейшая декомпозиция задач бизнеспроцесса на поздадачи – операции. При этом следует опираться на материал подраздела 2 лабораторной работы №1. В качестве операций следует определять такие, для которых можно четко сформулировать результат (Output). Отдельно рассматриваются действия, которые выполняются программными или техническими средствами, и человеком (Mechanism).

Каждая диаграмма А2 должна отражать все действия, направленные на программную обработку и хранение входной информации, а также удовлетворять вышеуказанным требованиям ГОСТ. Все дочерние диаграммы документировать данными словарей Activity Dictionary и Arrow Dictionary. Кроме того, стрелки диаграмм А2 описать в виде таблицы (отдельная таблица для каждой диаграммы):

Наименование

Источник

Тип стрелки

Приемник

Тип стрелки

стрелки

стрелки

источника

стрелки

приемника

1

2

3

4

5

В графах 2 и 4 указываются наименования блоков или «Внешняя граница».

В графах 3 и 5 указываются типы стрелок: Input, Output, Control, Mechanism.

Контрольные вопросы и упражнения

1.В чем заключается функционально-ориентированный подход к разработке и описанию функциональности компьютерной программы?

2.Каково назначение и структура функциональной модели компьютерной программы?

3.Что такое нотация IDEF0?

4.Какова структура функциональной модели в нотации IDEF0?

5.В чем заключается принцип «черного ящика» и принцип декомпозиции при построении функциональной модели в нотации IDEF0?

6.Перечислите основные правила построения диаграмм в нотации IDEF0.

7.Как выражаются функциональные требования к компьютерной программе на диаграммах в нотации IDEF0?

8.Какие существуют ограничения на декомпозицию в нотации IDEF0?

9.Как документируются диаграммы в нотации IDEF0?

10.Выполните функциональное моделирование работы компьютерной программы в нотации IDEF0.

39

Лабораторная работа №5

Тема: Разработка программного кода. Рефакторинг.

Цель: освоение средства разработки программного кода MS Visual Studio для программирования алгоритмов внутренней сортировки, изучение и освоение применения процедуры рефакторинга для улучшения программного кода.

Задание

1.В соответствии с номером варианта выбрать из таблиц А.1 и А.2 (см. приложение А) любой из трех заданных методов внутренней сортировки и изучить его при помощи рекомендуемой литературы и материалов сети Интернет.

2.Из материалов подраздела 3 отчета о выполнении лабораторной работы №3 выбрать любую из структурных единиц входных данных, и составить одномерный массив длинны 5 для хранения выбранных данных.

3.Спроектировать алгоритм линейной структуры (без использования циклов) для сортировки составленного в п.2 массива фиксированной длины выбранным в п.1 методом.

4.При помощи спроектированного в п.3 алгоритма сортировки решить контрольный пример. Данные в исходном массиве должны быть реальными, разнообразными, неупорядоченными.

5.Создать консольное приложение в MS Visual Studio C# и реализовать в теле метода Main() спроектированный в п.3 линейный алгоритм. Исходный массив инициализировать константными значениями. Предусмотреть консольный вывод массива после каждой перестановки с указанием номера шага.

6.Откомпилировать и построить приложение. При обнаружении компилятором синтаксических ошибок идентифицировать их и устранить.

7.Запустить приложение на выполнение. Убедиться в соответствии результатов выполнения приложения результатам решения в п.4 контрольного примера. При обнаружении логических ошибок идентифицировать их и устранить.

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

9.Перестроить приложение. При обнаружении компилятором синтаксических ошибок идентифицировать их и устранить.

10.Выполнить модифицированное приложение и убедиться в корректности его работы. При обнаружении логических ошибок идентифицировать их и устранить.

40