概要
システムを作るときには外部設計が必要になります。小さい案件の場合は詳細設計である内部設計は省略して実装できるのですが、基本である外部設計については必須になります。
大規模プロジェクトでも小規模プロジェクトでもシステムを作るときには外部設計は必須になります。外部設計は非常に考えることが多く1回では紹介しきれません。そのため不定期ではありますが複数のPARTを分けて紹介していく予定です。
目次
外部設計とは
要件定義で決まった内容をもとに画面や機能等のユーザーインターフェースを設計する工程です。
システムの作成工程は「要件定義」→「外部設計」→「内部設計」→「実装」→「単体テスト」→「結合テスト」→「システムテスト」→「納品」です。
このシステム作成工程の中の2番目です。外部設計は基本設計や概要設計という言い方をすることがありますが同じ意味です。
現場によって言い方はかわりますが同じ意味だと捉えてください。外部設計は具体的に何を作成するのかというと以下の成果物で列挙しています。今後不定期で各PARTに分けて紹介していきます。
方針設計書
方針設計についてはSEというよりもプロジェクトマネージャが作成することが多いです。
内容は主にハードウェアやソフトウェアの選定や開発人数、誰を雇うのかの開発体制、いつまでに終わるのかといった開発スケジュールを検討します。まだ、具体的な開発というよりもシステム開発の体制づくりを具体的に方針として定義する段階です。
開発方針決定
ハードウェアやソフトウェアは何を使うのか検討します。
具体的にはWebを使うのか、話題のドローンを使うのかといったハードウェアやapache httpdを使うのかnginxを使うのかといったミドルウェアの選定になります。
開発言語選定
Javaを使うのかPHPを使うのかPythonを使うのかといった選定になります。
Webを使うのであればPHPや開発者が集まりやすいのはJavaだといった具合に特性によって選定します。
サーバーやDBの選定
最近クラウド環境が人気だからAmazonのAWSやGoogleのGCPを使うのかそれとも自社でサーバーを持つのか
データベースはNoSQLを使うのかMySQL等のRDBで済ますのか選定します。
開発体制
プロジェクトを進めるのに誰が必要か選定します。
種類は以下の通りです。
プロジェクトによってPMOを多めに取るのかデザイナーを多めに取るのか
どのぐらいが適正なのかを調整することがプロジェクトマネージャの力量だと思います。
集めるべきメンバーの種類をリストにしました。
- PMO
- SE
- ネットワークエンジニア
- バックエンドエンジニア
- フロントエンジニア
- デザイナー
開発スケジュール
上記でも書きましたが、システムの工程
「要件定義」→「外部設計」→「内部設計」→「実装」→「単体テスト」→「結合テスト」→「システムテスト」
をそれぞれ何が必要なのかを洗い出し、「いつまでに」「何をするのか」を具体的にガントチャートを用いて作成します。
WBSを使いこのプロジェクトには何をすれば完成するのか考えていく必要があります。
WBSはWork Breakdown Structureの略で階層別に何をするのか洗い出します。
プロジェクトの管理
JIRAを使ったりesaを使ったりとどのようにプロジェクトを進めていくのかのツールを選定します。
どのようなシステムを作成するのか
新たに作るシステムに関わるシステムの構成を図にします
次回予告
画面遷移図や画面設計図は次回に説明します。
外部設計関連記事
最近特に注意が必要なセキュリティの設計から運用方針を定める運用設計、それと品質を担保するためのテスト設計の3点について概要を説明してきます。どれも必須観点ばかりですので設計に携わるのであれば読んでおいてください。 続きを見る システム開発における外部設計の説明です。今回はAPI仕様書についての記載方法を記事にしました。Swaggerといった便利なAPI仕様書作成ツールについても言及しています。 続きを見る システム開発における外部設計 PART3です。データベース設計についての説明をしています。基礎についての記載になるのでわかりやすく説明していると思います。 続きを見る 外部設計について今回の第2部は画面遷移図、画面設計書、ビジネスロジックについて説明していきます。画像を取り入れながらどのように作成していけば効率的なのかを解説していきます。 続きを見る
外部設計 PART5 セキュリティ設計・運用設計・テスト設計
外部設計 PART4 APIインターフェース仕様設計書
システム開発における外部設計 PART3 テーブル定義
外部設計 PART2 画面設計と遷移図 ビジネスロジック