2000年代のソフトウェアソリューションですが、すべてにパッチを適用するか、再作成する必要がありますか?


9

ある会社が現在利用しているシステムと、それをどうするかについて話し合った。

同社はさまざまなカートンディスプレイを製造しています。このシステムは、クライアント、注文、価格を追跡するために開発されました。システムが作成されてから多くのことが起こりましたが、システムは、マネージャーが説明したように、「ロックされている」と「問題がある」ので、私は「動的ではない」と「不安定」と解釈しています。

システムに関するいくつかの情報

  • 2000年頃に開発されました
  • かなり小規模なシステム、2〜5人のユーザー、6つのフォーム、平均量のデータを含む最大8つのテーブル
  • 初期のVisual Basicに基づいて構築された、ドラッグアンドドロップデザインで作成されたフォーム。インターフェイスは基本的にメニューといくつかのフォームを備えた単なるウィンドウです
  • MSSQLデータベース(SQL2005サーバー)を使用してデータとクエリ用のODBCドライバーを格納し、データがこのシステムの前にExcelから移行され、Excelの前に手動で処理され、計算され、記述された
  • ユーザーはMicrosoft XP環境(およびそれ以上)で作業します

彼らの主な問題は、価格を調整および計算できない、新しいカートンタイプなどを正しく追加できない、サーバー上のデータにアクセスできない(または、方法がわからない)ため、もう正しくできないことです。

私は3つの可能な解決策を提案しました

  1. 現在のシステムにパッチを適用しようとする
  2. 新しい新しいインターフェースを作成します(できれば、同様の環境、VB.netまたはVBベース)
  3. 非常に小さなシステムであることを考慮して、Excelソリューションに戻します

さらに多くのオプションがあるかもしれませんが、これらは私が考えることができるものです。

私の質問は

  • 私は何を勧めるべきですか、そしてなぜですか?
  • これらの代替案の長所と短所は何ですか?
  • 他の(おそらくより良い)代替案はありますか?

3
データベーススキーマを文書化するまで、現在のシステムがどれほどひどく壊れているかを判断することはできません。

@ThorbjørnRavnAndersenそれは本当です。データベースをのぞいてみました。それが作成された年齢から判断すると、私はそれが本当にひどく設計されており、応急処置または手術が必要であると仮定します。
ShadowScripter 2012年

1
オリジナルのシステムを誰が書いたか知っていますか?それは社内での取り組みですか、それとも委託されたものですか?
maple_shaft

7
それをしないでください。データベースの状態はさまざまなオプションのコストにとって重要であり、どのオプションを選択したかに関係なく実行する必要があることをクライアントに伝えます。ゼロからの書き換えであっても、データの移植が望まれる場合がほとんどです。

4
開発者はデフォルトで「最初から書き直す」ことを好み、必要な場合にのみリファクタリングします。私はデフォルトで「徐々にリファクタリング」し、必要なときだけ書き直したいと思っています。
quant_dev

回答:


5

フォームが6つだけのようなもの 、より近代的なフレームワークで簡単に再構築できます。私は、数百のクラスとデータベーステーブルと共に約200のフォームを持つVB6プロジェクトの移行に取り組みました。面倒なことをしているようには見えませんが、見た目がだまされている可能性があります。

コード、データベース、ビジネス要件を分析して、既存のコードベースの書き換えやリファクタリングが最適かどうかを判断する必要があります。あなたが言ったことを考えると、私は書き直しに傾いています。しかし、今は目に見えない難しさがあるかもしれません。


その小さいサイズを考えると、私は同意します。一見、あまり複雑にも見えません。答えから判断すると、書き換えは最も適切に思われます。最終決定を下す前に、私はさらに詳しく見ていきます。アドバイスありがとうございます!:)
ShadowScripter

@ShadowScripterあなたがそれをしている間、私はVBよりも優れた言語でそれを書くことを検討します。オープンソースのlazarusプロジェクトを調べてください。
Spencer Rathbun 2012年

5

これまでのほとんどの回答では、少し異なるアドバイスがあります。

現在のシステムにパッチを適用しようとする

私は少なくとも、現在のシステムを十分に理解して、クライアントにそれを使用する方法を説明します。私はこの時間を使って、現在のシステムの欠陥を説明し、否定的な言葉を避け、既知のバグがすべて修正されてもそれができないことを彼らに伝えます。

新しい新しいインターフェースを作成します(できれば、同様の環境、VB.netまたはVBベース)

あなたが彼らの現在のセットアップであなたができるすべてを学んだ後。彼らにオプションを提供し、彼らの現在のシステムで彼らの懸念に対処することができれば、彼らの現在のシステムには何も問題はありません。もちろん、唯一の懸念は、Visual Basic 6のサポートが5年間存在しない可能性があることです。

