質問

あなたが関わったソフトウェアの変換/書き換えに成功した例は何ですか?プロセスに関与する言語とフレームワークはどこにあるのでしょうか?問題のソフトウェアのサイズはどれくらいでしたか?最後に、プロセスに関わって学んだことの上位 1 つまたは 2 つは何ですか。

これはこれに関連しています 質問

役に立ちましたか?

解決

私ための"最もabstruse"はこちら

  • 移植する8080シミュレータで記述 FORTRAN77からDECSystem-10走TOPS-10を IBM4381メインフレームの走行VM/CMSです。

他のヒント

私はすべてのファイルに「厳格な使用」を使用するPerlの20,000行を書き直しました。私は「私の」どこでもそれが必要と私はプロセス中に発見されたバグを修正しなければならなかったを追加する必要がありました。

私はこれをやっているから学んだ最大のものは、「それはいつもより長くあなたが考えるよりも時間がかかります。」

私は、他のプログラマーが同時に新しい、未確定コードを書くことがないように、それは一晩一斉に行わ取得する必要がありました。私はそれがすぐに行くだろうと思ったが、それはしませんでした、と私はまだ翌朝午前6でそれにハッキングされた。

私はそれが完全に取得し、誰もがしかし、作業を開始する前にチェックインしました!

私は様々な理由のための不動産会社のASP.Netアプリケーションに大規模なJavaのWebアプリケーションを書き直します。

私が学んだ最大のものは、それが第二のシステムにない場合は、どんなに些細な元のシステムが持っていた機能を、クライアントは書き換えが失敗であると考えていない、ということです。新しいシステムを書くときに期待の管理がすべてです。

この最大の理由は、書き換えがとても難しいですです。それはクライアントに非常に簡単に思える(「ちょうど私が既に持っているといくつかのことを追加するもの再やる」)

私にとって最もクールだったと思うのは、 MAME を iPod に移植. 。組み込みハードウェアに関する素晴らしい学習体験であり、多くの素晴らしい人々と一緒に働くことができました。 オフィシャルサイト.

私は、より標準的なMVCモデルにインハウスプロジェクト経営管理論システムの書き換えを行っています。そのLAMPスタック(PHP)で、iは第一マイルストーンに近い思います。

私はそれから学んだ事は、現在のプログラムが最初に感じていると私は私がする必要があるまで、複雑さを追加しないことを試みた方法は簡単です。

例iは(iは管理者ユーザであったように)第一のすべての機能をプログラムした後、それが整理されている場合、制限(ユーザレベルなど)を有するの複雑さを追加することである

私は再設計/移植/類似した長さに30,000行MS-DOS C ++プログラムが、はるかに完全な機能と使用可能なのJava Swingのプログラムを書き直します。

私はC ++やJavaを含む別の仕事を取る決して学んます。

