Форум Сообщества Аналитиков

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - taras_aa

Страницы: 1 2 3 »
1
Для всех / Re: а получили как всегда
« : 23 Декабря 2011, 13:36:31 »
Да нет, там ракета была, она и получилась, но не полетела из-за того, что американцы забыли украсть дефектную ведомость.

2
Не такая уж и большая у Вас диаграмма. Однако, есть множество средств.

Пакеты
Обобщение
Параметризация

В вашем случае наверное можно было бы сделать обобщенный абстрактный класс - Датчик
ИМХО диаграмма может быть быть и не очень большой, но при этом очень запутанной.

3
Посоветуйте какие нибудь сайты и электронную литературу для изучения OCL.

4
А разве с него можно генерить? Да и кодогенерация не совместима с итеративной разработкой: сделал модель, сгенерил, к полученному тексту дописал кусок, отвечающий за аспект реализации, не отражаемый в модели, потом изменил модель, снова сгенерил и тот кусок потерял. Даже если бы генерация операций и была бы всегда адекватна, это шаг назад по сравнению с ручным переводом с UML на c++. А как можно подчеркнуть полностью?

5
Эта версия в vsd.

6
Вам нужно в ветвлении нарисовать много стрелок?
Пять штук, одна входящая, остальные исходящие, а в другом ромбе наоборот.
Так нарисуйте
А можно? Как?
Есть язык UML, его стандрат доступен для изучения.
Ссылку можно?

7
Подчеркнуть, например, "очередь:Очередь".

8
Подчеркнуть пока не смог. Не подскажите, как это сделать?

9
Использую Visio для рисования диаграмм. Как подчеркнуть текст в ActionState? Может я вообще не правильно его набрал? Как это делается? Причём не весь текст, а часть. Что нибудь типа "variable=object:class::attribute".

10
И к чему это ликбез?Я так понимаю это вопрос?
Я перефразирую ее примерно так:
Итак, какова точно нотация элемента строки...не столбца таблицы, а именно столбца конкретной строки.
1. для меня эта фраза звучит как абракадабра
2. что означает нотация элемента строки объекта? У каждого элемента свою нотация?
3. что такое нотация атрибута конкретного объекта?

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

Так что "нотация" атрибута конкретного объекта, можно допустить, = "нотации" атрибута класса, к которому относится объект. Может я что-то не понял в вопросе? Или это был не вопрос? Повтори, пожалуйста.
Элемент строки - ячейка, перепутать её с целым столбцом не возможно. При чём здесь схематичность - не понятно. Конечно, задача - понять. И надо исходить из знания языка, но если в UML принято одно, а у меня то же самое изображено совсем не так, то ни какой это не UML, такой нотации он не знает и должен будет листать всю модель в надежде понять сначала нотацию, а это сбивает с толку. Трансляторы всегда смотрели, где декларировано само имя, а уже там высняли, как. Прямоугольник же объекта имеет свой собственный код, отличный от кода прямоугольника класса. То есть для машины эти сущности абсолютно различны, как не перевирай нотацию при последующем использовании. А человеку надо, видя непосредственно данную конкретную диаграмму, опираться на свои знания, чтоб по памяти безо всякого листания определить, что именно изображено определённым символом, а не тратить время на поиск. Знания - информация в памяти, закреплённая многократным использованием, можешь считать их хранилище гигантским кешем. Аспекты же конкретной модели хранятся в обычной долговременной памяти, к тому же глючной. Поэтому и вспоминать, где видел такую же закорючку в данной модели долго, а знания извлечь в оперативу - быстро, и ошибиться в обозначениях на другом листе данной модели можно элементарно, а в знаниях можно быть хоть в какой то мере уверенным. И начинается не нужное листание и поиск. На те листы надо смотреть, когда нужны другие аспекты модели, изображённые там, иначе теряется наглядность, а с ней и смысл изображать что либо именно в виде диаграмм. Про стрелки из одной точки я знаю, но вопрос не в них, а в цикле. Вверх же стрелки не идут? Но и не одно отдельное итеративное сообщение. Жирные горизонтальные тоже известны, но у меня именно выбор ветви, а не разделение на параллельные нити. Нити исполняются одновременно и соответствуют потокам, но только истинно параллельным, а из ветвей исполняется только одна и не в момент времени, а вообще. Здесь два напитка. А если чай, кофе, квас и морс? Можно в один ромб сделать? Объекты надо подчеркнуть? Допустим. А после объекта как сослаться на его атрибут? Через двойное двоеточие? Через простое? Через точку? Через "->"? Как? И код я пока не писал.

11
Трансформатор - электрический девайс на подстанции, а это называется транслятор. И дело не в кодогенераторе, он как раз ещё может глянуть на соседнюю диаграмму и увидеть, что "стек" с маленькой буквы - объект. А вот человеку нужна однозначность, чтоб посмотрел и сразу прочитал, не листая на другую диаграмму, иначе теряется наглядность, а вместе с ней и всякий смысл рисовать диаграммы. Итак, какова точно нотация элемента объекта. Не вложенного класса class A
{
 public:
  class B
  {
   ...
  };
 ...
}
, не атрибута класса, а именно атрибута конкретного объекта.

12
И на диаграмме у меня не классы, а именно объекты. Вопрос: правильно ли писать "объект::атрибут" и "объект::Операция(параметры)"? И сколько всего может быть ветвей с одного ромба?

13
У меня не вызов. У меня сам обработчик и есть операция класса, а не внешняя функция. Обработчик - это сам метод, а не метод его вызывает. Реально будет всё таки вызов обработчика, но оконной процедурой, а она в модель не входит, на уровне же модели обработчик вызывается пользователем.
Цитировать
class CPostfixExpression
{
public:
//вычисление выражения
float calculate();
//проверка валидности выражения
bool validate();
//добавить символ
void addSymbol(char _c)

//другие методы...

private:

//очередь
string m_Queue[1000];
//стек
float m_Stack[1000];
}

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

CPostfixExpression myExp; //ну скажем, глобальная переменная

На кнопках
void CCalcButton::onClick()
{
 myExp.calculate();
}
Не так. Класса CPostfixExpression вообще нет. В принципе, задача системы понята как вычисление единственного выражения, но с остановками для чтения пользователем части промежуточных результатов, а после чтения каждого промежуточного результата продолжается ввод выражения и расчёт его следующей части. Если же надо вдруг начать не связанный расчёт, то резет системы к начальному состоянию, в предыдущем сеансе её функционирование завершается и начинается новый. Соответственно и myExp превращается в само приложение, а его атрибуты - в самостоятельные объекты. И приходим к тому, что кнопка - элемент самого выражения. Я не настаиваю на том, что это всегда так. Это в данном конкретном проекте так по-нерусски. Или так нельзя? И очередь не строк, а смешанная. И с дополнительной возможностью получить тип элемента без извлечения самого элемента.

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

15
Я нарисовал новый вариант. Теперь вопросы:
1. Надо ли указать типы данных?
2. Надо ли указать их начальные значения?
3. Я не переврал нотацию обращения через объект к его атрибуту, или операции?
4. Можно ветвление делать сразу с одной ветви на 4, а слияние с 4-х в одну? Как это изображается?

Страницы: 1 2 3 »