gazpar 1 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Здравствуйте. Интересуют книги, статьи, методички, примеры(небольшие(Linux уж слишком объёмен)) и т.п., описывающие то, как нужно строить программы от малых и простых до больших и сложных для встраиваемых систем. Под построением программы я подразумеваю следующее: 1) Архитектура программы 2) Организация проекта 3) Оформление кода 4) Оформление документации Есть ли в природе такие базовые труды(желательно на русском или английском)? Посоветуйте, пожалуйста, литературу по концепциям построения ПО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tamam 0 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Здравствуйте. Если интересно, то посмотрите http://www.state-machine.com У автора есть книга по событийной модели проектирования встроенного ПО. Также полезно, как мне кажется, ознакомится с так называемым Test Driven Development подходом к разработке. Есть книга Джеймса Греннинга Test-Driven Development for Embedded C. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gazpar 1 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Здравствуйте. Если интересно, то посмотрите http://www.state-machine.com У автора есть книга по событийной модели проектирования встроенного ПО. Также полезно, как мне кажется, ознакомится с так называемым Test Driven Development подходом к разработке. Есть книга Джеймса Греннинга Test-Driven Development for Embedded C. Благодарствую) Думать уж начал, что всем нечего посоветовать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба Вопрос ТС - вас интересует построение программ от А до Я, т.е. взаимодействие с железом, алгоритмы управления, сетевые протоколы, интерфейсы пользователя? Или что-то конкретное? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gazpar 1 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Вопрос ТС - вас интересует построение программ от А до Я, т.е. взаимодействие с железом, алгоритмы управления, сетевые протоколы, интерфейсы пользователя? Или что-то конкретное? Видать неясно выразился) Интересует то, как строить программы для встраиваемых систем. Какие существуют концепции(супер цикл, конечный автомат, ОС, ОСРВ). Полное описание этих концепций. Как правильно строить абстракции (HAL, API). Рекомендации: в каком случае применять ту или иную концепцию. И да, это включает в себя и взаимодействие с железом, и алгоритмы управления, и сетевые протоколы, и интерфейсы пользователя. Вдобавок, организация проектов, оформление кода и документации к ПО. В общем, базовая литература, применительно к встраиваемому ПО. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 2 декабря, 2015 Опубликовано 2 декабря, 2015 · Жалоба Присоединяюсь к просьбе ТС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 3 декабря, 2015 Опубликовано 3 декабря, 2015 · Жалоба А что такое "супер-цикл"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 3 декабря, 2015 Опубликовано 3 декабря, 2015 · Жалоба А что такое "супер-цикл"? Super-Loop Architecture - бесконечный цикл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 4 декабря, 2015 Опубликовано 4 декабря, 2015 · Жалоба Как я понял интересует теоретический аспект. Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gazpar 1 4 декабря, 2015 Опубликовано 4 декабря, 2015 · Жалоба Как я понял интересует теоретический аспект. Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком. Конечно это не будет оффотопом. Тема для того и создавалась, чтобы собрать в кучу имеющиеся у народа материалы. А практические методы(примеры)- это действительно ценный материал. Уверен он будет полезен, и не только лично мне) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 4 декабря, 2015 Опубликовано 4 декабря, 2015 · Жалоба Мог бы поделиться практическими методами реалтайма с использованием суперцикла если это не будет офтопиком. Вы же уже в "общении" поделились. ;) Интересует то, как строить программы для встраиваемых систем. Какие существуют концепции(супер цикл, конечный автомат, ОС, ОСРВ). Полное описание этих концепций. Как правильно строить абстракции (HAL, API). Рекомендации: в каком случае применять ту или иную концепцию. И да, это включает в себя и взаимодействие с железом, и алгоритмы управления, и сетевые протоколы, и интерфейсы пользователя. Я не знаю, правильно ли я понял, но концепции это одно, архитектура - это ИМХО другое. Например суперцикл, конечный автомат - это хорошие концепции для применения в алгоритмах управления. Интерфейсы пользователя обычно строятся на событийной модели. Сетевые протоколы - модель OSI. Применять конечный автомат в интерфейсе пользователя я думаю не получится. Поэтому я и спрашивал насчет конкретики. С точки зрения методологии для создания ПО для управления чем либо физическим в реальном времени, или обработки сигналов, то тут в настоящий момент ИМХО рулит модельно-ориентированное проектирование. То есть создание моделей объектов управления и контроллеров для них в результате моделирования. В данной методологии вы можете применять как классическую теорию управления, так и автоматы состояния. И ли все вместе. Главное - решить задачу. Потом генерите код для своего встраиваемого контроллера и на этом забываете об этой части ПО. Данная методология также включает в себя создание архитектуры контроллера исходя из требований к реакции на внешние события, менеджмент самих требований, организация тестирования, и создание документации для этой части встроенного ПО Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gazpar 1 4 декабря, 2015 Опубликовано 4 декабря, 2015 · Жалоба Я не знаю, правильно ли я понял, но концепции это одно, архитектура - это ИМХО другое. Например суперцикл, конечный автомат - это хорошие концепции для применения в алгоритмах управления. Интерфейсы пользователя обычно строятся на событийной модели. Сетевые протоколы - модель OSI. Применять конечный автомат в интерфейсе пользователя я думаю не получится. Поэтому я и спрашивал насчет конкретики. Согласен: концепция и архитектура- это разные вещи. Концепция стоит над архитектурой. Последняя разрабатывается исходя из первой. Главное, чего хочу добиться, собрать информацию о имеющихся концепциях построения ПО для встраиваемых систем. Сперва обобщённую. Потом уже более детально разобранные частные случаи и рекомендации по применению. Собрав материал в такой последовательности, и проанализировав его, можно будет себе чётко представить общую картину того, какие варианты решения задач по построению ПО встраиваемых систем имеются на данный момент и какие концепции("методологии") стоит применять при решении конкретных задач. А далее оформление... С точки зрения методологии для создания ПО для управления чем либо физическим в реальном времени, или обработки сигналов, то тут в настоящий момент ИМХО рулит То есть создание моделей объектов управления и контроллеров для них в результате моделирования. В данной методологии вы можете применять как классическую теорию управления, так и автоматы состояния. И ли все вместе. Главное - решить задачу. Потом генерите код для своего встраиваемого контроллера и на этом забываете об этой части ПО. Данная методология также включает в себя создание архитектуры контроллера исходя из требований к реакции на внешние события, менеджмент самих требований, организация тестирования, и создание документации для этой части встроенного ПО Это конкретный частный случай. Посоветуйте, пожалуйста, литературу об этой "методологии". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 4 декабря, 2015 Опубликовано 4 декабря, 2015 · Жалоба Это конкретный частный случай. Посоветуйте, пожалуйста, литературу об этой "методологии". Русскоязычных материалов мало. http://matlab.ru/solutions/mbd/mbd Все обучащие материалы на английском. http://de.mathworks.com/solutions/model-based-design/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 12 декабря, 2015 Опубликовано 12 декабря, 2015 · Жалоба Как правильно строить абстракции (HAL, API). тоже интересует, есть ли какие-то общие принципы построения HAL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gazpar 1 2 марта, 2016 Опубликовано 2 марта, 2016 (изменено) · Жалоба Несколько итераций поисков дали следующие результаты: 1) "Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems", Bruce Powel Douglass Серьёзная фундаментальная книга с описанием паттернов разработки систем реального времени. Недостаток- отсутствие примеров, чистая теория. 2) "Real-Time Concepts for Embedded Systems", Qing Li and Carolyn Достаточно объёмная книга, основной уклон на ОСРВ. 3) "Embedded Software Development The Open-Source Approach", Ivan Cibrario Bertolotti, Tingting Hu Описание процесса разработки для встраиваемых систем. Захватывает практически все вопросы разработки, кроме тестирования ПО для встраиваемых систем 4) "Programming Embedded Systems, Second Edition with C and GNU Development Tools", Michael Barr & Anthony Massa, Полное описание разработки ПО. Затронуты MCU и embedded Linux 5) "Языки программирования Концепции и принципы", Кауфман В. Ш. Фундаментальная книга по общей теории программирования, начиная с теории ЯП и заканчивая парадигмами софтостроения. Книги очень хорошие, объёмные. Полезны будут, как в практике, так и уталении академического интереса. PS: Про встраиваемые системы на русском языке солидной литературы не нашлось, покамест :laughing: Изменено 2 марта, 2016 пользователем gazpar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться