Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Divergence
7 / 7 / 2
Регистрация: 19.06.2013
Сообщений: 174

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

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

Студворк — интернет-сервис помощи студентам
Всем привет!
Когда пишешь небольшую программу, все получается уместить в голове и ничего проектировать не нужно. Сейчас впервые я пытаюсь сделать что-то настолько громадное, что мозга все запомнить просто не хватает.
Опять же, из-за дилетантского подхода, у меня проектирование идет параллельно кодированию, что привело меня к тому, что я чаще переписываю код, чем добавляю новый функционал. Потому что если проект будет плохо спроектирован, то я просто умру при попытке там что-то исправлять или добавлять.
Отсюда мой вопросы:
1) Какое ПО используется для проектирования больших проектов? (я вижу это созданием логически связанных диаграмм с классами, функциями и переменными).
2) Какие книги можете посоветовать, которые рассказывают о том как правильно проектировать большие ООП проекты?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2014, 18:54
Ответы с готовыми решениями:

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

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

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

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

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

Что касается "кода горомадного размера": практика, только практика. Ты думаешь, бегуны с первого подхода пробегают стометровку за 9 секунд? Ага, как же. Это достигается только долгими тренировками. Так и у тебя: качество кода будет улучшаться постепенно. Правильные имена функций, переменных, комментарии позволят не запутаться в коде.
0
Заблокирован
10.06.2014, 11:31
Ну так и начните со схемы классов. Какие классы объектов у вас будут? какие из них имеет смысл наследовать и от каких? Какие в них будут поля?
Я бы делала это в базе данных вроде Access или в электронных таблицах, каждая переменная (или иное поле, например массив) имеет свою запись, колонки - классы, значение ячейки - нужна ли эта переменная в этом классе. Там можно получать выборки визуально. И вот отсюда и определить, что от чего наследовать. Если в классе 1 переменные 1-15, а в классе 2 4-10, 12 и 16-18, то 2 наследует от 1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2014, 11:31
Помогаю со студенческими работами здесь

Классик ООП и проектирования о множественном наследовании
Бертран Мейер, один из главных вдохновителей ООП-проектирования, автор принципа "open-close" SOLID(буква O) пишет следующее: ...

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

Написание больших проектов
Пишу проект, но возникла проблема: проект так разросся, что обычные комментарии в коде не спасают, очень часто приходится долго искать и...

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

Разработать программу для учета сотрудников с использованием средств ООП
Всем привет от новичка. Мне отправили 2 тестовых задания по вакансии стажер-программист C#. 1-е я сделал консольное, но без применения...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru