Другие языки программирования и технологии

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

К примеру, я, как разработчик, знаю как выполнять задачи технического характера. Но сам себе поставить их я не понимаю как, и в основном делаю что-то по мыслям реального времени. Беспокоюсь что таким образом система не будет правильно спроектирована. Чтобы не тратить время, я реализую специфичные для решения системных задач решения, которые точно понадобятся в готовой системе. Таким образом, с отдельными кирпичиками проблем нет. Но встаёт вопрос в том, а как же всё таки правильно всё спроектировать?
Обычное техническое проектирование, состоящее из нескольких стадий. После черновой разработки спецификата идёт сначала системная декомпозиция, а потом композиция по принципу "снизу вверх". После этого следуют выход на метауровень и гибкая адаптация системы к нарастающему по сложности функционированию в однотипных или же изменяющихся условиях. Адаптации к функционированию системы в реальных условиях подлежит всё - спецификации системы, функции, работа всех её элементов со всеми их свойствами и связями между ними. Исследуются как виртуальные копии системы, так и её вполне реальные образцы. Весь процесс от конструирования до изготовления системного образца и его испытаний является открытым, гибким и итеративным, что значит с повторениями на разных стадиях и между стадиями вплоть до запуска разработки в серию при её серийном производстве или сдачи заказчику после её изготовления "под ключ".
.†igorek† .
.†igorek† .
66 572
Лучший ответ
Костик Ковалёв Так говорит только тот, что сам никогда никакие программные системы не делал, а только старых книжек начитался. Никто так не делает.
Работает целый коллектив.В одиночку такие дела не делаются
> как же всё таки правильно всё спроектировать?
Да никто такими вопросами уже не задается давно..

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

Кибернетика - ЗЛО.
СШ
Сергей Шутый
19 994
Проектирование сложных систем - это длительный и трудоемкий процесс, который требует определенных знаний и навыков. В процессе проектирования разработчик должен учитывать множество факторов, таких как требования заказчика, ограничения по ресурсам, возможности технологий, ожидаемые нагрузки и т.д.

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

Существует множество методологий и инструментов для проектирования сложных систем, например, UML (Unified Modeling Language), BPMN (Business Process Model and Notation), ERD (Entity-Relationship Diagram) и многие другие. Использование таких инструментов позволяет разработчикам лучше понимать процессы в системе и выявлять потенциальные проблемы еще на стадии проектирования.

Также важно помнить о принципах SOLID, которые помогают создавать гибкие и расширяемые системы. Кроме того, разработчики могут применять практики DevOps, такие как автоматизация процессов сборки, тестирования и развертывания, чтобы ускорить и упростить процесс разработки.

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