ソフトウェアアーキテクチャ 基礎

#ソフトウェア設計

ソフトウェアアーキテクチャ 基礎 変化に強い進化するソフトウェア設計

変化に強い設計が、選ばれ続ける理由になる。

Overview

研修概要

ソフトウェアアーキテクチャ 基礎は、設計原則からドメイン駆動設計、マイクロサービスに至る領域を実務で活用するための「設計思想の体系的理解」と「思想を実装で確かめる基礎力」の習得を目標とした研修です。

レイヤードアーキテクチャとSOLID原則から、ドメイン駆動設計、マイクロサービスまでを実装演習を交えて一気通貫で提供することで、新規アーキテクチャ設計を担える人材の不足を解消し、変更に強い開発体制を確立させます。

Issues

こんな課題を持つ企業におすすめ

ビジネス現場

  • ビジネスの変化にソフトウェア開発が追随できず、市場投入までのリードタイムが伸びている
  • ビジネスロジックの複雑化に伴い、保守・拡張の効率が低下し続けている
  • 各機能が互いに依存し合う設計になっており、頻繁なリリースがシステム全体への影響を及ぼしている
  • ビジネス要件が開発側に齟齬なく伝わらず、手戻りとコミュニケーションコストが増大している
Goals

本研修の到達目標

For Engineers

開発現場

  • 1設計論の専門用語を正しく理解するSOLID原則やレイヤードアーキテクチャなど頻出する設計論の専門用語を、その意味と意図まで理解し、共通の前提で議論できるようになります。
  • 2設計思想を実装まで一気通貫で扱えるドメイン駆動設計とマイクロサービスによる疎結合化を、演習を通じてコードに落とし込めるようになります。
  • 3技術選定とアーキテクチャ評価を担える利用するフレームワークの評価や開発標準の策定に、現場で取り組めるようになります。
For Organization

組織への期待効果

  • 1新規アーキテクチャ設計を担える人材不足の解消既存案件の踏襲に頼らず、新規検討が必要な場面でも実行できる技術キーマンを組織内に確保します。
  • 2保守コスト増大とスケーラビリティ低下の抑制理解困難なコードや低い拡張性がもたらす保守コストの増大を、設計段階で構造的に防ぎます。
  • 3事業変化に追随できる開発体制の確立頻繁なリリースや仕様変更に耐えられる開発体制を築き、市場競争力と顧客満足度の向上につなげます。
Features

本研修の特長

Feature 01

思想理解から実装まで一気通貫の3日間

設計原則の理解で終わらせず、ドメイン駆動設計とマイクロサービスによる疎結合化を、演習を通じて実装まで踏み込んで習得します。

Feature 02

基礎から段階的に積み上げる設計理解

SOLID原則やレイヤードアーキテクチャといった基礎的な設計思想から、ドメイン駆動設計、マイクロサービスまでを演習を交えながら段階的に積み上げていくカリキュラムです。

Feature 03

現場の悩みに基づく実践型カリキュラム

変更容易性やスケーラビリティへの悩みなど、実際の受講者の声をもとに設計された、現場で使える構成になっています。

Curriculum

研修カリキュラム

期間:3日間 / 前提知識:Java・C#等の業務アプリ開発経験

日程 章・学習テーマ 学習内容・習得スキル
1日目 第1章:ソフトウェア設計の目的と設計原則

設計が不十分な実装がもたらす問題を非機能要件の観点で理解し、良い設計をするための指針であるSOLIDの原則を習得します。あわせて設計に関する現状認識をディスカッションで共有します。

第2章:アーキテクチャの決定とレイヤードアーキテクチャ

パッケージ構成の決定方法とレイヤードアーキテクチャの考え方を習得し、ドメイン層・インフラストラクチャ層・UI層それぞれの設計を講義と演習で実践します。

第3章:GoFデザインパターンの実装

代表的なデザインパターンを演習で実装し、設計原則やアーキテクチャへの応用方法を体得します。

振り返り①

1日目の内容を振り返り、設計原則とアーキテクチャに関する理解を確認します。

2日目 第4章:ドメイン駆動設計の戦略的設計とユビキタス言語

ドメイン駆動設計が提唱する設計パターンの概要とマイクロサービスとの相性を学び、ドメインモデルを動かすパターンとユビキタス言語の作成方法を習得します。

第5章:ドメインモデル設計の実装演習

アーキテクチャ・モジュール・エンティティ・値オブジェクトを踏まえたドメインモデルを、プロジェクトの作成からドメインモデル層クラスの作成まで演習で実装します。

中間振り返り

ドメイン駆動設計の理解と実装演習の内容をディスカッションで振り返ります。

3日目 第6章:マイクロサービスアーキテクチャの理解

マイクロサービスアーキテクチャの特徴・メリット・注意点と、システムを疎結合化する勘どころを、戦略的な設計の観点から学びます。

第7章:モノリシックシステムからの分離実装演習

モノリシックシステムからの分離を題材に、インフラストラクチャ層・アプリケーション層の実装と動作確認を演習で行います。

総括と目標設定

研修内容全体をディスカッションで振り返り、変更容易性を高めるための現場での目標を設定します。

研修内容のカスタマイズについて 本研修で利用する言語やフレームワークについては、御社の実際の開発環境やプロジェクトの技術スタックに合わせてカスタマイズした内容での実施も可能です。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

演習ではドメインモデルやインフラストラクチャ層の実装を行うため、以下の環境をご用意いただきます(詳細は御社の開発環境に合わせてご相談可能です)。

ホストPCインターネット接続が可能なノートPC(Windows/Mac)
開発環境Java等の業務アプリ開発言語に対応したIDE(Eclipse/IntelliJ IDEA等)
実行環境JDK等、演習コードの実行に必要な言語ランタイム

前提知識

  • 業務アプリ開発経験:JavaやC#などの言語を用いた業務アプリケーション開発に携わった経験があること。
  • 対象となる役割:アーキテクトや開発推進の役割を担う方、あるいはそのサポートを行う方、アプリ開発基盤の構築に関わる方を主な対象としています。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。

必須 プライバシーポリシーを確認し、同意する