The recent growth of IoT applications in medical, consumer, and home automation demands a lot of constrained wireless devices. The primary choice of wireless technology for these applications is BLE as BT has established its market segment decades ago. As per ABI technology research, the annual BLE device shipment will be 7.8 billion by 2024 with a CAGR of 26%. As with any other products, the non-functional requirements of the BLE products are highly dependent on the software architecture. There are some resources available on how to design software for Bluetooth-based products. However, they are in bits and pieces and not comprehensive. Under these circumstances, software designing has become a challenging and time-consuming task for software architects during the architecture phase. The impact of incorrect software design might affect the non-functional requirements of the product including performance, safety, security, maintainability, testability, etc. This causes a lot of rework for the software architects at a later point in time which in-turn affects the product owners, hardware and software development team.
These problems can be mitigated by developing a set of best practices for designing Bluetooth-based software that can be used during the architecture phase. This offers many advantages such as faster software development, high probability of first-time-right design which reduces rework, efforts, time, and cost at later stages in product development. This paper proposes best practices that can be used to design the Bluetooth software and develop applications on top of it for a given set of business requirements. Download whitepaper to continue reading