「はじめよう!要件定義」を読みました。

業務系のシステムに携わっている技術者で、プログラマとしては優秀なのに、上流工程は苦手だったりする人がいます。特に汎用機全盛以降にその傾向が見られるように思います。
ソフトウエア(プログラム)の作り方や技術が多様化し習得も大変なのですが、業務系では業務に役立ってなんぼなもんなので、ソフトウエア的な技術に偏った知識ばかりでも居られません。
システムを設計するエンジニアと、実装するエンジニアが分業されている場合、その間を埋める工夫も必要です。

それが、なかなか難しいんですよね。
もうこの業界の、ウン十年の課題だったりもします。

そして、一番重要なのは「要件定義」。
システム作りは「要件定義に始まって要件定義に終わる」と言っても過言ではないと思います。

UMLを使いましょう!」なんてアプローチもありますが、
そんなもの、システム屋どうしなら使えますが、一般のお客との打ち合わせでは(普通は)使えませんし、私個人的には、UMLが良いと思えたこともありませんでしたので、独自の図や絵を活用する事が多いです。

そんなこんなで(笑)、みなさん(システムの発注側も受注側も)すっきりしない中で、要件をなんとかまとめ(たつもりで)システム開発をスタートして、てんやわんやして、(運良く)なんとかカットオーバー...ということも少なくないと思います。

そんな状態から少しでも抜け出したい人向けの良書です。
発注側、受注側両方の立場それぞれの立場で有効だと思います。

そして、著者も本書のあとがきで書かれていますが、

本書の肝は「画面遷移図を書こう」

激しく同意です(笑)。

平易な言い回しと、かわいらしいイラストで、すらすらと読むことができます。

はじめよう! 要件定義 ~ビギナーからベテランまで

はじめよう! 要件定義 ~ビギナーからベテランまで

WiFiその後

NTT西日本光回線を、Bフレッツからネクスト「隼」に替えたので、
それにあわせてWiFiの親機も取り替えました。
新しい親機はNEC Aterm WG1800HP2。
2.4GHz帯に加え5GHz帯も使え、IEEE802.11acにも対応してます。
親機変更後、iOSWiFiの不調は解消しました。
それは良いのですが...
「隼」は遅い!というか時間帯で速度がかなりバラつく感じです。
収容回線数が多いのでしょうね。
以前のBフレッツの方が安定してました。
もう少し、Bフレッツで粘ればよかった。はやまったかも...

iOS 8.1.3でWiFiが不調になった...

先日、iPod touch(5th)とiPad2iOS 8.1.3 にUpdate しました。
直後は気がつかなかったのですが、数日してWiFiが切断されるような現象が
発生するようになりました。
特に YouTube などの動画を再生している最中に発生する事が多いのですが、
動画に限らず、容量が大きなページにアクセスしても同様な現象が発生します。

一旦現象が発生すると、iOS側でWiFiに接続し直せば復帰出来る時と、出来ない
時があります。
出来ない場合は、WiFiの親機に接続することも出来なくなってしまいます。

同じWiFi親機に接続している WindowsのNote PC と MacBook Pro では問題が
発生しません。

現象からすると iOS か、WiFi親機と iOS との相性に問題がありそうです。

使用しているWiFi親機は、バッファローの「WZR-HP-G301NH」。
11n/g/bに対応していますが、2010年の発売で、もう販売終了している製品です。

まず、ファームウエアのバージョンを確認してみましたが、最新(最終?)版でした。

で、この機種には本体前面に「ムービーエンジン・スイッチ」という物がある
のですがこれが「off」になっていたのでこれを「on」に変更したところ、
安定して動作するようになりました。

この「ムービー・エンジン」をonにすることで、具体的に設定がどう変わるのか
わかりませんが明らかに安定するようになりました。
iOS8.1.3にUpdateする前は「off」でも特に問題は無かったのですが...
それにしても、WiFi親機に接続できなくなるのは明らかに変です。

とりあえず、これでストレスはなくなりましたが、
近いうちにいまどきの11ac対応の親機に変更した方がよさそうです。



※2/9 追記
前よりは安定したけど、やっぱり変...

Coinのご紹介

工事情報管理システム(Coin)を何回かに分けてご紹介していきます。

このシステムは、建設業(サブコン)向けに開発した業務システムです。
工事案件の見積から受注、予算、実行、完工、請求までの主な機能から、
社員の出退勤や予定管理、作業日報。
上司や同僚とのコミュケーションを円滑にする為の伝言板機能も備えています。

基本的には、システム内部で「伝票」を起票し、伝票種別毎に、あらかじめ
設定された承認ルートにの従って、Web画面で承認されます。

「基幹業務と、グループウエアがシームレスに融合している」

