Страница 5 из 11
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Ср июл 13, 2011 14:05:53
konmik
Если кому-то надо разобраться с определениями в тестинге то рекомендую:
http://www.testingstandards.co.uk/
То сути своей это один из основных "первоисточников"

в тестировании: многие стандарты в области программного обеспечения черпают свои определения от туда.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Ср июл 13, 2011 14:19:24
ARV
CException - понравилось, во всяком случае по прочтению статьи

Сам был уже почти на грани того, чтобы написать самостоятельно что-то аналогичное, но лень побеждала... Еще с тех пор, как познакомился с исключениями в Delphi - очень ценю это средство реакции на ошибки. в частности, по-моему, единственный способ хоть как-то контролировать переполнение результата в математических расчетах на Си.
однако, в micro-embedded (да позволено мне будет так назвать системы на AVR и подобным им МК) приложениях остается открытым вопрос: как же обрабатывать исключения? ведь чаще всего они служат для информирования пользователя, реже - для автоматического сбора информации, отсылаемой затем разработчику, и уж совсем редко для корректировки поведения программы. первые два варианта явно не для micro-embedded (нет ОС, почти нет интерфейса с пользователем)... и, как мне представляется, все "исправление" поведения программы так или иначе сведется к игнорированию неправильных данных/результатов... ну так Си и без этого игнорирует практически все на свете проблемы.
поэтому надо еще подумать над самой идеологией построения надежных программ.
а все прочие сведения пока не качаю - сначала хочу почитать, что там к чему, раз все далеко не элементарно
P.S. англоязычные источники требуют слишком много сил на восприятие информации... после того, как мозг высох от перевода, смысл остается где-то за кадром... это не пару строк из даташита перевести

Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Ср июл 13, 2011 15:28:40
Goldsmith
ARV писал(а):по-моему, единственный способ хоть как-то контролировать переполнение результата в математических расчетах на Си.
Вообще, по-моему, это единственный способ написать более-менее читаемую программу на C. Иначе мы обречены либо после каждой мало-мальски содержательной операции, которая в принципе может завершиться с ошибкой, проверять коды возврата функции и городить код обработки ошибки (а сама обработка тоже может привести к ошибке, и получается сказка про белого бычка), либо анализировать глобальную переменную errno, что тоже не блещет красотой.
Единственный нормальный вариант - использовать
гарантированно защищенный блок Try, в котором содержится вся логика при нормальном исполнении, и единую область обработки ошибок, не раскиданную по всему тексту.
ARV писал(а):как же обрабатывать исключения? ведь чаще всего они служат для информирования пользователя, реже - для автоматического сбора информации, отсылаемой затем разработчику, и уж совсем редко для корректировки поведения программы.
Это нас так приучили нерадивые программисты, увы... Сообщение "Программа выполнила недопустимую операцию и будет закрыта", после которого следует длинный дамп содержимого регистров и стека, обычному пользователю не дает никакой полезной информации. Я хочу знать конкретную причину - закончилось место на диске, нет нужной DLL, пропало соединение с сетью и т.д., а вовсе не адрес команды, где эта беда случилась.
Автоматическая кляуза разработчику - это уже более приемлемый вариант, есть шанс, что информация попадет по адресу.
Корректировка поведения программы с целью минимизации последствий сбоя - наиболее разумная обработка исключительной ситуации. Но разумное требует применения разума, то есть затраты умственного труда гораздо выше, чем в первых двух случаях. Зато и результат получается наилучший.
ARV писал(а):все "исправление" поведения программы так или иначе сведется к игнорированию неправильных данных/результатов...
Если нет более разумных вариантов, то хотя бы прекратить дальнейшее выполнение части программы с бессмысленными данными может быть лучшим выходом. Особенно если программа циклическая и пропуск одного цикла не будет катастрофическим.
ARV писал(а):ну так Си и без этого игнорирует практически все на свете проблемы.
И тем самым попросту перекладывает эти проблемы на наши плечи. Собственно, потому я и задал свой вопрос - как в этих не самых благоприятных условиях создаются более-менее надежные устройства? Обрабатывать коды ошибок "в лоб" слишком трудоемко и чревато новыми ошибками, тестировать вручную - вообще неподъемно (если не считать тестированием единичный прогон программы под отладчиком, как часто бывает). Нужна действенная помощь инструментов, а кое в чем и другие подходы к написанию программ. Кое-что удалось раскопать самому, кое-чему надеюсь научиться у других, - делитесь, кто не жадный.
P.S. Если понравилась статья по
CException, то поглядите еще вот эту:
http://club.shelek.ru/viewart.php?id=338 . Ее автор, к сожалению, не я; но когда я ее прочитал, понял, что просто
обязан ее перевести, не должны такие вещи оставаться незамеченными. Конечно, те, кто привык пользоваться RTOS, имеют возможность организовать кооперативную мультизадачность и без этого; но на "голом" контроллере вполне может пригодиться.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 14, 2011 12:53:47
konmik
Загляните еще суда, построено на том же трюке :
http://bsvi.ru/protopotoki-protothreads/
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Пт июл 15, 2011 13:56:48
Goldsmith
С дополнительным ликбезом статья получается длиннее, чем я сначала предполагал. Прошу любить и жаловать то, что получилось:
1-я часть, подготовительная:
http://club.shelek.ru/viewart.php?id=348
2-я часть, практическая:
http://club.shelek.ru/viewart.php?id=349
Кому не терпится начать работу - во 2-й части уже есть что попробовать.
Будет еще третья, итоговая.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Ср июл 20, 2011 14:19:17
Goldsmith
Выполнил свое обещание. Статья по модульному тестированию встроенных систем завершена.
Часть 1:
http://club.shelek.ru/viewart.php?id=348
Часть 2:
http://club.shelek.ru/viewart.php?id=349
Часть 3:
http://club.shelek.ru/viewart.php?id=350
К последней части приложен весь код, относящийся к проекту, включая инструментарий. Так что добро пожаловать. Ну и поделиться мнением о прочитанном тоже не возбраняется, само собой.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 21, 2011 14:58:10
bolek
Спасибо за статьи!
Быстренько пролистал - вроде все понятно, надо практически попробовать.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 21, 2011 17:28:16
Goldsmith
bolek писал(а):Спасибо за статьи!
Быстренько пролистал - вроде все понятно, надо практически попробовать.
Большая просьба: когда будете пробовать, если возникнут недоразумения и трудности - пишите сразу, это мой брак, буду исправляться. Писал статью с космической скоростью и без отрыва от работы, урывками, поэтому запросто мог упустить что-то важное или использовать какие-то термины без пояснения. Не было времени испробовать их на ком-нибудь перед публикацией.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 03:54:09
Goldsmith
ARV писал(а):если вы перейдете на русский язык, число адекватных собеседников может увеличиться

