web-dev-qa-db-ja.com

開発自動化とは何ですか?

誰かが「開発自動化」に言及するとき、それは正確には何ですか?

開発自動化のフレームワークは何ですか?

上司から会社に実装するための戦略を立てるように頼まれましたが、その件に関する情報はあまりありませんでした。グーグルは私がテストの自動化について言及していると考えているようですが、そうではありません。

3
AJC

「開発自動化」はではありませんがソフトウェア開発者の一般的に使用され認識されている用語です。業界では、私はそれを私の人生の中で何度も聞いています。

ビジネスの人々は通常、「開発プロセスをスピードアップし、すべてではないにしても、ほとんどすべてのソフトウェア開発プロセスをバイパスして、単純なビジネスレベルのウィッシュリストからすぐに使えるものにジャンプできるもの」を参照するために使用します。 the-market product(できるだけ少ないコードを書き、できるだけ少ないプログラマを雇う)」。言い換えると、「ソフトウェア開発を、平均的なビジネスマンが理解できる最も複雑なもの、つまりレゴ(TM)に減らすことができるあらゆるテクノロジー/方法論」です。 ;-)

この定義を前提として、それに適合する3つのテクノロジー/方法論があります。

  1. RAD(迅速なアプリケーション開発)
  2. コード生成
  3. MDA/MDD(モデル駆動型アーキテクチャ/開発)

これらの手法は、手元のプロジェクトの性質についていくつかの強力な仮定を行うことが可能である場合のみに使用できます。 。

たとえば、Ruby-on-RailsとDjango=は、プログラマが生成したいのは主にWebアプリケーションであると当然のことと考えているため、多くのコード生成(「ソフトウェア開発の自動化」)を実行できます)ビジネスロジックレイヤー(コントローラー)とWebページ(ビュー)を介してエンドユーザーにデータベース(モデル)を公開することに関与します。

このような強力な仮定を行うことができれば、多くのことを自動化できます。これらのツールを見て、感じをつかんでください。

http://en.wikipedia.org/wiki/DaDaBIK

http://www.dadabik.org/

http://www.andromda.org/docs/index.html

そしてもちろん、RoRとDjangoで使用されている強力なコード生成ツールもご覧ください。

ところで、「コード生成」の特別なケースはビルドの自動化です。つまり、Maven、Ant、Rake、Scon、Rakeなどで実行できるビルド時のトリックです。

一般的なソフトウェア開発の分野では、(通常)あなたが手元のプロジェクトの性質についてそのような仮定を行うことができないことができないため、これらのツールはほとんど成功していません。新しいもの、または強くカスタム調整されたものを開発する場合、通常は、ツールで許可されている最も細かい「論理粒度」を使用する必要があります。これは、プログラミング言語で許可されている粒度と同じです。それ以外のことは、目前の仕事のラフになるだけです。

14
AlexBottoni
  1. 用語を使用した人に尋ねます。他の人に尋ねないでください。彼らはあなたの上司と同じ背景を持っていないかもしれません。

  2. ここでは、開発の自動化について検討する例をいくつか示します。

    • 依存関係の自動更新。 NuGet を使用
    • 自動 ビルドプロセス
    • スタイルルールの自動チェック(例: FxCop を使用
    • ビルドごとの単体テストの自動実行
    • コード生成プロキシの自動更新。 WCFクライアント
    • 展開パッケージの自動作成
    • ターゲット環境の自動構成
    • 開発環境やQA環境への自動デプロイ(例:毎晩午前3時に新しいビルドをインストールする
    • コードカバレッジ などのメトリックの自動計算
    • 自動煙テスト、例えば。 Watir を使用
    • リリースノートの自動生成、または少なくとも「このビルドで修正」セクションに含まれるバグリスト
1
John Wu