マスゴミhttp://p.twipple.jp/JfSVbhttp://www.shopbiz.jp/nf/news/112667.htmlJR東では消費増税で運賃を引き上げた場合、5月末現在で約3968万枚発行しているスイカのシステム改修が必要となる。改修の具体的な検討は「運賃の引き上げ自体が決まっていない」(JR東)ため始めていないが、「システム改修の計画作りや乗客への周知期間も含めると1年数カ月かかるだろう」(同)と話す。(JR西日本)の「ICOCA(イコカ)」などJR各社のIC乗車券のほか、首都圏の私鉄・バスが加盟するIC乗券「PASMO(パスモ)」と相互乗り入れをしている。運賃変更をした場合、私鉄とJR間などを乗り継いで正しく運賃計算されるか確かめる必要がある。その数はスイカとパスモの連携だけでも約12億3千万通りと膨大な作業が必要となる。乗り継ぎ/乗り入れの修正なども必要なので,実際の料金はさらに複雑になる.*4だから5%を切り分けていようといまいと,内税である限り税率を変えて自動で計算させるとことはできず,料金表は一から手作業で作り直しだと思う。http://tdl.libra.titech.ac.jp/cgi-bin/z3950/gakui_detail_disp.cgi?REG_NO=117193144http://d.hatena.ne.jp/JavaBlack/20070202/p4「消費増税法案が衆院可決、JR東のスイカ、IC乗車券、改修に1年。消費増税を柱とする社会保障と税の一体改革関連8法案が26日に衆議院本会議で可決された。大半の社会システムは2014年4月からの増税に迅速に対応できそうだが、東日本旅客鉄道(JR東日本)のIC乗車券「Suica(スイカ)」など鉄道系のシステムで改修に1年超かかるとの懸念が浮上している。複数の他社とIC乗車券を相互連携し、駅以外でも活用され、システムが複雑化しているためだ。JR東では消費増税で運賃を引き上げた場合、5月末現在で約3968万枚発行しているスイカのシステム改修が必要となる。改修の具体的な検討は「運賃の引き上げ自体が決まっていない」(JR東)ため始めていないが、「システム改修の計画作りや乗客への周知期間も含めると1年数カ月かかるだろう」(同)と話す。スイカを導入していなかった1997年の消費増税ではシステム改修に30億〜40億円の費用と3カ月程度の期間がかかった。巨大化したスイカシステムの再起動時のシステムダウンや運賃の計算ミスを避けるため、改修には費用、期間とも前回を上回るとの指摘もある。改修が手間なのは「スイカのシステムは一部のプログラムに消費税をそのまま書き込んでいるため」と関係者は明かす。「値段=製品価格×5%」といった具合だ。膨大な本数のプログラムから消費税関連の記述を見つけ出し、適切な値に直すだけで大変な時間と労力が必要だ。(JR西日本)の「ICOCA(イコカ)」などJR各社のIC乗車券のほか、首都圏の私鉄・バスが加盟するIC乗券「PASMO(パスモ)」と相互乗り入れをしている。運賃変更をした場合、私鉄とJR間などを乗り継いで正しく運賃計算されるか確かめる必要がある。その数はスイカとパスモの連携だけでも約12億3千万通りと膨大な作業が必要となる。IC乗車券の電子マネー機能は駅以外の小売店など12万7000店舗以上に利用が広がり配慮が必要になる。パスモなど他の交通機関系のIC乗車券もシステム改修などに時間がかかる可能性もある。他のシステムでは大きな改修は必要ない見通しだ。小売店のレジで使われるPOS(販売時点情報管理)レジスターなど機器の多くも「前回の消費税導入時に今後消費税が上がっても一部の数値をいじるだけで済むように改修を終えている」(NEC)。1997年の前回の消費増税時に大規模なシステム改修が相次ぎ“特需”とも呼べる状況となったが、「多くのシステムでは内部の消費税率変更とその後の動作確認作業が発生するが作業は比較的に簡単だ」(日本IBM)という。JR東日本などが導入している非接触型ICカード方式の共通乗車カード・電子マネー。パスモなど他の交通機関との相互利用も可能である。2001年から徐々に導入され、データ処理回数は1日当たり2400万件と、大手銀行の勘定系システムに匹敵する規模になっている。なんか勘違いしたブクマが並んでるのだが・・・。案件に改札機やら券売機に計算式仕込むわけ無いだろ。違算除け・ミス防止のため全パタン検証済みのテーブルで持たせるのが常識だ。このプログラムというのは何の計算をする部分なんだろう。JRの輸送約款で定められている運賃計算式に「消費税率」というパラメータは登場しない。アホか?と思ったがブ米読んでたらそうでもない感じ。そもそも切符の値段をその場で5%かけてとかはやってない感じ。最終的な売上の決算時期と消費税率変更時期の違いとかの問題ではという指摘あり。Suicaでの支払いに消費税率が関係あるんだろうか。税制よく分からずに言うけど、どの決済のタイミングから税率が変わる、みたいな話に対応してないシステムが多そう。#defineもアウトかと。この記事が間違ってるんだろ、そんなベタ打ちしないよ。問題は別のところにあるんでしょう。兎にも角にも消費税の処理は思っている以上にかなりめんどいので関わっている人は早く逃げたほうがいい。別に「ベタ打ち」じゃなくても改修費用はすごくかかるわけで、まるでそれだけが原因であるかのように言うのはダメだよ。#defineしてあったとしてもコンパイルし直したらテストするよなぁとか思った。いうか、かなり昔のコードって、そのまま今のシステムでコンパイルが通るのか問題とかも踏みそう。組み込みはよくわからんが、速度が要求されるからハードコードしてるんじゃないの。なんらかの意図があってやっているはず。ブクマにあるよいうに、Suicaは高速処理を極限まで追求したコードになってるので、こういうプログラムになってたんだと思う。それが改修時はアダとなる。...よくあるんじゃないかな。Suicaシステムの改修じゃなくて運賃値上げの準備期間が(システム改修含め)1年以上。ベタ打ち云々より広範な影響範囲を考慮しながらの改修計画そのものが手間だという話に思える。"約12億3千万通り".../運賃に関しては都度税率計算している訳ではなく、運賃表を参照してると思うのだがなぜだろう?/システムてき影響を考えると2度もやるのは勘弁願いたい。あとで一度に10%じゃだめですか。10の40乗という運賃パターンのテスト方法を開発者が解説」http://www.juse.or.jp/sqip-sympo/http://www.publickey1.jp/blog/12/_1040.htmlhttp://www.publickey1.jp/blog/12/_1040_1.htmlhttp://www.publickey1.jp/blog/12/_1040_2.html追記テスト対象となる実機用の運賃ソフトウェアと、検証用の運賃ソフトウェアは別のチーム、別のアルゴリズム、別のプログラミング言語で作ります。実機用はC++ですが、検証用はJavaで言語特有のバグをなくそうとしています。検証用のソフトウェアにはそんなに予算が掛けられず少人数で作っているので、実機用はどうやって作ったのか聞きたくなるのですが、そこを我慢して作る。基になるデータベースも間違っている可能性があるので、検証用は別に手入力してデータのチェックも合わせてやります。テストは100台くらいPCをレンタルして、がーっとやります。だいたい2週間から長いと3カ月くらい。このとき何に時間がかかるかといえば、間違った原因を探していくことですが、1000万パターンあると0.1%間違えても1万件とかになります。間違っているリストを見ると目黒ばっかり間違えていると、それで目黒のデータが間違っているというのが分かったりして。間違いがあればその原因を解析しなければいけないのですが、検証用の運賃計算ソフトウェアが間違えることももちろんあるので、これをきっちり作らないと検証用のソフトウェアの方のデバッグをしているようになってきてしまいます。お客様には検証用のも合わせて2つソフトウェアを作るから費用を2倍にしてくれとも言えないので、頑張って作るしかないです。「鉄道運賃、1円刻みが浮上=消費増税に合わせ−IC乗車券限定で」http://www.jiji.com/jc/c?g=ind_30&k=2013050200648http://headlines.yahoo.co.jp/hl?a=20130502-00000086-jij-bus_all後日談.現在は10円刻みとなっているJRなどの鉄道運賃について、1円刻みにする構想が浮上していることが2日分かった。関係者によると、複数の鉄道会社が消費増税に合わせて導入を検討しており、増税分をスムーズに運賃へ転嫁するのが主な狙い。駅券売機で10円未満の硬貨を利用可能にするのは技術的に困難なため、交通系ICカードでの乗車に限る方向で調整している。いう話も出てる.システム開発よりは運賃体系の話か.国土交通省は、鉄道とバスのIC乗車券で消費税率の引き上げ分を転嫁した「1円単位」の運賃改定を認める方針を固めました。した内容を盛り込んだ基本方針を近く公表し、各社が料金改定を申請する見込みです。国土交通省は、来年4月の消費税率の引き上げに伴う交通運賃の改定に向けて、鉄道とバスのIC乗車券について増税分の端数をどう処理するか検討を進めてきました。その結果、SuicaやPASMOといったIC乗車券が広く普及し、定着したという判断から、その利用者を対象に「1円単位」の運賃の値上げを認める方針を固めました。鉄道の券売機やバスの料金箱は当面「10円単位」のままで変更がないことから、同じ区間でもIC乗車券と従来の切符とで料金が異なる「二重運賃」になる可能性があります。その際、10円単位となる切符の運賃がIC乗車券の運賃と同じか、高くなるように端数の切り上げなどで調整されるということです。1円単位での運賃改定は、JR東日本のほか、東急電鉄や小田急電鉄、東京メトロなど、IC乗車券の利用者が多い首都圏の各社が検討していて、国土交通省が正式に方針を明らかにしたあと、改定を申請する見込みです。http://www3.nhk.or.jp/news/html/20131017/k10015334791000.html*1:たとえば「運賃は内税なので,言わばコード中に消費税率が埋め込まれてるようなものですよ。「プログラム中に消費税をそのまま書き込んでいるため」みたいな形で記者が脳内変換したとか.*2:「消費税をハードコーディングはしていないはずだけれど,ひょっとしたらどこかに含まれているかもしれないので,含まれていないことを確認する作業が必要だ」というなら納得.こういう悪魔の証明的作業は金と時間がかかるんだ.どこに使われているか既に分かっているなら改修はむしろ楽.*3:10円単位で切り上げかもしれないが,実際には十円刻みでさえないようだ.*4:もし方式を外税に変更するとなると,全国の全ての券売機を交換しなければならなくなる.今みたいに内税の限られたボタンが並ぶのではなく,たとえば10キーで料金を打つようなどの方式にしないと,ボタンの数が足りなくなるから.もちろん内部のソフトもハードもそれにあわせた新規設計になるだろう.*5:料金表作成支援システムくらいはあるかもしれんけど.*6:料金が変わるので,券売機の改修も必要になるが,まあSuicaみたいに自動で処理する部分が少ないので,金額の見直しだけで済むんだろう.*7:本文をみると「その数はスイカとパスモの連携だけでも約12億3千万通りと膨大な作業が必要となる。http://hamusoku.com/archives/7229312.html*10:「タリフとは、運賃を算出する上で必要な運賃表データのことです。物流業界では事業開設にあたり、その提供価格を運輸省に原価計算書と共に提出する必要があります。原価計算書を提出しない場合は運輸省が計算した標準運賃表をもとに事業を行うことができます。この「標準運賃表」に当るものをタリフと呼びます。「標準運賃表」はトンキロ【重量×距離】で計算しており、2年に一度改訂され平均して5%程度の運賃アップがなされてます。