12-10-26 アジャイルソフトウェア開発Aa
今日、プログラム開発の方法として、従来からのウォーターフォール開発手法を乗り越える アジャイル・ソフトウェア開発手法が注目を集めていますaAAA。 これにより 開発するプログラムの品質を高の向上、同時に、開発スピード・アップ、コストの引下が達成できるというものです。 当初は、比較的小さなプロジェクトの成功事例でしたが、開発方法として洗練されてきて、 大規模システムに適用できる方法として認められるようになっています。 しかしながら、 IPA(独立行政法人情報処理推進機構)非ウォーターフォール型開発の普及要因と適用領域の拡大に関する調査報告書 2012/06/11 によると、 米国、欧州では、アジャイルソフトウェア開発手法が広く採用されており、既に開発の主流となっており、 デンマークのように国あげてが普及を促進しているところが出てきている。 ところが、日本では普及が遅れており、ようやく認知された段階となったところとしている。 

********************************************************************************
1.基本となる従来からの開発思想
********************************************************************************
ウォーターフォール(Water Fall)開発手法と呼ばれるもの。 要件定義、分析、設計(外部・内部)、実装、テストの各工程を、厳格に、予め計画された順序に従って行う。 プロジェクトの進捗にともない、要求仕様書、外部設計文書、内部設計文書、テスト計画書、コードレビュー書といった一連の成果物がアウトプットされる。 各工程を完全に行い、後戻りをしない。 特徴は、    ・数あるソフトウェア開発手法の中でも、最も計画重視である。 ・開発期間は、数か月から数年の長い期間。 ・開発の参加者が多い。 ・たくさんの文書を書く。 ・秩序を重視する組織的文化。
********************************************************************************
2.反復型開発(はんぷくがたかいはつ、Iterative and Incremental Development)
********************************************************************************
アジャイルソフトウェア開発手法における基本的な手法が、反復型開発です。 ・要求仕様の単純なサブセットから開発を始め、要求仕様から次々とサブセットを切り出し、   開発を反復してしていき、最終的に完全なシステムを仕上げる。 ・ひとつの反復(イテレーション)の中で、プログラムの設計・製作・テストを完了する。 ・ひとつの反復(イテレーション)は普通数週間と短い。 ・出来あがったサブセットで使用可能なシステムを段階的にリリースしていく。 この方法で、 ・「ユーザーに価値をもたらし、かつ動作が保証されたソフトを超高速で実現する。 ・ユーザーには文書ではなく動くソフトウェアを使って要求を確認する。 ・ユーザーは、開発段階のプロトタイプや、段階的にリリースで、新システムを早期に確認できる。 ・プロジェクトを成功させるために価値が少ないドキュメント作成を極限まで省くことになる。
********************************************************************************
3.RAD(Rapid Application Development)by James Mertin 1991
******************************************************************************** アジャイル的ソフトウェア開発手法の一つ。「はしり」に位置する ・プログラムの開発にタイムボックスの設定。期間固定(90日)・機能は可変。 ・開発対象をサブセットに分割、タイムボックス内でサブセットのプログラムの開発を終える。 ・タイムボックスは、期間固定(90日)。機能は可変。、 ・1タイムボックスでは2-4人の開発チーム。 ・タイムボックスを反復して、システムを仕上げる。 ・エンドユーザー、全開発工程に参加。 ・大規模システムでは、並行開発。
********************************************************************************
4.アジャイルソフトウェア開発手法
********************************************************************************
アジャイルとは’機敏・俊足'を意味するもので、アジャイルソフトウエア開発は、複数の開発論がある。 主なもに、 XP www.extremeprogramming.org ケント・ベック、ウォード・カニンガム、ロン・ジェフリー Scrum www.controlchaos.com ケン・シュウェイバー、マイク・ビードル DSDM www.dsdm.org アリー・バン・ベネカムなど FDD www.nebulon.com/fdd/ ピーター・コード、エリック・レフェーブル、ジェフ・デ・ル ASD www.adaptivesd.com/learn.html ジム・ハイスミス * ASD:Adaptive Software Development * DSDM:Dynamic Systems Development Method * FDD:Feature-Driven Development * RAD:Rapid Application Development * XP:eXtreme Programming
********************************************************************************
5.アジャイルソフトウェア開発宣言(Manifesto for Agile Software Development)
******************************************************************************** アジャイルソフトウェア開発宣言 2001年アメリカ合衆国のユタ州のスノーバードに アジャイルソフトウェア開発を提唱する17人が集まり、 それぞれ別個に提唱していた開発手法の重要な部分を統合することについて議論した。 そして、彼らは「アジャイルソフトウェア開発宣言」(Manifesto for Agile Software Development)という文書にまとめた。 アジャイルソフトウェア開発宣言は、アジャイルソフトウェア開発とその諸原則を公式に定義した文書となる。 アジャイルソフトウェア開発の価値     ・プロセスやツールより人と人同士の相互作用を重視する。 ・包括的なドキュメントより動作するソフトウェアを重視する。 ・契約上の交渉よりも顧客との協調を重視する。 ・計画に従うことよりも変化に対応することを重視する。 アジャイルソフトウェア開発の原則 ・最も重要なことは顧客を満足させること。早く、そして継続的に、価値のあるソフトウェアをリリースする。 ・開発の終盤においても要求の変更を受け入れる。アジャイルプロセスは顧客の競争力を優位にするための道具である。 ・数週間、数ヶ月の単位で頻繁に実用的なソフトウェアをリリースする。タイムスケールは短い方がよい。 ・プロジェクトの間中、毎日、顧客と開発者は一緒に働くべきである。 ・やる気のある人を中心にプロジェクトを構築する。環境と必要なサポートを与え、彼らが仕事を成し遂げると信じること。 ・開発チーム内で情報伝達を行う効果的で有効な方法は、Face to Faceによる会話である。 ・進捗を測るには、動くソフトウェアが一番である。 ・アジャイルプロセスは、継続的な開発を促進する。スポンサー、開発者そしてユーザは一定のペースを保つようになる。     ・優れた技術と良い設計に絶えず目を配ることで、機敏になる。 ・単純性--最大限に仕事を行わないことは極めて重要である。 ・最良のアーキテクチャは自己最適化されたチームから現れる。 ・定期的な間隔で、チームにもっとも効果的な方法を反映することで、調律・調整に従うようになる。    
********************************************************************************
6.その他
********************************************************************************
なお、要件定義、スケージュール作成、全体のアキテクチャー設計を十分に行い、 プログラムを開発する局面に反復型開発を採用するという意見もあります。

