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

×


Электронное тестирование учеников(Прочитано 91671 раз)
Добрый день.
С недавнего времени начал изучение языка UML. Читаю различную литературу, прохожу обучение на intuit.ru
Зачем я это делаю?
1. Стоклнулся по работе.
2. Я учусь на 5-м курсе и мне нужно писать диплом. Тема диплома - если коротко, то - тестирование учеников.

Так вот. Хочу сделать диплом грамотно, да и для собственного самообразования решил выучить всетаки UML.
Прошу помочь мне с разработкой диаграмм.
По моим соображениям система должна позволять следующее:
1. пройти тест ученику,
2. посмотреть свои результаты ученику,
3. посмотреть результаты тестов других учеников,
4. посмотреть список учеников в классе,
5. посмотреть какую-то личную инфу об учениках/ученике,
6. администратор может добавлять/изменять/удалять тесты, вопросы и варианты ответов.
7. администратор может добавлять/изменять/удалять личную инфу ученика.
8. администратор может добавлять/изменять/удалять класс, состав класса.

Буду очень рад вашим замечаниям, критике, советам, да и вообще, любой помощи.



Re: Электронное тестирование учеников Ответ #1 : 08 Декабря 2006, 11:41:06
утром комментировал Ваше сообщение, но чего-то случилось с хотсером или сайтом.

Прежде чем рисовать картинки, советую просто составить небольшое описание. Скажем так сценарий основных действий в произвольной форме.

В вашем случае думаю начианть надо сразу с уровня системных процессов.
Бизнес уровень тут не к чему.

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

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

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

Дерзайте:-))

Можете обратится к bas, и попросить создать вам проект, где вы будете администратором, а нас пригласить как заказчиков для анализа модели, детали фичи будут опубликованы в скоре



Re: Электронное тестирование учеников Ответ #2 : 10 Декабря 2006, 12:27:09
В принципе не плохая диаграмма, которая вроде соответсвует краткому описанию.
Теперь делайте реализацию ВИ как сказал galogen или в виде текстового описания сценария.
Я бы еще добавил учителя, который сам может управлять тестами, а то получается - сначала учитель пишет на бумажке тест, а потом админ вбивает. Хотя возможно по вашей задумке достаточно и Администратора.
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Re: Электронное тестирование учеников Ответ #3 : 04 Января 2007, 22:49:27
спасибо большое за советы.
Произошли некоторые изменения:
все функции администрирования убираются. так как их реализует другой человек.

У меня большой вопрос по поводу include и extend
Мне понятно, что include - это какая-то часть, которая будет выполняться всегда.
extend - будет выполняться только при определенных условиях.
Вопрос собственно в том, стоит ли мне здесь создавать эти отношения или нет...

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

так вот исходя из этого описания - получается, что если ставить extend и include - то у меня везде будет двухсторонее отношение...
У меня такое ощущение, что я чего-то просто недопонимаю...


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

Еще у меня по этой фразе вопрос.
Не могу до конца въехать в эти граничные, управляющие классы.

