Автор Тема: Описание алгоритма отображения знаения в отчете  (Прочитано 1349 раз)

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
Здравствуйте.
Имеется отчет, значение поля которого рассчитывается по алгоритму.
Таблица 1.
Наименование автомобиля   Запас ресурса до ремонта
                                              3% до 9%   9% до 20%  .....
         
Алгоритм:
1.   Проверка на наличие записи в разделе «Ремонт автомобиля»:
2.а.   Запись есть.
3.а.1.Если запись последнего ремонта имеет в поле «Вид ремонта» запись «Капитальный», то
осуществляется следующее вычисление:
Значение фактического пробега автомобиля с даты выхода из ремонта до текущей даты/Нормативное значение для капитального ремонта
3.а.2.Переход к п.4.
3.б.1.Если запись последнего ремонта имеет в поле «Вид ремонта» запись «Текущий», то осуществляется следующее вычисление:
Значение фактического пробега автомобиля с даты выхода из ремонта/Нормативное значение для текущего ремонта
3.б.2.Переход к п.4.
4.  Если результат при вычислении больше 3 но меньше 9%, то указанный автомобиль записывается в данную графу. Если результат при вычислении иной, то переход к описанию в другом столбце.
2.б. Записи нет.
2б.1.Осуществляется следующее вычисление:
Значение фактического пробега автомобиля с даты ввода в эксплуатацию до текущей даты/Нормативное значение для текущего ремонта
2б.2.Переход в п.4


Я хоть и написал алгоритм, но мне он не очень нравиться. Порекомендуйте пожалуйста, как можно улучшить понятность описания алгоритма? Понятен ли алгоритм? Алгоритм описывается текстом. Графики не нужны.


Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Новый топик, а проблема та же... Речь идет о форме или содержании? Вам не нравится алгоритм или то как он описан?

И довольно странно говорить о том, что графика не нужна на форуме uml...

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
Здравствуйте.

На данном этапе необходимо именно текстовое описание.

По моему проблема с содержанием. Вам понятен алгоритм?

Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Здравствуйте.

На данном этапе необходимо именно текстовое описание.

По моему проблема с содержанием. Вам понятен алгоритм?


Разобраться можно. Но с трудом - любая диаграмма будет понятней.


Если важно именно текстовое описание, то фактически алгоритм разбивается на две части:

1) расчет процента ресурса
2) выбор столбца для печати

Так и надо структурировать сценарий, чтобы читающий сначала мог уловить общий смысл алгоритма,  а потом  лезть во внутрь его, уточняя альтернативы


Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Кстати, характерная ошибка начинающих аналитиков: они пытаются строить структурированные тексты описаний "на лету". В итоге и получаются вот такие псевдопонятные "алгоритмы".

Нормальная схема работы такая :

1 анализ текста на естественном языке ( документ или интервью)
2 построение модели ( необязательно диаграммы)

3. Структурированный текст как лингвистическая интерпретация модели

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

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
Тоже начал склоняться к диаграмме.
МОжете подсказать:

1. Какие диаграммы проще использовать? на какой нотации? чтобы можно было за 5 минут освоить
2. Можете привести примеры алгоритмов сделанных с помощью диаграмм?

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
У меня не было опыта рисования диаграмм. Нарисовал примерную блок схему алгоритма (диаграмма активности).
Посмотрите пожалуйста, корректно ли блок схема?


Алгоритм:
1.   Проверка на наличие записи во вкладке «записи о произведенном ремонте» раздела «Ремонт автомобиля»
2.   Запись есть.
3.   Если запись последнего  ремонта имеет в поле «Вид ремонта» запись «Капиталка», то осуществляется вычисление по формуле указанное в пункте А.
4.   Если результат вычисления от 1% до 10%, то указанный объект записывается в данную графу. Если результат при вычислении иной, то объект записывается в соответствующем столбце (столбце "10% до 40%" или "40% до 80% и т.д.).
Альтернативный поток:
2а. Записи нет
2а.1. Осуществляется вычисление по формуле указанное в пункте Б.
2а.2. Переход в п.4
3а. Если запись последнего ремонта имеет в поле «Вид ремонта» запись «Текущий», то осуществляется вычисление по формуле указанное в пункте В.
3а.1. Переход в п.4.

Формула:
А) ((Числовое значение вид ремонта «Капитальный» - Фактическая наработка объекта)/Числовое значение  вид ремонта «Капитальный» раздела «Нормативные ремонты»))*100%
Б) (Числовое значение вид ремонта «Текущий» - значение поля «С момента выпуска автомобиля»/Числовое значение вид ремонта «Текущий»)*100%
В) ((Числовое значение вид ремонта «Текущий» - Фактический пробег автомобиля с даты выхода из ремонта)/Числовое значение поля вид ремонта «СР»))*100%

Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Тоже начал склоняться к диаграмме.
МОжете подсказать:

1. Какие диаграммы проще использовать? на какой нотации? чтобы можно было за 5 минут освоить
2. Можете привести примеры алгоритмов сделанных с помощью диаграмм?

Чтоб за 5 минут никакие. Профессия аналитика теряла бы всякий смысл, если б ей можно было научиться за 5 минут.

В среднем нотация осваивается за 2-3 недели в режиме Hello word,  за год как рабочий инструмент.

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


Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля

Посмотрите пожалуйста, корректно ли блок схема?


Непонятно куда повисла ветка в диаграмме на отсутствие записи.

Непонятно, зачем вы делаете отдельное ветвления на наличие / отсутствие записи. По сути у вас три альтернативы по последнему ремонту: Null (запись о ремонте отсутствует),  капитальный и текущий.

Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Непонятно куда повисла ветка в диаграмме на отсутствие записи.

Что за ветвления внизу тоже неясно

Зачем вы делаете отдельное ветвления на наличие / отсутствие записи. По сути у вас три альтернативы по последнему ремонту: Null (запись о ремонте отсутствует),  капитальный и текущий.

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
Откорректировал диаграмму, добавил блок при отсутствии записи и в нижней части диаграммы о результатах вычислений.

Текстовое описание алгоритма:
1.   Проверка на наличие записи во вкладке «записи о произведенном ремонте» раздела «Ремонт автомобиля»
2.   Запись есть.
3.   Если запись последнего  ремонта имеет в поле «Вид ремонта» запись «Капиталка», то осуществляется вычисление по формуле указанное в пункте А.
4.   Если результат вычисления от 1% до 10%, то указанный объект записывается в данную графу. Если результат при вычислении иной, то объект записывается в соответствующем столбце (столбце "10% до 40%" или "40% до 80% и т.д.).
Альтернативный поток:
2а. Записи нет
2а.1. Осуществляется вычисление по формуле указанное в пункте Б.
2а.2. Переход в п.4
3а. Если запись последнего ремонта имеет в поле «Вид ремонта» запись «Текущий», то осуществляется вычисление по формуле указанное в пункте В.
3а.1. Переход в п.4.

Формула:
А) ((Числовое значение вид ремонта «Капитальный» - Фактическая наработка объекта)/Числовое значение  вид ремонта «Капитальный» раздела «Нормативные ремонты»))*100%
Б) (Числовое значение вид ремонта «Текущий» - значение поля «С момента выпуска автомобиля»/Числовое значение вид ремонта «Текущий»)*100%
В) ((Числовое значение вид ремонта «Текущий» - Фактический пробег автомобиля с даты выхода из ремонта)/Числовое значение поля вид ремонта «СР»))*100%

Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
Учите матчасть, коллега. Посмотрите в примерах, где используется конструкция fork -join

kirka

  • Newbie
  • *
  • Сообщений: 42
  • Рейтинг читателей: 4
    • Просмотр профиля
А что не так? все вроде правильно, все сливается в один, т.е. результат, оценка результата всех вычислений

[прилетело НЛО и...]

  • Full Member
  • ***
  • Сообщений: 168
  • Рейтинг читателей: 25
    • Просмотр профиля
Порекомендуйте пожалуйста, как можно улучшить понятность описания алгоритма?
Вы описываете алгоритм так, как-будто он -- сценарий. А он не сценарий. Используйте язык с полноценными "если-то-иначе" и понятность повысится.
[...и улетело НЛО.]

Humbert

  • Sr. Member
  • ****
  • Сообщений: 258
  • Рейтинг читателей: 29
    • Просмотр профиля
А что не так? все вроде правильно, все сливается в один, т.е. результат, оценка результата всех вычислений

Fork - join - конструкция параллельной обработки - И.

У вас идет выбор одной из альтернатив - Или