と表現すればお分かりいただけるでしょうか?

ログイン後に表示されるメニュー画面です。

表示されるメニューは、担当者毎に割り付けられた権限で
利用可能な機能だけが表示されます。

メニュー右横の「!(数字)」は、ログインしたユーザーに対して
何らかのアクションが必要な状態である事を示しています。
例えば...

                                                                                                              • -

・自分が承認者の場合、自分宛の未承認の承認伺がある。
・承認伺を出した伝票が「否認」された。
・なんらかのアラームが発生している。

                                                                                                              • -

などがあります。

工事案件の[見積]から始まり、
成約した工事は[工事台帳]で管理されます。
[台帳管理]では、
[受注]-[予算]-[発注]-[支払]-[請求]-[入金]-[完工]
の一覧の流れを、工事毎に管理していきます。

伝票の承認もすべてこのシステムの画面で行います。
大口工事などで現場事務所を構えた場合でも、
インターネットが利用出来る環境さえあればシステムを利用出来るので(*1)
現場事務所でもタイムラグなく業務が遂行出来ます。

勿論、モバイルPC、タブレットスマホ(操作性は落ちます)などからも
利用出来ますので、承認者が出張や外出先、自宅などからも承認も可能です。
意志決定と各自行動のスピードアップが図られます。

*1:インターネットVPNの利用を推奨します。


お問い合わせ先:http://www.katsu-sd.com/

Azure仮想マシンお試し

Microsoft Azureを
VISUAL STUDIO PROFESSIONAL WITH MSDN の特典で
5,500円/月の利用枠の中で試してます。

Windows10 のテクニカルプレビューをAzureで動かしてみました。

ブラウザーでAzureのポータルへ行き、
Azureのコンパネから[仮想マシン]を選択し、新規で[ギャラリー]で
Windows10 Technical Preview for Enterprise(x64)
を選択、後は仮想マシン名を決めて入力し、
階層(今回は[基本]を選択)、サイズ(A2:2コア 3.5GBメモリ)を選択、
新しいユーザー名とパスワードを入力。
クラウドサービスは[新しいサービスの作成]を選択。
[クラウドサービスDNS名]はユニークになる名前を入力。
[地域]は日本(西)...などを設定し作成。

15〜20分程待てば仮想マシンが利用可能な状態になります。

少し触った感じでは、
[スタート]ボタンが[スタート]らしく復活していて、
アンチ(?)Windows8派にも受け入れられ安い印象です。

Azure上での動作ですが、サイズ(A1:1コア 1.75GBメモリ)ではさすがに
モッサリとした動きでしたがA2以上ならストレスなく動作しました。

ちょっと試したい(見てみたい)場面でもAzureのようなクラウドサービスは
簡単で好都合です。

Microsoft Azure SQL データベースでできないこと

Microsoft Azureを出来るところから試してます。

SQLデータベースでいきなりはまりました。
「DBCC CHECKIDENT」でエラーが返されました。
調べてみると、Azure SQL Databaseではサポートされていないとのこと。

他にもサポートされていない「Transact-SQL ステートメント」が結構ある
ことがわかりました。

http://msdn.microsoft.com/ja-jp/library/azure/ee336253.aspx

SQL Serverとの互換性はかなり高いと勝手に思っていましたが、
どうやらそうでもなさそうです。

オンプレからの移行や利用にあたっては十分な事前評価が必要ですね。

MVC5 いい感じです

ここ最近、Visual Studio2013 で ASP.NET MVC5 について学習してましたが、
タイミング良く、ほどよい規模の案件に恵まれ、実戦投入しました。

最初はWebFormの開発とはアプローチが異なるのでかなり戸惑いが有りましたが、
慣れてるまで、それほど時間はかかりませんでした。
MVCの基本的な考え方、MVC独自の機能などがある程度理解できれば、
WebFormの開発で得たノウハウも活用出来る場面も多くなじみやすいと思います。

そして、なにより重要なのは MVC のFramework に加えて
Entity Framework
LINQ(LINQ to SQL)
これらを積極的に組み合わせることで、
DBを使ったアプリケーションの開発がかなり効率化できるという実感を持てました。

正直なところ最初は
「Entity Framework で Code Firtst は邪道じゃないか?」
「ましてやLINQなんか...」
などと考えていましたが、実際に開発場面で使うと、DBとプログラムがシームレスになり
これが、今ままでになかった感覚で、心地よさすら覚えてきます(笑

まだテクニック的な面で学ぶべきものは多いような気はしてますが、
しばらく、この開発スタイルにはまってしまいそうです。

久しぶりにいいものに巡り会えた感じです。


状況が落ち着いたら、ノウハウやテクニックをここでまとめていこうかと考えています。