11-06-06 店週間発注プログラム
このプログラムは、あるスーパーの特定の商品の発注を行うものです。
小売店における商品の発注は、毎日発注を行い、毎回翌日に商品が店舗に到着するとだけというほど単純ではありません。

市場や商品を生産する工場の定休日やイレギュラーな休日や、さらに小売店舗の休日を考慮する必要があります。

このプログラムは、このため...

(1)お取引先・曜日ごとに発注日とリードタイムを設定
(2)お取引先と日付で休日の設定。お取引先のイレギュラーな休日の対応。
(3)店休日の設定
(4)店舗は、一週間の範囲で、先日付の発注数のインプット

ができるようになっています。

サンプル画面の表示 

11-06-01 POSデータ検索プログラムaaa
このプログラムは、ある書店チェーンのPOSデータ検索を行うものです。
この書店では、店舗数が60を超え、活動している単品数は600万件を超えています。

当初は、商品分類単位に単品の販売状況を表示するだけでしたaaaa。

その後、いろいろな条件を入れて、検索結果を表示するようにしました。
また、画面に発注数をインプットできるようにしました。

現在は、業務の切り口から表示する単品を絞るようにして、業務に結びついた単品管理ができるように、プログラムは進化しています。

サンプル画面の表示

なお、サンプル画面は、代表的な画面を2つサンプルとして表示しています。画面からのリンクはすべて、この2つの画面になっています。
 

