Структурный анализ – это метод исследования системы, который начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для такого метода характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней; ограниченный контекст, включающий только существенные на каждом уровне детали; использование строгих формальных правил записи; последовательное приближение к конечному результату.
Все методологии структурного анализа базируются на ряд общих принципов, часть из которых регламентирует организацию работ на начальных этапах жизненного цикла, часть используется при выработке рекомендаций по организации работ. В качестве двух базовых принципов используются следующие: принцип «разделяй и властвуй» и принцип иерархического упорядочивания. Первый принцип используется для решения трудных проблем путем разбиения их на множество меньших независимых задач, легких для понимания и решения. Второй принцип резко повышает понимание проблемы за счет представления ее частей в виде древовидной иерархической структуры, т.е. система может быть понята и построена по уровням, каждый из которых добавляет новые детали.
Существует ряд не менее значимых принципов инженерии программного обеспечения, игнорирование любого из них может привести к непредсказуемым последствиям (в том числе к неуспеху всего проекта). Необходимо отметить основные из таких принципов.
1. Принцип абстрагирования – заключается в выделении существенных с некоторых позиций аспектов системы и представление проблемы в простом общем виде.
2. Принцип формализации – заключается в необходимости строгого методического подхода к решению проблемы.
3. Принцип упрятывания – заключается в упрятывании несущественной на конкретном этапе информации: каждая часть «знает» только необходимую ей информацию.
4. Принцип концептуальной общности – заключается в следовании единой философии на всех этапах жизненного цикла (структурный анализ – структурное проектирование – структурное программирование – структурное тестирование).
5. Принцип полноты – заключается в контроле необходимых выполняемых системой функций.
6. Принцип независимости данных – заключается в том, что модели данных должны быть проанализированы и спроектированы независимо от процессов их логической обработки, а также от их физической структуры и распределения.
7. Принцип структурирования данных – заключается в том, что данные должны быть структурированы и иерархически организованы.
8. Принцип доступа конечного пользователя – заключается в том, что пользователь должен иметь средства доступа к базе данных, которые он может использовать непосредственно (без программирования).