OS
Architect Portal
Unofficial Community Guide

OutSystems Architect's Playbook

パフォーマンス設計からアジャイル手法(ODM)、そして運用監視まで。
シニアアーキテクトへと進化するためのシステム・ライフサイクル教本もどきです。
※全然網羅できてないのと、正確な仕様や最新の技術情報は、常にOutSystems公式サイトと併せてご確認ください。

🐣 Step 0: 初心者はここから

本ポータルは「質の高い設計」を学ぶ中級者向けです。まだAggregateや画面を作ったことがない方は、まず以下の手順で基本のアプリ開発をマスターしましょう。

  1. 無料の開発環境を入手する: Developer Editionに登録し、クラウド上に専用の開発環境(Service Studio/ODC)を構築します。
  2. 公式トレーニングを受講: "Becoming a Reactive Web Developer" の学習パスに沿って進めるのが最短ルートです。

👨‍💻 【重要】スクラッチ開発から来た方へ

最大の罠は「何でも自作しようとすること」です!ローコードではGit管理もビルド設定もインフラも自動化されています。「いかにコードを書かずにプラットフォームの標準機能やForgeに寄せるか」というマインドセットへ切り替えるのが、成功への最初の壁になります。

🧠 OutSystems以外で学ぶべき基礎技術

📊 RDB & SQL

正規化、JOIN、Indexを理解しないと低速なアプリになります。

🎨 Webフロントエンド

DOM構造、CSS詳細度、JS非同期処理。Widgetの裏側を知る第一歩。

🧭 読者ペルソナと資格マップ

[DEV]

💻 1. Associate Developer

実装担当。まずは「安全に動くもの」を作る力を養います。

[ARCH]

🦅 2. Architecture Specialist

設計担当。技術的負債を防ぐチームの門番として本ガイドを熟読必須。

[LEAD]

🕴️ 3. Delivery Specialist

アジャイル運営とガバナンス(ODM)を中心にチームを爆速化させるリーダー。

1. Delivery Method (ODM)

アジャイル開発を前提としたローコード特有のリズム(OutSystems Delivery Method)です。

フェーズやること
1. Initiationキックオフ。UXビジョンとアーキテクチャ定義。
2. Sprint 0環境構築と、Live Style Guide(UI基盤)の確定。
3. Sprints2週間単位の反復開発。テストとPOデモを実施。
4. Closure保守(KT)への引き継ぎとレトロスペクティブ。

2. Architecture Rules (O11 vs ODC)

単に機能を作るだけでなく、技術的負債を防ぐ層構造(レイヤー設計)がアーキテクトの腕の見せ所です。

Architecture Canvas (Conceptual)

graph TD A([Orchestration]) --> B([End-User / Web Apps]) B --> C([Core / Logic & Data]) C --> D([Foundation / Integration]) style A fill:#f1f5f9,stroke:#94a3b8 style D fill:#fef2f2,stroke:#fca5a5

🏢 O11 (4層モデル)

モジュールを役割ごとに分け「上位から下位への一方通行」を厳守。

☁️ ODC (App & Library)

ドメイン駆動設計(DDD)に基づき、疎結合な「App」と共通「Library」に二分。

絶対の禁忌: 「循環参照(お互いを参照し合う)」や「上位参照(Coreが画面を参照する)」はデプロイを破壊します!

O11 vs ODC アーキテクチャ比較

比較項目 🏢 OutSystems 11 (O11) ☁️ OutSystems Developer Cloud (ODC)
アーキテクチャ モノリシック (IIS上の統合アプリ) マイクロサービス (コンテナベース)
デプロイ単位 アプリケーション / モジュール アプリケーション (独立したデプロイ)
実行基盤 仮想マシン (Windows Server / IIS) コンテナ (AWS / Kubernetes)
データベース 共有データベース (複数アプリで共有可) 分離されたデータベース (アプリ毎に独立)
スケーリング フロントエンドサーバーごとの増設 アプリ単位のオートスケーリング
インフラ管理 セルフマネージド or OutSystems Cloud 100% OutSystems管理 (SaaS)
主な開発要素 モジュール、サービスアクション App、Library、External Logic

3. フロントエンド (Live Style Guide)

