Технология разработки программного обеспечения

7 АНАЛИЗ ТРЕБОВАНИЙ И ОПРЕДЕЛЕНИЕ СПЕЦИФИКАЦИЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7.2.1 Спецификации программного обеспечения при структурном подходе

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

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

Применительно к функциональным спецификациям при этом подразумевается, что:

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

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

Формальные модели, разрабатываемые на этапе определения спецификаций можно разделить на две группы:

  1. модели, зависящие от подхода к разработке (структурного или объектно-ориентированного);
  2. модели, не зависящие от него.

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

Рисунок 7.1 - Классификация моделей разрабатываемого ПО, используемых на этапе определения спецификаций

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

В рамках структурного подхода на этапе анализа и определения спецификаций используют три типа моделей:

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

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

  • диаграмм потоков данных (DFD – Data Flow Diagrams), описывающих взаимодействие источников и потребителей информации через процессы, которые должны быть реализованы в системе;
  • диаграмм «сущность-связь» (ERD – Entity-Relationship Diagrams), описывающих базы данных разрабатываемой системы;
  • диаграмм переходов состояний (STD – State Transition Diagrams), характеризующих поведение системы во времени;
  • спецификаций процессов;
  • словаря данных.

Взаимосвязь компонент такой обобщенной модели показана на рис. 3.2.

Рисунок 7.2 - Элементы полной спецификации методологий структурного анализа и проектирования ПО, основанных на потоках данных

Спецификации процессов. Спецификации процессов обычно представляют в виде краткого текстового описания, схем алгоритмов, псевдокодов, Flow-форм или диаграмм Насси-Шнейдермана. Поскольку описание процесса должно быть кратким и понятным как разработчику, так и заказчи¬ку, для их спецификации чаще всего используют псевдокоды.

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

Обычно описание термина в словаре выполняют по следующей схеме:

  • термин;
  • категория (понятие предметной области, элемент данных, условное обозначение и т. д.);
  • краткое описание.

В качестве примера приведем описание одного из терминов системы ре-шения комбинаторно-оптимизационных задач.

Термин …….... Алгоритм

Категория……. Понятие предметной области

Описание…….. В настоящем проекте используется для обозначения обоб¬щенного понятия «реализация процедуры решения конкретной задачи выбранным методом».

Кроме указанных моделей в состав полной спецификации при любом подходе могут входить математические модели описания объектов предмет¬ной области, которые позволяют уточнить основные соотношения анализи¬руемых величин и накладываемые на них ограничения. Перейдем к более подробному рассмотрению перечисленных моделей.