SlideShare a Scribd company logo
1 of 24
Анализ требований в
IoT/Embedded проектах
Юлия Селявко
HiQo Solutions, Минск
Терминология
• Embedded (встроенная) система - продукт из множества
программных и аппаратных подсистем
• IoT (интернет вещей) - сеть объектов, измеряющих
параметры состояния (собственного или окружающей
среды), использующих и передающих эту информацию
Актуальность
План доклада
В кадре:
• Особенности IoT/Embedded проектов с точки зрения
аналитика
• Примеры полезных техник моделирования
За кадром:
• Анализ данных
• Системы, от которых зависят жизни людей
Проект: система открытия дверей
гаража
Особенность 1: терминология
Краткое описание проекта:
Develop a BLE-enabled PCB to be installed inside an MVP GO
console. iOS app to support general functions, as well as bond
and RTC management for admins.
Особенность 1: терминология
Расшифровки сокращений/терминов из примера:
• BLE - Bluetooth 4.0 низкого энергопотребления
• PCB - печатная плата
• GO - Garage Opener, название проекта (жаргон проекта)
• RTC - часы реального времени, компонента
• Bond - сертификаты, хранящиеся на устройстве для
соединения с другим известным устройством по BLE
(жаргон проекта)
Особенность 2: взаимодействие между
разработчиками различных специализаций
Команда проекта:
• Руководитель проекта
• Бизнес-аналитик
• Инженер-схемотехник
• Разработчик встроенных систем
• Тестировщик
• Дизайнер интерфейсов
• iOS-разработчик
Особенность 3: цена изменений
• Изменять встроенное ПО – сложно
• Изменять оборудование – еще сложнее
Особенность 4: особые ограничения
• Физические: размер, форма, вес, материалы,
устойчивость к химикатам, ударопрочность
• Производственные ограничения: сроки, стоимость,
стандарты производителя
• Уже выбранные компоненты, технологии
• Протоколы передачи данных
Особенность 5: нефункциональные
требования
• Производительность
• Эффективность
• Надежность и доступность
• Устойчивость
• Компьютерная безопасность
• Безопасность эксплуатации
• Удобство использования
• Стандарты и сертификация
Устойчивость - пример
«При отказе встроенных в печатную плату модулей
(память, BLE) система должна сообщать о сбое
пользователю путем световой индикации, сохраняя при
этом основные функции»
Компьютерная безопасность - пример
«Система не должна подключаться к сети интернет; все
данные должны храниться только на панели управления
дверями гаража и на смартфоне»
Безопасность эксплуатации - пример
• «Если согласно показаниям ИК-датчиков под дверью есть
препятствие, система не должна позволять двери двигаться
вниз»
• «Система должна предоставлять возможность открыть
дверь гаража изнутри вне зависимости от состояния
устройства»
Техника 1: архитектурные диаграммы
Техника 1: архитектурные диаграммы
Техника 1: архитектурные диаграммы
Техника 1: архитектурные диаграммы
Помогают:
• Проверить совпадение общего понимания системы у
команды
• Обозначить границы проекта
• Наиболее верно назначить функции компонентам системы
• Обнаружить и уточнить пропущенные требования
Техника 2: диаграммы состояний
Помогают:
• Емко описывать сложное поведение системы
• Обнаружить и уточнить пропущенные требования
Техника 2: диаграмма состояний
*упрощенная
нотация (не UML
State Machine)
Другие техники
• Блок-схемы
• Use cases
• Глоссарий
• Словарь данных (data dictionary)
• Прототипы пользовательского интерфейса
• Бизнес-правила
• …
Все стандартные аналитические подходы применимы!
Итоги
• Аналитики на IoT/embedded проектах нужны
• У этих проектов есть свои особенности
• Терминология
• Новые роли в команде
• Цена изменений
• Ограничения
• Нефункциональные требования
• Можно и нужно применять стандартные техники
Рекомендуемая литература
• Karl Wiegers - Software requirements (3rd edition, Ch. 26)
• Phillip Koopman - Better embedded systems software
• IEEE 1233-1998 (IEEE Guide for Developing System
Requirements Specifications - SyRS)
Спасибо за внимание!
Вопросы?
Юлия Селявко
HiQo Solutions
julia.seliavko@hiqo-solutions.com

