Home C++ 学事管理1
formats

学事管理1

Published on 2012年5月27日 by in C++, 学事管理
作業場所 米国
作業場所 米国
エンドユーザ 高等学校 
システム 学事管理
業務 高校向け学事管理システム。
学籍情報、スケジュール、履修、出席、成績、VISAステータス管理など
期間 1995
チーム(MAX人) 1
規模(人月) 20
担当 すべての工程
言語 C
テクノロジー/ライブラリ Cause (手続き記述型開発ツール)
インフラ/OS Mac OS

わたしにとって、早期にこの仕事を受注できたのは、大変幸運でした。その後長きにわたってお付き合いさせていただき、10年ものあいだ二代をまたがって私の開発したシステムが稼働したことで、大きな経験と自信を得たと思います。

経緯

当時、お客様に出入りしていたハードウエア業者さんと知り合った事です。彼に頼み込み学校に紹介していただき、ヒヤリング。提案をしましたら幸い信頼を得ることができたのです。彼には紹介料として見積もりの一割を分けました。営業を雇ったと思えば安いものです。しかし、彼はその後まもなく日本に帰国してしまい、このビジネスの関係は一回きりとなってしまいました。しかし、お客様とは永きに渡ってお付き合いさせていただくことが出来ました。

目的

その高校は私立で、フレキシブルな独自のカリキュラムを持っており、当時は最もシェアを持っていたOsirusというパッケージ製品を使っていましたが、それでは管理出来ずに困っておられました。

通常、アメリカの公立高校では、非常に簡単にスケジュールを組めるような科目選択となっているのですが、その高校では選択科目が豊富で組み合わせの自由度も高く、大学同様のフレキシブルな管理が必要だったのです。

また、1教科に複数の教師がつく事もあり、単位も成績評価も大学並みの内容でした。

生徒さんも大変だったと思いますが、その成績を計算して出すのですから責任重大です。

設計

学校には生徒の出席と成績に対して、様々な角度からの取り扱いが発生します。私は既存システムのデータ項目を確認してから、コースは時限単位まで、教師は月単位まで担当を正規化、まずどのような要件にも耐えるようにER図をざくっと設計してから要件詳細をヒヤリングし始めました。そのことにより、少なくとも設計上はどのような要件にも対応できるはずです。そして、要件がこれ以上でなくなったあとで、速度改善が必要な箇所は正規化を崩したりして調整しました。

このシステムは5年後にリニューアルすることになるのですが、最初はクラサバで構築しました。学校では事務室はMacintoshを使用していました。そのためCAUSEシステムを使用して開発することにしました。

CAUSEシステムの場合、DBはBtreeベースの独自DBです。サーバモジュールを介してアクセスできます。比較的安価に複雑な処理を行うシステムをMacintosh上で構築できたとおもいます。速度はそれほど悪くないのですが、SQLを使用できないことから、多数のレコードに同時処理を加える事ができないこと、また複雑な検索条件に対して少々コードが複雑になりすぎるきらいがありました。

当時、その事務室は新たに入ってきた事務員が多く、男女入り混じり国籍も多様でした。学校というところはドラマが多い職場です。事務、教師、生徒、父兄と登場人物も多様で、いつもなにかしら小さな事件が起きます。事務室ではボス以下その対応に常に追われ、全員で協力して対処していました。そのためみな仲良くなり、ボスの人柄もありよく一緒に食事をしたり呑みに行ったりしたのがとても楽しい思い出です。

このエントリーをはてなブックマークに追加
はてなブックマーク - 学事管理1
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
学事管理1ソフトウエア開発の変遷

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>