Добросовестно пробовал - не помогло. Прячутся где-то. Или у них летняя спячка, или брачный период, или сезонные миграции, или уж даже и не знаю, что предположить.
В продолжение темы: свеженаписанная статья "
Разработка на языке C, управляемая тестированием", буквально чернила не просохли.
Если уж и на эту приманку не удастся выманить адекватных из логова, тогда сдаюсь.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 07:12:49
Слесарь
Я вообще о таких примитивах не думаю. Все просто, есть проблема - включаешь мозг и находишь решение. А ты в теме пытаешься формализировать работу мозга, хотя мозг и так работает.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 08:10:06
Goldsmith
Слесарь писал(а):Я вообще о таких примитивах не думаю. Все просто, есть проблема - включаешь мозг и находишь решение. А ты в теме пытаешься формализировать работу мозга, хотя мозг и так работает.
Товарищ, это вы о чем сейчас? Тему пробовали читать?
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 08:21:14
Слесарь
Я о том, что не всем необходимо заморачиваться с философией, как вести разработку. Можно просто ставить себе задачи и эти задачи решать, полагаясь на здравый смысл.
Вам же хочется пофилосовствовать. Непонятно, зачем это нужно.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 08:39:35
Goldsmith
Вы философию где изучали? Какое она имеет отношение к данному предмету?
В любой инженерной дисциплине есть теоретические основы. В одних сопромат, в других теория цепей, в третьих аэродинамика и т.д. Программирование - это тоже инженерная деятельность. Только почему-то считается, что программировать можно (и даже нужно) задней левой ногой, не забивая голову лишними знаниями, которые, как известно, лишь рождают печаль. Куда-нибудь кривая вывезет.
Вы рискнете лечь на операционный стол к хирургу, который "о примитивах не думает, включает мозг и находит решение", куда бы лучше ножичком ткнуть? Лично я поостерегся бы. И в любом деле профанация - не предмет гордости.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 08:59:59
Слесарь
Профессиональная деятельность, эта та деятельность которая делается на автомате (минимум работы ума). Профессионального военного учат меньше думать и выполнять приказы по заранее отработанному на полигоне плану. Профессиональный боксер вообще не думает, вся тактика работает на инстинкте. Профессиональный врач, это тот врач, который строго следует инструкции: анализы -> курс лечения. Профессиональный зубной врач, это тот врач у которого годами отработана постановка инструмента для тех или иных зубов и он на автомате готовит растворы.
Тот специалист, которому надо думать для выполнения задачи, это или студент или самоучка(не профессионал). Профессионал отказывается, если задача выходит за рамки той, которую он может выполнить на автомате. Профессионал понимает, что платят только за труд, а труд, это работа на автомате.
Вам нужны коллеги филосовствующие о том, что они делают, так наберите себе соответствующий коллектив.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 09:10:26
Goldsmith
Слесарь писал(а):Профессиональная деятельность, эта та деятельность которая делается на автомате (минимум работы ума).
Я уже понял ваше кредо. Меня больше интересует мнение людей, которые
профессионально (а не от безделья) занимаются программированием
с умом.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 09:17:37
Слесарь
Не думаю, что таких мнений будет много. И дело тут не в статусе форума.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 09:19:39
Goldsmith
Я в принципе и не гонюсь за количеством.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 09:49:24
Слесарь
Тогда можно позволить теме спокойно умереть.
Я же говорю, те или иные филосовские изыскания требуются только ооочень ограниченному кругу людей. Обычно люди живут и не думают. Делают и не думают. Для этого и существует образование - образовал человека в определенном русле, он так и продолжает жить в этих рамках, особо не заморачиваясь.
Мне досе не ясны причины появление этой темы, у вас проблемы с качеством разработки микроконтроллерных систем? Ну так исправьте то, что плохо работает. В чем проблема то? Если что-то нехватает для этого и нет на рынке, создайте.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 11:23:18
Goldsmith
Слесарь писал(а):Обычно люди живут и не думают. Делают и не думают. Для этого и существует образование - образовал человека в определенном русле, он так и продолжает жить в этих рамках, особо не заморачиваясь.
Простите мое любопытство, лично вы образование где получили, и какое именно? Чрезвычайно неожиданный взгляд на профессионализм.
Re: Управление качеством разработки микроконтроллерных систе
Добавлено: Чт июл 28, 2011 12:17:09
Слесарь
Я работаю с железом. Слесарю не обязательно иметь образование. Я начинал с погрузки железа(образовываться небыло времени), далее, так вышло, что мне совершенно случайно стали доверять и более ответсвенные работы, как укладка и расстановка, с которыми я также справлялся. Дальше. больше....