Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Software Engineering

標準レベル未満のメンバーを開発プロセスの工夫で救えるか

開発プロセスを工夫することで、標準レベル未満のメンバーを救えるのか?という話。 satob.hatenablog.com satob.hatenablog.com 少なくとも、開発プロセスは「標準レベル未満のメンバーを救うこと」が主目的ではないよなぁ、とは考えています。そういう救い…

Understandability of decision table depending on the countries

In software testing, decision table is an useful tool to identify and list up test cases and what you should check in those test cases. In Japan, there is a standard for decision table: JIS (Japanese Industrial Standard) X 0125:1986. ... B…

オブジェクトの変換にコンストラクタを使ったときの問題

背景 MyBatisのSqlSession#selectOne()で、クラスAのオブジェクトaを取得している。SELECTの結果が0件だった場合はnullが返る。 オブジェクトaを、別のクラスBのオブジェクトbへ変換したい。 問題となる設計 クラスBのコンストラクタが、引数にクラスAのオブ…

ソフトウェア考古学論考 (2)

どっちかもいうとこっちが本題。 さて、ソフトウェア考古学の目的としては、 レガシーシステムの保守開発の効率化 システムの仕様理解の補助 の他にも、poorly-documentedなレガシーシステムのソースコードから、その仕様(あるいは意図)を読み解き復元し、…

ソフトウェア考古学論考 (1)

ソフトウェア考古学(Software Archaeology)という考え方は、OOPSLA 2001で提唱されたのが始まりのようです *1。 Wikipediaにある通り *2 、poorly-documentedなレガシーシステムのソースコードやドキュメントをどう読み解くか?というところから始まったよ…

公共分野のシステム開発調達における上下分離のメリット

日本の公共分野におけるシステム開発の調達では、ときどき「上下分離」による調達が行われることがあります。ひとつのシステム開発を、業務設計 or アーキテクチャ設計くらいまでの上流工程と、コーティングを含む詳細設計~テストまでの下流工程に分けて調…

平均的プログラマ以前のメンバーにどう対処していけばよいか? (1/2)

note.mu 非常によい知見というか、経験談の集まりで、共感するところも多く、興味深く読んだ。大学のプログラミング実習の話のようだけど、企業においても、新卒採用で情報系以外の学科から採用をしている場合、状況はあまり変わらない。 以下、上記記事から…

平均的プログラマ以前向けのスキル標準の提案

「Java経験年数〇年以上のプログラマ募集」みたいなフレーズ、よく聞きますよね。で、そのフレーズで実際に人を募集してみて、来た人って期待どおりでしたか? プロジェクトの体制構築、特にトラブル発生時の体制強化に必要な人材を集める場合、求めるスキル…

SQL文の性能単価測定に適したパラメータの自動推定

多くのRDBMSには、実行したSQLの実行計画や性能単価を取得する機能が備わっています。SQLの性能単価を測定する際は、検索のパラメータや、テーブル中のデータのバラつきといった前提を、できる限り本番環境に近づけることが重要です。 たとえばPostgreSQLで…

非手続き型言語における機械的計測可能で客観的なテスト充分性の指標

プログラムをテストするときに、テストの充分性を示す指標として、C0とかC1とかのカバレッジ(コードカバレッジ)がよく使われます。 C0やC1は、実行されたことがない順次処理や、分岐したことがない分岐処理が、プログラム中に残っていないか計測するための…

「事故」という用語の由来

業務アプリの開発者は、よく「料金計算の結果が間違って出力された」とか「システムが○時間止まった」というトラブルを指して「事故」という言葉を使う。 高校や大学では使ったことのない用語だったので、これって業界用語だよね?と思って調べてみると、ど…

業務アプリケーションの排他処理あるある

この記事を書いた時の反応で、「排他制御を怠るプログラマなんてありえない」みたいなコメントを複数確認したのですが、それが結構あるのですよねー。IPAのやつは、日立さんが担当だそうですが、そういう大企業でもあるのかとは思いました(僕自身も驚いた)…

ソースコードの自動生成の意義

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

OSSの資産計上

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

ソフトウェア工学・暗黙の前提 (2)

開発者全員が開発対象のプログラミング言語を理解している 「初めて Java 触るんだけど、Eclipse ってどうやっていじるの?」も結構います。 「Eclipse が何か言ってるけど意味が分からない」はもっとたくさんいます。 「COBOLなら分かるけどJavaはよくわか…

ソフトウェア工学・暗黙の前提 (1)

就職してもうすぐ2年になります。大学ではソフトウェア工学を、主にオブジェクト指向設計/開発の勉強をしてました。私も就職して初めて気付いたのですが、現在のソフトウェア工学には暗黙のうちに置かれている前提があって、しかもそれが現実とはだいぶ違う…