Skip to content
OsscJpDevInfra edited this page Jul 20, 2026 · 16 revisions

Open 棟梁 利用ガイド (インデックス編)

2016年10月3日

はじめに

本ドキュメントの対象

  • Open 棟梁を用いたアプリケーション開発を検討しているマネージャ、SE・開発者
  • Open 棟梁を用いたアプリケーション開発を行う、SE・開発者

本ドキュメントの概要

本ドキュメントは、Open 棟梁の全容 (構成、開発手順、機能・ツールなど) と、それぞれについて説明する利用ガイド・参考資料などについて纏めています。

他社所有名称に対する表示

本ドキュメントに記載の会社名・商品名は、各社の商標または登録商標です。

ライセンス

本ドキュメントは、クリエイティブ・コモンズ CC BY 2.1 JP ライセンスの下で利用可能です。

目次

1. 「Open 棟梁」とは?

2. 構成と処理

3. 開発手順

4. 各機能・ツール

1. 「Open 棟梁」とは?

「Open 棟梁」とは、アーキテクチャを標準化する枠組みを提供する「標準化フレームワーク」に、様々な機能を追加した Microsoft .NET Framework 用のアプリケーション開発用フレームワークです。

  • ランタイム・フレームワーク
    Microsoft .NET Framework 標準ランタイムを使用しています。
    • P 層:ASP.NET、ASP.NET MVC、Windows Forms.etc
    • D 層:ADO.NET
  • フルスタック・フレームワーク
    P・B・D 層の各レイヤのフレームワークを持つフルスタック・フレームワークです。
  • 標準化フレーム (フレームワーク)
    • P・B・D 層に渡る、アプリケーション構造を標準化可能。
    • 物理アーキテクチャ (C/S、Web、WebAPI、ハンディ、クラウド) を問わない。
    • 論理アーキテクチャや使用する開発テクノロジについては、一部前提あり。
  • 各種開発支援機能
    • SQL 作成支援
      • 動的パラメタライズド・クエリ … 外部 SQL 定義 (XML 形式) と、動的 SQL の編集機能。
      • バッチ SQL 作成ユーティリティ … DataTable から追加・更新用の SQL バッチを生成する機能。
    • 自動生成ツール … DBMS のスキーマ情報を利用したコードの自動生成
      • D 層 (Dao) 自動生成
      • データ・メンテナンス画面自動生成 (ASP.NET)
    • 通信制御機能
      • ASP.NET Web サービス、WCF (HTTP、TCP/IP) をサポート。
      • クライアント・ライブラリとサービス・インターフェイスから構成され、.NET オブジェクトのバイナリ転送 (シリアル化・逆シリアル化) から B 層呼出までを自動化。
      • これにより、C/S 3 層などの物理 3 層アーキテクチャの実装を容易にする。
      • クロス・プラットフォーム (他の開発テクノロジと連携する) 時は、SOAP や REST 形式の汎用サービス・インターフェイスを公開する。
    • その他、国際化対応、共通部品等が整備されています。
  • 標準化フレーム (フレームワーク) のフィッティング問題への対応
    以下のアーキテクチャを導入することでフィッティング問題を防ぎます。
    • ベースクラス1・2、サブクラスのクラス継承の3層構成を採用しており、カスタマイズ可能レイヤ (ベースクラス2) で PJ 毎のカスタマイズを可能としている。
    • オブジェクト・モデル、メソッド・シグネチャ、I/F、外部パラメタ化など、汎用性を考慮した設計を採用しているため、従来の標準化フレーム (フレームワーク) に見られたフィッティング問題は殆ど発生しない。
  • 小規模案件への対応
    「Open 棟梁」は API セットを0から自分で組み合わせるのではなく、各アーキテクチャに対応したテンプレートを使用することでプロジェクト立ち上げを容易にすることができます。これにより、20KS 程度の小規模案件にも容易に導入できます。

以下、標準化されていないアプリケーションと、その問題点を説明します。

図 1-1 標準化されていないアプリケーション

表 1-1 標準化されていないアプリケーションの問題点と、その影響

項番 問題点 影響
1 ・共通処理方式 (基準) が遵守されない
・プログラム構造がバラバラになる
生産性・保守性 低下
2 同じ処理を重複して開発してしまう 生産性 低下
3 各種チェック、排他処理などの実装漏れ・ミスなど 品質 低下
4 ・SQL の組み立て実装ミス
・入力値サニタイジング等の処置漏れ
脆弱性問題

以下のように「Open 棟梁」を使用してアプリケーションを標準化することで、これらの問題を解決できます。

図 1-2 「Open 棟梁」により標準化されたアプリケーション

表 1-2 アプリケーションの標準化による諸問題の解決と、その効果

項番 解決 効果
1 ・共通処理方式 (基準) を遵守できる
・プログラム構造を統一できる
生産性・保守性 向上
2 処理の重複を排除できる 生産性 向上
3 実装の漏れ・ミスを防止できる
(認証、閉塞、タイムスタンプ チェック)
品質 向上
4 セキュリティ・脆弱性に関連する、実装の漏れ・ミスの防止
(カスタム コントロールの使用、パラメタライズド・クエリの利用を遵守するなど)
脆弱性の排除

