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

×


Модель программного обеспечения стиральной машины(Прочитано 58144 раз)
Получил задание на курсовой. С UML сталкиваюсь впервые, мне ближе методика экстремального программирования, ума не приложу с чего начать  ???

Непосредственно само задание:
Требуется разработать средствами Rational Rose модель программного обеспечения встроенного микропроцессора стиральной машины.
Машина предназначена для автоматической стирки белья. Машина включает в себя следующие устройства: бак для белья, клапаны для забора и слива воды, мотор, устройство подогрева воды, термометр, таймер, дверца для доступа в бак, панель управления с кнопками и индикатором. В памяти машины хранятся 5 программ стирки, заданные изготовителем. Пользователи не могут вносить в них изменения. Каждая программа определяет температуру воды, длительность стирки, скорость вращения бака во время стирки и отжима.
Для использования машины необходимо открыть дверцу, поместить белье в бак, поместить моющие средства в емкости, закрыть дверцу, выбрать программу стирки и нажать на кнопку «Пуск». Перед тем как приступить к стирке машина открывает клапан для забора воды, набирает необходимое количество воды, после чего закрывает клапан. Далее машина действует по выбранной пользователем программе:
1)   Подогревает, если необходимо, воду до нужной температуры.
2)   Включает таймер и запускает вращение бака для стирки.
3)   По окончании стирки сливает воду и запускает отжим.
Во время работы машины на индикаторе высвечивается время, прошедшее с момента запуска (минуты и секунды), текущий режим работы (стирка или отжим), номер текущей программы стирки. В целях безопасности дверца бака блокируется до окончания стирки. Машина не воспринимает нажатия на кнопки, за исключением одной – пользователь имеет возможность в любой момент нажать на кнопку «Останов», чтобы принудительно остановить стирку и слить воду.



Мдя, пора уже таксу назначать за консультации :)

Получил задание на курсовой.
Непосредственно само задание:
Требуется разработать средствами Rational Rose модель программного обеспечения встроенного микропроцессора стиральной машины.
Задача ясная - разрабатываем ПО стиральной машины. Примеров таких задач много, тот же банкомат, торговый автомат, кофеварка и т.п.
Для начал понять - машина управляемая или полностью автоматическая, т.е. нажал кнопку - получил результат.
Машина программироуемая - т.е. можно задавать программу, или есть фиксированные режимы, ну и т.д.

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

Вот наша предметная область
Цитировать
Машина предназначена для автоматической стирки белья. Машина включает в себя следующие устройства: бак для белья, клапаны для забора и слива воды, мотор, устройство подогрева воды, термометр, таймер, дверца для доступа в бак, панель управления с кнопками и индикатором. В памяти машины хранятся 5 программ стирки, заданные изготовителем. Пользователи не могут вносить в них изменения. Каждая программа определяет температуру воды, длительность стирки, скорость вращения бака во время стирки и отжима.
Здесь произведите текстуальный анализ, выделите классы, их атрибуты, свяхите между собой определите связи. Выясните какие объекты тут активные а какие пассивные, например нужно ли что-то знать о баке? Посылают ли сообщения клапаны, а как устройство подогрева взаимодействует с процессором? Ну и т.д.
Программы где-то хранятся, что они хранят?
Возможна каждая программа - это отдельная диаграмма состояний стиральной машины в целом, с нее можно и начать в принципе.

Цитировать
Для использования машины необходимо открыть дверцу, поместить белье в бак, поместить моющие средства в емкости, закрыть дверцу, выбрать программу стирки и нажать на кнопку «Пуск». Перед тем как приступить к стирке машина открывает клапан для забора воды, набирает необходимое количество воды, после чего закрывает клапан. Далее машина действует по выбранной пользователем программе:
1)   Подогревает, если необходимо, воду до нужной температуры.
2)   Включает таймер и запускает вращение бака для стирки.
3)   По окончании стирки сливает воду и запускает отжим.
Во время работы машины на индикаторе высвечивается время, прошедшее с момента запуска (минуты и секунды), текущий режим работы (стирка или отжим), номер текущей программы стирки. В целях безопасности дверца бака блокируется до окончания стирки. Машина не воспринимает нажатия на кнопки, за исключением одной – пользователь имеет возможность в любой момент нажать на кнопку «Останов», чтобы принудительно остановить стирку и слить воду.
Это можно описать с помощью диаграм последовательности, деятельности и опять же состояний.

