ソフトウェアプロジェクトの開発を開始する前に、かなりの数の質問を解決する必要があります。資金調達先、プロジェクトに携わる人の数、設定する時間枠、リスク、その他多数。 しかし、これは管理職からのものです。 プログラマーの立場から、他の種類の質問が解決されます。アーキテクチャ、データベースの設計、UMLダイアグラムの描画などです。 しかし、理論的には1日を5分間で飛ぶことです。 上記のすべてのステップをプロジェクトの開発の段階「0」と見なすと、実際にはソフトウェアプロジェクトは開発の段階番号「1」から始まります。 これは完全に正しいとは限りませんが、開発が始まる前に提起された質問の1つを高い確率で答えることが不可能な場合、何をすべきでしょうか? 何らかの形でそのような答えがあったとしても、ソフトウェア製品は進化的な変化を受けます-要件は変化する傾向があります。 したがって、どのソフトウェアプロジェクトも、結果として製品のバージョンが異なる困難な形式化された影響を受けやすく、これから逃れることはできません。
柔軟な方法論(アジャイル方法論)は、組織的な手段によってそのような問題を解決しようとすることで知られており、これは非常に成功していると言わざるを得ません。 しかし、これは組織レベルです。 プログラマーレベルには、わずかに異なるタスクと問題が含まれます。 それらがまったく解決されていないということはできませんが、私の意見では、そのような解決策の欠点は、それらがすべて異なって解決されることです。 同じ人でも、異なるプロジェクトの場合でも、同じタスクは異なる方法で解決されます。 私の意味を理解し、プログラマーの観点からアジャイル開発へのアプローチの本質を強調するために、通常使用されるアプローチをリストします。
- バージョン管理
- 自動ビルド
- 単体テスト
- 静的コード分析
- ソースベースのドキュメント生成(javaDoc、phpDoc、Doxygenなど)
- 継続的インテグレーション
判明したように、ソフトウェアエンジニアリングには、方法論に縛られることなくこの種の組織的なタスクを扱う別の分野があります。これは構成管理です。 構成管理は、ソフトウェアプロジェクトの作業材料の管理と制御方法、それに加えられた変更、および個々のタスクとプロジェクト全体のステータスに関する情報を決定する際の主な分野です。 プロジェクトの成功の大部分は、構成管理プロセスがどれだけうまく確立されているかによって決まります。これは、構成管理がうまく機能しない場合、プロジェクトを保存し、埋めることができます。
IEEE 610用語集では、構成管理について、技術的および管理的な指示(指示)と制御(監視)を適用するための規律として説明しています。構成要素の機能的および物理的特性の識別と文書化。 これらの特性の変更を制御(管理)します。 変更の処理とその実装状況に関する記録(保存)と報告 高度な要件への準拠のチェック(検証)。
しかし、これは非常に正式な定義です。 これが何を意味するのかを理解するために、プログラマが毎日の義務で対処しなければならないソフトウェア製品とツールをリストします。
- 転覆 CVS Git マーキュリアル バザール; Microsoft Visual SourceSafe; ClearCase パーフォース
- アリ; ナント; メイヴン Phing; 作る; nmake; Cmake MSbuild すくい
- JUnit; NUnit; CPPUnit; Dunit PHPUnit PyUnit; テスト::ユニット; vbUnit; Jsunit
- PMD FxCop; PHP_CodeSniffer; PyChecker、リント
- JavaDoc phpDocumentor; Cppdoc; RDoc PyDoc; NDoc; 酸素
- CruiseControl CruiseControl.NET; TeamCity xinc; アトラシアン竹; ハドソン
- Jira、Trac、Mantis、Bugzilla、TrackStudio
- 言及したツールとツールについて少しお話します。つまり、構成管理のコンテキストで言う「空撮」については、開発ツールの一般的なモザイクにおけるそれらの場所の説明をしようと思います。
- 最後に、ソフトウェアリリースにバージョン番号を割り当てる際にどの原則に従うべきかを示します。この問題を現在よりも透明にしようと思います(多くの人が疑っています)。
\d+\.(\d+|x)\.(\d+|x)(_.*)?
という形式の正規表現で記述されてい
\d+\.(\d+|x)\.(\d+|x)(_.*)?
。 このようなテンプレートは、誰もが慣れている最も一般的なアセンブリとリリースの命名システムに対応しています(例:1.0.2、2.3.5、3.10.23)。 私の方法で命名にこのアプローチを使用することの違いは、特定の時点からの命名システムの各数字の変更の依存関係が正式に記述されていることです。
続く
参照:
- svnbook.red - bean.com -Subversionについて
- martinfowler.com/articles/continuousIntegration.html-継続的統合とは
- www.swebok.org-ソフトウェアエンジニアリング知識体系のガイド。 ソフトウェアエンジニアリングに関する本。その章の1つは、構成管理に特化しています。 無料でダウンロードできます。
- www.cmcrossroads.comは、構成管理に関連する問題の議論に焦点を当てたコミュニティです。