Книга: Технологии программирования
1.3. СИСТЕМНЫЙ ПОДХОД И ПРОГРАММИРОВАНИЕ
1.3. СИСТЕМНЫЙ ПОДХОД И ПРОГРАММИРОВАНИЕ
Системный подход — общенаучный обобщенный эвроритм, предусматривающий всестороннее исследование сложного объекта с использованием компонентного, структурного, функционального, параметрического и генетического видов анализа.
Компонентный анализ — рассмотрение объекта, включающего в себя составные элементы и входящего, в свою очередь, в систему более высокого ранга.
Структурный анализ — выявление элементов объекта и связей между ними.
Функциональный анализ — рассмотрение объекта как комплекса выполняемых им полезных и вредных функций.
Параметрический анализ — установление качественных пределов развития объекта — физических, экономических, экологических и др. Применительно к программам параметрами могут быть: время выполнения какого-нибудь алгоритма, размер занимаемой памяти и т. д. При этом выявляются ключевые технические противоречия, мешающие дальнейшему развитию объекта, и ставится задача их устранения за счет новых технических решений.
Генетический анализ — исследование объекта на его соответствие законам развития программных систем. В процессе анализа изучается история развития (генезис) исследуемого объекта: конструкции аналогов и возможных частей, технологии изготовления, объемы тиражирования, языки программирования и т. д.
При блочно-иерархическом подходе (частном эвроритме системного подхода, который используется часто в технике и программировании) процесс проектирования и представления о самом объекте расчленяется на уровни. На высшем уровне используется наименее детализированное представление, отражающее самые общие черты и особенности проектируемой системы. На каждом новом последовательном уровне разработки степень подробности рассмотрения возрастает, при этом система рассматривается не в целом, а отдельными блоками.
Методология блочно-иерархического подхода базируется на трех концепциях: разбиения и локальной оптимизации, абстрагирования, повторяемости.
Концепция разбиения позволяет сложную задачу проектирования объекта или системы свести к решению более простых задач с учетом их взаимосвязи.
Локальная оптимизация подразумевает улучшение параметров внутри каждой простой задачи.
Абстрагируемость заключается в построении моделей, отражающих только значимые в данных условиях свойства объектов.
Повторяемость — в использовании существующего опыта проектирования.
Блочно-иерархический подход позволяет на каждом уровне решать задачи приемлемой сложности. Разбиение на блоки должно быть таким, чтобы документация на любом уровне была обозрима и воспринимаема одним человеком.
Главным недостатком блочно-иерархического подхода является то, что на верхних уровнях имеют дело с неточными моделями объекта, и решения принимаются в условиях недостаточной информации. Следовательно, при этом подходе высока вероятность проектных ошибок.
- 1.1. ОБЩИЕ ПОЛОЖЕНИЯ ТЕОРИИ ПРОЕКТИРОВАНИЯ
- 1.2. ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММ
- 1.3. СИСТЕМНЫЙ ПОДХОД И ПРОГРАММИРОВАНИЕ
- 1.4. ОБЩЕСИСТЕМНЫЕ ПРИНЦИПЫ СОЗДАНИЯ ПРОГРАММ
- 1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК
- 1.6. СТАНДАРТЫ И ПРОГРАММИРОВАНИЕ
- 1.7. ОПИСАНИЕ ЦИКЛА ЖИЗНИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 1.8. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ
- 1.9. ТИПОВЫЕ ОШИБКИ ОБУЧАЕМЫХ ПРИ СОСТАВЛЕНИИ ТЕХНИЧЕСКОГО ЗАДАНИЯ
- 1.10. МОДЕЛИРОВАНИЕ И ПРОГРАММИРОВАНИЕ. ПОНЯТИЕ СПЕЦИФИКАЦИЙ
- 1.11. МНЕМОНИКА ИМЕН В ПРОГРАММАХ
- 1.12. ПРОБЛЕМА ТИПОВЫХ ЭЛЕМЕНТОВ В ПРОГРАММИРОВАНИИ
- 4.5.2. Системный вызов clone()
- 1.1. Введение в объектно-ориентированное программирование
- Программирование на языке Пролог для искусственного интеллекта
- Глава 1 Компьютер – с какой стороны к нему подходить
- 2.3. Подходы к оценке эффективности рекламы
- 2.4. АНАЛИЗ ТРЕБОВАНИЙ К СИСТЕМЕ (СИСТЕМНЫЙ АНАЛИЗ) И ФОРМУЛИРОВКА ЦЕЛЕЙ
- Мотивация персонала в рамках подхода «управление по целям»
- Плюсы и минусы различных подходов к разработке бизнес-архитектуры
- Почему традиционный подход не принесет вам большой пользы
- Глава 15. Программирование на VBA в Word.
- Функциональное программирование в Python: lambda, zip, filter, map reduce
- 1. Лекция: Введение в программирование на языке Python.