Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
quietOne
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 6
#1

Проектирование ООП программы - C++

04.10.2015, 21:36. Просмотров 360. Ответов 3
Метки нет (Все метки)

Привет, начал писать большие программы, без планирования, в итоге , приходится переписывать по 100 раз, что посоветуете, как правильно спланировать работу? Интересует как создать сценарий, организовать взаимодейсвие объектов и определить что должно входить в интерфейсы классов
Спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2015, 21:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проектирование ООП программы (C++):

Проектирование программы - C++
Здравствуйте! Подскажите пожалуйста, какими средствами эффективнее проектировать и рекодить программу? Тема стала актуальна с...

ООП часть программы - C++
Доброго времени суток. Может кто поможет разобраться с частью программы? void Input() // ввод { double Ch; ...

Две Программы по С++ по ООП - не получается сделать - C++
Вот две задачки по ООП не могу сделать, кто может напишите код пожалуйста, лучше с коментариями для каждой строчки, буду очень признателен...

Составить грамотный интерфейс и стиль программы. (ООП) - C++
Всем доброго времени суток. На этом форуме есть люди, которые разрабатывали крупные проекты. Мне нужны советы по грамотному...

Зацикливание программы. В чем же ошибка? ( Упражнение 5 Глава 7 Лафоре ООП C++) - C++
Миллион раз пересмотрел, ну не вижу ошибку и все тут :(. Должна же остановка на вводе быть! Что туда передается.... Не понятно... Помогите...

Проектирование программы: методы и литература по теме - C++
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу. ...

3
zss
Модератор
Эксперт С++
6517 / 6079 / 2001
Регистрация: 18.12.2011
Сообщений: 15,811
Завершенные тесты: 1
04.10.2015, 21:38 #2
Образцы (шаблоны) программ для типовых задач
0
hoggy
6691 / 2873 / 493
Регистрация: 15.11.2014
Сообщений: 6,465
Завершенные тесты: 1
04.10.2015, 22:43 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от quietOne Посмотреть сообщение
как правильно спланировать работу?
1.
мысленно представьте себе, что вы - программист-бизнесмен.
который должен разработать "под ключ" для заказчика.

теперь представьте себе, что вы и есть - заказчик.

сформируйте (можно по пунктам) "хотелки заказчика".
самым обычным русским языком опишите,
чего вообще хочется от проектируемой системы.
зачем она вообще нужна.
и что она будет делать.

2.
теперь мысленно представьте себе,
что вы - менеджер проекта.
который поговорил с заказчикам,
и теперь должен объяснить главному программисту,
что собственно требуется построить.

отталкиваясь от "хотелок заказчика"
сформируйте требования к проектируемой системе.

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

у требований есть последствия.
например, если есть требование "кроссплатформа",
значит уже нежелательно завязываться на всякое winapi.
и нужно писать максимально портируемый код.

3.
теперь мысленно представьте себе,
что вы - главный программист.

на основе требований к продукту сформулируйте "дизайн использования".
опишите: как пользователи будут пользоваться вашим продуктом.

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

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

как программист, я считаю этот пункт наиболее важным при разработке.
"написать код не сложно. сложно понять, какую задачу нам нужно решить"
(ц)Макконелл

4.
теперь, на основе дизайна использования,
нужно сформулировать общий дизайн оо-архитектуры вашего продукта.
здесь очень хорошо помогает UML (гугл подскажет).

не нужно пытаться заранее описать все возможные и невозможные классы.
не нужно сильно заостряться на мелких деталях реализации.
достаточно выявить общий костяк:
--- интерфейсы
--- ключевые классы

важно:
архитектура проекта должна отвечать дизайну использования

5.
"хотелки заказчика", "требования", "дизайн использования", "архитектура", и др
все это определяет так называемую "спецификацию проекта".

имея на руках готовую оо-архитектуру проекта,
(точнее там будут лишь общие очертания - костяк)
присмотритесь к ней.

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

на основе спецификации проекта
сформулируйте техническое задание для программиста-исполнителя.

если с этим возникнет проблема,
значит для каждого такого "проблеммного" подпроекта
нужно отработать все выше представленные пункты.

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

все, что вам нужно - это отработать материал по этому заданию.

7.
PROFFIT!!!!

------------------------------------------------------

важно:
при решении любой задачи не выходить за рамки требований.
любое решение за рамками требований - решение совсем другой задачи.

важно:
при конструировании очередного какого-то класса,
всегда осознавать требования к этому классу,
и дизайн его использования.

не приступайте к конструированию,
не осознав что именно вы хотите получить.

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

ну и наконец самое важное:
все описанное выше может помочь,
когда нужно работать, а в голове каша,
и в коде тоже каша.

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

а вот программисты ленивые скатины так уже не заморачиваются.
им типа некогда всякой фигней страдать тратить время на документацию.
все время уходит на клац-клац-клац - набивку кода по готовому ТЗ.
UML вообще в топку, вместе с этими вашими блок-схемами, мне по коду проще.

но это уже такой уровень квалификации,
когда реальной надобности "писать документацию вперед, а код - взад"
у вас уже на самом деле не будет.
и вопрос этой темы для вас станет неактуальным.
3
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,109
Завершенные тесты: 1
04.10.2015, 22:59 #4
hoggy, сказал так что прям нечего добавить )))
1
04.10.2015, 22:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2015, 22:59
Привет! Вот еще темы с ответами:

Проектирование классов - C++
Доброго здравия жителям Земли. Вопрос таков: нужно ли в своём проекте жёстко скрывать реализацию классов, городить кучу интерфейсов как...

Проектирование ОО архитектуры - C++
Интересно мнение публики. "Программирование в терминах интерфейсов" Вопрос такой: как правильно конструировать едино-образный интерфейс? ...

Проектирование класса - C++
Доброго времени суток. Имеется класс Player, в нём — приватный объект типа Settings. Как наиболее лаконично обратиться извне к публичным...

курсовое проектирование на с++ - C++
21. В цехе находятся 8 станков. Каждый станок имеет свое время обработки заготовки и свое количество материала в кг., уходящего в отходы....


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

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

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