вот на конкретном примере можно это написать? Я так быстрее пойму, если на конкретных примерах будет :(



Re: Электронное тестирование учеников Ответ #4 : 05 Января 2007, 00:42:58
Для начала несколько слов про include и про extend. Если вы программируете активно, то знаете, что такое include. В паскале это uses, в php include и require. Т.е. то что нужно всегда.
То есть в вашем случае - чтобы пройти тест - нужно обязательно авторизоваться. Думаю тут вы все понимаете правильно.

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

Правда тут не понятно - Разве ученик может просматривать информацию о классе? И какую информацию о классе? Знаете мне бы лично было бы неприятно, если бы мои результаты тестирования были доступны другим ученикам. Разные понимаете бывают ученики. Кроме того, а чем ваш пользователь отличается от ученика? Что пользователю для того чтобы посмотреть информацию о классе и об ученике, вовсе не надо авторизоваться? Довольно непонятная логика...

Теперь о моих фраза по поводу граничных и управляющих классах.

Когда действующее лицо взаимодействует с системой, то он взаимодействует через некоторый интерфейс. Это естественно. с одной стороны человек, с другой машина. Они оперируют разными представлениями информации, требуется согласование. Как вы его добиваетесь - делаете некий интерфейс: консольный текстовый или графический, а может это будет голосовой, это неважно. Важно то что есть четкая обязанность - сопрягать одно действующее лицо с другим. Обычно в ООП этим занимаются граничные классы (но не обязательно интерфейсы, если вы понимаете о чем я).
Правила хорошего программирования и проектирования подразумевают, что вы предоставляете доступ к данным не напрямую, а через формы - то есть интерфейсы, граничные классы.
Например при авторизации вы предоставляете форму авторизации: два поля - логин и пароль, кнопка для подтверждения.
При нажатии на кнопку - обрабатывается событие, которму может сопоставляться некий набор действий - шифрование данных переданных в форму, соединения с баззой данных, выполнения запроса поиска соотвествия введенной в форму информации и информации в БД, выдача подтверждения или обработка исключений. Опять же по правилам ООП каждый класс или объект имеет свои обязанности: один отвественен за соединения с БД, другой за обработку исключений и т.п. Это может выполнять и один класс или группа - это уже как вы решите, ваш опят ваш профессионализм. Конечно, у вас может быть так, что форма будет включать в себя и интерфейс и управление. Как например в MS Access, когда мы делаем форму с помощью мастера, то соединение стаблицей, изменение данных и т.п. происходит прозрачно для нас, но это плохой стиль программирования и проектирования, он хорош для локальных систем, однопользовательских.

Потому правилами (но не законами, которые надо выполнять неукоснительно) для ВИ определено наличие граничного класса (boundary) для каждого актера, взаимодействующего с ВИ, наличие классов-сущностей, которые отвечают за сохранение данных, но необязательно перзиентных, т.е. сохраняемых на внешних носителях памяти, и наконей управляющих классов -control.

А вообще совет - изучите хотя бы общие основы ООП и UML, хотя бы на www.intuit.ru

А насчет реализации того, что вы написали. Ну невсе ли равно как вы это сделаете - как удобнее, какие ребования предявляет вам ваш заказчик. А вот имеет смысл рисовать ВИ или нет, тут нужно здорово подумать, может имеет смысл сначала написать сценарии в тексте, пусть это будут просто истории от имени некоего учителя и ученика.
И кстати не путайте роли и реальных пользователей.
Вы говорите что админа не будет , а так ли?? Кто же будет обслуживать программу? Учитель? но он будет выполнять вероятно роль админа? В общем подумайте внимательно




Re: Электронное тестирование учеников Ответ #5 : 05 Января 2007, 01:20:04
Хорошо. Объясню тогда полностью суть проблемы и как я думаю это все реализовывать.
Я учусь на пятом курсе пединститута. Пишу диплом. Тема диплома - коротко: "подсистема тестирования системы дистанционного обучения".
Т.е. не я должен думать об администрировании ресурса, а мой одногруппник. Потому я и убрал администратора, хотя, конечно, может быть, и стоит его вернуть для общего развития и так сказать для целостности системы...

Правда тут не понятно - Разве ученик может просматривать информацию о классе? И какую информацию о классе? Знаете мне бы лично было бы неприятно, если бы мои результаты тестирования были доступны другим ученикам. Разные понимаете бывают ученики. Кроме того, а чем ваш пользователь отличается от ученика? Что пользователю для того чтобы посмотреть информацию о классе и об ученике, вовсе не надо авторизоваться? Довольно непонятная логика...

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

Цитировать
Теперь о моих фраза по поводу граничных и управляющих классах.
Тут вроди как стало понятно. Спасибо.
Интерфейс - грубо говоря, это класс, который отвечает за внешний вид отображения какой-л. информации, так?
Граничный класс - это например класс user с параметрами lastname, name, secondname, birthday, group. Так?
А Управляющий класс - это класс, где содержатся методы, например getUserInfo, getGroupInfo, getTest
Так?

Цитировать
А вообще совет - изучите хотя бы общие основы ООП и UML, хотя бы на www.intuit.ru

Да вот недавно прошел общий курс по UML, но практики вообще нет. Потому и так много, может быть детских, может быть, неправильных и глупых вопросов.

Еще раз спасибо за помощь.



Re: Электронное тестирование учеников Ответ #6 : 05 Января 2007, 01:21:59
Да, и еще вопрос про авторизацию.
Я думаю, что она необходима только непосредственно перед тестом, да? Так как другие действия может производить и неавторизованный пользователь (гость).



Re: Электронное тестирование учеников Ответ #7 : 05 Января 2007, 11:37:03
Вы понимаете, вот после ваших пояснений выясняется - что ресурс вероятнее всего будет web, доступ к нему будет через интернет, фактически каждый желающий может туда попасть и посмотреть всю информацию. Да директор школы, классный руководитель и родители вполне имеют право заглянуть "на огонек", но как обеспечить в данном случае авторизацию и регистрацию такого большого количества людей?

Ну да ладно, раз у вас сделано так, значит такова постановка задачи, хотя мне она сильна неприятна в такой презентации

Кстати совет, вы опишите сценарии просто словами, не пытайтесь сразу нарисовать диаграммы. Я так понимаю, курсовой вы уже сдали? Впереди сессия, а потом диплом?
Курсовой делали в том же направлении?
Вероятно на курсовой есть уже некоторая реализация? А теперь вы пытаетесь эту реализацию изобразить в виде диаграмм, ну и подойдите с точки зрения улучшения.
Постройте процесс как он есть, посмотрите внимательно, увидите все недостатки и недочеты, а то что вы рисуете эти диаграммы и скупо отпускаете нам информацию, делу мало поможет. Опишите все словами, изобразите все в вольной форме или формализованной.
Опишите цель, участников (всех), их цели и интересы, почитайте книгу http://www.uml2.ru/index.php?option=com_remository&Itemid=28&func=fileinfo&id=65 ...
успехов



Re: Электронное тестирование учеников Ответ #8 : 05 Января 2007, 12:20:32
Цитировать
Интерфейс - грубо говоря, это класс, который отвечает за внешний вид отображения какой-л. информации, так?
Граничный класс - это например класс user с параметрами lastname, name, secondname, birthday, group. Так?
А Управляющий класс - это класс, где содержатся методы, например getUserInfo, getGroupInfo, getTest
Не совсем, или совсем не так. Граничный класс и есть интерфейс системы, он возникает между user и системой, а не в место user.
Во есть у вас АВТОРИЗИРОВАТЬСЯ
Имеем USER -> Форма авторизации (граничный класс) - БД контроллер (управляющий класс - управляет соединением с БД, выполнением запроса и возвращения результата) - -- Пользователи( класс-сущность, хранит информацию о пользователях - логин пароль) -Форма предоставления результата (граничный класс)
КАЖДЫЙ из перечисленных классов может иметь атрибуты и методы



Re: Электронное тестирование учеников Ответ #9 : 05 Января 2007, 14:05:15
Да, курсовая была. Но курсовая совсем простая - написанная на C# + MSSQL:
Просто 1 простой тест с 5-ю вариантами ответов на каждый вопрос, где вопросы задавались последовательно.
Непосредственно перед тестом надо было ввести имя и фамилию.
Потом выводился результат тестирования и записывался в базу данных.

Ну да ладно, раз у вас сделано так, значит такова постановка задачи, хотя мне она сильна неприятна в такой презентации

Да вот все дело-то в том, что как таковой постановки задачи не было. Т.е. было как: преподаватель сказал: вот такая тема тебя устраивает? Я ответил согласием. Спросил, что именно там должно быть. Он ответил, что ты пиши, а я потом погляжу...
Можно конечно тупо сделать просто выбор теста из списка и все... т.е. грубо говоря сделать из курсовика, где был только 1 тест - диплом, где будет все тоже самое, но несколько тестов. Но я считаю, что это неправильно.

Сейчас же тема диплома "Подсистема тестирования системы дистанционного обучения с использованием технологий интернет".
Да, прошу прощения, что не описал все это сразу. Видимо у меня еще и с изображением мыслей "на бумаге" плохо :)
Ресурс будет web. Писать хочу на PHP+MySQL. Платформа разработки MS Windows XP.

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

