はじめに
私と大学の同僚の前で起こった興味深い問題についてお話したいと思います。 今は夏ですが、一瞬でも命は消えません。 誰もが、大学への入学シーズンを要約し、文書を処理し、申請者を数えます。 私は大学の技術学部で勉強し、よく勉強しているので、応募者向けの電子回線を書くように頼まれました。 ためらうことなく、私と私の同僚(グループと仕事の両方)は同意しました。 大学向けに既製の製品を使用したくない理由は、これらの開発の非常に高い価格であり、約300トンでした。 それほど多くはないかもしれませんが、私たちの街では価格が高いので、おそらく彼らが大学の学生を引き付けることを決めたので、他のすべてもこの業界での良い経験です。
リトリート-以前のように
昨年、すべてがひどいものでした。申請者は両親と一緒に来て、書類を提出するために列の最後にいる人を尋ね、翼で待ちます(そう、それはまさに時間です。 それから、空いた秘書は廊下に出て、そのような専門家の隣にいる人を大声で尋ねました。 申請者は、ある専門分野の書類を提出した後、別の専門分野の書類を提出するために別の順番に立ちます。 今年、すべてが変わるはずでした...
挑戦する
「申請者が自分の立場を心配せず、複数の専門分野を入力しても複数の列に並ばないようにするシステムを開発する」という課題がありました。
以下の情報を提供しました:
「選考委員会は3人の聴衆がいます。 合計28のテーブルと28の秘書、2つの教室に10の秘書、3つに8つの秘書。 各秘書にはそれぞれの専門分野があります。 申請者の流れは小さいですが、秘書は専門分野の書類のみを受け入れます。 申請者の流れが大きくなり、秘書が怠けないようになると、彼らは学部の他の専門分野の文書を受け入れ始めます。
キューは28個しかありません。 たとえば、Sberbankでは、2行に入るために2枚のチケットを取る必要があり、1行でサービスを提供している間に別の行に呼び出される可能性があります。 私たちはこれを私たちのケースでは受け入れられないと考え、いくつかの行に同時に立つ機会を作成しました。
ブレーンストーミング
問題をブレインストーミングすることにより、開発の簡単な要約を作成することができました。
- キューは1人に1つである必要があります
- 申請者はただ座って、彼が呼ばれるのを待たなければなりません
- 申請書を処理する秘書には、サービスの申請者を「受け取る」便利なシステムを提供する必要があります
- 応募者のキューを表示する便利な方法があるはずです
- 優先順位と非優先順位の専門分野をテーブルで修正する可能性を実現するため
その後、彼らはすぐにこれらすべてを実装する方法についてのアイデアを収集し始めました。 Microsoft SQL SERVER 2005とDelphiは、開発の初期データになりました。 多くのアイデアがあり、数回改訂されましたが、最終的にはアプリケーションシステムのアイデアが形成されました。
システムを4つのプログラムに分割することが決定されました。
- 応募者が期待する場所で、情報を大画面(プロジェクターを使用)に表示するためのプログラム
- 応募者を受け入れることができる秘書向けプログラム
- 入り口に座ってシステムに応募者を登録する人のためのプログラム
- テーブル設定を構成し、応募者のキューを追跡できる管理者向けのプログラム。
開発とテストの時間は1か月と短いので、あらゆる種類の楽しみを捨て、プログラムインターフェイスをできるだけシンプルにする必要がありました。
プログラム「表示」-キューの出力
キュー表示プログラムのインターフェースは次のように決定されました。最後の15のメッセージは、どの応募者、どのオーディエンス、どのテーブルに行くかについて表示されます。
Nextプログラムは秘書にとって便利なツールです
秘書プログラムのインターフェースは、できるだけシンプルにするように求められたため、特別なことをすることは不可能でした。 最初は1つの[次へ]ボタンを使用してプログラムを作成したかったのですが、その後、応募者が来る以外にまだ来ていない可能性があることがわかりました。 そのため、別のボタンと情報付きのウィンドウがインターフェイスに追加され、そこでは専門家が表示され、申請者は実際にそこに行きます。 申請者がすでに具体化したこれらの専門分野は緑色で強調表示されています。 ボタンを押した後、偶発的なクリックを防ぐために、プログラムインターフェイスは一定時間ブロックされます。
申請者登録プログラム
システムに応募者を登録するためのプログラムも、単純さに基づいて実装されました。 最大5人の異なる専門分野に応募できると言われました。 5から5の場合、私たちは自分自身に次のインターフェイスを作成しました。
プログラム「コントロールパネル」
管理者向けのプログラムには、非常に便利なインターフェイスを装備する必要はありませんでした。したがって、計算に基づいて作成されました(一度設定すれば、それだけです)。 たとえば、応募者が大量に流入した場合(そして、数日のうちにサービスを受ける人数が200人から300人に達する可能性がある場合)に、各テーブルがすべての応募者を受け入れるようにテーブルを設定できるようになりました。 すぐに言ってやった。 各テーブルには、主な専門分野と、それに加えて副次的な専門分野を統合する機会がありました。 二次専門のラインから、メインラインに誰もいなかった場合にのみ、申請者が採用されます。
プログラムの特徴:
- 新しい専門分野の追加
- 新しいテーブルを追加する
- 優先および非優先の専門分野の表への添付
- 統計の表示:並んでいる応募者の数と専門分野。 どの申請者が現在立っているか
- キュー内の申請者のおおよその待機時間の決定
システムロジック-理想的なVS現実
大学内では、入学直後に志願者を登録する秘書がいます。 彼は志願者から行きたい専門分野を学び、自分のプログラムに入力して、志願者に個人番号を発行します。 この番号の申請者は待合室に行き、そこで待ち行列の動きを表示する大きな画面を定期的に見ます。
画面上の新しいレコードの出現には音声信号が伴い、申請者はどこかを離れない限り、ターンを逃しません。 あなたの部屋、観客、そしてあなたが行く必要のあるテーブルについての情報が現れた後、申請者はプログラムによって示された場所に行きます。 そこで彼はすでに秘書の登録を待っています。 登録後、申請者は待合室に戻るか(申請する必要のある専門分野がまだある場合)、または幸せな人が帰宅します。
これは、理想的なケースを考えた場合に起こります。システムは完全に機能し、申請者はすべてを注意深く監視し、遅れない理想的な申請者です。
実際には、さまざまなケースがあります。 申請者は、モニター上の記録をスキップしたり、水を求めたり、単に自分のビジネスに取り掛かることができます。 この場合、出国した参加者に加えて、すぐに登録したい人がいるため、秘書を貴重な時間まで長い時間座らせることはできません。 システムでは、秘書が申請者を待つために1分間を与えます(秘書はそれ以上待つことができますが、1分間は申請者への電話を完了することも、次の電話をかけることも、プログラムを閉じることもできません)、その後、秘書は「遅延」ボタンをクリックします、およびキューから2分間の遅延参加者を除外します。 つまり、遅い参加者は2分間キューから除外され、プログラム自体は最後ではなく、与えられたのと同じ番号でキューに返します(最後に入力した場合、参加者はその日の終わりまで待つことができます)。 しかし、応募者を際限なく返すことも有益ではありません。さらに、このような応募者が3〜4人捕まえられた場合、キューを単純に麻痺させることができるため、3回目に入らない場合は、30分間キューから退出します(彼が去った場合)ビジネスで)。 30分後、私たちは彼をキューに戻し、彼が再び3回遅れると、キューからの例外は完全になくなります。
プログラムロジック
申請者のキューを表示するプログラム「表示」
このプログラムは、キューの移動について申請者に通知するのに役立ちます。 秘書が「次へ」ボタンを押すと、このアクションの記録がデータベースに入力されます。 このプログラムは、データベースからすべてのレコードを取得し、画面に表示します。 新しいエントリが下に表示され、グレーで強調表示されます。 表示されるレコードは徐々に上昇します。 つまり、新しいレコードが最も古いものを押し出します。 申請者が遅れている場合、プログラムはすでに現れているエントリの横に、申請者が遅れて一時的にキューから除外されていることを表示します(この場合、そのような申請者を淡い赤色で強調し、その近くに「延期」と書くことにしました)。
キューを出力するためにプログラムが実行する追加のアクションもあります。
- 人が遅れると、赤でマークされます。 遅刻に関する情報を含むレコードがまだ画面を離れておらず、その人がすでにキューに戻り、彼と一緒に新しいレコードが表示されている場合、遅刻のすべてのレコードは消去されます。 彼らは申請者を誤解させるだけです
- 個人が完全に正式に承認され、秘書が「登録が完了しました」ボタンをクリックし、申請者の記録がまだ画面にある場合、それは削除されます。 つまり、完全に実行されたドキュメントを持つすべての申請者が画面から削除されます。 新規申請者のための有用なスペースのリリースを考慮して作成
秘書プログラム
プログラムは、秘書のデスクトップでハングします。 申請者を呼び出すには、「次へ」ボタンをクリックします。 キューに誰かがいる場合、プログラムは申請者の番号、彼の専門分野を表示し、情報を待合室に表示するテーブルに申請者を追加します。 ここで注意すべき重要な点が1つあります。 申請者がいくつかの専門分野にいる場合、プログラムはさらに彼をブロックするため、同時に別のテーブルから呼び出すことはできません。そうしないと、このシステムの意味が失われます。 申請者が到着した場合、秘書はそれを作成し、すべての登録が「登録完了」ボタンを押した後、秘書が申請者を待たなかった場合、「遅れ」ボタンを押して次の申請者を呼び出します。
プログラムの重要なポイント:
- 「次へ」ボタンを1分間押すと、すべてのプログラム要素がブロックされます。 第一に、ダブルクリックを防止し、第二に、プログラムが誤って閉じられないようにするため
- 申請者の登録中、プログラムを閉じたり、メニューを呼び出したりすることはできません。「遅延」ボタンまたは「登録完了」ボタンのみを押すことができます
- キューに誰もいなかった場合、プログラムはこれに関するメッセージを表示し、キュー内の誰かの出現についてベースの監視を開始します。 誰かがキューに現れるとすぐに、プログラムはメッセージと視覚的な通知のための緑色のバーの外観であなたに通知します。 秘書が誰かがキューに登場したかどうかを確認するために「次へ」ボタンを押す必要がないように作られました
- いずれかのボタンを押すと、ダブルまたは偶発的なクリックを防ぐために、10秒間強制ロックが続きます
- 各テーブルにはユーザー名とパスワードがあります
申請者登録プログラム
おそらく、システム内で最も単純なプログラムです。 秘書は1〜5つの専門分野を選択し、「登録」ボタンをクリックします。登録された申請者の一意の番号がプログラムに表示され、秘書は申請者に番号を発行します。 また、各登録後の5秒間の待機という形で、偶発的なクリックに対する保護も提供します。
管理プログラム
このプログラムはキュープロセスには関与しませんが、システムの管理に関与します。
発生する可能性のある問題
- 主な問題の1つは、申請者の登録中に秘書のコンピューターがフリーズまたはシャットダウンすることです。 結局、プログラムには、申請者が登録されたことをデータベースに知らせる時間がなく、申請者はキューに戻らなかったでしょう。 これを行うために、管理プログラムには、申請者の雇用フラグのフィールドを編集する機会が与えられました。 このようなケースはまれであるため(プログラム中に発生することはありません)、1人の応募者の管理者と1つのフィールドを修正することは難しくありません
- サーバーのシャットダウン。 これは通常、通常とは異なるイベントです。 しかし、これでさえ恐ろしいことではありません。 この場合、サーバーを切断すると、データベースとの通信のみが失われ、プログラムは正常に機能し続けます。 この場合の主なことは、組織の瞬間は、システムの全体的な状況が変わらないように、プログラムで何も押さないようしばらくの間秘書に警告することです。 サーバーの電源を入れた後、プログラムは再びデータベースに接続し、終了した場所から作業を続行します
- 洪水、地震などの形で不可抗力。 私たちの場合、そのような状況を予測するのは合理的ではなかったので、私たちはそれに目を留めることに決めました=)
生じた問題
はい、プログラムの作業中に問題が1つだけありました。 新しい申請者が約0.1秒以内にキューに登場したときに、同じ専門分野に属する2人の秘書によって「次へ」ボタンが押された場合、この申請者はキューとともに2回画面に表示され、両方の秘書に移動します。 3人の秘書が押されたように、それが起こりました=)問題はすぐに解決されましたが、プログラムを修正する必要がありました。 ためらいなく、「次へ」ボタンをクリックすると、最初に志願者を選択してから雇用ボックスをチェックする代わりに、ハッシュを入力することにしました。 まず、ハッシュが申請者に割り当てられ、次に彼が選択され、そのときだけハッシュが上書きされ、同時に雇用のチェックが行われました。 もちろん、サンプリング時には、ハッシュがあるかどうかが考慮されていました。 テストと検証の後、プログラムがこのバグの影響を受けなくなったことが判明しました。
作業結果
現時点では、文書の受理期間は終了しています(少なくとも私たちの大学では)。プログラムの結果についていくつかの結論を出すことができます。
- 約3,500人の応募者にサービスが提供されました。
- 最も訪問された日に、250人以上の応募者がいました
- このプログラムでは、各申請者は通常のキューと比較して平均で50%(2つの専門分野を申請する場合、および3つ以上を申請する場合は80%以上)時間を節約します。
- 「最後は誰だ?」のような心理的なストレスはありません。
- どれだけ多くの人が形になっていくかを常に知っている
- 数分間離れることは危険ではありません。ターンを失うことを恐れます
- 毎回外出して自分の専門分野の人がいるかどうかを尋ねなければならなかった秘書の負担が減少しました
- ターンキー開発時間を考慮すると、システム障害は一度も発生していません-1か月
- 電子キューは便利です