More Related Content

Viewers also liked

Прокачиваем информационные системы с помощью data science
Прокачиваем информационные системы с помощью data scienceПрокачиваем информационные системы с помощью data science
Прокачиваем информационные системы с помощью data scienceSQALab
 
Путь Jama для управления требованиями
Путь Jama для управления требованиямиПуть Jama для управления требованиями
Путь Jama для управления требованиямиSQALab
 
The impact of Systems Thinking on the Business Analyst role
The impact of Systems Thinking on the Business Analyst roleThe impact of Systems Thinking on the Business Analyst role
The impact of Systems Thinking on the Business Analyst roleSQALab
 
Птички и пчелки. Как документировать сложное просто
Птички и пчелки. Как документировать сложное простоПтички и пчелки. Как документировать сложное просто
Птички и пчелки. Как документировать сложное простоSQALab
 
Жаргон как средство повышения эффективности работы над проектом
Жаргон как средство повышения эффективности работы над проектомЖаргон как средство повышения эффективности работы над проектом
Жаргон как средство повышения эффективности работы над проектомSQALab
 
UX дизайн в Бизнес Анализе
UX дизайн в Бизнес АнализеUX дизайн в Бизнес Анализе
UX дизайн в Бизнес АнализеSQALab
 
Применение ТРИЗ в бизнес-анализе
Применение ТРИЗ в бизнес-анализеПрименение ТРИЗ в бизнес-анализе
Применение ТРИЗ в бизнес-анализеSQALab
 
Подходы к спецификации изменений
Подходы к спецификации измененийПодходы к спецификации изменений
Подходы к спецификации измененийSQALab
 
Managing Massive data of the IoT through cooperative semantic nodes
Managing Massive data of the IoT through cooperative semantic nodesManaging Massive data of the IoT through cooperative semantic nodes
Managing Massive data of the IoT through cooperative semantic nodesBenoit Christophe
 
Practical Techniques for early use in BA cycle
Practical Techniques for early use in BA cyclePractical Techniques for early use in BA cycle
Practical Techniques for early use in BA cycleSQALab
 
Realise the Value in modern Data Center Infrastructure
Realise the Value in modern Data Center InfrastructureRealise the Value in modern Data Center Infrastructure
Realise the Value in modern Data Center InfrastructurePanduit
 
To requirements and beyond...
To requirements and beyond...To requirements and beyond...
To requirements and beyond...SQALab
 
Системный аналитик в Agile команде
Системный аналитик в Agile командеСистемный аналитик в Agile команде
Системный аналитик в Agile командеSQALab
 
Одна голова - плохо
Одна голова - плохоОдна голова - плохо
Одна голова - плохоSQALab
 
Как опознать аналитика?
Как опознать аналитика?Как опознать аналитика?
Как опознать аналитика?SQALab
 

Viewers also liked (15)

Прокачиваем информационные системы с помощью data science
Прокачиваем информационные системы с помощью data scienceПрокачиваем информационные системы с помощью data science
Прокачиваем информационные системы с помощью data science
 
Путь Jama для управления требованиями
Путь Jama для управления требованиямиПуть Jama для управления требованиями
Путь Jama для управления требованиями
 
The impact of Systems Thinking on the Business Analyst role
The impact of Systems Thinking on the Business Analyst roleThe impact of Systems Thinking on the Business Analyst role
The impact of Systems Thinking on the Business Analyst role
 
Птички и пчелки. Как документировать сложное просто
Птички и пчелки. Как документировать сложное простоПтички и пчелки. Как документировать сложное просто
Птички и пчелки. Как документировать сложное просто
 
Жаргон как средство повышения эффективности работы над проектом
Жаргон как средство повышения эффективности работы над проектомЖаргон как средство повышения эффективности работы над проектом
Жаргон как средство повышения эффективности работы над проектом
 