11-03-30 レジ精算プログラム
このプログラムは、あるスーパーのPOSレジの精算業務を行うものです。
このスーパーでは、店舗数150店舗、POSレジ台数がおおよそ2,000台です。
単に、個々のPOSレジの精算業務を行い、POSレジの現金管理を行うだけでなく、
店舗の現金の有高のすべて管理を行います。

1.業務
POSレジの開店前釣銭の登録、点検・精算データの登録、紙幣の回収、過不足の管理。
さらに、小口現金の入出力、銀行への入金業務。

2.システム構成
データとプログラムは、一台のIAサーバーに格納。予備サーバー機一台がスタンド・バイ。
店は、ブラウザ(IE)を使い、イントラ・ネット経由でデータの表示とインプット。

3.特徴
全店・全レジの精算データがデータベース化され、店と本部で情報共有。
精算の終わった過去データは、そのまま経理データとして利用。
低い投資コスト。
早い応答時間。

4.サンプル画面
20をこえる画面の内から2つの画面をサンプルとして見ることができます。

サンプル画面の表示
 

10-10-11 WebEDI
WebEdi(ウエブ・イーディアイ)は、小売業の業務革新を実現するための
最新のIT技術を採用した一つです。

小売業から仕入先への商品の発注、仕入先の小売業からの商品の受注である
この受発注業務は、小売業の根幹となる業務です。
ここでは、EOSと呼ばれるシステムが広く採用されています。
しかし、EOSでは、データ処理がファイル単位の所謂バッチ処理のため、
決まった時刻に、精々一日あたり一回くらいしか小売業から仕入先への商品
の発注が行はれるにすぎません。
しかも、小売業、仕入先の双方に、かなりの規模のコンピューター・システム
の装備が必要となっています。プログラムの開発や運用の要員も必要です。
かなりの工数をかけ行っている商品マスターの登録・更新も、正しく、タイムリー
に行うことも課題となっています。

更に、今日では、仕入先、商品部、店舗の情報共有を進め、業務全体の質の向上が
戦略的に必要になってきています。

WebEdiは、この受発注のプロセスにインターネットとデータベースを適用する
ことにより、速く、ローコスト、機動力のある、透明性の高い受発注オペレーションを
実現するものです。

1999年 WebEDIに開眼。

2001年 最初、Linuxで、apache、Postgres、PHP環境でプログラムを作成

2003年 Linux、apache、MySql、PHP環境でプログラム。

2008年 機能強化。再設計。Linux、apache、MySql、PHP環境でプログラム。

2008年 日本で開発されたスクリプト言語Rubyで試作。

    デモ・プログラムの実行

    このプログラムはその後、本番使用向けに、手を入れた。

2010年 さらに、次の構想。 

10-04-19 CMSについて
CMS(Contents management System)とは、Webサイトのコンテンツを一元的に保存・管理し、サイトを構築したり編集したりするソフトウェアのこと。または、このソフトウェアを使い、広義には、Webサイトのコンテンツの管理を行なうシステムをいう。

 Webサイトのコンテンツは、テキストや画像である。サイト内では、このコンテンツをサイト内に押入れに放り込んでおくのでなく、分かりやすく取り出さされるようにしておく必要があり、また統一されたレイアウトや装飾が望まれる。CMSのソフトウェアは、データベースを使い、個々のコンテンツの保管、ページ間を行き来するナビゲーションの仕組みを維持を行い、テキストや画像の表示において統一されたレイアウトや装飾を付加する。

 いわゆる「ブログ・サイト」では、本文をブラウザ画面に打ち込むだけで、あとはサイトのブログ・ソフトが表示のレイアウトや装飾をし、またナビゲーションの仕組みを提供する。これにより個人の日記などを、簡便な方法で作成し、公開することができるようになっている。

 このBLOGサイトで使用されているソフトが、機能強化されて企業や組織のWebサイトにCMSソフトとして適用できるようになったきた。

最近では、多くの企業や組織のWebサイトが、CMSソフトを使い、最新の情報を迅速に提供するようになっている。 

