Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Software Design/Записи в блоге |
Задача про датчики: построение функциональной архитектуры
2011-10-02 23:32:00 (читать в оригинале)Один из идеологов объектно-ориентированного подхода и один из авторов языка моделирования UML Джеймс Рамбо пишет:
"Модель классов описывает статическую структуру системы: объекты и отношения между ними, атрибуты и операции для каждого класса объектов. Модель классов – самая важная из трёх основных моделей. Мы считаем, что в основе системы должны быть объекты, а не требуемая функциональность, потому что объектно-ориентированная система лучше соответствует реальному миру и оказывается более жизнеспособной при возможных изменениях".
Дж. Рамбо, М. Блаха. UML 2.0. Объектно-ориентированное моделирование и разработка. 2-е изд. – СПб.: Питер, 2007, стр. 42.
На мой взгляд, данное утверждение в корне неверно, потому что любая система проектируется и создаётся для чего-то, т.е. предназначена для выполнения каких-то полезных функций. Эти полезные функции должны выполняться эффективно, желательно, с наименьшими затратами и с соблюдением надлежащего качества. Как результат, архитектура программы должна быть заточена под полезные функции, а не под абстрактные объекты реального мира.
С чего начать проектирование программы? Часть 2
2011-08-22 00:45:00 (читать в оригинале)Прежде чем следовать дальше, повторим основные тезисы предыдущей статьи:
- Любая программа разрабатывается для решения конкретных задач. Эти задачи будем называть полезными функциями или просто функциями.
- Прежде чем проектировать архитектуру программы, нужно сначала разработать алгоритм выполнения каждой полезной функции. Такой алгоритм в машиностроении называется технологией или технологическим процессом.
- Технологический процесс представляет собой последовательность операций, которая может быть описана либо в текстовом виде в форме варианта использования, либо в форме блок-схемы, flowchart'а.
- Порядок проектирования можно описать в виде такой схемы:
Функция --> Технологический процесс --> Архитектура
Сначала нужно сформулировать полезные функции, которые будет выполнять проектируемая программа. Затем – описать технологический процесс для каждой из них. И только после этого можно проектировать архитектуру.
[OFF:] Что вы думаете о таланте?
2011-08-20 15:14:00 (читать в оригинале)Мой знакомый попросил меня разместить это сообщение.
Проводится исследование талантливости / гениальности.
Можно ответить на любое количество вопросов из 9 и задать свой.
Ответы на наиболее интересные / сложные вопросы будут опубликованы в сентябре-2011.
Если кто-то хочет принять участие в опросе, прошу следовать по ссылке.
С чего начать проектирование программы? Часть 1.
2011-08-19 00:36:00 (читать в оригинале)С чего начать проектирование программы? Классический объектно-ориентированный подход даёт нам однозначный ответ на этот вопрос: с выявления ключевых абстракций и построения объектной модели предметной области.
Джеймс Рамбо, один из создателей языка UML и Rational Unified Process'а, в своей книге "UML 2.0. Объектно-ориентированное моделирование и разработка" предлагает нам такой алгоритм проектирования:
- Изучить предметную область и выделить классы предметной области.
- Удалить лишние классы (несущественные или избыточные).
- Связать классы ассоциациями.
- Выделить в классах атрибуты.
- Реструктуризовать классы при помощи наследования.
- Добавить классы приложения.
- Добавить операции.
Дж. Рамбо, М. Блаха. UML 2.0. Объектно-ориентированное моделирование и разработка. 2-е изд. – СПб.: Питер, 2007, стр. 218 – 285.
После выполнения этой процедуры предполагается, что проектировщик получает архитектуру программы, которую только и надо что реализовать в коде.
Такой подход к проектированию напоминает мне попытки некоторых учёных и философов эпохи Возрождения построить летательный аппарат, наблюдая за полётами птиц.
Проблема эллипса и окружности
2011-07-19 09:48:00 (читать в оригинале)Нередко среди приверженцев объектного подхода возникают споры о том, как правильно унаследовать тот или иной класс. Как правило, споры эти выливаются в длинные обсуждения и не приносят ощутимого результата. Каждый из участников дискусии остаётся при своём мнении.
Одной из проблем, которая порождает подобные дискуссии, является проблема эллипса и окружности. Её можно сформулировать так:
Как с точки зрения объектно-ориентированного подхода правильно объединить в единую иерархию два класса - класс Эллипс и класс Окружность:
Унаследовав Эллипс от Окружности?
Или унаследовав Окружность от Эллипса?
Дальше »
Категория «Люди»
Взлеты Топ 5
+379 |
394 |
Ruslan_Terentiev |
+367 |
436 |
Мыслефабрика |
+357 |
402 |
Зюзин |
+308 |
319 |
I have been here before |
+306 |
329 |
MODRA_NEST |
Падения Топ 5
-1 |
17 |
WAR13 |
-3 |
325 |
Anton Bielousov |
-5 |
24 |
Tindomerel |
-6 |
10 |
Beruthiel |
-7 |
4 |
Novov.Ru/Блог |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.