私は、ASP.NETアプリケーション(C#の)に、クライアント・サーバのPowerBuilderアプリ、価値百枚の画面のカップルを移植しました。

により、パフォーマンスと保守性の問題に、私は前年比持っていたが、PowerBuilderのスクリプトのうち、およびストアドプロシージャの中に埋め込まれたSQLのトンを移動します。

これは、データベース内のビジネスロジックの多くを持つ、あなた方の多くがビクッなるだろうが、それは、PowerBuilderアプリは比較的「軽い」だったわけと、我々はネットフロントエンドを建てたとき、それはSQLの利点を取ることができますコードベースと、すでに構築され、テストされた機能の多くを持っています。

私は建物がそのようにアプリをお勧めしたいと言って、それは確かに、このインスタンスでは、私たちに有利に働いていない。

私たちは、テキストベースのデータファイル、それを利用した約20他のアプリケーションを読み込むために使用された私たちのアプリケーションフレームワークのコード生成ツールを持っています。

私たちは、XMLデータファイルの代わりに、構造化テキストベースのファイルを使用するように望んでいました。元のコードは非常に時代遅れと維持が困難でした。私たちは、XSLTスクリプトの組み合わせとユーティリティライブラリでこのツールを置き換えます。ユーティリティライブラリのために我々は古いツールでいくつかのコードを利用することができます。

結果は、すべての20個のアプリケーションが廃止テキストベースのファイル形式や新しいXMLベースのフォーマットのいずれかの使用を作ることができるということでした。我々はまた、新しいXMLデータファイルに古いデータファイルを変換し、変換・生成ツールを届けます。

私たちは今、私たちはもはや古いテキストベースのフォーマットをサポートしていないだろうと誰もがXMLにデータを変換することができることを決めた1つのまたは2のリリースを引き出した後ます。

私たちは、ほとんど手動変換を行う必要がありませんでした、

標準C ++プリ標準C ++からの主な企業アプリにコンバート。私たちは、それがAIX上で動作することで数百万ドルの売却偶発を持っていた、そしてそれを見た後、私たちは、標準C ++に変換すると、IBMの伝統的なC ++への変換と同じくらい簡単なことするつもりだったことを決めます。

私は行数を知らないが、ソースコードは数百メガバイトに走っています。

私たちはviと各種のコンパイラを含め、これを行うには、標準的なUnixツールを使用します。

これは、数ヶ月かかりました。修正の大半は、コンパイラによってキャッチし、ほぼ機械的に固定し、単純なものでした。それらのいくつかははるかに複雑だった。

まだ標準化されていない言語のコードで、あまりにもひどく巧妙な取得しないでください、または物事が予想外の方法で変更する必要がありそうです。

私は私のメインのテイクアウトだったと思います。私たちは、C ++のストリームの独創的な適応/侵害の一部に掘りの多くを行う必要がありました。

10年前、私はWindowsにDOSからCADシステムを変換し、チームを管理しました。 DOSバージョンは、自家製ライブラリは、グラフィックス描画のためにを使用しましたWindows版は、MFCを使用していました。ソフトウェアは、変換時にCコードの約70.000行ありました。我々はプロセスで学んだ最も重要なことは、抽象化の力です。すべてのデバイス固有の非ポータブルルーチンは、いくつかのファイルに分離しました。直接Windows API呼び出しをフレームバッファにアクセスすることで引くDOSベースのライブラリへの呼び出しを代用することは比較的容易でした。同様に、入力のために私たちは、対応するWindowsのイベントループで、キーボードとマウスのイベントをチェックし、イベントループを置換しました。私たちは、システムの残りの部分から非ポータブル(この時Windowsの)コードを分離する方針を続けたが、我々はまだ、これは特に有用であることが分かっていません。多分1日、私たちは、Mac OS Xへの移植システムをし、もう一度感謝します。

確かです。もののことについても触れます。

また、性能モデリングツールです。部delphi1部turbo pascal.必要なのは、書き換えの他のように変動するものではない"と存続の危機に立たされています。ることによりチームとしての2が私の生き残った。とリラックスして過ごせました前期限;-).

複数のものができたのか:

  • で複合.元の多かったのでグローバル変数.取り出して、その全てとマルチモデルを容易に対応.
  • 拡張エラーメッセージが返されます。クリックし、メッセージを取得します。
  • 多くのグラフや図等がある。すべてのクリックドリルです。
  • シミュレーションパラメータの変更時間がどれほどの電流設定した十分です。

またこのクリーンでの支払戻ができます。大きな学びの経験でした。

法的な請求書を処理し、会社のためにシステムを再書いた - 元のシステムは、優れたオブジェクト指向の原則のないアイデアを持っていたVBの怪物だった - すべてが一緒に混合しました。 HTMLは、SQLをした、とSQLは、HTMLを書きました。それの大部分は、ルールのXMLのようなものを使用したカスタム・ルール・エンジンでした。

2つのチームが約9ヶ月を要し再書き込みを行いました。他のチームは(私が上だったこと)ルールエンジンを再書いながら一つのチームは、Webフロントエンドとバックエンドのワークフローをしました。新システムは、C#で書かれた、およびテストファーストを行いました。私たちが行われたシステムに新しいルールを追加すると、汚れ簡単だった、そしてそれは、すべてのテスト可能でした。道に沿って私たちは、展開を自動化、継続的な統合を実現する、SVNにVSSから会社を変換し、そしてどのようにTDDおよびその他のスクラム/ XPのプラクティスを行うには、他の開発者を教えるようなものをしました。

期待を管理するプロジェクトを通じて非常に重要でした。ソフトウェアについて精通した顧客を持つことはとても役に立ちました。

包括的なユニットテストと統合テストと一緒に

大規模のミックスを持つ(エンド・ツー・エンド)のテストは、トンを助けます。

のC#/ Asp.NETにPHPで書かれvBulletinによってをコンバート。私は両方の言語でかなりよく知っているが、PHPは、そのソフトウェアを構築するための勝者ダウンの手です。リアの最大の痛みは、テンプレートを呼び出すためのPHPのeval()のC#の同等の操作を行うために必要とされた。

これは、変換をやろうとしているの私の最初の挑戦でした。私はC#のとより多くの経験を必要とすることを、最初からそれを書くことだけで簡単にルートが時々あることを学びました。

I変換系の構築プロセスを完全に書きPerl、C#/.純ソリューションワークフロー-エンジンを作った開発でまだまだベーターも行っていたいくつかの改善).うにしてくれたのoppertunityを追加できないといった追加機能が提供されます。機能を構築です。

前のお願いをかな、microsoftのワークフロー-財団が使用できないからできな変化プロセス中に行います。

学んだこと:

  • んので、Perl開発者
  • プロセスの最適化を用いwf-エンジン
  • 安全といった追加機能が提供されます。戦略
  • 一部のC#に工夫;)

を終了させていただきます。約5k-6kを含む、wf-エンジン組織委員会の原点からの3 200組織委員会のPerlのファイルとする。ったのですごく楽しかったで-やよりもはるかに優れており、最終;)

単位あたりの会社Xドルを節約し、ハードウェアの変更をサポートするためのアーキテクチャ間で、理論的に移植可能なCコードに理論的にポータブルなCコードの変換ます。

サイズが変わる - これは一般的な必要がある、と私は小規模および大規模なプロジェクトを行ってきた。

私は、よりポータブルなCのコードを書くことを学びました。エレガンスは素晴らしいですが、それは右のそれまで来るとき、コンパイラは、パフォーマンスの世話をし、コードはできるだけシンプルかつポータブルである必要があります。

原稿が少ないデータセットに取り組んでいるので、C / Javaへ(90年代に書かれているにもかかわらず)のFortran 77で記述されたシミュレーションを移植しました。私はプログラムの開始時にメモリにデータテーブル全体を移動するスケールするつもりではなかった理由を説明するのに数回の後に大きなO記法を愛することを学んだ。

Cに陽気からB-2ステルス爆撃機のミッションソフトウェアの移行 100%完全に自動変換。真剣に!

メインレッスン:の設定可能な自動化された変換ツールを使用して巨大な勝利のです。

DMSソフトウェアリエンジニアリングツールキットを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top