Списибо за ссылку, сейчас буду читать. Наверняка появится много чего сказать.



Re: Электронное тестирование учеников Ответ #10 : 05 Января 2007, 15:14:08
Андрей, прежде чем начинать формулировать требования к системе, все-таки надо понять, а кто заинтересован в ней, для чего система предназначена.
То же тестирование, оно идет в рамках ДО, значит надо ввести контекст ДО. Есть некий курс, в рамках курса есть лекции и скажем контрольное тестирование по ним, есть экзамен экстерном или экзамен в конце обучения.
Что при этом требуется организовать? Будет ли тестирование связано с курсом или оно абсолютно самостоятельно? Если последнее, то получается авторизация на курсах <> авторизации в подсистеме тестирования?
Правильно ли будет предоставлять инофрмацию об ученике всем желающим? Не лучше ли сделать так, что эту информацию может получить не просто посетитель, а только зарегистрированный пользователь, при этом разные права на группы.
Группа учителей - может просматривать всю имеющуюся информацию по своему предмету, классный руководитель всю о своем классе, директор или завуч всю информацию. Родители получают доступ только к информации к ученику- их ребенку, через аккаунт их ребенка. Как вы будете регистрировать каждого ученика? Я например сделал в свое время так:
Ввожу список студентов ФИО, номер зачетки, номер группы. Студенты регисрируются в системе, определяю логин и пароль, система проверяет наличие студента в списке, проверяет уникальность логина и подтверждает регистрацию.
Можно сделать иначе, определить логин и пароль заранее, выдать его в начале учебного года или цикла обучения, или использовать специальный код авторизации, после первого входа ученику предлагается создать аккаунт - вариантов много, и нужно определится.
Вы говорите, что администрирование не ваша проблема, но в вашей задаче она критична, без ее правильно организации вы вряли сумеете решить свою задачу адекватно и правильно.

