顧客と擦り合わせ、チーム内で連携を取り、統合されたシステムを開発します。
2024年時点の社内で使用している技術を、開発対象毎に列挙します。
動作環境 | プログラミング言語 | |
---|---|---|
クラウド | Amazon Web Service(AWS)/Microsoft Azure | Typescript(JavaScript) |
Python | ||
php | ||
C# | ||
Webクライアント | React.js/Next Vue.js/Nuxt | Typescript/JavaScript |
スマホアプリ | iOS | Swift |
Android | Kotlin | |
Flutter | Dart | |
IoTデバイス | Linux | Python |
FreeRTOS | C |
一日のタイムテーブルです。一人で作業することと、打ち合わせが多いです。
あるIoTシステムの開発プロジェクトを例に、活動内容を説明します。スケジュールや体制、成果物のイメージを掴んでいただければ幸いです。
スマホアプリでドア鍵をリモート解施錠できるシステムを例に挙げます。クラウドとスマホアプリ、デバイス組込みアプリの3点を開発しています。
3ヶ月弱、2週間Sprint4回で開発しました。
6~7人程度の体制を組みました。
作成した設計書を列挙します。クラウド・スマホアプリ関連のものです。
No. | 成果物名 | ファイル形式 | 概要等 |
---|---|---|---|
1 | クラウド構成図 | drawio | クラウド全体をAWSサービスアイコンを用いて図示。Drawioで作成。 |
2 | スマホアプリ画面仕様書 | Figma | スマホアプリの画面遷移と一画面毎のデザインを規定。Figmaで作成。 |
3 | スマホアプリ機能仕様書 | Excel | 画面毎の機能を規定。エラー制御なども。 |
4 | 通信シーケンス | puml | 処理のまとまり毎にスマホアプリ-クラウドの通信シーケンスを図示。プロビジョニング、ユーザー認証など。PlantUMLで作成。 |
5 | WebAPI仕様 | yaml | 通信シーケンスに登場するWebAPI(REST API)のリクエストとレスポンスを規定。Stoplight Studioなどで作成。 |
6 | MQTT通信仕様 | Excel | トピック仕様、ペイロード仕様、ポリシー仕様、シャドウ仕様 |
7 | データベース仕様 データベースER図 | puml | DBのER図をPlantUMLで作成 |
8 | データベース仕様 エンティティ・クエリ条件定義書 | Excel | キーバリュー型DBのAmazon DynamoDB用 |
9 | データベース仕様 NoSQLWorkbench | json | キーバリュー型DBのAmazon DynamoDB用。AWS提供のツールでシミュレート。 |
10 | アプリケーションログ一覧 | Excel | クラウドで動作するアプリが出力するログを一覧にまとめ、監視に用いるためにラベル付けを整理する |
11 | IAMロール設計 | Excel | クラウドのセキュリティを高めるために実行権限を最小化設計 |
12 | 各種AWSサービスのパラメータシート | Excel | AWSサービスの設定値をExcelに記載。値そのものはAWSコンソール画面等で参照できるが、なぜこの値にしたのか設定根拠を明示するために文書が必要との考えに至っている。 |
13 | CloudFormationスタック一覧 | Excel | CDKやCloudFormationを使ってスクリプトでクラウド環境を構築する場合に、構築単位となるスタックを設計する |
14 | 使用OSS一覧 | Excel | クラウド及びスマホアプリで使用しているOSSを一覧にまとめ、ライセンス違反がないことを確認する。また、本一覧は運用後の脆弱性・更新確認の基にもなる。 |
作成した設計書を列挙します。デバイス組込みアプリ系のものです。
No. | 成果物名 | ファイル形式 | 概要等 |
---|---|---|---|
1 | タスク設計書 | Excel | タスク(スレッド)構成を図示し、スレッドやキューを定義 |
2 | BLE通信仕様 | Excel | スマホアプリとデバイス間のBLE通信ついて規定。GATTなど。 |
3 | デバイス状態遷移 | Excel | 組込みアプリの状態遷移を規定。通常モードの他にセットアップモード、Wi-Fi接続先変更モードなどがある。 |
4 | タスク間シーケンス | puml | タスク同士の通信をシーケンス図に示す |
5 | セキュアエレメントスロット仕様 | Excel | セキュアエレメントのスロット(フォルダ)構成を定義する。どのスロットに秘密鍵を格納するか、など。 |
6 | メモリの解析結果 | Excel | 処理中のメモリ消費状況をpythonで作ったツールを使ってグラフに描き、分析したもの。メモリリークの確認を含む。 |
7 | ファームウェア更新(OTA)仕様 | puml | デバイスのファームウェアをインターネット・Wi-Fi経由でリモート更新(OTA)する仕様を規定 |
8 | FreeRTOS改修一覧 | Excel | デバイスで使用しているリアルタイムOSであるFreeRTOSはデバイスチップベンダーが開発者向けに提供しているが、処理したい内容に応じて改修が必要になる。FreeRTOSの将来の更新に備え、改修箇所は一覧にまとめておく。 |
作成した手順書・マニュアル類です。設計書はコーディングの基になりますが、手順書は開発したシステムを操作、運用するために必要になる文書です。
No. | 成果物名 | ファイル形式 | 概要等 |
---|---|---|---|
1 | マニュフェストファイル登録・削除手順書 | Markdown | デバイス証明書とAWS IoTのThing(モノ)を紐づけるために必要となるマニュフェストをクラウドへ登録・削除する手順 |
2 | デバイス初期インストール手順書 | Markdown | 主に開発・試験目的でリファレンスボードに組込みアプリをインストールする手順 |
3 | OTA手順書 | Markdown | 新しいファームウェアをクラウドに登録し、デバイスに配信するときの手順 |
4 | アプリビルド手順書 | Markdown | スマホアプリのビルド手順書。iOSとAndroidの両方。 |
5 | デプロイ手順書 | Markdown | クラウドに配置するアプリケーションのビルド→デプロイ手順 |
6 | バージョン管理手順書 | Markdown | スマホアプリ、組込みアプリ、クラウド上のアプリケーションのバージョンNo更新手順 |
7 | スマホアプリ操作マニュアル | PowerPoint | スマホアプリの操作方法を示したもの。デバイスのセットアップをアプリでどう行うか、など。 |