ユースケース入門 - 企画編 -
企画編では、若手エンジニアの佐藤さんがどのようなアプリケーションを作成するかを企画し、開発の準備を整えるまでのプロセスについて紹介します。
ここでは、作りたいアプリケーションの仕様を具体的に固め、intra-martの機能をどのように活用すれば良いのかを検討していきます。また、「Accel Studioテンプレートカタログ」を参照しながら、用意されたテンプレートを活用することで、ローコード開発への第一歩を踏み出します。アプリケーションの作成に必要なデータなどの準備についても、佐藤さんと一緒に確認していきましょう。
アプリケーションの仕様を固める
開発を始める前に、作りたいアプリケーションの目的や機能を具体的に定義します。今回は、ローコード開発プロジェクトに役立つタスクボード機能を備えたアプリケーションを作成し、実践的なプロジェクト管理に活用できるものを目指します。
いろいろな機能をアプリに実装したくなるけど、ローコード開発は初めてだし、まずはシンプルな機能にして、intra-martのツールに慣れていこう。
システム要件
タスクボードアプリでは、プロジェクトや業務におけるタスクを視覚的に管理することを目的としました。タスクの進捗や状態は、ボード上に配置されたカード形式で表示し、簡単に把握できるようにします。想定ユーザは、プロジェクト管理者とプロジェクトメンバーです。また、主な機能は以下の3つにしました。
(1) タスク登録機能
- タイトルや詳細をテキスト入力し、ステータスを選択する
- 入力した情報をもとに、タスクを登録する
(2) タスク管理機能
- タスクを一覧で表示する
- タスク・ステータス・更新日時により、タスクをソート・検索できる
(3) タスク編集機能
- 自分が登録したタスクを編集・削除する
- 他人が登録したタスクは、ステータスのみ変更できる
必要な画面
上記で洗い出した機能をもとに、シンプルな画面イメージや画面遷移図を作成します。その結果、一覧画面・登録画面・詳細画面・編集画面の4つの画面が必要であることが明らかになりました。
この画面構成は、チュートリアルガイドで何度か見たことがあるから、ガイドを参考にしながらアプリを作っていけそうだね。
intra-martの機能を検討する
アプリケーションの要件が大まかに見えてきたところで、intra-martの機能をどのように使用するか検討します。佐藤さんは、チュートリアルガイドをもとに、以下のツールを選定しました。
- Accel Studio:アプリの管理とサンプルテンプレートの利用
- IM-LogicDesigner:テンプレートに紐づくロジックの修正
- IM-BloomMaker:テンプレートに紐づく画面の修正
テンプレートについては、「Accel Studioテンプレートカタログ」から「自己紹介」テンプレートがタスクボードに近いイメージだと考え、この画面をベースに修正していくことにしました。まずは、ドキュメントに掲載されている画像を利用して、テンプレートからどの程度カスタマイズする必要があるかを確認し、以下のような項目を抽出しました。
[ 各画面共通 ]
- 画面タイトルの表記の修正
[ 一覧画面 ]
- 選択ボックス内のテキスト変更 ⋯⋯ どの項目でソートするかを確認
- ボタン名の変更 ⋯⋯ 一度カードを作成すると、ボタン名が変更する制御なので修正
- カード表記の変更
- 検索枠内の文言変更
- 検索枠内の項目追加(ステータス)と削除(所属部署)
[ 登録・編集・詳細画面 ]
- 名前表記をタイトル入力・表記に変更 ⋯⋯ 名前をどこに表示するかを検討
- 所属部署などの個人情報を削除
- 自己紹介の表記変更
- (詳細画面のみ)編集ボタンを追加し、編集画面に遷移
佐藤さんは、ここまで検討してきたシステム要件や画面などを簡単な資料にまとめ、リーダーの高橋さんに相談してみることにしました。
来期から始まるローコード開発プロジェクトに向けて、そこで使用できるタスクボードアプリを作成しようと考えています。「自己紹介」テンプレートをカスタマイズして簡単に作れそうですが、見落としている点がありましたら教えてください。
それは良い試みですね。ぜひチャレンジしてみてください。処理については、シンプルなCRUDなので「マスタメンテナンス」テンプレートを使用してみましょう。「空のアプリケーション」テンプレートで箱を用意し、画面は「自己紹介」テンプレートから、処理は「マスタメンテナンス」テンプレートからそれぞれ流用する形にしましょう。
この場合、データベースはどのように準備したら良いでしょうか? 「空のアプリケーション」テンプレートでは、データベースは自動で作成されませんよね?
そうですね。「マスタメンテナンス」テンプレート上でIM-Repositoryのエンティティを作成すると、テーブルが自動で作成されて、さらに画面変数にも簡単にインポートできるなど、とても便利ですよ。
佐藤さんはリーダーの高橋さんからのアドバイスをもとに、以下のツールを追加で選定しました。
- IM-Repository:アプリで使用するデータの定義
タスクボードアプリの作成では、画面ではIM-BloomMaker、処理ではIM-LogicDesigner、データ定義ではIM-Repositoryといったツールを使用し、これらをAccel Studioでまとめて管理できます。各ツールのメニューを切り替える必要がないため、スムーズにアプリケーション開発を進めることができます。
intra-martのローコード開発ツール
ローコード開発で使用する各ツールの関係性について確認できます。代表的な4つのツールについて、概要を押さえておきましょう。
アプリケーションの作業環境
佐藤さんは、リーダーの高橋さんからのアドバイスをもとに、アプリケーションの作業環境を図で整理してみました。まず、どのテンプレートから何を流用するかをわかりやすくするため、メインで作業するアプリケーションを「空のアプリケーション」テンプレートから作成します。これをベースに、画面UIは「自己紹介」テンプレートから、処理マスタとデータ定義は「マスタメンテナンス」テンプレートから、それぞれ参照させることで、全体の構成がイメージできました。
これらのツールは、Accel Studioからまとめて操作できるため、タスクボードアプリ専用のカテゴリを作成し、そこで3つのアプリケーションを作成することにしました。
「マスタメンテナンス」テンプレートの仕様
マスタ情報の登録・更新・参照・削除を行うアプリケーションを作成できます。処理のベースとなるテンプレートの仕様について確認しておきましょう。
アプリ作成の準備を整える
Accel Studioからアプリケーションを作成する場合に、事前に準備しておくと良いことについて紹介します。
アプリのカテゴリを準備する
Accel Studioの「アプリケーション管理」画面で、カテゴリを任意の場所に作成します。今回は、1つのカテゴリ内に3つのアプリケーションを用意するため、他のアプリケーションとはカテゴリを独立させておくと管理しやすくなります。
各アプリのIDとアプリ名を定義する
【メイン】タスクボードアプリ
を中心に、他の2つのアプリの画面や処理を流用していくため、各アプリケーションのIDと名称はわかりやすく設定します。これにより、アプリ間の関連性が明確になり、管理や連携がしやすくなります。
佐藤さんは、以下のように設定しました。ここで決めたアプリケーション名が画面や処理などの名称に反映されます。
ID | 名称 | 説明 |
---|---|---|
taskboard_main | 【メイン】タスクボードアプリ | 「空のアプリケーション」テンプレートから作成。メイン作業用。【画面】と【処理】のリソースを紐づけて利用。 |
taskboard_front | 【画面】タスクボードアプリ | 「自己紹介」テンプレートから作成。画面のリソースを【メイン】に紐づけて利用。 |
taskboard_master | 【処理】タスクボードアプリ | 「マスタメンテナンス」テンプレートから作成。処理のリソースを【メイン】に紐づけて利用。 |
アプリに必要なデータを検討する
「マスタメンテナンス」テンプレートでは、アプリ作成時にデータの定義を設定するため、事前にER図を作成し、必要なデータを検討しておきます。佐藤さんは、以下のようなER図を作成し、IM-Repositoryのエンティティと辞書項目をそれぞれ定義しました。
タスクには、他の人の意見も入れられるようにコメント機能を追加できたらと思いましたが、登録や更新時の情報を紐づける必要があるので、できるかどうか自信がありません・・。
コメント機能でやり取りできるのは良いですね。確かに少し複雑な設定になりそうなので、一旦はテンプレートを使って開発を進めてみて、intra-martをもっと理解してから追加してみるのはいかがでしょうか。
そうですね。IM-Repositoryのことも、まだあまり理解できていませんので、まずはエンティティを一つ作成してみます。
データ定義に必要な命名規則
Accel Studioでアプリを作成する前に、事前にエンティティIDやエンティティ名を決めておくと、アプリケーション作成時にスムーズに設定できます。テーブル名はエンティティ名と同じ名称にしておきましょう。
エンティティID | エンティティ名 | エンティティに紐づくテーブル |
---|---|---|
taskboard_master | taskboard_master | taskboard_master |
辞書項目のIDや表示名、物理名などの詳細も決めておきます。また、検索条件では、どの項目を含めるかも決めておくとよいでしょう。
辞書項目ID | 表示名 | 物理名 | データ型 | 表示形式 | 最大 桁数 | 検索 条件 |
---|---|---|---|---|---|---|
taskboard_master_id | ID | id | 文字列 | テキストボックス | 500 | |
taskboard_master_title | タイトル | title | 文字列 | テキストボックス | 500 | ✓ |
taskboard_master_detail | 詳細 | detail | 文字列 | テキストボックス | 5000 | |
taskboard_master_status | ステータス | status | 文字列 | プルダウン | 500 | ✓ |
taskboard_master_register_user | 登録者 | register_user | 文字列 | テキストボックス | 500 | |
taskboard_master_register_date | 登録日 | register_date | 日付 | テキストボックス | - | |
taskboard_master_update_user | 更新者 | update_user | 文字列 | テキストボックス | 500 | |
taskboard_master_update_date | 更新日 | update_date | 日付 | テキストボックス | - | ✓ |
アプリに必要なデータについて、詳細を検討していくうちに、プルダウンでは列挙型を使えるのではと思いました。
列挙型はIM-Repositoryを使用するメリットの一つです。インポート機能により簡単に設定できるため、ぜひ活用しましょう。
辞書項目にある「ステータス」については、列挙型を使用します。列挙IDとプルダウンの選択肢に関係する表示文字列や値などを決めておきます。
列挙ID | 表示文字列 | 値 |
---|---|---|
taskboard_master_status_list | 未着手 | not_yet_started |
未着手(緊急) | emergency | |
着手中 | under_construction | |
終了 | end |
辞書項目を列挙型として利用する
プルダウンメニューにする場合、選択肢があるUIを作成する場合に列挙型を使用します。列挙型の設定について、確認しておきましょう。
次のステップへ:開発編
ここまでの手順でタスクボードアプリの作成に必要な準備が整いました。e-learningやチュートリアルガイドでは、あらかじめIDや名称が指定されていましたが、今回のように新規でアプリを作成する場合は、適切でわかりやすい命名が求められます。命名ルールについては「intra-mart Low-Code HANDBOOK」にも記載されていますので、ぜひ参考にしてください。
次の開発編では、Accel Studioを使用して、実際にアプリケーションの作成を進めていきます。