Вот с этого и можно было бы начать:
1. выделить объекты (скорее всего датчики и устройства)
2. описать как эти датчики и устройства взаимодейтсвуют при реализации каждой из 5 программ



Пока писал Галоген уже запостил правильную инструкцию и комменты ....

Мои 5 копеек:
1. Начинаем изучать ЮМЛ, надо иметь представление о всех Д и как они строятся
2. Начинаем изучать примеры имеющие на сайте
3. Начинаем строить вашу модель:
3.1 Строим ДБО
3.2 Строим СМВИ
3.3 Расписываем сценарии СВИ
3.4 Строим ДК
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Цитировать
Каждая программа определяет температуру воды, длительность стирки, скорость вращения бака во время стирки и отжима.
Вот вам потенциальный класс:
Программа
 Идентификатор - просто номер программы
 Температура воды
 Длительность стирки
 Скорость вращения бака (стирка)
 Скорость вращения бака (отжим)
 
Как мы видим программы отличаются параметрами, но не ходом выполнения. Т.е. сама программа - это типовая схема действий.

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

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

Для того чтобы сделать ПО - нужно фактически сделать модель стиралки.
Кстати отличная задача. Описание с помощью UML - релаизация в MATLAB или там другой системе. Кстати сходите на exponenta.ru, там поищите методические материалы, что-то практикум моделирования на матлаб (типа дипломной работ о задаче управления двух баков с водой) может поможет:-)



Пока писал Галоген уже запостил правильную инструкцию и комменты ....

Мои 5 копеек:
1. Начинаем изучать ЮМЛ, надо иметь представление о всех Д и как они строятся
2. Начинаем изучать примеры имеющие на сайте
3. Начинаем строить вашу модель:
3.1 Строим ДБО
3.2 Строим СМВИ
3.3 Расписываем сценарии СВИ
3.4 Строим ДК
оффтоп:
объясните пару позиции:
1. было предложено действовать по сценарию выше, то есть порядок рисования (описания) диаграмм, по какому принципу это было предложено? (то есть в каком порядке что делать при разработке модели ПО, и почему)
2. что значит СМВИ, был в факи, там такого нету =(

спасибо!



1. было предложено действовать по сценарию выше, то есть порядок рисования (описания) диаграмм, по какому принципу это было предложено? (то есть в каком порядке что делать при разработке модели ПО, и почему)
Есть несколько подходов в методологиях разработки ПО, см. мою презентацию:
http://www.uml2.ru/index.php?option=com_smf&Itemid=45&topic=334.msg3352#msg3352

2. что значит СМВИ, был в факи, там такого нету =(
добавил
« Последнее редактирование: 26 Июля 2007, 13:59:17 от bas »
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.




объясните пару позиции:
1. было предложено действовать по сценарию выше, то есть порядок рисования (описания) диаграмм, по какому принципу это было предложено? (то есть в каком порядке что делать при разработке модели ПО, и почему)
2. что значит СМВИ, был в факи, там такого нету =(

Уважаемый LMZ! Давайте для начал проясним позицию.
Мы консультируем, советуем, но делаете ВЫ!

Поскольку Вы не знакомы с UML, а Вас заставляют сделать именно в UML (наверное полагается по программе - ничего плохо в этом нет, стоит поучится ей-Богу), то уважаемый BAS Вам предложил начать с изучения основ UML для начала.
Далее он предлагает построить диаграмму бизнес-объектов (но я бы не стал замарачиваться, тут лучше начать с классов Вашей предметной области: т.е. стиральная машина и ее компонеты),
далее предлагает построить модель системных вариантов использования - т.е. как пользователь или другие внешние по отношению к системе используют систему в терминах реакции системы на внешние раздражители (но мне думается тут они ни к чему, все работает по программе, кнопку нажал и вперед).
далее описать системные варианты использования - но я бы заменил расстрелом :-) на самом деле тут следует сосредоточиться на диаграмме состояний. Просто описать какие состояния принимает СМ и когда. Хотя можно наверное описать и сценарий - т.е. некоторую последовательность действий в ответ на внешнее раздражение - пользователь нажал кнопочку (конечно грубо - но примерно). Все-таки СМ система не интерактивная, это и в описание указано - 5 каких-то программ.



Уважаемый Galogen, не я автор топика ;)
"Мы консультируем, советуем, но делаете ВЫ!" я полностью согласен с этим, и не в коем случае не хочу что бы мою работу кто-то делал за меня (тогда я никогда не научусь!)

мне просто не понятен процесс выбора диаграмм (то есть почему в некоторых случаях строят сначало ДВИ а в некоторых диаграмму классов).

2 BAS, спасибо за линк, я скачал, пока не нашёл, то что искал (я надеюсь, найду ;) )



