技術系

プログラミングの設計手順を大公開!

どうも。ひろです。

前回までの設計の記事を読まれていない方は以下の記事を読んでいただけるとありがたいです。

設計の重要性

設計することのメリット

私開発するときは以下のフェーズで作業を進めています。

  1. 頭の中を整理するために書き出す
  2. システムを実装するために必要な機能を選ぶ
  3. クラス図作成
  4. シーケンス図作成
  5. 実装

本日は私が設計でやっている工程をご紹介します。

頭の中を整理するために書き出す

どんなシステムを作りたいのか、

どう言ったイメージが頭の中にあるのか具体化するために書き出します。

書き出す媒体はなんでも良いです。

紙が一番良いと思うのですが面倒な方はPCのメモ帳でも良いと思います。

書き出している内に別のことを考えてしまったりすると思いますが、

それも含めて全て書き出します。

そうすることで違う思考に邪魔されずに自分が本当に作成したいシステムを抽出することができます。

システムを実装するために必要な機能を選ぶ

頭の中を整理し、実現したいシステムが明確になったところで

機能の抽出を行います。

書き出した段階でどんなことをしたいのか、どんな機能があったら便利なのか

ある程度でていると思います。

その中でまずはシステムを実現する上で必要最低限の機能を選んでいきます。

全ての機能を盛り込んでもいいのですが、

開発期間が長くなってしまうと同時にモチベーションの維持が難しくなってきます。

なので必要最低限の機能を選んでとりあえずリリースすることをまずは目標としましょう。

クラス図を書く

オブジェクト指向言語であればここで静的分析を行い、

クラス図を作成します。

クラス図については以下を参照してください。

クラス図について

こちらをすることでクラスごとの責務や関係を明確かしていきます。

クラスを作るときは仕様の名詞を抽出すると言われています。

クラス図を作成することで実装する時に

どのクラスがどんな機能を持っているかというのが

自分以外の人が見てもわかるようになるので共同開発など活用できます。

個人開発の場合でもクラス構成がしっかりしているかの確認、

クラスの関係性を事前に明確化することができます。

シーケンス図を書く

クラス図ができたところで

次に動的分析をしていきます。

シーケンス図を用いて実際にどのような動きをするのか

処理のタイミングがこのタイミングで良いのかなど

将来的に不具合につながるところを事前にカバーすることができます。

各処理のやり取りやこのメソッドからはこういう処理が返ってきて欲しいなど

テストフェーズの時にも活躍してくれるので設計段階で作成します。

シーケンス図については以下を参照してください。

シーケンス図について

まとめ

今回は私の設計の仕方について説明しました。

まとめると以下のようになります。

  1. 頭の中を整理するために書き出す
  2. システムを実装するために必要な機能を選ぶ
  3. クラス図作成
  4. シーケンス図作成
  5. 実装

一見時間がかかっているように見えてしまいますが、

設計をしっかりやっておくことで実装行こうのフェーズで時間短縮ができるので

結果的に短時間で開発できています。

複雑なシステム開発などをするときはうまくいかない時もありますが、

ツールをうまく使って設計の段階で問題点などをできるだけ洗い出すようにしています。

皆さんも後で手戻りしないように設計をしっかりやってから実装するようにしてみてはいかがでしょうか?

ここまで読んでくださりありがとうございました。

-技術系
-, , , , , , , , , , , ,

Copyright© 日常で感じたことブログ , 2020 All Rights Reserved Powered by AFFINGER5.