/ccsr-object-mapping

オブジェクトと画面・テーブル・JSONのマッピング

Primary LanguageHTMLApache License 2.0Apache-2.0

CCSR オブジェクトマッピング

CCSR(Continuous Concurrent Stepwise Refinement)手法を学ぶための参照プロジェクトの一つです。
このプロジェクトは、実装面、特にオブジェクトと画面・テーブル・JSONデータとのマッピングのやり方を中心にしたサンプルアプリケーションです。

CCSR手法

CCSR手法は、ソフトウェアのもっとも重要な品質は発展性であるという考え方に基づく開発手法です。

CCSR:Continuous Concurrent Stepwise Refinement (継続的・並行的・段階的な発展)

基本コンセプト

  • 要件定義・仕様化・実装の継ぎ目をなくす
  • ビジネスロジックに焦点を合わせる
  • 型によるモジュール構造を基本にする

CCSR手法の特徴

  • 要件定義手法として、要件の関係性・その可視化・関係者の合意形成を重視したRDRA手法を使用
  • ソフトウェア仕様を記述する方法として、プログラミング言語(Java)による記述、JIGによる可視化、IDE IntelliJ IDEAを活用
  • アーキテクチャとして三層+ドメインロジックを採用
  • 実装技術としてSpring MVC, Thymeleaf, MyBatisを使用

参考資料

このサンプルの利用方法

>./gradlew bootRunでアプリケーションを起動し、ブラウザでlocalhost:8080を開いてください。

  • アプリケーションの紹介
  • オブジェクトマッピングの概要
  • アプリケーション画面へのリンク
  • データベース管理画面へのリンク
  • APIドキュメントへのリンク

などのオンラインドキュメントをご覧いただけます。
Javaを使ったアプリケーション開発の経験者を対象に、Spring MVCとMyBatisを使った、オブジェクトと画面・テーブル・JSONデータの マッピングのやり方の参考情報を提供します。

オブジェクトとのマッピング技術

以下の3領域のマッピングの実装例です。

  • オブジェクト ⇔ HTML(画面)
  • オブジェクト ⇔ JSON(Web API)
  • オブジェクト ⇔ SQL(テーブル)

アーキテクチャ

レイヤ構造は 三層+ドメインロジック です。

application/ アプリケーション層
  • coordinator/ 複合サービス
  • repository/ リポジトリ定義
  • service/ 要素サービス
domain/ ドメインロジック
  • model/ モデル
  • type/ 基本型
infrastructure/ インフラストラクチャ層
  • _configuration/ ← 設定
  • datasource/ データソース
  • transfer/ 通信
presentation/ プレゼンテーション層
  • api/ API RESTコントローラ
  • web/ 画面コントローラ

要素技術

  • 全体 : Spring Boot , Gradle
  • プレゼンテーション層 : Spring MVC, Thymeleaf
  • データソース層とデータベース : MyBatis, Flyway, H2 Database Engine
  • ドキュメント生成 : JIG

詳細は、オンラインのドキュメント(localhost:8080で表示)とソースコードを参考にしてください。