DollyPapper
@DollyPapper

На что направлена архитектура ПО? Какие цели приследуются при проектировании?

Коллеги, добрый день. Продолжаю свою серию вопросов в попытке разобраться в проектировании ПО.
Собственно суть вопроса описана в заголовке, опишу немного подробней. Дело в том, что в моем сознании некоторые действия должны производиться только по какой-то определенной причине. То есть должна быть задача.
Правильно ли я себе понимаю задачи которые ставятся при проектировании ПО:
1)Понятность системы для человека(программиста)
2)Расширяемость системы
3)Тестируемость системы

Как итогом пунктов выше должно произойти снижение трудозатрат на исправление багов и снижение времени на добавление функционала.

Мейнлайн который я уловил прочитав как Чистую Архитектуру, так и GOF - изолированность частей системы друг от друга. То есть "программирование через интерфейсы", для низкой связанности (термин могу перепутать, в общем чтобы не было большой завязки одних модулей на другие).
Что я еще упускаю из вида? Какие еще цели ставятся при проектировании системы и какими способами этих целей достичь? Понимаю, что вопрос какой-то абстрактный, задам немножечко конкретики. Сейчас из всех щелей можно услышать про SOLID принципы. Я понимаю их суть(наверное), понимаю (наверное) как им следовать, но я не совсем понимаю к чему в итоге они приводят. Как итогом соблюдения SOLID мы опять же получаем: 1) понятность системы 2) расширяемость системы 3)тестируемость. Верно?
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 2
vvpoloskin
@vvpoloskin
Инженер связи
1) консолидация функциональных требований
2) выявление нефункциональных требований (это не только масштабируемость, а ещё, например, надежность и безопасность)
3) выявление требований, устанавливающихся законодательно, но не описанных в ТЗ (например, соблюдение ФЗ152 или 54).
4) дробление системы на подсистемы с учётом того, что каждую подсистему может выполнять отдельная организация
5) дробление системы на этапы при создании, внедрении и сопровождении
6) формирование ведомости покупных изделий и услуг (оборудование, каналы связи, ЭЦП, да мало ли чего, даже аренда помещения под оборудование или под персонал) и контроль поставки для перехода к следующему этапу
7) контроль выполнения интеграций со сторонними системами (участниками информационного обмена)
Это так, что в голову пришло первым)
А цель чтобы на старте сошёлся треугольник управления проектами: соблюдение сроков, функционала и цены. А в последующем чтобы можно было провести оптимизацию затрат.
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Как итогом пунктов выше должно произойти снижение трудозатрат на исправление багов и снижение времени на добавление функционала.

не факт, для достижения вышеописанного нужно скорее следовать SOLID и KISS.

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

Войдите, чтобы написать ответ

Похожие вопросы