10-03-17 MySQL
MySqlは、Webサーバーのバックエンドとして広く使われている、検索が速い有名なRDBプログラムです。
開発の中心は、フィンランドのMichael Widenlus(通称Monty)、スエーデンのDavid Axmark、Allan Larssond で、1995年にリリース。 自分の関わった導入は、

導入事例1

運用開始。2003年5月、使用リリース 3.23.49-3 。 アプリケーションは、小売業のPOSデータの検索用データベース。 検索用単品データベースは、950万行。 その後、アプリケーションは、発注インプットや、仕入データ等のインプットと拡大。 最近の出来事 5年近く、毎晩動いていたバッチ処理の一つが異常。 あるバッチ・プログラム(perl)で、データベースをconnectすると、普段は、うまくいくのに、この時は、connectが出来ず、エラーメッセジ 「Can't connect to local MySQL server」 が出た。翌日、同じプログラムをリランしたら、正常に処理を実行した。数日して、またこの異常が出た。原因が分からず。 ただ、 (1)このバッチ処理の前に実行しているバッチ処理(perl)でも、このバッチ処理と同じテーブルを更新しており、その処理時間は数十分かかっていた。つまり、テーブルがこの間「lock」されていた。 (2)夜間にかかわらず、データベースの検索プログラム(php)は実行可能。 (3)データベースの検索プログラム(php)で、検索するテーブルが「lock」されている場合、IEで、検索を中止するか、再呼込みを行うと、「query」がmysqlの処理要求待ちに残ったままで、再呼込を行うごとに、処理要求待ちの「query」が増えていく。 (4)mysqlのmax_connectionsは、defaultの100のままである。(3)の状態では、すぐ100になりそうに見える。 「Can't connect to local MySQL server」の発生理由ははっきりしなかったが、(4)が発生する可能性があるので、対策を考えた。 データベースにconnectするperl文は $db = DBI->connect('DBI:mysql:mydatabase:localhost','user','pw'); です。 この後に、connectができたものとして、処理に必要なsql文等を単純に書いていました。 connect文は最初に書き、普通はうまくいきます。また、バッチ処理をできるだけ単純にしたいとの思いもありました。 しかし、connectできなかった場合は、$dbがnullとなるので、少しsleepしてから、再度connect文を実行するようにしました。

導入事例2

運用開始。2004年12月、使用リリース 3.23.49-3 。 アプリケーションは、小売業のレジ精算。 その後、アプリケーションは、店舗のもろもろデータのインプットと拡大。

10-03-05 自分のtheme
ネットから theme Children をダウンロードして、ヘッダー部分をdefaultのheader.jpgを利用したものと交換して、
自分のthemeを仕立てました。あとは、サイドバー部分をいろいろと工夫してみたいと思います。

2010/03/5 

10-03-04 WordPress テスト運用の開始
WordPress運用を2010/02/24に開始しました。

インストールは、始めうまくいきませんでした。

その理由は、
1.ディレクトリーの属性指定が不十分だった。
  wpの入っているディレクトリーを755でなく、
  766にしていた。

2.日本語の使用についての迷いがあった
  サーバーでは、すべてeucのため、wpのphpソースを
  eucに変換してあげたが、生成されるhtmlでcharsetがあ
  UTF-8であり、画面の文字が化けてしまった。

2010/02/24 

10-02-27 WordCampFukuoka 2010
福岡市で初めての WordCamp「WordCamp Fukuoka 2010」が 2010/02/27 に開催されました。
WordCampは、WordPressをきっかけにウェブに関するさまざまな人々が出会うイベントです。
WordPress (ワードプレス) は、現在ユーザー数が急上昇のオープンソースのブログ/CMS
プラットフォームです。phpスクリプットで書かれたプログラムで、GPLライセンスで
配布されます。
WordPressは、個人のブログサイトを立ち上げるだけでなく、企業サイト等を構築・再構築に
有用なツールです。
この時代の動き感じることの出来るイベントでした。


2010/02/27

copyright (c) itworks.co.jp All right reserved.