読者です 読者をやめる 読者になる 読者になる
まったり日記のようなブログ

Software Development with Team (チームとのソフトウェア開発)

設計・実装・テスト 情報系の人にとっては通るべき道になることでしょう

本稿では... 開発プロセスにおいて開発者達がお互いに共有し合い考えるべき部分はどこにあるか. いくつか(私自身が考える)重要なセクションについて見ていこう. (参考元:はてなブログ~ソフトウェア設計とは何か?設計にプログラミング経験は必要不可欠だ~)

ユースケースの定義

現在私は大学の研究者として様々なセミナーに参加しています. 最近,どんな研究(特に情報系の研究をやられている学生)でも『ユースケース』という言葉を耳にするようになってきました.

そもそもユースケースとは

ユースケース (Use Case)とは,ソフトウェア工学やシステム工学でシステム (あるいはシステムのシステム)の機能的要求を把握するための技法>である. 各ユースケースは,何らかのビジネス目標/機能に関するシナリオでのアクター (actor)と呼ばれるユーザーとシステムのやりとりを描いたもの である.(From Wikipedia)

すなわち,『ユーザがシステムに何かアクションをしたときに達成されるべき目標・機能』のこと.

シーケンス

シーケンスとは一連の流れのこと. 各ユースケースにおけるシーケンス図は最も重要である.

クラス

プログラミング,特にオブジェクト指向の言語で重要になってくるクラスという概念. 各クラスの属性,継承などはシステムのバグに繋がるので注意しなければいけない. メソッドを定義する際publicやprivateなどの修飾子をつけておく"癖をつける"ことが大事.

クラスはコードが大きくなるほど複雑になってくるのであらかじめクラス図を設計しておくべき.

オブジェクト

システムが動作している際のオブジェクト間の関係を明確にすること.オブジェクト図を使うとよい. staticな変数を参照する場合等にはスレッド間で競合が起きないように注意.

コーディング

あえて説明するほどでもないだろう. ファイルの分割,担当,コーディング言語...普段やっていることと同じ.

テスト

テストは2つに分けて行う

  • システムの各部分に対するテスト
  • 実際の環境を想定したテスト

要するに積み木式に考えていけばよい.

  • この部分は不具合があるぞ
  • 無限ループに入ってしまった

などなど最終的に全体が正常に動作するように修正.


簡単に思ったことを書き留めてみたが,ソフトウェア開発はもっと専門的に突き詰められます. 私自身もきちんとした設計・開発ができるように精進精進...(笑)

written by a Graduate School Student