Разделение прав можно сделать по разному. В одном проекте я делал так:
1. создаю группы. Для каждой группы определяю набор доступных пунктов меню
2. создаю пользователя в группе - пользователь наследует все права группы.
Довольно гибкая система настройки. При этом например пункт - посмотреть информацию о пройденных тестах - она может быть доступна многим, но работает избирательно, учитывая инофрмацию вошедшего в систему.

Постарайтесь все-таки четко выразить цель системы - тестирование, а для чего? какова цель тестирование, что она преследует? снять рутину с учителя? повысить уровень образования, его качество?
Определите границы рамки подсистемы - внутри имеющейся ДО, насколько интегрированно и т.п.
Определите всех действующих лиц, даже на ваш взгляд малозначимых, напрмимер министерство образование, районо и прочее, думаю у них тоже будут интересы - например соотвествие уровня тестов образовательному уровню
Определите ограничения - например: тест должен быть пройден за 40 минут, или тест должен быть пройден просто.
Предполагаете ли вы тренажерное тестирование? т.е. тестирование без авторизации, без учета результатов?
Кто создает тест, кто его вводит в систему?
Выполняет ли каждый ученик набор тестов по графику? Распространняется ли график на дисциплину или группу? Например, каждый класс 7 года обучения, должен пройти по 5 тестов по 3 дисциплинам. Важен ли порядок тестов? Нужно ли ххранить историю создания тестов? Что будет если тест прервется по техническим причинам - как запоминаются ответы на вопросы, ведется ли статистика ответов по ученику, классу, школе в целом, сколько попыток имеется у ученика и т.п.
Все это следует описать, понять и ранжировать, что-то будет реализовано сразу, что-то вы оставите на потом. Нужно понять без чего уж точно дело не пойдет, а что может подождать.

Интересно а какая у вас получилась модель данных?

Да еще хотел спросить, а в каком инструменте вы рисуете UML диагарммы?



Re: Электронное тестирование учеников Ответ #11 : 05 Января 2007, 15:30:19
Цитировать
Да еще хотел спросить, а в каком инсрументе вы рисуете UML

Вообще мне одна моя сотрудница посоветовала продукт Enterprice Architect.
На работе у меня Lunux - поэтому использую umbrello, но там из диаграмм мы используем только диаграммы классов.
Enterprice Architect на мой взгляд неплохой продукт или лучше в розе рисовать?

На счет всего остального, что Вы написали - большое спасибо.
Сейчас напишу письмо преподавателю - более точно уточню требования.



Re: Электронное тестирование учеников Ответ #12 : 05 Января 2007, 15:39:13
Enterprise Architect - не использовал, не знаю. Думаю нужно учитывать не только факт удобного рисования, но сопровождения документации, генерации кода



Re: Электронное тестирование учеников Ответ #13 : 05 Января 2007, 16:08:49
В этом продукте поддерживается генерация кода в php,
Составление отчетов в формате rtf, html
На мой взгляд - очень интересный продукт.



Re: Электронное тестирование учеников Ответ #14 : 05 Января 2007, 16:11:07
Он платный? Где его можно взять и посмотреть?




 

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