UX дизайн в Бизнес Анализе
UX дизайн в Бизнес АнализеUX дизайн в Бизнес Анализе
UX дизайн в Бизнес Анализе
 
Применение ТРИЗ в бизнес-анализе
Применение ТРИЗ в бизнес-анализеПрименение ТРИЗ в бизнес-анализе
Применение ТРИЗ в бизнес-анализе
 
Подходы к спецификации изменений
Подходы к спецификации измененийПодходы к спецификации изменений
Подходы к спецификации изменений
 
Managing Massive data of the IoT through cooperative semantic nodes
Managing Massive data of the IoT through cooperative semantic nodesManaging Massive data of the IoT through cooperative semantic nodes
Managing Massive data of the IoT through cooperative semantic nodes
 
Practical Techniques for early use in BA cycle
Practical Techniques for early use in BA cyclePractical Techniques for early use in BA cycle
Practical Techniques for early use in BA cycle
 
Realise the Value in modern Data Center Infrastructure
Realise the Value in modern Data Center InfrastructureRealise the Value in modern Data Center Infrastructure
Realise the Value in modern Data Center Infrastructure
 
To requirements and beyond...
To requirements and beyond...To requirements and beyond...
To requirements and beyond...
 
Системный аналитик в Agile команде
Системный аналитик в Agile командеСистемный аналитик в Agile команде
Системный аналитик в Agile команде
 
Одна голова - плохо
Одна голова - плохоОдна голова - плохо
Одна голова - плохо
 
Как опознать аналитика?
Как опознать аналитика?Как опознать аналитика?
Как опознать аналитика?
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Анализ требований в IoT/Embedded проектах

  • 1. Анализ требований в IoT/Embedded проектах Юлия Селявко HiQo Solutions, Минск
  • 2. Терминология • Embedded (встроенная) система - продукт из множества программных и аппаратных подсистем • IoT (интернет вещей) - сеть объектов, измеряющих параметры состояния (собственного или окружающей среды), использующих и передающих эту информацию
  • 4. План доклада В кадре: • Особенности IoT/Embedded проектов с точки зрения аналитика • Примеры полезных техник моделирования За кадром: • Анализ данных • Системы, от которых зависят жизни людей
  • 6. Особенность 1: терминология Краткое описание проекта: Develop a BLE-enabled PCB to be installed inside an MVP GO console. iOS app to support general functions, as well as bond and RTC management for admins.
  • 7. Особенность 1: терминология Расшифровки сокращений/терминов из примера: • BLE - Bluetooth 4.0 низкого энергопотребления • PCB - печатная плата • GO - Garage Opener, название проекта (жаргон проекта) • RTC - часы реального времени, компонента • Bond - сертификаты, хранящиеся на устройстве для соединения с другим известным устройством по BLE (жаргон проекта)
  • 8. Особенность 2: взаимодействие между разработчиками различных специализаций Команда проекта: • Руководитель проекта • Бизнес-аналитик • Инженер-схемотехник • Разработчик встроенных систем • Тестировщик • Дизайнер интерфейсов • iOS-разработчик
  • 9. Особенность 3: цена изменений • Изменять встроенное ПО – сложно • Изменять оборудование – еще сложнее
  • 10. Особенность 4: особые ограничения • Физические: размер, форма, вес, материалы, устойчивость к химикатам, ударопрочность • Производственные ограничения: сроки, стоимость, стандарты производителя • Уже выбранные компоненты, технологии • Протоколы передачи данных
  • 11. Особенность 5: нефункциональные требования • Производительность • Эффективность • Надежность и доступность • Устойчивость • Компьютерная безопасность • Безопасность эксплуатации • Удобство использования • Стандарты и сертификация
  • 12. Устойчивость - пример «При отказе встроенных в печатную плату модулей (память, BLE) система должна сообщать о сбое пользователю путем световой индикации, сохраняя при этом основные функции»
  • 13. Компьютерная безопасность - пример «Система не должна подключаться к сети интернет; все данные должны храниться только на панели управления дверями гаража и на смартфоне»
  • 14. Безопасность эксплуатации - пример • «Если согласно показаниям ИК-датчиков под дверью есть препятствие, система не должна позволять двери двигаться вниз» • «Система должна предоставлять возможность открыть дверь гаража изнутри вне зависимости от состояния устройства»
  • 18. Техника 1: архитектурные диаграммы Помогают: • Проверить совпадение общего понимания системы у команды • Обозначить границы проекта • Наиболее верно назначить функции компонентам системы • Обнаружить и уточнить пропущенные требования
  • 19. Техника 2: диаграммы состояний Помогают: • Емко описывать сложное поведение системы • Обнаружить и уточнить пропущенные требования
  • 20. Техника 2: диаграмма состояний *упрощенная нотация (не UML State Machine)
  • 21. Другие техники • Блок-схемы • Use cases • Глоссарий • Словарь данных (data dictionary) • Прототипы пользовательского интерфейса • Бизнес-правила • … Все стандартные аналитические подходы применимы!
  • 22. Итоги • Аналитики на IoT/embedded проектах нужны • У этих проектов есть свои особенности • Терминология • Новые роли в команде • Цена изменений • Ограничения • Нефункциональные требования • Можно и нужно применять стандартные техники
  • 23. Рекомендуемая литература • Karl Wiegers - Software requirements (3rd edition, Ch. 26) • Phillip Koopman - Better embedded systems software • IEEE 1233-1998 (IEEE Guide for Developing System Requirements Specifications - SyRS)
  • 24. Спасибо за внимание! Вопросы? Юлия Селявко HiQo Solutions julia.seliavko@hiqo-solutions.com

