#author("2024-01-08T00:17:32+00:00;2021-12-10T12:51:32+00:00","default:hotate","hotate") #author("2024-01-08T00:18:18+00:00;2021-12-10T12:51:32+00:00","default:hotate","hotate") #contents &tag(ソフトウェア,開発,仕様書,品質); &tag(ソフトウェア,開発プロセス,仕様書,品質); * 方針 [#ze97c5f0] + 手作業はミスの元凶。可能な限り自動化を推し進めること。 * 環境 [#xd37734b] ** 開発環境 [#b9d99571] + 使用しているOS、IDE、プラグイン、ライブラリのバージョン情報を記録しておくこと。 + 参照したコード、ライブラリの入手元を記録しておくこと。 ** リポジトリ [#s55f24eb] + SubversionやMercurialリポジトリを用意すること。 + Tracを用意すること。 * ドキュメント [#n44b1dcd] ** APIドキュメント [#bfc64fb1] + [[Doxygen]], [[Shpinx]]などで自動的にドキュメントを作成すること。 ** [[UML]] [#z109a26f] + [[UML]]図面は[[EnterpriseArchitect]]で作成すること。 ++ クラス図は[[EnterpriseArchitect]]でリバース作成すると手っ取り早い。 + [[PlantUML]]を使って作成処理を簡略化すること。 * ソースコード [#dcace170] ** 事前・事後検証 [#x34bdaaa] + Assertによりメソッドや関数呼び出し時の事前・事後検証を確認すること。 + tmpフォルダや生成物の出力フォルダは、実行前に削除する。(処理が失敗した場合に、以前の成果物と混同しないようにする為) ** コメント [#v6a3843f] + 処理内容を簡潔にコメントとして記載すること。 ** ログ [#ic570087] + 処理状況をログファイルへ出力すること。 + 出力したログファイルは適宜削除すること。(無限に増えてしまう状態の防止) + バージョン、ビルド番号等のアプリケーション情報を出力すること。 + 標準出力と標準エラー出力が混在する場合があるので注意すること。(大抵の場合、標準エラー出力の方が先に出る) ** 例外 [#r83b439c] + 例外を無視せず、呼び出し側に必ず通知すること。 ** ビルド [#c14f8306] + コンパイル時にエラー、警告が一切出ないこと。 + スクリプトを用意して必要なパッケージ作成の自動化を行うこと。 ** ユニットテスト [#tcaca3e5] + 可能な限りユニットテストコードを作成して自動的な検証を行うこと。 + カバレッジレポートを生成してテストされていない箇所を確認すること。