自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) ふだん何気なく使っている鉄道。改札を降りるときにICカードを自動改札にかざすと、「ピッ」という音と共に一瞬のうちに運賃を計算してくれます。けれど、複数の路線を乗り継いだり、途中で定期券区間が挟まっていたりと、想像しただけでもそこには膨大な組み合わせがあります。それでも運賃計算プログラムはわずか一瞬で正しい運賃計算が求められ、バグがあったら社会的な一大事にもつながりかねません。 爆発的な計算結果の組み合わせがあるはずの運賃計算プログラムは、どうやってデバッグされ、品質を維持しているのでしょうか? 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日本科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡
続きを書きました → 伝えなければ伝わらないという当たり前の話 ソフトウェア開発に関する相談を受ける中で、どうもソフトウェアというものの特性について誤解をされているな、という思いを持つことがあります。 そうした場合、聞いてみるとプログラミングの経験が無かったり、殆どプログラミングには携わったことがないという方が多いです。 ソフトウェアを開発しようとするならば、ソフトウェアという特性をよく知った上で、プロジェクトは運営した方が良いし、うまくいくはずです。そしてソフトウェアならではの特徴を知るのに、プログラミングの経験はとても重要です。 この記事では、プログラミング経験の無い方が陥ってしまいがちな、ソフトウェア開発にまつわる誤解について考えてみました。 Harry Potter is Ready for Divination / weekbeforenext 誤解:既にあるソフトウェアを流用し
こんばんは、台風がヤバいですね。 こんな風に命の危険がそこそこあるときは、なんとなく人生について考えてしまいます。私はどこからやってきて、どこへ消えてゆくのか…… そんなことを考えていた折に、「社内ライブラリって OSS にしてしまうべきだよなー」と、ふと思ったので、考えていることをメモしておこうとおもいます。 「社内ライブラリ」 とりあえずこの社内ライブラリの前提を並べると 1つまたは複数のプロジェクトが参照しているライブラリである 製品的なビジネスロジックを内包しておらず、汎用的で、利用されているプロジェクトと密結合でない バージョン管理されている の3点は満たしておく必要があります。例えばニコニコ動画を OSS にするのはちょっとアレですし、課金部分を OSS にするなんてもってのほかだなーと思います。 そんなプロジェクトがあなたの会社にあるかないかはわかりませんが、いわゆる「この言
Heads up! This page uses features your browser doesn’t support. Try a modern browser like Firefox or Chrome for the best experience. sidebar#close mouseup->tweet#update input->tweet#update keydown->tweet#update scroll@window->tweet#update" data-bookmark-id="/gettingreal"> ���� �5D� Getting Real The smarter, faster, easier way to build a successful web application Start reading →
スイスSonarSourceは4月18日、ソースコードを分析してその複雑度や品質などを視覚化するツール「Sonar 3.0」をリリースした。2年ぶりのメジャーアップグレードとなり、新機能を含め40以上の強化が加わっている。 SonarはJavaおよびRubyで実装されたソースコード品質管理プラットフォーム。ソースコードを分析し、コードの行数やファイル数といった規模情報やクラス/パッケージ/メソッド数、コメント数、重複しているコードの割合、コーディング規約の遵守状況、コードの複雑性、テスト状況などをWebベースの管理画面で視覚的に表示できる。プラグインによりルールエンジンや新言語の追加も可能で、コア部分が対応している言語はJavaのみだが、CやC#、Flex、Groovy、PHPなどもプラグインによってサポートされる。Natural、PL/SQL、Visual Basic 6などをサポートす
▼ [Software]辞めていった人達が作ったシステムの保守を楽しいものにする はてなは「絶対すべきでないこと」をやらかしたのか? nabokov7; rehash : ライブドアという会社の話をしよう - Q12. 次世代ブログサービス(になるはずだった) nowaの撤退をどうみた?(下) この辺りの話題を眺めていて思うところあったので少し書いてみる。 別にはてな社やライブドア社がどうだって話ではなくて、システムやソフトウェアを開発する仕事の話です。 まず、大前提として、 新しくスクラッチから書き起こす 既にある機能と互換性を保ちながら改修する プログラマにとっては、前者の方が圧倒的に楽しい仕事だと思ってます。(最近無くなったらしいけど)グーグル社の20%ルールは、開発者の創造性を巧く引き出せるよう上手に設計された制度です。 ただ、現実問題として、IT業界では後者の仕事を行う機会の方が
AdLint is a source code static analyzer. It can point out insecure or nonportable code fragments, and can measure various quality metrics of the source code. It (currently) can analyze source code compliant with ANSI C89 / ISO C90 and partly ISO C99. AdLint is written in Ruby. So, it is available for Windows, Mac OS X, GNU/Linux, FreeBSD and any other platforms supported by Ruby. Features Can poin
When your iPhone app crashes with 'BAD ACCESS' you're in trouble - a memory bug where you tried to call a method on a object that was already deleted. Instruments has support for NSZombie - a feature that makes it easy to find the source of the bug by showing you a full history of every alloc, retain, release, and autorelease of the object that caused the crash! Wow. Here's how: Basic steps are: R
統計や実証を通してソフトウェア工学を研究していく、それが「エンピリカルソフトウェア工学」(Empirical Software Engineering、実証的ソフトウェア工学)です。「第一回エンピリカルソフトウェア工学研究会」が、12月10日に都内で開催されました。 基調講演では、マイクロソフトリサーチで研究をしているDr. Thomas Zimmermann氏が登壇。開発組織の構造がソフトウェアにどう影響するのか、バグ報告書やバグ報告者と修正されるバグの優先順位の関係、そしてエンピリカルソフトウェア工学という「データ指向のソフトウェア工学」を、どのようにソフトウェア開発における意志決定に役立ていくのか、といった内容の講演でした。 開発組織の構造がソフトウェア品質に及ぼす影響は? マイクロソフトリサーチのDr. Thomas Zimmermann氏。 今日はいくつかのテーマについて紹介した
UIWebViewのスクロールが遅くてイラつきます。 実はこれUIWebViewが重いのではなくて、そういう設定になっているだけです。 デフォルトでは UIWebView 内の UIScrollView の decelerationRate が UIScrollViewDecelerationRateFast に設定されています。 それを UIScrollViewDecelerationRateNormal に変更すれば良いです。 幸いiOS5からはUIWebView 内のUIScrollViewがプロパティとして追加されたため 以下のようにするだけでスクロールの滑りがUITableViewのデフォルトと同等になります。 self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; iOS4でも
同一wifi内のiPhone同士で通信しあうにはBonjourを使うと簡単にできるらしい。簡単にっていうのはアドレスの割当やらホストの解決、公開サービスの検索なんかを自動的にやってくれるみたいだけど、それ以外でも結構大変だったのでその記録。 主な手順としては、 サーバ側がNSNetServiceを使ってサービスを起動 クライアント側はNSNetServiceBrowserを使ってサーバとサービスを検索 見つかればNSInputStreamやNSOutputStreamを使ってデータをやり取り という感じで結構簡潔。 まずはプロジェクトの準備。新規プロジェクトをTab Bar Appricationから作成します。左のタブをServer(ServerViewController)、右のタブをClient(ClientViewController)として進めます。 ServerViewCont
どうも、「iOS Advent Calendar 2011」5日目担当のfaultierです。つい最近使ったのでNSURLProtocolネタで。 NSURLProtocolって何? Foundationフレームワークで最初から扱えるプロトコルはhttp、https、ftp、fileの4つ。これ以外のプロトコルでの通信をNSURLConnectionやNSURLDownloadなどで扱う場合や、特定のリクエストに限って特別な処理をしたい場合などに、NSURLProtocolを継承して登録することで使えるようになる。ちなみに、他のアプリからopenURLしたときにアプリを起動させるカスタムURLスキームとはまた別なので注意。こちらはアプリ内でURL Loading Systemを使うときにだけ影響するもの。 使い方 最低限必要なのは、+canInitWithRequest:、+canonic
例えば UIKeyboardWillChangeFrameNotification の通知を受け取りたい。普通に NSNotificationCenter へ登録すればいいのだが、iOS 4 でこれを実行するとクラッシュする。 この通知は iOS5 から導入された新しいもので iOS4 に無いのが原因。この通知名は NSString* const で定義されている。 // UIWindow.h UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); そこでこの定数の有無をチェックしたい。調べると Appleがドキュメントを出していた。 SDK Compatibility Guide: Using SDK-Based
最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲けるための必須の機能になると言っても過言ではありません。 今回はアプリ内課金(In-App Purchase)のプログラミングについて StoreKit フレームワークの基本的な使い方から失敗しないためのポイントまで説明していきます。 販売できるアイテムの種類は5種類 アプリ内課金で販売できるアイテムの種類は5種類あります。 Consumable 消費アイテム。ユーザがアイテムを使うと無くなる。例えばシューティングゲームの弾丸やコイン落としゲームのコインなど。同じアイテムを何回でも購入可能 Non-Consumable 非消費アイテ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く