Editor's Notes

  1. Добавить disclaimer про субъективность взглядов на особенности??
  2. куча новой терминологии и аббревиатур (в каком-то смысле - это как новая предметная область: приходит к тебе новый проект, а там один абзац описания с кучей непонятных терминов: <пример?? FCC compliance OOC.>. пример про "разницу" BLE и Bluetooth)
  3. куча новой терминологии и аббревиатур (в каком-то смысле - это как новая предметная область: приходит к тебе новый проект, а там один абзац описания с кучей непонятных терминов: <пример?? FCC compliance OOC.>. пример про "разницу" BLE и Bluetooth)
  4. многие вещи, которые легко сделать в обычном софте, оказываются очень трудозатратными в embedded-разработке. <?>и в общем - легче вносить изменения в soft, чем в hardware/firmware</?> (пример с изменением имени сущности) <?>более тесная связь с этапом дизайна</?> (пример с системой слежения за детьми - без гэйтвэя, с гейтвэем - <c>или это привести как пример диаграммы?</c>)
  5. <?>очень распространенный тип проектов - доработка уже существующих устройств, что накладывает доп.ограничения на всю команду, в т.ч. аналитика</?>
  6. особые типы нефункциональных требований Очевидно, что к каждой конкретной системе будет применима только часть из них ?? А что применимо к моей??
  7. ? Нужен ли какой-то слайд-вступление перед техниками?
  8. ? Нужен ли какой-то слайд-вступление перед техниками?
  9. <?>+event/response table?</?>
  10. <?>+event/response table?</?>
  11. (юзкейсы, глоссарий, data dictionary, ) - все применимо. <?>в т.ч. и для того, чтобы прослеживать требования к реализации (пример с "золочением" продукта, несмотря на это, что это должен быть быть MVP)</?> Все стандартные аналитические подходы применимы – с небольшими корректировками
  12. * Koopman: не стоит пугаться того, что во вступлении книга рекомендуется людям с опытом работы на embedded-проектах - на самом деле она пойдет и людям, которые интересуются такими проектами, имея опыт в других ИТ-областях IEEE: различие между документами SyRS (спецификация требований к системе) и SRS (спецификация требований к программному обеспечению) ?? Добавить статьи про UML?