画面の「コピペ地獄」を防ぐため、UIコンポーネントは1箇所で管理します。

  • Base Theme: OutSystems UIを直接書き換えず、 Corporate Theme を作って継承する。
  • Live Style Guide: Sprint 0で自社専用の Block 群(カードや特殊ボタン等)の辞書アプリを作る。
  • Forge利用: OSSを使う場合は必ず Wrapperモジュール でカプセル化する。

5. Performance Guidelines

データの取得と処理のボトルネックを排除します。

Max. Recordsの指定 Aggregate(SQL)には必ず上限を指定し、無駄なメモリ消費を防ぐ。
非同期処理 (Light BPT) 重いトランザクション中は画面をロックせず、BPTでバックグラウンド実行する。

6. Security Fundamentals

⚠️ SQLインジェクション防止

Advanced SQL内で Expand Inline = Yes を使う際は、必ず EncodeSql() 等でサニタイズすること。

また、画面のアクセス権限チェックだけでなく、Server Action内部での「再バリデーション処理」も必須です。

7. Testing Guidelines

負債を減らし、品質を担保するためのテスト戦略です。OutSystemsは保守コストと実行スピードの観点から、以下の比率でテストを構成することを推奨しています。

Unit Tests
最も多く作成すべきレイヤー。ロジック(Server Actions)や計算、データ変換を検証します。
API / Integration
外部システムやモジュール間のインターフェースを検証。
UI / E2E
ユーザー操作をシミュレート。UIは変更が多いため、「クリティカルなパス(Happy Path)」に絞って最小限にすることを推奨。

公式推奨ツールセット

ツール名 用途 特徴
BDDFramework ユニット・APIテスト 公式一押し。Gherkin記法(Given/When/Then)でテストコードを記述できる。
Unit Testing Framework ユニットテスト シンプルなユニットテスト実行用。
TestFramework テスト管理 上記のテストを一括実行し、レポート出力やCI/CD連携を行うための「ダッシュボード」。

「3 Amigos」セッションの推奨

開発(Dev)、テスト(QA)、ビジネス(BA/PO)の3者が、開発着手前に「何をもって完了(テストパス)とするか」を合意することを強く推奨しています。これにより、手戻りと「作らなくていいテスト」を減らします。

AI Mentor Studio の活用

「テストが通るか」だけでなく、「テストしやすいコードか」をチェックします。密結合なモジュールはテストが困難であるため、AI Mentor Studioを使って「循環参照」や「巨大なアクション」を排除することが、結果的にテスト品質の向上に繋がるとされています。

8. Project Governance & Protocols

👥 コンフリクト(競合)回避

モジュールを極小まで細分化し、朝会で「誰がどのモジュールを触るか」を明確に宣言する運用がスピード低下を防ぐ最大の鉄則です。

🏗 AI Mentor Studio (Architecture Dashboard)

週1回必ずチェック。コードの重複や循環参照などの負債を可視化。スコアをグリーンに戻す「リファクタリングの日」をスプリント内に確保します。

🚀 デプロイの非属人化

Service Studioから本番環境へ直接1Click Publishするのは厳禁。必ずLifeTime / ODC Pipelineを経由させ、依存関係の整合性を守ります。

9. Operations & Monitoring

🔍 Service Center

  • Error Log: キャッチされた例外とスタックトレース。
  • Slow Queries: 実行時間の長いSQLやAPIの警告。
  • Timers: バッチ処理のスケジュールと強制実行。

🚢 LifeTime

  • 1Click Deployment: 環境間の整合性チェックと移行。
  • IT Users: 開発者の環境アクセス権限を一元管理。
☁️

ODCでの統合: O11での複数管理ツールが巨大な1つの「ODC Portal」に集約されました。これにより運用負荷が激減しています。

10. OutSystems 必須用語集

ODCへの移行を見据え、「共通概念」と「固有用語」を分けて整理した現場志向のチートシートです。

🔗 1. 共通コア概念(O11 / ODC共通)

[CORE]

Aggregate

SQLを書かずにデータを取得できるビジュアルクエリビルダー。内部で最適化されたネイティブSQLに自動変換されます。

[CORE]

Forge (フォージ)

「OutSystems界のアプリストア」。世界中の開発者が作った便利な部品やプラグイン(Excel操作、地図連携、画像加工など)を無料でダウンロードして自分のアプリに組み込める。

💡 ポイント: 「ゼロから作らず、まずはForgeにないか探す」のがOutSystems開発の鉄則。
[CORE]

Block

UIの再利用パーツ(旧Web Block)。UI共通化の基本単位です。

[LOGIC]

Client Action / Server Action

Client Action: ブラウザ/デバイス側で動くロジック。JSに変換されレスポンスが高速。
Server Action: サーバー側で動くロジック。DB操作や機密性の高い処理に使用。
Service Action: サーバー側で動くロジックだが、REST APIのように公開され、他のモジュールから依存関係なしに呼び出すことができる。トランザクションは個別に管理される。

🤖 2. AI & ガバナンス(モダン開発標準)

[AI]

AI Mentor System / Code Mentor

AI Mentor System: (旧Architecture Dashboard) AIがコードの不備を自動指摘・監視。
Code Mentor: Studio内蔵AI。次に入力すべきロジックやノードを予測して提案する開発補助。

🔄 3. O11 vs ODC 比較・固有用語

[COMPARE]

アプリ単位 (Application Unit)

🏢 O11 (OutSystems 11)
Module / Application
☁️ ODC (Developer Cloud)
App / Library ※分離がより厳密に
[COMPARE]

動的変数 / グローバル定数

🏢 O11
Site Property
☁️ ODC
Setting(名称のみ変更)
💡 アドバイス: 「ソースコードやビルドをやり直すことなく、運用画面から値をリアルタイムに変更できる」という特性は、保守運用においてAggregateと同じくらい重要な基本概念です。呼び方が変わっても活用しましょう。
[COMPARE]

外部コードの実装

🏢 O11
Extension (Integration Studio)
☁️ ODC
External Logic (Assets)
💡 開発への影響: IDEが分離し、C#コードをライブラリとしてアップロードする形式に変わりました。Integration Studioは廃止され、ODCでは外部ロジックを独立したアセットとして管理します。

🌐 4. プラットフォームの世代

[CORE]

O11 (OutSystems 11)

現在主流のバージョン。オンプレミスや自社クラウドで運用。

[CORE]

ODC (OutSystems Developer Cloud)

最新のクラウドネイティブ版。AWS基盤で自動スケールする次世代版。

[CORE]

ODC Portal

ODC専用の管理画面。アプリのデプロイやユーザー権限、ログを一括管理する。

📱 5. アプリの開発方式

[CORE]

Reactive Web

現在の標準。ブラウザでサクサク動くモダンなWebアプリ。

[LEGACY]

Traditional Web

旧式の開発方式(O11のみ)。サーバー側で処理を行う。新規開発では非推奨。

[CORE]

Mobile Apps

iOS/Android向けアプリ。端末のカメラやGPS機能をフル活用できる。

[CORE]

PWA (Progressive Web Apps)

ストアを通さず「ホーム画面に追加」して使える、インストール型のWebアプリ。

🎨 6. UI・画面開発

[CORE]

OutSystems UI

公式のUIフレームワーク。ボタンやグラフ、レイアウトなどの「部品集」。これを使うだけでデザインが整う。

⚙️ 7. バックグラウンド処理(非同期)

[LOGIC]

Timer

スケジュール実行(例:毎日深夜2時)や、重い処理を裏側に切り離すための「自動実行」機能。

[LOGIC]

BPT (Business Process Technology / Process)

業務プロセス(ワークフロー)の自動化。承認フローや、データの登録をきっかけにした連鎖処理に使う。

🛠️ 8. 設計・運用・管理

[OPS]

Discovery

アプリ間の依存関係を可視化する地図。設計ルール(循環参照など)に違反していないかチェックするツール。

[OPS]

Service Center

O11の管理画面。エラーログの確認、メール設定、タイマーの強制実行などを行う司令塔。

[OPS]

Platform Server

OutSystemsの心臓部。作成したモデルを実際のプログラムに変換して動かすエンジン。

[OPS]

OutDoc

アプリケーションの設計仕様書を自動生成するツール。Service Studioで作ったデータモデルやロジックの構成を解析し、ドキュメント(PDFやWeb形式)として書き出す。手動での仕様書更新の手間を大幅に減らせる。

🔐 9. セキュリティ・認証

[SEC]

Users (ユーザーズ)

ユーザー管理専用の標準アプリ。ログインユーザーの作成、権限(Role)の割り当て、外部認証(SAMLやAzure ADなど)との連携設定を行う。