1vendrov_a_m_proektirovanie_programmnogo_obespecheniya_ekonom
.pdfМетодические аспекты проектирования ПО |
141 |
При построении модели сложной системы она может быть представлена в самом общем виде на так называемой контек стной диаграмме в виде одной системы как единого целого, либо может быть декомпозирована на ряд подсистем.
Подсистема (или система) на контекстной диафамме изобра жается так, как она представлена на рис. 2.19.
1 luiio пимерв |
1 |
1 |
|
||
Поле имени |
Подсистема |
|
|
по работе |
|
Поле физической |
с физическими лицами |
|
реализации |
ГНИ |
|
|
|
Рис. 2.19. Подсистема по работе с физическими лицами (ГНИ - Государственная налоговая инспекция)
Номер подсистемы служит для ее идентификации. В поле имени вводится наименование подсистемы в виде предложения с подлежащим и соответствующими определениями и дополне ниями.
Процесс представляет собой преобразование входных пото ков данных в выходные в соответствии с определенным алго ритмом. Физически процесс может быть реализован различны ми способами: это может быть подразделение организации (от дел), выполняющее обработку входных документов и выпуск от четов; программа; аппаратно реализованное логическое устрой ство и т.д.
Процесс на диаграмме потоков данных изображается, как по казано на рис. 2.20.
миле пимс^ра |
f |
Проверить^-^ |
1 |
|
Поле имени |
||||
|
плательщика |
|
||
|
|
|
||
|
|
на задолженность |
| |
Поле физической реализации
Налоговый инспектор
Рис. 2.20. Графическое изображение процесса
142 |
Глава 2 |
Номер процесса служит для его идентификации. В поле име ни вводится наименование процесса в виде предложения с актив ным недвусмысленным глаголом в неопределенной форме (вы числить, рассчитать, проверить, определить, создать, получить), за которым следуют существительные в винительном падеже, например: «Ввести сведения о налогоплательщиках», «Вьщать ин формацию о текущих расходах», «Проверить поступление денег».
Использование таких глаголов, как «обработать», «модерни зировать» или «отредактировать» означает, как правило, недоста точно глубокое понимание данного процесса и требует дальней шего анализа.
Информация в поле физической реализации показывает, ка кое подразделение организации, программа или аппаратное уст ройство выполняет данный процесс.
Накопитель данных — это абстрактное устройство для хране ния информации, которую можно в любой момент поместить в накопитель и через некоторое время извлечь, причем способы помещения и извлечения могут быть любыми.
Накопитель данных может быть реализован физически в виде микрофиши, ящика в картотеке, таблицы в оперативной памяти, файла на магнитном носителе и т.д. Накопитель данных на диаг рамме потоков данных изображается, как показано на рис. 2.21.
D1 Реестр налогоплательщиков
Рис. 2.21. Графическое изображение накопителя данных
Накопитель данных идентифицируется буквой «D» и произ вольным числом. Имя накопителя выбирается из соображения наибольшей информативности для проектировщика.
Накопитель данных в общем случае является прообразом бу дущей базы данных, и описание хранящихся в нем данных долж но соответствовать информационной модели (ERM).
Яо/иол: дая«ба: определяет информацию, передаваемую через некоторое соединение от источника к приемнику. Реальный по ток данных может быть информацией, передаваемой по кабелю между двумя устройствами, пересылаемыми по почте письмами, магнитными лентами или дискетами, переносимыми с одного компьютера на другой, и т.д.
Методические аспекты проектирования ПО |
143 |
Поток данных на диаграмме изображается линией, оканчива ющейся стрелкой, которая показывает направление потока (рис. 2.22). Каждый поток данных имеет имя, отражающее его содер жание.
|
Отчетность |
|
|
по подоходному |
|
Сформировать |
_ |
|
отчетность |
|
|
по подоходному |
Щ Региональная |
|
налогу |
||
1 |
||
Отдел отчетности |
Рис. 2.22. Поток данных
Построение иерархии диаграмм потоков данных
Главная цель построения иерархии DFD заключается в том, чтобы сделать описание системы ясным и понятным на каждом уровне детализации, а также разбить его на части с точно опреде ленными отношениями между ними. Для достижения этого целе сообразно пользоваться следующими рекомендациями:
• размещать на каждой диаграмме от 3 до 6—7 процессов (ана логично SADT). Верхняя граница соответствует человечес ким возможностям одновременного восприятия и понима ния структуры сложной системы с множеством внутренних связей, нижняя граница выбрана по соображениям здравого смысла: нет необходимости детализировать процесс диаг раммой, содержащей всего один или два процесса;
•не загромождать диафаммы несущественными на данном уровне деталями;
•декомпозицию потоков данных осуществлять параллельно с декомпозицией процессов. Эти две работы должны выпол няться одновременно, а не одна после завершения другой;
•выбирать ясные, отражающие суть дела, имена процессов и потоков, при этом стараться не использовать аббревиатуры.
Первым шагом при построении иерархии DFD является построение контекстных диаграмм. Обычно при проектирова нии относительно простых систем строится единственная кон текстная диаграмма со звездообразной топологией, в центре ко-
144 |
Глава 2 |
торой находится так называемый главный процесс, соединен ный с приемниками и источниками информации, посредством которых с системой взаимодействуют пользователи и другие внешние системы. Перед построением контекстной DFD необ ходимо проанализировать внешние события (внешние сущнос ти), оказывающие влияние на функционирование системы. Ко личество потоков на контекстной диаграмме должно быть по возможности небольшим, поскольку каждый из них может быть в дальнейшем разбит на несколько потоков на следующих уров нях диаграммы.
Для проверки контекстной диаграммы можно составить спи сок событий, который должен состоять из описаний действий внешних сущностей (событий) и соответствующих реакций сис темы на них. Каждое событие должно соответствовать одному или более потокам данных: входные потоки интерпретируются как воздействия, а выходные потоки ~ как реакции системы на входные потоки.
Если для сложной системы офаничиться единственной кон текстной диафаммой, то она будет содержать слишком большое количество источников и приемников информации, которые трудно расположить на листе бумаги нормального формата, и, кроме того, единственный главный процесс не раскрывает струк туры такой системы. Признаками сложности (в смысле контекс та) могут быть: наличие большого количества внешних сущнос тей (десять и более), распределенная природа системы, много функциональность системы с уже сложившейся или выявленной фуппировкой функций в отдельные подсистемы.
Для сложных систем строится иерархия контекстных диаг рамм. При этом контекстная диафамма верхнего уровня содер жит не единственный главный процесс, а набор подсистем, сое диненных потоками данных. Контекстные диафаммы следую щего уровня детализируют контекст и структуру подсистем.
Иерархия контекстных диафамм определяет взаимодействие основных функциональных подсистем между собой, с внешними входными и выходными потоками данных и внешними объекта ми (источниками и приемниками информации), с которыми вза имодействует система.
Разработка контекстных диафамм решает проблему строгого определения функциональной структуры системы на самой ран ней стадии ее проектирования, что особенно важно для сложных
Методические аспекты проектирования ПО |
145 |
многофункциональных систем, в создании которых участвуют разные организации и коллективы разработчиков.
После построения контекстных диаграмм полученную мо дель следует проверить на полноту исходных данных об объектах системы и изолированность объектов (отсутствие информацион ных связей с другими объектами).
Для каждой подсистемы, присутствующей на контекстных диаграммах, выполняется ее детализация при помощи DFD. Это можно сделать путем построения диафаммы для каждого собы тия. Каждое событие представляется в виде процесса с соответ ствующими входными и выходными потоками, накопителями данных, внешними сущностями и ссылками на другие процессы для описания связей между этим процессом и его окружением. Затем все построенные диафаммы сводятся в одну диафамму ну левого уровня.
Каждый процесс на DFD, в свою очередь, может быть детали зирован при помощи DFD или (если процесс элементарный) спецификации. При детализации должны выполняться следую щие правила:
•правило балансировки — при детализации подсистемы или процесса детализирующая диафамма в качестве внешних источников или приемников данных может иметь только те компоненты (подсистемы, процессы, внешние сущности, накопители данных), с которыми имеют информационную связь детализируемые подсистема или процесс на роди тельской диафамме;
•правило нумерации - при детализации процессов должна поддерживаться их иерархическая нумерация. Например, процессы, детализирующие процесс с номером 12, получа ют номера 12.1, 12.2, 12.3 и т.д.
Спецификация процесса должна формулировать его основные функции таким образом, чтобы в дальнейшем специалист, вы полняющий реализацию проекта, смог выполнить их или разра ботать соответствующую профамму.
Спецификация является конечной вершиной иерархии DFD. Решение о завершении детализации процесса и использовании спецификации принимается аналитиком исходя из следующих критериев:
•наличия у процесса относительно небольшого количества входных и выходных потоков данных (2—3 потока);
146 |
Глава 2 |
•возможности описания преобразования данных процессом в виде последовательного алгоритма;
•выполнения процессом единственной логической функции преобразования входной информации в выходную;
•возможности описания логики процесса при помощи спе цификации небольшого объема (не более 20-30 строк).
Спецификации должны удовлетворять следующим требова ниям:
•для каждого процесса нижнего уровня должна существовать одна и только одна спецификация;
•спецификация должна определять способ преобразования входных потоков в выходные;
•нет необходимости (по крайней мере, на стадии формирова ния требований) определять метод реализации этого преоб разования;
•спецификация должна стремиться к ограничению избыточ ности — не следует переопределять то, что уже было опреде лено на диафамме;
•набор конструкций для построения спецификации должен быть простым и понятным.
Фактически спецификации представляют собой описания алгоритмов задач, выполняемых процессами. Спецификации со держат номер и/или имя процесса, списки входных и выходных данных и тело (описание) процесса, являющееся спецификацией алгоритма или операции, трансформирующей входные потоки данных в выходные. Известно большое количество разнообраз ных методов, позволяющих описать тело процесса. Соответству ющие этим методам языки могут варьироваться от структуриро ванного естественного языка или псевдокода до визуальных язы ков моделирования.
Структурированный естественный язык применяется для читабельного, достаточно строгого описания спецификаций процессов. Он представляет собой разумное сочетание строгос ти языка программирования и читабельности естественного языка и состоит из подмножества слов, организованных в опре деленные логические структуры, арифметических выражений и диаграмм.
Всостав языка входят следующие основные символы:
•глаголы, ориентированные на действие и применяемые к объектам;
Методические аспекты проектирования ПО |
147 |
•термины, определенные на любой стадии проекта ПО (на пример, задачи, процедуры, символы данных и т.п.);
•предлоги и союзы, используемые в логических отношениях;
•общеупотребительные математические, физические и тех нические термины;
•арифметические уравнения;
•таблицы, диафаммы, графы и т.п.;
•комментарии.
К управляющим структурам языка относятся последователь ная конструкция, конструкция выбора и итерация (цикл).
При использовании структурированного естественного языка приняты следующие соглашения:
•логика процесса выражается в виде комбинации последова тельных конструкций, конструкций выбора и итераций;
•глаголы должны быть активными, недвусмысленными и ориентированными на целевое действие (заполнить, вычис лить, извлечь, а не модернизировать, обработать);
•логика процесса должна быть выражена четко и недвусмыс
ленно.
При построении иерархии DFD переходить к детализации процессов следует только после определения содержания всех потоков и накопителей данных, которое описывается при помо щи структур данных. Для каждого потока данных формируется список всех его элементов данных, затем элементы данных объе диняются в структуры данных, соответствующие более крупным объектам данных (например, строкам документов или объектам предметной области). Каждый объект должен состоять из эле ментов, являющихся его атрибутами. Структуры данных могут содержать альтернативы, условные вхождения и итерации. Ус ловное вхождение означает, что данный компонент может отсут ствовать в структуре (например, структура «данные о страхова нии» для объекта «служащий»). Альтернатива означает, что в структуру может входить один из перечисленных элементов. Ите рация означает вхождение любого числа элементов в указанном диапазоне (например, элемент «имя ребенка» для объекта «слу жащий»). Для каждого элемента данных может указываться его тип (непрерывные или дискретные данные). Для непрерывных данных могут указываться единица измерения (кг, см и т.п.), диа пазон значений, точность представления и форма физического кодирования. Для дискретных данных может указываться табли ца допустимых значений.
148 |
Глава 2 |
После построения законченной модели системы ее необходи мо верифицировать (проверить на полноту и согласованность). В полной модели все ее объекты (подсистемы, процессы, потоки данных) должны быть подробно описаны и детализированы. Вы явленные недетализированные объекты следует детализировать, вернувшись на предьщущие шаги разработки. В согласованной модели для всех потоков данных и накопителей данных должно выполняться правило сохранения информации: все поступаю щие куда-либо данные должны быть считаны, а все считываемые данные должны быть записаны.
2.3.4. КОЛИЧЕСТВЕННЫЙ АНАЛИЗ ДИАГРАММ IDEFO И DFD
Для проведения количественного анализа диафамм IDEFO и DFD используются следующие показатели:
•количество блоков на диаграмме — N;
•уровень декомпозиции диаграммы - L;
•число стрелок, соединяющихся с /-м блоком диаграммы - Af. Данный набор показателей относится к каждой диаграмме
модели. Ниже перечислены рекомендации по их желательным значениям.
Необходимо стремиться к тому, чтобы количество блоков на диаграммах нижних уровней было бы ниже количества блоков на родительских диаграммах, т. е. с увеличением уровня декомпози ции убывал бы коэффициент N/L, По мере декомпозиции моде ли функции должны упрощаться, следовательно, количество блоков должно убывать.
Диаграммы должны быть сбалансированы. Это означает, нап ример, что у любого блока количество входящих стрелок и стре лок управления не должно быть значительно больше, чем коли чество выходящих. Следует отметить, что данная рекомендация может не выполняться в моделях, описывающих производствен ные процессы. Например, при описании процедуры сборки в блок может входить множество стрелок, описывающих компо ненты изделия, а выходить одна стрелка — готовое изделие.
Количественная оценка сбалансированности диафаммы мо жет быть выполнена с помощью коэффициента сбалансирован ности:
Методические аспекты проектирования ПО |
149 |
Kb^\l.Ai/N-m?ix{A^)\.
Необходимо стремиться к тому, чтобы значение А^ для диаг раммы было минимальным.
2.3.5. СРАВНИТЕЛЬНЫЙ АНАЛИЗ SADT-МОДЕЛЕЙ И ДИАГРАММ ПОТОКОВ ДАННЫХ
Сравнительный анализ данных методов структурного анализа проводится по следующим параметрам^:
•адекватность средств решаемым задачам;
•согласованность с другими средствами структурного анализа;
•интефация с другими процессами ЖЦ ПО (прежде всего с
процессом проектирования).
Адекватность средств решаемым задачам. Модели SADT (IDEFO) традиционно используются для моделирования органи зационных систем (бизнес-процессов). С другой стороны, не су ществует никаких принципиальных ограничений на использова нии DFD в качестве средства моделирования бизнес-процессов. Следует отметить, что метод SADT успешно работает только при описании хорошо специфицированных и стандартизованных бизнес-процессов в зарубежных корпорациях, поэтому он и при нят в CI1IA в качестве типового. Например, в Министерстве обо роны США десятки лет существуют четкие должностные инструкции и методики, которые жестко регламентируют дея тельность, делают ее высокотехнологичной и ориентированной на бизнес-процесс. Достоинствами применения моделей SADT для описания бизнес-процессов являются:
•полнота описания бизнес-процесса (управление, информа ционные и материальные потоки, обратные связи);
•комплексная декомпозиция; возможность агрегирования и детализации потоков данных и управления (разделение и слияние стрелок);
•жесткие требования метода, обеспечивающие получение моделей стандартного вида;
•соответствие подхода к описанию процессов стандартам ISO 9000.
^ Калашян Л,Н., Каляное Г.Н. Структурные модели бизнеса: DFD-техно- логии. - М.: Финансы и статистика, 2003.
150 |
Глава 2 |
В большинстве российских организаций бизнес-процессы начали формироваться и развиваться сравнительно недавно, они слабо типизированы, поэтому разумнее ориентироваться на мо дели, основанные на потоковых диафаммах. Кроме того, на практике у большинства моделей SADT отмечается ряд недостат ков, в частности:
•сложность восприятия (большое количество стрелок);
•большое количество уровней декомпозиции;
•трудность увязки нескольких процессов, представленных в различных моделях одной и той же организации.
Если же речь идет не о системах вообще, а о ПО ИС, то здесь DFD вне конкуренции. Практически любой класс систем успеш но моделируется при помощи DFD-ориентированных методов. SADT-диафаммы оказываются значительно менее выразитель ными и удобными при моделировании ПО. Так, дуги в SADT жестко типизированы (вход, выход, управление, механизм). В то же время применительно к ПО стирается смысловое различие между входами и выходами, с одной стороны, и управлениями и механизмами, с другой: входы, выходы и управления являются потоками данных и правилами их преобразования. Анализ систе мы при помощи потоков данных и процессов, их преобразую щих, является более прозрачным и недвусмысленным.
В SADT вообще отсутствуют выразительные средства для мо делирования особенностей ИС. DFD же с самого начала создава лись как средство проектирования ИС (тогда как SADT — как средство моделирования систем вообще) и имеют более богатый набор элементов, адекватно отражающих специфику таких сис тем (например, хранилища данных являются прообразами фай лов или баз данных, внешние сущности отражают взаимодей ствие моделируемой системы с внешним миром).
Наличие в DFD спецификаций процессов нижнего уровня позволяет преодолеть логическую незавершенность SADT (а именно, обрыв модели на некотором достаточно низком уровне, когда дальнейшая ее детализация становится бессмысленной) и построить полную функциональную спецификацию разрабаты ваемой системы.
Жесткие офаничения SADT, запрещающие использовать бо лее 6—7 блоков на диафамме, в ряде случаев вынуждают искус ственно детализировать процесс, что затрудняет понимание мо дели заказчиком, резко увеличивает ее объем и, как следствие.