もう1つの問題は、データベースとの通信方法です。Microsoftは、データベース製品(Access、MSSQL)と通信するための古い方法のいくつかを徐々に廃止しているため、これらの製品とのやり取りの方法によって、ソリューションがWindows 9およびWindows 10で将来使用できるかどうかが決まります。

この答えは、アプリケーション自体のソースがあるという事実に完全に依存しています。彼らがソースを持っていない場合、懸念に対処したり、現在の主要なバグを修正したり、実際に使用できるツールにすることさえ困難になります。

Visual Basic 6アプリケーションには「間違った」ものは何もないと思います。それ以外に、将来のバージョンのサポートは不明です。今日でもWindows 7と64ビットオペレーティングシステムでは、サポートがますます難しくなっています。これが、適切な64ビットサポートを備えた最新の言語に書き直すことが良い考えである主な理由です。

その時点でソースがない場合は、書き換えが本当に唯一の解決策です。


Microsoft is slowly getting rid of some of the older ways to communicate...」への参照を引用していただけますか?それについてもっと読みたいです。
ShadowScripter 2012年

@ShadowScripter-たとえば、プロセスが32ビットプロセスでない場合、レガシーAccessデータベースファイルにアクセスするためのMicrosoft.Jet.OLEDB.4.0プロバイダーはサポートされません。WinRTは、これらのMicrosoft製品への接続方法も変更する可能性があります。将来の変更についてどこで読んだかを忘れてしまいました。私の理解は、MSSQL 2012がMicrosoftに接続する特定の方法のみをサポートするようになった後です。もちろん、これはWindowsに組み込まれているプロバイダーとその開発オファリングのコンテキストで
Ramhound

1

システムが比較的小さい場合、インターフェイスの書き換えは優れたオプションです。利点は-

  1. 安定性の向上(あなたがうまくやっていれば!)
  2. 保守性の向上
  3. 最新のインターフェース

主な欠点は、おそらく既存のコードをハッキングするよりもかなり多くの費用がかかることです。


インターフェースの書き直しも私が傾けていたものです。そして正直に言うと、今日の基準から判断すると、どこから古いインターフェイスから始めればよいのかわかりません。
ShadowScripter 2012年

1

私も書き直す傾向がありますが、現在の機能だけでなく、壊れている、欠落している、または不十分な機能を完全に理解していることを100%確認する必要があります。価格の調整と計算について述べたように、後者の2つは重要です。この機能を追加した結果を完全に理解していますか?

私はかつて「ウェブサイト」であるはずだったものに取り組みましたが、実際には1990年代後半からAccessベースのカスタムCRMスタイルツールを引き継ぎ、それを現代のウェブベースの世界に持ち込みました。元の開発者は長い間いなくなっており、データベースは何度も変更されていたため、元のドキュメントは古くなっており、システムがどのように機能するかを本当に理解していませんでした。しかし、彼らはその使い方を知っていました。おそらくこのプロジェクトの予算の80%は次の3つに費やされました。

  • 要件の収集
  • 現在のシステムを理解する
  • 彼らがソフトウェアをどのように使用するつもりであったかについて、意味のあるデータベーススキーマを考え出す

このプロジェクトは財政的には成功しませんでした!


私はあなたの言っていることを聞いています。私が最終的な決定を下す前に、私はその現在の欠点、機能、および目的を完全に認識する必要があります。銃が燃え、叫びながら、私はすべてに行きたいとは思わないAll right, let's do this. LEEEEEEEROOOOOOOY...!:P
ShadowScripter

0

別のオプションは、全体を書き直すことと既存のアプリをハッキングすることの間の妥協かもしれません。

ゼロから構築された新しいアプリケーションで新しい機能を提供します。

これは潜在的に簡単に実行でき、完全な書き換えと同じくらいのコストがかかりません。

これが完了し、データを追加/更新できることに満足すると、フェーズ2が開き、新しいアプリの既存の機能が置き換えられます。

これはもっと口当たりの良いアプローチかもしれません。


1
私はそれは良い考えだと思いますが、フェーズ2が発生しない場合、他の新しいアプリケーションに依存する古い個別のアプリケーションになってしまい、2つのアプリケーションが残り、問題が2倍になります。
ShadowScripter 2012年

0

多くの場合、書き換えは予算を使い果たす傾向があります。

ただし、アプリケーションに最新のスケルトンを用意することは、特に古いシステムがどのように動作するかを誰も知らない場合や、触ってすぐに問題が発生する場合には、良い投資になる可能性があります。

また、VB6はサポートに適していません。10年以内に専門家を探す必要がある場合、それはかなり問題になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.