「Open 棟梁」は以下の機能を有しています。

図 1-3 「Open 棟梁」の機能

2. 構成と処理

「Open 棟梁」は、次のような構成・処理フローで動作します。

図 2-1 構成と処理フロー

「Open 棟梁」のレイヤ構成について説明します。「Open 棟梁」は P・B・D の (横の) 3層から構成されており、更に各層が「ベースクラス1・2」、「サブクラス」の (縦の) 3層から構成されています。以下、縦の各層の役割について説明します。

図 2-2 各層の構成

表 2-1 各層の役割

項番 縦横 層 役割
1 横の層 ― 処理ロジックの区分によって分割された論理層。
1-1 横の層 P層 プレゼンテーション層 画面表示処理のロジックを担当する。
1-2 横の層 B層 ビジネスロジック層 業務処理のロジックを担当する。
1-3 横の層 D層 データアクセス層 データアクセス処理のロジックを担当する。
2 縦の層 ― Open 棟梁の開発モデルでは、提供されたクラスを継承して開発を行う。
2-1 縦の層 ベースクラス1 アプリケーション構造、処理方式に関わるフレームワークのクラス。アプリケーション構造を規定、処理フローを制御する機能を提供する。
2-2 縦の層 ベースクラス2 「ベースクラス1」を継承し、ドメイン固有処理を実装する。ドメイン固有処理とは、プロジェクト毎の共通的な基盤処理が該当する。その他にも、DB 接続、トランザクション、ログ出力を管理する。
2-3 縦の層 サブクラス 上記「ベースクラス2」を継承し、業務ロジックを実装する。

縦の各層の役割は、上記表のようになります。このため、各層の実装担当は以下のようになります。

表 2-2 各層の実装担当者

項番 層 実装担当者
1 ベースクラス1 基本的に修正しない。
2 ベースクラス2 処理方式を把握している「纏め者」が実装する。
3 サブクラス 業務ロジックを実装する「開発者」が実装する。

「ベースクラス2」には、次のような処理が実装されます。

図 2-3 「ベースクラス2」に実装する処理の例

開発を進める上で利用する「利用ガイド」と「利用者」の関係を以下に示します。

表 2-3 利用ガイドと利用者の関係

項番 利用ガイド名 利用者
1 共通編 纏め者、開発者
2 纏め者編 纏め者
3 開発者編 開発者

また、利用ガイドではクラス名に以下の正式名称を用います。

表 2-4 クラス名 (正式名称)

項番 縦の層 \ 横の層 ベースクラス1 ベースクラス2 サブクラス
2 B層 業務コード親クラス1 業務コード親クラス2 業務コードクラス
3 D層 データアクセス親クラス1 データアクセス親クラス2 データアクセスクラス (Dao)
4 引数 引数親クラス1 引数親クラス2 引数クラス
5 戻り値 戻り値親クラス1 戻り値親クラス2 戻り値クラス
6 引継ぎ情報 ユーザ情報親クラス ユーザ情報クラス -

3. 開発手順

開発手順は、次のようなドキュメント標準を「テーラリング・策定」し作業を進めます。

図 3 ドキュメント標準化ワークフローの例

「Open 棟梁」では、「Doxygen」・「A Hot Document」などのドキュメント生成ツールを活用したリバース プロセスを提案しています。この場合、設計の要は、上記図中の「イベント詳細定義書」になり、「クラス・メソッド定義書」は、「イベント詳細定義書」を補足するものとし、ドキュメント生成ツールにより自動生成します。

※ ドキュメント標準のポイント - Open 棟梁 Wiki

4. 各機能・ツール

「Open 棟梁」は、以下のような機能やツールを有しています。アドイン的に利用可能な機能に加え、RAD ツールである Visual Studio デザイナを活用しつつ、フレームワーク提供のツールを活用可能です。これにより、プロジェクトの QCDF を向上させることができます。

これらの機能やツールは、各層の開発で利用可能です。また、各層の開発順については、特に制限はありません。ボトムアップ方式 (D 層 → B 層 → P 層)、トップダウン方式 (P 層 → B 層 → D 層) の、どちらのアプローチも適用可能です。

開発を進める上で利用するドキュメントと「機能・ツール」の関係を以下に示します。

表 4-1 利用ガイドと「機能・ツール」の関係

項番 利用ガイド名 機能・ツール
1 動的パラメタライズド・クエリ編 ・動的パラメタライズド・クエリ (機能)
・動的パラメタライズド・クエリ分析ツール
2 D 層自動生成編 D 層自動生成ツール (墨壷)
3 各機能編 ・共有情報
・メッセージ取得機能
・画面遷移制御機能
・トランザクション制御機能
・通信制御機能
・Ajax連携機能
4 ベターユース、FAQ 編 ・C/S 2 層のアプリケーション開発
・ASP.NET Mobile Web 開発
5 API リファレンス マニュアル クラス ライブラリ

-以上-

Clone this wiki locally