Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Divergence
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
#1

Средства для проектирования больших проектов с использованием ООП

08.06.2014, 18:54. Просмотров 492. Ответов 5
Метки нет (Все метки)

Всем привет!
Когда пишешь небольшую программу, все получается уместить в голове и ничего проектировать не нужно. Сейчас впервые я пытаюсь сделать что-то настолько громадное, что мозга все запомнить просто не хватает.
Опять же, из-за дилетантского подхода, у меня проектирование идет параллельно кодированию, что привело меня к тому, что я чаще переписываю код, чем добавляю новый функционал. Потому что если проект будет плохо спроектирован, то я просто умру при попытке там что-то исправлять или добавлять.
Отсюда мой вопросы:
1) Какое ПО используется для проектирования больших проектов? (я вижу это созданием логически связанных диаграмм с классами, функциями и переменными).
2) Какие книги можете посоветовать, которые рассказывают о том как правильно проектировать большие ООП проекты?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 18:54
Ответы с готовыми решениями:

В чем разница MFC проектов и CLI проектов?
хочется свободно использовать winApi функции т.к. мне кажется что .net в CLI/...

Средства для создания GUI
Да, такие темы периодически всплывали. Но последняя более похожая датирована...

Средства для отслеживания сообщений
Господа! Есть ли в Visual Studio какие-нибудь средства для отслеживания...

Какие средства ООП можно применить для описания Игрока и Противника?
Всем доброго времени суток! Ситуация следующая: написал игру на курсовой в...

Удобная среда для чтение больших проектов
Господа, есть ли удобная среда какая-то которая бы облегчала чтение больших...

5
Блондинка с ОЗМ
Заблокирован
09.06.2014, 07:50 #2
Что, не помогает никто?
А потому что такого особенно и нет.
Модель предметной области строит Protege, но ИМХО это фуфло - получается, в сущности, база данных, только еще к ней можно схему нарисовать покрасивше.
Для алгоритмов - блок-схемы.
А с переменными и функциями! - такого нет.
Меня сильно заинтересовал ваш проект, что же там ТАКОГО сложного)))))))
Если хотите, дайте мне ТЗ и кратко изложите свои идеи, постараюсь помочь с проектированием.
И конечно, не спроектировав хотя бы стратегически, лучше не кодите, а то потом не разберетесь.
1
CheshireCat
Эксперт С++
2912 / 1261 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
09.06.2014, 12:32 #3
А что в твоем понимании "что-то настолько громадное, что мозга все запомнить просто не хватает"?
0
Divergence
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174
09.06.2014, 23:30  [ТС] #4
Цитата Сообщение от Блондинка с ОЗМ Посмотреть сообщение
Модель предметной области строит Protege, но ИМХО это фуфло - получается, в сущности, база данных, только еще к ней можно схему нарисовать покрасивше.
Для алгоритмов - блок-схемы.
А с переменными и функциями! - такого нет.
Я просто думал, что в больших проектах используются какие-то удобные средства для проектирования. Почитал про UML-диаграммы, скачал пару программ, но меня не впечатлило... Как то не очень наглядно получается, особенно при большом количестве переменных. Возможно я просто использовал не те программы и до конца не проникся идеей... Я пока остановился на простом диаграммо-стройщике. Но там чего-то не хватает, не могу понять чего. Как то все выглядит просто и наглядно. Мелкие детали сложно учитывать, общение между классами и функциями сложно учитывать (не всегда понимаешь как это нарисовать так, чтобы было сразу понятно что происходит).
Цитата Сообщение от Блондинка с ОЗМ Посмотреть сообщение
Если хотите, дайте мне ТЗ и кратко изложите свои идеи, постараюсь помочь с проектированием.
И конечно, не спроектировав хотя бы стратегически, лучше не кодите, а то потом не разберетесь.
ТЗ у меня пока нет. Пробую написать 2D игру (в Direct2D). Я сейчас в такой ситуации, что для того, чтобы понять что я хочу, мне надо понять что я могу. Поэтому, пока все сводится просто к наброскам и тестированию функционала. Но дело постепенно движется вперед, и без четкого плана двигаться дальше становится все сложнее.
Меня в первую очередь интересуют правила грамотного взаимодействия классов между собой. А так же реализация различных "триггеров" - что-то произошло; какое-то время идет реакция; конец "триггера".
Когда просто размышляешь об этом - кажется что все просто и очевидно. А на практике получается немного по другому...

Цитата Сообщение от CheshireCat Посмотреть сообщение
А что в твоем понимании "что-то настолько громадное, что мозга все запомнить просто не хватает"?
Вспомните свои первые шаги в программировании: 1-2 функции, маленькая задача, код на 3-4 монитора. Я не гений, поэтому код бОльшего размера у меня в голове не умещается, а если не кодить 2-3 дня, то к такому громадному коду возвращаешься как в чужую страну. Поэтому, задача стоит сделать так, чтобы с первого взгляда было понятно что-где и чтобы можно было безболезненно добавлять новые фишки, не ломая старые (и не модифицируя старый код).
Как-то так.
Вдогонку хочу еще спросить про паттерны проектирования: можно ли найти подходящие? Я купил книгу, но пока читаю Страуструпа, поэтому паттерны пока изучать не начинал. Стоит ли?
0
CheshireCat
Эксперт С++
2912 / 1261 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
10.06.2014, 10:01 #5
Цитата Сообщение от Divergence Посмотреть сообщение
Вспомните свои первые шаги в программировании: 1-2 функции, маленькая задача, код на 3-4 монитора. Я не гений, поэтому код бОльшего размера у меня в голове не умещается, а если не кодить 2-3 дня, то к такому громадному коду возвращаешься как в чужую страну. Поэтому, задача стоит сделать так, чтобы с первого взгляда было понятно что-где и чтобы можно было безболезненно добавлять новые фишки, не ломая старые (и не модифицируя старый код). Как-то так. Вдогонку хочу еще спросить про паттерны проектирования: можно ли найти подходящие? Я купил книгу, но пока читаю Страуструпа, поэтому паттерны пока изучать не начинал. Стоит ли?
Гм. Ну, на этом этапе паттерны проектирования тебе без надобности. Хотя книжка (GoF ?) пригодится в дальнейшем, через несколько лет.

Что касается "кода горомадного размера": практика, только практика. Ты думаешь, бегуны с первого подхода пробегают стометровку за 9 секунд? Ага, как же. Это достигается только долгими тренировками. Так и у тебя: качество кода будет улучшаться постепенно. Правильные имена функций, переменных, комментарии позволят не запутаться в коде.
0
Блондинка с ОЗМ
Заблокирован
10.06.2014, 11:31 #6
Ну так и начните со схемы классов. Какие классы объектов у вас будут? какие из них имеет смысл наследовать и от каких? Какие в них будут поля?
Я бы делала это в базе данных вроде Access или в электронных таблицах, каждая переменная (или иное поле, например массив) имеет свою запись, колонки - классы, значение ячейки - нужна ли эта переменная в этом классе. Там можно получать выборки визуально. И вот отсюда и определить, что от чего наследовать. Если в классе 1 переменные 1-15, а в классе 2 4-10, 12 и 16-18, то 2 наследует от 1.
0
10.06.2014, 11:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 11:31

Методы и средства проектирования ПЛИС
Подскажите литературу по методам и средствам проектирования ПЛИС

Классик ООП и проектирования о множественном наследовании
Бертран Мейер, один из главных вдохновителей ООП-проектирования, автор принципа...

Разработать ПО для управления справочником с использованием ООП
Здравствуйте. Ребят пожалуйста, конечно если возможно то просто ссылки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru