ソフトウェア工学に関する記事一覧です。
AI文書サービスの検索、推論、応答の流れに沿って、インフラ費用を考えます。学習と推論を分け、GPU、HBM、ネットワーク、電力と冷却の役割を整理します。稼働率と成功件数が原価に及ぼす影響を試算し、効率改善が産業の需要や企業の利益に波及する条件を確認します。
AIで実装が速くなると自社開発は割安になるのかを検討します。文書サービスの実装と運用の人件費、Codexの契約料、API費用を実際のSaaS座席料金と比べ、同じ要件で12か月の総所有コストを試算します。
誰もが同じAIモデルを使える環境で、製品にどんな競争力が残るかを考えます。文書サービスを例に、業務データと検索の文脈、ワークフロー、アクセス権限と監査ログを整理し、モデルを替えたときの品質、修正時間、完了までの費用を比較します。
月額2万ウォンのAI文書サービスを例に、原価をもとに定額制・従量制・ハイブリッド型を比較します。処理クレジット、無料体験、利用上限、追加購入、失敗時の消費と返金の基準を設計し、CodexやClaudeの課金方式も参考に、品質と収支に合う料金案を提案します。
AI文書サービスのリクエストからモデル呼び出し、検索、再試行までの費用を追います。Claudeの公式API単価と架空の呼び出し記録から成功1件あたりの原価を求め、キャッシュ、品質基準の未達、開発用の契約、付帯クレジットを分けて考えます。
月額2万ウォンのAI文書サービスを例に、CodexやClaudeの開発費、サーバーとDB、API原価を分け、付加価値税と決済手数料を反映します。ユーザー1人あたりの限界利益と損益分岐点を求め、使用量や開発ツールの組み合わせによる収支の変化を見ます。
検索機能を例に、ClaudeとCodexをチーム開発で使う流れを整理します。依頼と契約、文脈とモデル選択、実装と検証、引き継ぎとPRレビューをつなぎ、各段階の完了基準、手戻りへの対応、記録と指標を使った改善方法を紹介します。
ClaudeとCodexのコーディング作業を並行化し、Git worktreeで変更を分離する方法を紹介します。ファイルの担当範囲、API契約、ポートやDBの共有範囲を確認し、結果を順番に統合します。競合の解決、統合後の検証、時間と費用の比較も扱います。
ClaudeやCodexで長く続く作業を新しいセッションに引き継ぐ方法を紹介します。目標、コードの状態、検証の根拠、次の行動を短く記録し、実際のファイルと照合します。会話圧縮とセッション再開の違い、未コミットの変更と古い記録の確認方法も扱います。
ClaudeやCodexで繰り返す入力の費用を抑えるプロンプトキャッシュの仕組みを解説します。固定の指示と作業入力の配置、OpenAIとAnthropicの使用量の読み方、ヒットしないときの確認方法を紹介し、APIとコーディングツールで設定できる範囲を区別して、総費用と品質で効果を検証します。
ClaudeやCodexのトークン使用量を、実際の開発効率と併せて測る方法を整理します。完了率、人による手戻り、検証までの所要時間、完了1件あたりの費用を作業単位で記録し、失敗や中断を含めて同じ条件で比較します。
ClaudeやCodexが修正したコードを、不具合の再現、型チェック、テスト、ブラウザーの操作まで一貫して検証する方法です。検索フィルターを例に、回帰テスト、失敗ログの伝え方、再試行の中止条件、検証の根拠と未検証範囲を残す完了報告を紹介します。
AIコーディングの作業を難易度とリスクで分類し、モデルと推論強度を選ぶ基準を整理します。小さな修正、一般的な実装、複雑な設計と検証に合う設定や、上位モデルに切り替える条件を紹介し、ClaudeとCodexの費用、遅延、品質を比較します。
AIコーディングエージェントで、SkillとMCPがいつコンテキストに入るかを整理します。説明メタデータ、ツール定義、呼び出し結果を分け、必要な指示とツールだけを読み込む基準を紹介し、Claude CodeとCodexの読み込み方式も比較します。
AIコーディングエージェントに作業を任せるための依頼の書き方を整理します。目標、範囲、制約、完了条件、検証方法、判断の境界を契約のように明示し、実装の品質と協業の速度を高めるためのテンプレートを紹介します。
AIコーディングエージェントが必要な情報だけを読めるよう、AGENTS.md、作業別の文書、サブディレクトリの指示を整理します。モノレポで共通ルールと各領域のルールを結び、コンテキストの浪費と手戻りを減らす方法を紹介します。
共通のルールとツール固有のルールを分け、CodexとClaude Codeの読み込み方式に合わせてAGENTS.mdとCLAUDE.mdを設計します。コンテキストの消費と手戻りを減らすためのテンプレートと確認方法を紹介します。
ClaudeやCodexで開発するときに、トークン使用量と手戻りを減らす方法です。作業範囲、リポジトリの指示、ツール出力、検証ループを整理し、開発リポジトリで使える依頼テンプレート、チェックリスト、測定と比較の方法を紹介します。
14回にわたるTDDシリーズを振り返り、保守性への利点と今後の学習テーマを紹介します。実習コードのリポジトリも掲載しています。
TDDを実務に導入するときの開発コスト、スケジュール、チームの理解を得る方法と、テスト範囲の決め方を学びます。
単体テストと統合テストの違いを理解し、@SpringBootTestで全体の流れを検証します。Clock Beanで時刻を固定して再現性のある統合テストを作る方法も紹介します。
運用中のプロジェクトに新しい要件(割引ポリシー)が追加されたとき、既存コードを保護しながらTDDで機能を拡張する方法を学びます。
隠れた依存関係、乱数、時刻など、テストしにくいコードの特徴を確認し、依存性注入によってテストしやすい構造へリファクタリングする方法を学びます。
@Validによる入力値検証とビジネス例外のテスト方法を扱い、@RestControllerAdviceを用いたグローバル例外処理も解説します。
@WebMvcTestとMockMvcを使ってController層をテストし、APIリクエストとレスポンスを検証する方法を解説します。
Mockitoで依存性を分離し、状態検証と振る舞い検証を使い分ける方法をSpring Bootの例で解説します。
メモリ上のストレージをJPA Repositoryに置き換え、@DataJpaTestでデータベース関連の処理を安全かつ独立してテストする方法を解説します。
API(Controller)を作る前に、主要なビジネスロジック(Service、Domain)をテストして実装する理由と方法を解説します。
Spring Bootの例でRepositoryを導入し、テストを維持しながら責任を分離してリファクタリングする方法を解説します。
TDDのGreen段階でテストを通すための最小限の実装を、Spring BootとJavaの例で解説します。
商品登録を例に、要件をテストケースへ分解し、Given-When-Thenで失敗するテストを書く方法を解説します。
Spring Bootプロジェクトの初期設定から、JUnit 5、AssertJ、Mockitoの基本的な使い方、適切なテストパッケージ構成まで解説します。
TDDの基本概念とRed-Green-Refactorの流れを、Spring BootとJavaの例を使って初心者向けに解説します。
オブジェクトの特定とクラス分類、責務駆動設計、カプセル化・抽象化・ポリモーフィズムの基本を解説します。
システムの境界や外部とのデータのやり取りを示すコンテキスト図と、作業・条件分岐の流れを表すUMLアクティビティ図を解説します。構成要素や作成例、モデリングツールも紹介します。
ユースケースでユーザーの要求を分析して整理します。アクター、ユースケース、シナリオの意味と、基本フロー、代替フロー、例外フローを含む仕様書の書き方を例とともに説明します。
形式的・非形式的な分析の違いを理解し、インタビュー、アンケート、ワークショップ、観察などの要件分析手法と、要件トレーサビリティマトリクスの活用法を紹介します。
ソフトウェア要求仕様書(SRS)の目的と構成を学びます。機能要件と非機能要件の定義、作成の指針、よくある誤りを例とともに説明します。
モデル、ビュー、コントローラーの役割と連携の流れを、Javaの例とともに説明します。
ソフトウェアライフサイクルの基本からウォーターフォール、反復、アジャイルの特徴と選び方まで比較して解説します。
オブジェクト指向設計の中核となるSOLID原則(SRP、OCP、LSP、ISP、DIP)を学びます。各原則の意味と重要性をJavaの例で理解し、実際のコードに適用して、保守しやすく柔軟なソフトウェアを作る方法を説明します。
UMLユースケース図のアクター、ユースケース、システム境界と、include・extend関係の使い分けを例とともに解説します。
ソフトウェア開発で要件が変わり続ける理由を理解し、変化を効果的に受け入れて管理するための柔軟な開発戦略を紹介します。変更管理プロセスや便利なツールを通じて、変化に強い開発チームを目指します。
初期アイデアと機能要件の違い、ユーザー調査、プロトタイプと文書化の役割を解説します。
代表的なアジャイル手法と導入事例を成功・失敗の両面から紹介します。
反復型開発とアジャイルの特徴、進化的プロトタイピング、アジャイル宣言の原則を解説します。
プロトタイピングの目的や種類、メリット・デメリット、活用する段階とツールを解説します。
UMLシーケンス図のライフライン、メッセージ、活性区間、制御フレームを解説します。オンライン書籍注文の例を使い、時間の流れに沿った相互作用の描き方を紹介します。
UMLクラス図のクラス、属性、メソッドと、継承・関連・集約・コンポジション・依存の関係をJavaの例とともに解説します。
ソフトウェア工学における検証と妥当性確認を説明します。
ユニットテスト、テストスイート、回帰テスト、JUnitの基本をコード例とともに解説します。
設計からコードへ対応付ける方法を説明します。
オブジェクト間の可視性を考慮した設計を説明します。
GRASPパターンによるオブジェクト設計の例を紹介します。
オブジェクト指向設計で責務を割り当てるためのGRASPパターンを説明します。
ソフトウェア工学におけるUMLクラス図を説明します。
UML相互作用図の基本を紹介します。シーケンス図とコミュニケーション図を比較し、リンク、メッセージ、生成、反復、静的・多態的呼び出し、同期・非同期の表現を解説します。
ソフトウェア工学におけるオブジェクト単位の設計を説明します。
ソフトウェア工学における論理アーキテクチャの設計を説明します。