GithubHelp home page GithubHelp logo

lasker04 / library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from system-sekkei/library

0.0 0.0 0.0 10.36 MB

図書館の司書業務を支援するソフトウェア

License: Apache License 2.0

Java 79.43% CSS 3.75% HTML 16.82%

library's Introduction

図書館の司書業務を支援するソフトウェア

司書業務とアプリケーションの対象範囲

このアプリケーションは、公立図書館の司書業務をサポートするソフトウェアです。

主な対象業務

  • 貸出と返却 ◎
  • 書架の整理 △
  • 選書と受入 〇

このアプリケーションでは対象としない司書の業務

司書の役割や関心事を理解するための参考情報です。 アプリケーションの仕様を検討する時に、司書の業務の全体を理解することが役に立ちます。

  • レファレンスサービス(相談) △
  • リファレンスサービス(記録) -
  • イベント(企画・運営・評価) -

図書館業務の課題

サンプルアプリケーションの使い方

利用方法

  • RDRA 2.0 ハンドブックを入手
  • このリポジトリーをクローン
  • Gradleタスク bootRunを実行(アプリケーションの起動)
  • Gradleタスク jigReportを実行(設計ドキュメントの出力)

この実装例の内容を学ぶためのチュートリアルが公開されました。
図書館サンプルのチュートリアル

アプリケーションの内容

RDRA 2.0 ハンドブックのサンプル「図書館システム」の以下の業務を実装しています。

business-usecase

アプリケーションは、http://localhost:8080でトップ画面を表示できます。

RDRA 2.0 ハンドブックの図書館システムの実装例

モデルベースの要件定義手法 RDRA2.0 ハンドブックのサンプル「図書館システム」の実装です。

設計ドキュメント

JIGを使ってソースコードから設計ドキュメントを自動生成します。ドキュメントはbuild/jig に出力されます。
JIGドキュメントの生成には、 Graphviz のインストールが必要です。

実装の範囲

ビジネスルールを中心に実装しています。

RDRA 2.0で可視化した以下のビジネスルールと関連するユースケース、画面、テーブルを実装しています。

  • 貸出制限ルール
  • 予約の状態遷移

貸出業務と貸出制限ルール

composit-usecase-loan

restriction

予約の状態遷移

reservatoin-state

以下の業務は未実装です。

  • 蔵書管理(資料の注文と蔵書として登録する)
  • 会員管理(会員の登録)

要件定義・仕様化・実装の継ぎ目をなくす開発手法

この図書館サンプルは、以下の考え方とやり方で実装しています。

  • 三層構造 + ビジネスロジック
  • 仕様の記述にプログラミング言語(Java,SQL,HTML)を使う
  • 仕様の可視化にツール(JIG)を使う

三層構造+ビジネスロジック

layers ビジネスロジックを独立させるドメイン駆動設計のアプローチを採用しています。

ドメインオブジェクトを中心にしたアプリケーション構造

mapping RDRAの要件定義モデルと実装を、以下のように対応させています。

Spring MVCとMyBatisを使い、ドメインオブジェクトを中心に周辺の外部形式との双方向のマッピングを実現するアプリケーション構造を採用しています。

ドメインオブジェクトのモデル(ビジネスロジックの表現)

model

ソースコードから、JIGで自動生成したドメインモデルのパッケージ構成図です。
このモデルを中心に図書館アプリケーションを組み立てています。

CCSR: Continuous Concurrent Stepwise Refinment

開発手法として、要件定義・仕様化・実装の継ぎ目をなくすCCSR手法を採用しています。

この図書館サンプル実装は、CCSR手法の実践例として開発しています。

ccsr

参考記事: 要件定義・仕様化・実装の継ぎ目をなくすCCSR開発手法

RDRAアドイン

RDRA手法のモデリングツールとして、Enterprise ArchitectのRDRAアドインを使っています。

JIG (設計可視化ツール)

Javaで記述した内容を、俯瞰したり、一覧するためのツールです。

プログラミング言語で仕様を記述するCCSR手法を実践するために必須のツールです。

RDRA - CCSR - JIG 関係図

RDRA-CCSR-JIG

RDRAのモデル要素(左)、三層+ビジネスロジックの構造(**)、JIGの出力ドキュメント(右)の対応関係です。

ビジネスルール駆動

図の青背景でしめした、RDRAで可視化したビジネスルールをドメインモデルとして実装することが、このアプリケーションの中核です。

RDRA 2.0で可視化された内容と、実装された内容の対応は、以下のJIGドキュメントで確認できます。

  • ユースケース複合図
  • パッケージ関係図(depth4, depth5)
  • 区分図と区分使用図
  • メソッド呼び出し関係図

参考情報

library's People

Contributors

sammy7th avatar masuda220 avatar irof avatar ecormaksin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.