Software Engineering

1回変換原則

ソフトウェアの実装をデザインする上で 一番大事なことってなんだろう、と考えた。 もちろん、世の中には、KISSとかSRPとかDRYとかあるわけですが、もっと具体的で簡単なのはないかな、と。 (この3つが全部wikipediaにあるのはちょっとびっくり) で、自分…

ソフトウェアテストの2つの見方

先のエントリは、QAのプロからみたら絵に描いた餅にみえるのかもしれない。日ごろから感じているんだけど、ソフトウェアテストに対して、2つの見方がある。 システムの正しさを証明する、という見方 システムの間違いを発見する、という見方 最初のほうは非…

帰納関数はなぜ安全か? -- 帰納的テストに関する考察

ソフトウェアのテスト技法は数学の証明でたとえるなら、場合わけをして、各ケースを証明することに相当する。例えば、マトリックスを書いてテストをするなんていうのは典型的な例で、実際にはすべての例を挙げることはできないので、できるだけ重要なケース…

Bashのソケットリダイレクト

自分用メモ。bashは組み込みでソケットにリダイレクトできる。 こんな感じ。echo "aaaa" > /dev/udp/localhost/11111echo "hogehoge" > /dev/tcp/localhost/8080ただし、readはあまり機能しない。 そんな用途にはnetcatが必要なので注意。

AspectC++ -- install編

引き続きAspect。 webを見て思ったのだがJavaな人にとってはAspectはもう基盤技術なのね..で、C / C++プログラマとしてはAspectC++。 これはコンパイル時weavingツールで、 C++のコードとアスペクトコードからweaveされたC++のコードを作る。 私はどうしても…

Design by contract by example

Design by contract, by exampleの6つの原則。Principle 1: Separate queries from commands. Principle 2: Separate basic queries from derived queries. Principle 3: For each derived query, write a postcondition that specifies what result will be…

Cem Kaner教授のページ

前のプロジェクトでまわし読みしてた「知識ゼロから学ぶ ソフトウェアテスト」。 著者のblogがすごくおもしろいのだけど、そこからたどったCem Kaner教授のページがいい。正直な感想として、すごいよ! マジすごいっすよ。High Volume Test Automationってス…

cc2eで感じた違和感?

cc2e(code complete 2nd edition)で感じたもうひとつの違和感 擬似コードプログラミング。初版にも書いてあったけど、擬似コードプログラミングとは、コメント書いてからコードを入れていく、という手法のこと。でもコメントで処理を説明できるんだったら、…

cc2eで感じた違和感①

cc2eを読んでいて、正直なところほっとする。 自分がコードを書くときの姿勢とかが間違っていないんだなという感じ。でもやっぱりいくつか違和感もある。 一番大きかったのはエラー処理の書き方と擬似コードプログラミング。エラー処理については、だいたい…

ソフトウェアメンテナンスのアンチパターン

名前: 追加機能パスの離陸概要: 追加機能を機能の新規開発とみなし、既存コードとは独立した大量の新規コードを書くことで対応する。結果として、重複コード、文脈依存のコードなどができる。エピソード: 「よし、ここからパスを分けて..」 「このパスを…

JADセッション

Steve McConnelのProfessional Software Developmentを読んでいて知らなかったので、調べてみた。 日本語サイトはあまりめぼしいものがなかったので、英語の参考ページ。LifecycleStepの解説 UML tutorial in 7 daysの解説stakesholderをみんな集めて一気に…