В программной инженерии , структурированный анализ (SA) и структурированный дизайн (SD) являются методы анализа бизнес - требований и разработка спецификаций для преобразования практики в компьютерных программ , конфигурации оборудования и связанные с ними ручные процедуры.
Структурированный анализ и методы проектирования - фундаментальные инструменты системного анализа . Они разработаны на основе классического системного анализа 1960-х и 1970-х годов. [2]
Цели структурного анализа
Структурированный анализ стал популярным в 1980-х годах и используется до сих пор. [ необходима цитата ] Структурированный анализ состоит из интерпретации концепции системы (или ситуаций реального мира) в терминологию данных и управления, представленную диаграммами потоков данных . Поток данных и управление от пузыря к хранилищу данных к пузырю может быть трудно отслеживать, и количество пузырей может увеличиваться.
Один из подходов состоит в том, чтобы сначала определить события из внешнего мира, на которые система должна реагировать, а затем назначить этому событию пузырек. Пузыри, которым необходимо взаимодействовать, затем соединяются до тех пор, пока не будет определена система. Пузыри обычно группируются в пузыри более высокого уровня, чтобы уменьшить сложность. Словари данных необходимы для описания потоков данных и команд, а также требуется спецификация процесса для сбора информации о транзакциях / преобразованиях. [3]
SA и SD отображаются со структурными диаграммами , диаграммами потоков данных и диаграммами моделей данных , среди которых было много вариаций, в том числе разработанные Томом ДеМарко , Кеном Орром , Ларри Константином , Воном Фриком , Эд Юрдоном , Стивеном Уордом, Питером Ченом и другие.
Эти методы были объединены в различных опубликованных методологиях разработки систем , включая метод анализа и проектирования структурированных систем , прибыльную информацию по дизайну (PRIDE), структурированный анализ и проектирование Nastec, SDM / 70 и методологию разработки структурированных систем Spectrum.
История
Структурированный анализ является частью серии структурированных методов, которые представляют собой набор методов анализа, проектирования и программирования, которые были разработаны в ответ на проблемы, с которыми сталкивался мир программного обеспечения с 1960-х по 1980-е годы. В то время большая часть коммерческого программирования выполнялась на Cobol и Fortran , затем на C и BASIC . Практически не было указаний по "хорошему" дизайну и методам программирования, а также отсутствовали стандартные методы документирования требований и проектов. Системы становились больше и сложнее, а разработка информационных систем становилась все труднее и труднее » [4].
В качестве способа управления большим и сложным программным обеспечением с конца 1960-х годов появились следующие структурированные методы: [4]
- Структурированное программирование в 1967 году с Эдсгером Дейкстрой - «Перейти к утверждению считается вредным»
- Никлаус Вирт Пошаговый дизайн в 1971 году
- Диаграмма Насси – Шнейдермана в 1972 г.
- Диаграмма Варнье / Орра в 1974 году - "Логическое построение программ"
- HIPO в 1974 году - IBM Hierarchy ввод-процесс-вывод (хотя на самом деле это должен быть процесс вывода-ввода)
- Структурированный дизайн примерно в 1975 году с Ларри Константином , Эд Юрдоном и Уэйном Стивенсом . [5] [6]
- Структурированное программирование Джексона в 1975 году, разработанное Майклом А. Джексоном.
- Структурированный анализ примерно 1978 г. с Томом Демарко , Эдвардом Юрдоном , Гейном и Сарсоном, Макменамином и Палмером.
- Методика структурного анализа и проектирования (SADT), разработанная Дугласом Т. Россом
- Структурированный метод Yourdon, разработанный Эдвардом Йордоном .
- Структурированный анализ и спецификация системы опубликованы в 1978 году Томом ДеМарко .
- Метод анализа и проектирования структурированных систем (SSADM), впервые представленный в 1983 году, был разработан Управлением государственной торговли Великобритании .
- Анализ основных систем , предложенный Стивеном М. Макменамином и Джоном Ф. Палмером [7]
- IDEF0 основан на SADT, разработанном Дугласом Т. Россом в 1985 г. [8]
- Моделирование Хатли-Пирбая , определенное в «Стратегиях спецификации систем в реальном времени» Дереком Дж. Хатли и Имтиазом А. Пирбхаи в 1988 году.
- Современный структурированный анализ , разработанный Эдвардом Йордоном после публикации «Основного системного анализа» и опубликованной в 1989 году [9].
- Инженерия информационных технологий в 1990 году с Финкельштейном и популяризована Джеймсом Мартином .
Согласно Hay (1999) « информационная инженерия была логическим продолжением структурированных методов, которые были разработаны в 1970-х годах. Структурированное программирование привело к структурированному проектированию, которое, в свою очередь, привело к анализу структурных систем. Эти методы характеризовались использованием диаграмм : структурные диаграммы для структурированного проектирования и диаграммы потоков данных для структурированного анализа, как для помощи в общении между пользователями и разработчиками, так и для повышения дисциплины аналитика и дизайнера. В 1980-х годах начали появляться инструменты, которые одновременно автоматизировали рисование диаграмм. , и следил за тем, что нарисовано в словаре данных ". [10] После примера автоматизированного проектирования и автоматизированного производства (CAD / CAM) использование этих инструментов было названо компьютерной инженерией программного обеспечения (CASE).
Темы структурированного анализа
Единый механизм абстракции
Структурированный анализ обычно создает иерархию с использованием единого механизма абстракции. Метод структурированного анализа может использовать IDEF (см. Рисунок), управляется процессами и начинается с цели и точки зрения. Этот метод идентифицирует общую функцию и итеративно разделяет функции на более мелкие функции, сохраняя входы, выходы, элементы управления и механизмы, необходимые для оптимизации процессов. Также известный как подход функциональной декомпозиции , он фокусируется на связности внутри функций и связи между функциями, что приводит к структурированным данным. [11]
Функциональная декомпозиция структурированного метода описывает процесс без описания поведения системы и диктует структуру системы в виде требуемых функций. Метод определяет входы и выходы, связанные с деятельностью. Одной из причин популярности структурированного анализа является его интуитивная способность передавать высокоуровневые процессы и концепции, будь то на уровне отдельной системы или предприятия. Неясно, как объекты могут поддерживать функции для коммерчески распространенной объектно-ориентированной разработки. В отличие от IDEF, UML управляется интерфейсом с несколькими механизмами абстракции, полезными при описании сервис-ориентированных архитектур (SOA). [11]
Подход
Структурированный анализ рассматривает систему с точки зрения проходящих через нее данных. Функционирование системы описывается процессами, преобразующими потоки данных. Структурированный анализ использует преимущество сокрытия информации посредством последовательного декомпозиционного (или нисходящего) анализа. Это позволяет сосредоточить внимание на уместных деталях и избежать путаницы при рассмотрении нерелевантных деталей. По мере увеличения уровня детализации объем информации уменьшается. Результатом структурированного анализа является набор связанных графических диаграмм, описаний процессов и определений данных. Они описывают преобразования, которые должны произойти, и данные, необходимые для удовлетворения функциональных требований системы . [12]
Подход Де Марко [13] состоит из следующих объектов (см. Рисунок): [12]
- Диаграмма контекста
- Схема потока данных
- Технические характеристики процесса
- Словарь данных
Таким образом, диаграммы потоков данных (DFD) представляют собой ориентированные графы. Дуги представляют данные , а узлы (кружки или пузыри) представляют процессы, которые преобразуют данные. Далее процесс можно разложить на более подробный DFD, в котором показаны подпроцессы и потоки данных внутри него. Подпроцессы, в свою очередь, могут быть дополнительно разложены с помощью другого набора DFD до тех пор, пока их функции не будут легко поняты. Функциональные примитивы - это процессы, которые не требуют дальнейшей декомпозиции. Функциональные примитивы описываются спецификацией процесса (или мини-спецификацией). Спецификация процесса может состоять из псевдокода, блок-схем или структурированного английского языка. DFD моделируют структуру системы как сеть взаимосвязанных процессов, состоящих из функциональных примитивов. Словарь данных представляет собой набор записей (определения) из потоков данных, элементы данных, файлы и базы данных. Записи словаря данных разделены сверху вниз. На них можно ссылаться в других статьях словаря данных и в диаграммах потоков данных. [12]
Диаграмма контекста
Диаграммы контекста - это диаграммы, которые представляют участников вне системы, которые могут взаимодействовать с этой системой. [15] Эта диаграмма является наивысшим уровнем вид в системе , подобной блок - схеме , показывая, возможно , программное обеспечение основе, системы в целом и ее входов и выходов от / к внешним факторам.
Этот тип диаграммы, согласно Коссякоффу (2003), обычно "изображает систему в центре, без деталей ее внутренней структуры, окруженную всеми ее взаимодействующими системами, окружающей средой и действиями. Цель диаграммы контекста системы состоит в том, чтобы сосредоточить внимание на внешние факторы и события, которые следует учитывать при разработке полного набора системных требований и ограничений ». [15] Контекстные диаграммы системы связаны с диаграммой потоков данных и показывают взаимодействия между системой и другими участниками, для которых система предназначена. Диаграммы контекста системы могут быть полезны для понимания контекста, в котором система будет частью разработки программного обеспечения .
Словарь данных
А данные словарь или словарь базы данных является файлом , который определяет основную организацию базы данных . [16] Словарь базы данных содержит список всех файлов в базе данных, количество записей в каждом файле, а также имена и типы каждого поля данных. Большинство систем управления базами данных скрывают словарь данных от пользователей, чтобы они случайно не уничтожили его содержимое. Словари данных не содержат фактических данных из базы данных, только бухгалтерскую информацию для управления ею. Однако без словаря данных система управления базой данных не может получить доступ к данным из базы данных. [16]
Пользователи баз данных и разработчики приложений могут извлечь выгоду из авторитетного документа словаря данных, который каталогизирует организацию, содержание и условные обозначения одной или нескольких баз данных. [17] Обычно сюда входят имена и описания различных таблиц и полей в каждой базе данных, а также дополнительные сведения, такие как тип и длина каждого элемента данных . Не существует универсального стандарта в отношении уровня детализации в таком документе, но это в первую очередь сводка метаданных о структуре базы данных , а не самих данных. Документ словаря данных также может включать дополнительную информацию, описывающую, как кодируются элементы данных. Одно из преимуществ хорошо продуманной документации по словарю данных заключается в том, что она помогает обеспечить согласованность всей сложной базы данных или большой коллекции интегрированных баз данных . [18]
Диаграммы потоков данных
Диаграмма потоков данных (DFD) представляет собой графическое представление «поток» данных через информационную систему . Она отличается от блок-схемы системы, поскольку показывает поток данных через процессы, а не компьютерное оборудование . Диаграммы потоков данных были изобретены Ларри Константином , разработчиком структурированного дизайна , на основе модели вычислений Мартина и Эстрина «граф потока данных». [20]
Обычно сначала рисуется контекстная диаграмма системы, которая показывает взаимодействие между системой и внешними объектами. DFD разработан, чтобы показать, как система делится на более мелкие части, и выделить поток данных между этими частями. Эта диаграмма потока данных на уровне контекста затем «разобранная», чтобы показать более подробную информацию о моделируемой системе.
Диаграммы потоков данных (DFD) - одна из трех основных точек зрения метода анализа и проектирования структурированных систем (SSADM). Спонсора проекта и конечных пользователей необходимо будет проинформировать и проконсультировать на всех этапах эволюции системы. С помощью диаграммы потока данных пользователи могут визуализировать, как система будет работать, что она будет выполнять и как система будет реализована. Диаграммы потоков данных старой системы могут быть составлены и сравнены с диаграммами потоков данных новой системы, чтобы провести сравнения для реализации более эффективной системы. Диаграммы потоков данных могут использоваться, чтобы предоставить конечному пользователю физическое представление о том, где данные, которые они вводят, в конечном итоге влияют на структуру всей системы от заказа до отправки и повторной обработки. Как создается любая система, можно определить с помощью диаграммы потока данных.
Структурная диаграмма
Структурная схема (СК) представляет собой график , который показывает пробую конфигурацию системы до самых низких приемлемых уровней. [21] Эта диаграмма используется в структурированном программировании для упорядочивания программных модулей в древовидной структуре. Каждый модуль представлен в виде поля, содержащего названия модулей. Древовидная структура визуализирует отношения между модулями. [22]
Структурные диаграммы используются в структурированном анализе для определения проекта верхнего уровня или архитектуры компьютерной программы . В качестве инструмента проектирования они помогают программисту разделить и преодолеть большую программную проблему, то есть рекурсивно разбивать проблему на части, достаточно мелкие, чтобы их мог понять человеческий мозг. Этот процесс называется нисходящим дизайном или функциональной декомпозицией . Программисты используют структурную диаграмму для создания программы аналогично тому, как архитектор строит дом по чертежу. На этапе проектирования диаграмма рисуется и используется как средство общения между клиентом и разработчиками программного обеспечения. Во время фактического построения программы (реализации) диаграмма постоянно именуется мастер-планом. [23]
Структурированный дизайн
Структурированный дизайн (SD) связан с разработкой модулей и синтезом этих модулей в так называемой «иерархии модулей». [24] Для разработки оптимальной структуры модуля и интерфейсов решающее значение имеют два принципа:
- Сплоченность, которая «связана с группировкой функционально связанных процессов в конкретный модуль», [12] и
- Связь относится к «потоку информации или параметров, передаваемых между модулями. Оптимальная связь сокращает интерфейсы модулей и, как следствие, сложность программного обеспечения». [12]
Структурированный дизайн был разработан Ларри Константином в конце 1960-х, затем доработан и опубликован с соавторами в 1970-х; [5] [6] подробнее см. Ларри Константин: структурированный дизайн . Пейдж-Джонс (1980) предложил свой собственный подход, который состоит из трех основных целей:
- структурные диаграммы
- спецификации модуля
- словарь данных.
В структуре диаграмма призвано показать «иерархию модулей или вызов последовательности отношение модулей. Существует спецификация модуля для каждого модуля , показанного на диаграммах структуры. Характеристики модуля могут состоять из псевдо-коды или языка разработки программ. В словаре данных похож на структурированный анализ. На этом этапе жизненного цикла разработки программного обеспечения , после того, как анализ и проектирование были выполнены, можно автоматически генерировать объявления типов данных », [25] и шаблоны процедур или подпрограмм. [12]
Критика
Проблемы с диаграммами потоков данных включают следующее: [3]
- Правильный выбор пузырей
- Разделение пузырей осмысленным и взаимно согласованным способом,
- Размер документации, необходимый для понимания потоков данных,
- Диаграммы потоков данных имеют строго функциональный характер и поэтому часто изменяются.
- Хотя «поток данных» подчеркивается, моделирование «данных» - нет, поэтому понимание предмета системы мало.
- Клиентам сложно понять, как концепция отображается в потоках данных и пузырях.
- Дизайнеры должны перевести организацию DFD в реализуемый формат.
Смотрите также
- Разделение событий
- Программирование на основе потоков
- HIPO
- Структурированное программирование Джексона
- Инструмент структурированного анализа Prosa
- Методология мягких систем
Рекомендации
- ^ Триша Гилберт (2006) Критерии оценки FCS для оценки технологий. Архивировано 18 сентября 2008 г. в Wayback Machine.
- ^ Эдвард Йордан (1986). Управление структурированными методами: стратегии разработки программного обеспечения в 1990-е годы . Yourdon Press. стр.35.
- ^ а б FAA (2000). FAA Руководство по системе безопасности, Приложение D . 30 декабря 2000 г.
- ^ а б Дэйв Левитт (2000). «Введение в структурированный анализ и дизайн». на faculty.inverhills.edu/dlevitt . Проверено 21 сентября 2008 г. Больше не в сети, 2017 г.
- ^ а б Стивенс, Майерс и Константин 1974 .
- ^ a b Юрдон и Константин 1979 .
- ^ Макменамин, Стивен М .; Палмер, Джон Ф. (1984). Важнейший системный анализ . Yourdon Press. ISBN 978-0-13-287905-7.
- ^ Гавриел Салвенди (2001). Справочник по промышленной инженерии: технологии и операционный менеджмент. . с.508.
- ^ Йордон, Эдвард (1989). Современный структурный анализ . Прентис-Холл. ISBN 978-0-13-598632-5.
- ^ Дэвид С. Хэй (1999) Достижение соответствия модным словам в объектной ориентации Архивировано 20 октября2008 г. в Wayback Machine Essential Strategies, Inc.
- ^ a b c Рабочая группа структуры архитектуры DoD (2003). DoDAF 1.5, том 2 , 15 августа 2003 г.
- ^ Б с д е е г Алан Хехт и Энди Симмонса (1986) Интегрируя Автоматизированный структурный анализ и проектирование с Ada Программирование Поддержка Среды NASA 1986.
- ↑ Том ДеМарко (1978). Структурированный анализ и спецификация системы . Yourdon Press, Нью-Йорк, 1978.
- ^ NDE Управление проектами архивации 2008-11-07 в Вайбак Machine вебсайта (НПОЕСС) Данные эксплуатирования. 2008 г.
- ^ a b Александр Косяков, Уильям Н. Свит (2003). Системная инженерия: принципы и практика с. 413.
- ^ a b c Глоссарий по интеграции данных Архивировано 18 февраля 2012 г. в Wayback Machine , Министерство транспорта США, август 2001 г.
- ^ TechTarget, SearchSOA , что такое словарь данных?
- ^ Практический обзор AHIMA, Рекомендации по разработке словаря данных , Журнал AHIMA 77, № 2 (февраль 2006 г.): 64A-D.
- ^ Джон Аззолини (2000). Введение в практики системного проектирования . Июль 2000 г.
- ^ В. Стивенс, Г. Майерс, Л. Константин, «Структурированный дизайн», IBM Systems Journal, 13 (2), 115-139, 1974.
- ^ a b «Управление конфигурацией» В: Ресурсы IRS, часть 2. Информационные технологии Глава 27. Управление конфигурацией . По состоянию на 14 ноября 2008 г.
- ^ Джеймс Мартин , Карма Л. МакКлюр (1988). Структурированные методы: основа для дела . Прентис Холл. стр.56.
- ^ Дэвид Вольбер " Структурные диаграммы, заархивированные 19 февраля 2009 г. на Wayback Machine : Дополнительные примечания Структурные диаграммы и реализация" снизу вверх ": версия для Java.
- ^ Пейдж-Джонс 1980 .
- ^ Belkhouche, Б. и JE Urban. (1986). «Прямая реализация абстрактных типов данных из абстрактных спецификаций». В: IEEE Transactions on Software Engineering, стр. 549-661, май 1986 г.
дальнейшее чтение
- Стивенс, WP ; Майерс, ГДж ; Константин, LL (июнь 1974 г.). «Структурированный дизайн». IBM Systems Journal . 13 (2): 115–139. DOI : 10.1147 / sj.132.0115 .
- Юрдон, Эдвард ; Константин, Ларри Л. (1979) [1975]. Структурированный дизайн: основы дисциплины проектирования компьютерных программ и систем . Yourdon Press. ISBN 0-13-854471-9.
- Том ДеМарко (1978). Структурированный анализ и спецификация системы . Юрдон. ISBN 0-91-707207-3
- Пейдж-Джонс, М. (1980), Практическое руководство по проектированию структурированных систем , Нью-Йорк: Yourdon Press
- Дерек Дж. Хэтли, Имтиаз А. Пирбхай (1988). Стратегии спецификации систем реального времени . John Wiley and Sons Ltd. ISBN 0-932633-04-8
- Стивен Дж. Меллор и Пол Т. Уорд (1986). Структурированная разработка для систем реального времени: методы моделирования реализации: 003 . Прентис Холл. ISBN 0-13-854803-X
- Эдвард Йордон (1989). Современный структурный анализ , серия Yourdon Press Computing, 1989, ISBN 0-13-598624-9
- Кейт Эдвардс (1993). Структурированные методы в реальном времени, системный анализ . Вайли. ISBN 0-471-93415-1
Внешние ссылки
- Структурированный анализ вики
- Три вида структурного анализа CRaG Systems, 2004.