Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП, Выделениние классов 
:(
    Опции темы
Joil
Дата 24.8.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8



Все доброго утра\дня\вечера\ночи!
Не уверен что пишу в правильной ветке....
Появился такой вопрос. Есть ли в ООП (думаю что есть, но быстрый поиск в гугле и на сайте ничего не дал) принципы (а точнее правила, инструкции или что либо еще) выделения сущностный\классов. Т. е. нужно нам допустим написать программу, анализируем, выделяем сущности (как в БД), создаем классы (пишем внутренности) и все...
Как то все это пока делается интуитивно. Может кто подскажет как это делать более менее по правилам?
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ...
PM MAIL ICQ   Вверх
levkunchik
Дата 24.8.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



ничего не понял :(
PM MAIL   Вверх
neic
Дата 24.8.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Почитайте про диаграммы классов в нотации UML.

Т.е. делаете диаграмму классов, из нее генерируете код в ЯП, там разрабатываете внутренности.
PM MAIL WWW ICQ Skype   Вверх
Joil
Дата 24.8.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8



Цитата(neic @  24.8.2010,  16:13 Найти цитируемый пост)
Почитайте про диаграммы классов в нотации UML.

Т.е. делаете диаграмму классов, из нее генерируете код в ЯП, там разрабатываете внутренности. 

Не, UML я знаю... я говорю не о способе представления классов и их методов в виде прямоугольничков связанных. А о логике выделения этих прямоугольничков (читай классов)...
Т. е. как мы делаем в БД. Допустим нам нужно БД для вокзала(продажа билетов), мы сидим и как то интуитивно или по правилам выделяем сущности. Например (пассажир, билет, место, номер поезда и т. д.). Этим сущностям потом в соответствие создадим таблицы, связанные между собой... И у нас будет БД.
Так вот, эти самые сущности, мы выделяем по какой то логике, по каким то принципам, может быть правилам. В ООП классы мы тоже как то выделяем. Ну и собственно вопрос: есть ли какие нибудь правила которые позволят выделять классы наиболее правильно? Ведь можно в большом проекте вместо 30 нужных классов (для более гибкой и удобной разработки и поддержки) выделить 5 и написать ###код, где одно с другим вяжется через ж...
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ...
PM MAIL ICQ   Вверх
ValeryLaptev
Дата 25.8.2010, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Препод



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 19.8.2010
Где: Астрахань

Репутация: нет
Всего: 1



Нету правил пока. Можно почитать у Гради Буча. Но все книжки пока только рекомендуют. Никаких правил не выработали - это чисто творческая часть проекта. И только от опыта зависит, удачно получится или нет. 
Есть книжка Кента Бека "Разработка через тестирование" - там ход мыслей Бека расписан. Тоже на эту же тему - очень интересно почитать.  
PM MAIL   Вверх
Joil
Дата 25.8.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8



Цитата(ValeryLaptev @  25.8.2010,  10:35 Найти цитируемый пост)
Нету правил пока.

Да, это плохо, так как по правилам опыт набирается куда быстрее чем интуитивно. ИМХО. А что значит "пока", просто к слову или Вы уверены в том, что когда то это направление перейдет из области творчества в область следования правилам?

Цитата(ValeryLaptev @  25.8.2010,  10:35 Найти цитируемый пост)
Можно почитать у Гради Буча. Но все книжки пока только рекомендуют.

Нужно на днях поискать и гляну! Я так понимаю У Гради Буча какие то общие рекомендации по проектированию(наверное вот в этой книге: Объектно-ориентированный анализ и проектирование)?

Цитата(ValeryLaptev @  25.8.2010,  10:35 Найти цитируемый пост)
Есть книжка Кента Бека "Разработка через тестирование" - там ход мыслей Бека расписан. Тоже на эту же тему - очень интересно почитать.   

Это когда сначала пишут тесты для программы а потом саму программу удовлетворяющую этим тестам?  smile На самом деле довольно интересно, давно хотел ознакомиться с этой концепцией.
Спасибо за рекомендации.
Но вопрос не закрывается. Предлагаю людям делиться кое-какими мыслями на этот счет, в этой теме. Понимаю конечно что процесс выделения сущностей сформулировать трудно, но все таки, может у кого то есть какие нибудь профессиональные взгляды\методы\мысли\уловки\фичи на этот счет.  smile 

Хотел бы еще услышать мнение, очень уважаемого мной, отличного аналитика и здешнего модератора Се ля ви!  smile 

Это сообщение отредактировал(а) Joil - 25.8.2010, 12:41
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ...
PM MAIL ICQ   Вверх
powerOn
Дата 25.8.2010, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: нет
Всего: 159



Joil, я думаю что тебе нужно смотреть с сторону Domain-Driven Design. pdf


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
ida
  Дата 27.8.2010, 11:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


замужем
****


Профиль
Группа: Завсегдатай
Сообщений: 2277
Регистрация: 14.5.2002
Где: Санкт-Петербург

Репутация: 6
Всего: 58



Цитата(Joil @ 24.8.2010,  15:48)
Есть ли в ООП (думаю что есть, но быстрый поиск в гугле и на сайте ничего не дал) принципы (а точнее правила, инструкции или что либо еще) выделения сущностный\классов. Т. е. нужно нам допустим написать программу, анализируем, выделяем сущности (как в БД), создаем классы (пишем внутренности) и все...
Как то все это пока делается интуитивно. Может кто подскажет как это делать более менее по правилам?

В ООП нет, а в ООА (анализ) есть.
Т.к. анализ проводится перед проектированием, то вы пользуетесь его результатами в дальнейшем.

В основном эти правила формулируются настолько абстрактным языком, что проще объяснить на примере.
Одна и та же сущность может быть как классом, так и атрибутом или состоянием - в зависимости от решаемой задачи. А от этого зависит, как проектировать модель, и БД в том числе.

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

Цитата(Joil @ 25.8.2010,  13:35)
Хотел бы еще услышать мнение, очень уважаемого мной, отличного аналитика и здешнего модератора Се ля ви

Слава здесь далеко не единственный отличный аналитик  smile 
Да и появляется редко в последнее время.

Это сообщение отредактировал(а) ida - 27.8.2010, 11:53
PM WWW   Вверх
Joil
Дата 27.8.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 24.1.2008

Репутация: нет
Всего: 8



Цитата(powerOn @  25.8.2010,  22:16 Найти цитируемый пост)
Joil, я думаю что тебе нужно смотреть с сторону Domain-Driven Design. pdf 


powerOn, спасибо, взгляну! Даже не слышал об этом, хотя может и слышал но не знал что это оно  smile 

Цитата(ida @  27.8.2010,  11:49 Найти цитируемый пост)
В ООП нет, а в ООА (анализ) есть.

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

Цитата(ida @  27.8.2010,  11:49 Найти цитируемый пост)
Слава здесь далеко не единственный отличный аналитик  smile 

Хех... я такого и не говорил  smile 

--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ...
PM MAIL ICQ   Вверх
cat512
Дата 29.8.2010, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: нет
Всего: 15



Цитата(ValeryLaptev @ 25.8.2010,  10:35)
Нету правил пока. Можно почитать у Гради Буча. Но все книжки пока только рекомендуют. Никаких правил не выработали - это чисто творческая часть проекта. И только от опыта зависит, удачно получится или нет. 
Есть книжка Кента Бека "Разработка через тестирование" - там ход мыслей Бека расписан. Тоже на эту же тему - очень интересно почитать.

Как это нет??? По крайней мере 3 метода есть.(читайте Буча, Рамбо внимательнее).
1. Метод "Существительное - глагол"
2. Метод "Карт обязанностей"
3. Метод "OOA RUP". Собственно в этом методе, акцентируется внимание на три класса объектов;
Boundary classes, Control classes, entity classes  
PM MAIL   Вверх
Ake1a
Дата 22.9.2010, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.6.2008

Репутация: нет
Всего: нет



Во-во.

1. Лексический анализ. Подлежащее- сущность/аттрибут и сказуемое - связь/метод
2. Исследование рабочих моделей того-же business domain
3. Ещё чего-то, чего на вскидку не помню, но технология вполне топтаная smile
PM MAIL   Вверх
YankovskyAndrey
Дата 27.8.2011, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



Гради Буч не очень(в плане книги). Он такой философ от программирования, постоянно цитирует Страуструпа и прочих. Много воды. Океан.
В его книжке интересна вторая часть(примерно четверть от целого), где он разбирает примеры. Тут тебе и анализ требований и создание дизайна(с диаграммами и блекджеком) и что-то от реализации. Это нужно. Смело можно читать только вторую часть. И лучше на английском, помнится разница была между изданиями.

Смотрю в сторону Кента Бека.
//Оффтоп
Никто не подскажет, где лучше покупать книжки на английском? Или может тему на форуме, не могу конкретных советов найти.
PM MAIL   Вверх
Askofen
Дата 6.11.2011, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 12.4.2009

Репутация: нет
Всего: нет



Цитата(Joil @  24.8.2010,  14:48 Найти цитируемый пост)
Есть ли в ООП (думаю что есть, но быстрый поиск в гугле и на сайте ничего не дал) принципы (а точнее правила, инструкции или что либо еще) выделения сущностный\классов.


Не уверен, что в ООП есть такие принципы/правила. Но мой опыт проектирования показывает, что в основу класса всегда нужно класть какие-то обязанности (функции). Не должно быть бесполезных классов, классов, которые ничего не делают и ни за что не отвечают.

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

Проектирование классов для графического редактора
Задача про датчики: Проектирование классов. Часть 1.
Задача про датчики: проектирование классов. Часть 2.

PM MAIL   Вверх
RockClimber
Дата 8.11.2011, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Цитата(Askofen @  6.11.2011,  16:54 Найти цитируемый пост)
Не уверен, что в ООП есть такие принципы/правила.

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


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Системный анализ, проектирование и UML"
Се ля ви

Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем:

• предпроектные обследования объектов автоматизации;

• разработка концепции создания систем;

• моделирование бизнес-процессов (в т.ч. на UML);

• проектирование архитектуры систем;

• управление проектами;

• управление качеством;

• CASE-средства;

• реинжиниринг.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема »


 




[ Время генерации скрипта: 0.1155 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.