Уважаемый Galogen, не я автор топика ;)
Ой, действительно. Извините


Цитировать
мне просто не понятен процесс выбора диаграмм (то есть почему в некоторых случаях строят сначало ДВИ а в некоторых диаграмму классов).
Все зависит от задачи.
Если цель построения некой ИС, то очевидно надо плясать от потребностей пользователя. Тогда имеет смысл начинать с ДВИ.
Если как в случае со СМ - то зачем там ДВИ. Пользователь 1, да и пользует он ее просто - нажал на кнопку получил результат. В этом случае мы проектируем не ИС, а ПО для автомата. Потому и нет нужды в ДВИ на мой взгляд.
Совет потратьтесь на книгу Рамбо и Блаха "Объектно-ориентированное моделирование и разработка. UML 2.0" Там интересно все расписано




2 BAS, спасибо за линк, я скачал, пока не нашёл, то что искал (я надеюсь, найду ;) )
Там как раз это "Облегченный подход «Шмуллера»". Если что-то еще будет не понятно, то спрашивайте.
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Если как в случае со СМ - то зачем там ДВИ. Пользователь 1, да и пользует он ее просто - нажал на кнопку получил результат. В этом случае мы проектируем не ИС, а ПО для автомата.
Т.е. фактически ДВИ д.б. одна? Или их вообще не надо?
А если пойти дальше и создать ДВИ для автомата?

Во вложениях картинки двух диаграмм Main и Washing. Первая как раз общая, а вторая для автомата.



Вторая ДВИ в корне не правильная, Вы на ней хотите показать последовательность действий что в корне не правильно.
Не надо спешить рисовать.
Во первых опреджеляемся, что будем рисовать уровень СВИ, а детализиорвать ВИ будем по Коберну
Что делаем:
1. Выделяем актеров: Пользователь, Вода, Слив, Электричество
2. Выделяем цели этих актеров. Это уже сами.
3. Рисуем ДВИ
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Вообще не понимаю для чего рисовать такую диаграмму где 1 ВИ? Ну если только преподы настаивают :-).
Вот смотрите - стирка - вариант использования, конечно можно сделать так стирка х/б белого, стирка х/б цветного, стрика шерстяных изделий, стирка деликатных тканей, стирка особо грязного белья.
Т.е. самой по себе стирки нет, есть стирка по конкретной программе. Однако в чем отличие для пользователя в этом случае?
Пользовтель загружает белье, выбирает программу, закрывает дверцу, нажимает программы.
Что тут можно описать?
П: закладывает белье и выбирает нужную программу стирки, закрывает дверцу, запускает машину
СМ: действует согласно программе.
Исключения
1.Дверца не закрыта
  СМ - подает звуковой и световй сигнал, программа стирки не запускается
  П - закрывает дверцу, запускает машину вновь
  СМ: действует согласно программе.
2. Перегруз
  СМ - подает звуковой или световой сигнал и сообщает о перегрузе
  П - убирает лишнее, запускает машину вновь
  СМ: действует согласно программе.

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

Вторая диаграмма - вообще не понятна, кто тут кого использует?



Эд, я думаю, что ДВИ нужна для препода, поэтому ее надо строить, причем можно использовать включения/расширения, наследования и т.п.
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



По-моему, я что-то не допонимаю.
Я догадывался, конечно, что какая то это диаграмма (рис 1.) неправильная, но надеялся, что может ошибаюсь.

Что делаем:
1. Выделяем актеров: Пользователь, Вода, Слив, Электричество
2. Выделяем цели этих актеров. Это уже сами.
3. Рисуем ДВИ
Вода??? Электричество??? Тоже могут быть актерами со своими целями???
Сдается мне, что мой мозг еще не достиг такого уровня абстракции, как у мудрецов Омара Хайяма :)




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19