ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

アップル、今4‐6月期に新型iPhoneの生産開始へ=関係筋

2013-04-03 17:44:41 | ケータイ
それと、その記事によると

 また、これらの関係者は、アップルがアジアの製造提携先と今年後半にも発売を開始する予定のiPhoneの廉価版の開発を続けることも明らかにした。廉価版は4インチ(約10センチ)で大きさは同じだが、外側のケースなどに高級機種と異なるものを使うことになるとみられる。

だそうです。

アップル、今4‐6月期に新型iPhoneの生産開始へ=関係筋
http://headlines.yahoo.co.jp/hl?a=20130403-00000615-wsj-bus_all


(太字は上記記事より引用)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

全体計画と、個別の作業

2013-04-03 14:04:19 | Weblog

チケット駆動開発で作業管理はしないほうがいい
http://arclamp.hatenablog.com/entry/2013/04/02/222549

たしかに、作業内容は、
  全体的な計画:作業間の関係や全体の状況が判るもの
  個別作業の状況:現状の作業内容、進捗状況、今後の作業、課題がわかる
の2種類が必要で、

全体的な計画がわかるには、WBSが優れ、
WBSの最下層(ワークパッケージ)に対して、チケットを作っていくべきかもしれない
(このとき、ワークパッケージは、成果物かアクティビティかの問題はあるが、
 成果物の場合は、「成果物を作るアクティビティ」と捉えればいいかもしれない)

ただ、WBSに細かい状況を書くことはできないので、
その辺の管理として、チケット(に相当するもの)は、いると思う
逆にWBSは、必ず必要か?というと、
全体的な計画=個別作業の組み合わせのような場合
(日本語対応、追加修正、バグ修正など)
はいらないかもしれない。
ウォーターフォールで新規開発のようなときには、必要そうですね

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

進捗率を計算する際の主義主張(SQLとPHP)

2013-04-03 12:21:06 | PHP
SQLで何でもやる派と、
DBは、できるだけ簡単に取ってきて、プログラムでがんばる派
と2通りがある。どちらも主義主張がある。

といっても、良くわからないと思うので、実例で説明する。




■進捗の例:御題

以下のテーブルがある

つまり、shinchokuというテーブルがあり、カラムはid,group_id,doneよりなる。
このうち、doneが1のものは手続き済み、0のものは手続きしていないとしたとき、
各グループで、手続き完了している人の割合(doneが1の人/グループ全体の人)
を求めたい。

という御題。ま、同じようなことで進捗率なども見れる。




■SQLで何でもやる

基本的に、このようなものは、数を求めたいのでcountを使う。
countは列名を指定した場合、NULLは数えない。そこで

shinchokuテーブルをAという名前にして、Aテーブルには全部を出す
shinchokuテーブルをBという名前にして、Bテーブルには手続き完了の人を出す。

これを、Aテーブルに対してLEFT JOIN Bテーブル
(a.id=bidとする)すると・・・
上記の例だと、こんなかんじになる。

Bテーブルには、手続きが終わっていない人(done=0)は含まれないので、
AテーブルとLEFT JOINすると、そのような人のBテーブルの
内容はNULLになる。

そこで、
  AテーブルのIDを数えると(count)すると、全部
  BテーブルのIDを数えると(count)すると、手続き完了の人

となる。あとは、グループごとに集計すればいい

結果として、以下のSQL
SELECT A.group_id,count(B.id).conut(A.id)
  FROM shinchoku AS A
  LEFT JOIN shinchoku AS B ON A.id=B.id AND B.done=1
  GROUP BY A.group_id

となる。実行するとこんなかんじ




■プログラムでがんばる

SQLで全データをとってきて、総数と手続き完了の人の配列を求め
レコードごとに、
  総数の配列の該当グループに1を足す
完了のレコードが出てきたら
  完了の配列の該当グループに1を足す

そうすると、各グループごとに総数と手続き完了の人の数が、配列に入ってくる
んで、それを表示

PHPだと、こんなかんじ。なお、ユーザー名はroot,パスワードはなく
データベース名はtestである。


<?php
$host = "localhost";
$user = "root";
$database = "test";

//==============================//
// データベース接続 //
//==============================//
$con = mysql_connect($host, $user)
or die("データベースとの接続に失敗しました");
mysql_select_db($database)
or die("データベースの選択に失敗しました");

mysql_query("SET NAMES utf8");


//==============================//
// データ読み込み //
//==============================//
$query = "select * from shinchoku";
$result = mysql_query($query);
mysql_close($con);


//==============================//
// 集計 //
//==============================//
$sosu = array();
$done = array();

while ($row = mysql_fetch_assoc($result))
{
// グループが始めて出てきたとき
$group_id = $row['group_id'];
if ( isset($sosu[$group_id]) == false )
{
$sosu[$group_id] = 0;
$done[$group_id] = 0;
}

// 全体数の集計
$sosu[$group_id]++;

// 終わった人の集計
if ($row['done'] == 1 )
{
$done[$group_id]++;
}
}

//==============================//
// 表示 //
//==============================//
foreach ($sosu as $key => $value)
{
print($key . ":" . $done[$key] . "," . $value ."<BR/>");
}

?>






■違いは・・・

いろんな主義主張はあるだろう。
ここでは議論しない。

しかし、向き不向きがあって、
はじめのSQLでがんばる派は、JOINが遅いと、厳しくなってくる。
5個か6個のテーブルをJOINすると、結構大変になってくるんじゃないかな・・

後者は、その点SQLは、単純なんだけど、プログラムが長くなり、
大変そうに「見える」(実は中身は簡単なんだけど)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PressmanのSoftware Engineeringを超訳ななめ読み その4-プロセスモデル

2013-04-03 09:15:35 | トピックス
みんなから、無慈悲な稲妻を受けないために、
大事そうなところを、超訳&ななめ読みしている

PressmanのSoftware Engineeringを超訳ななめ読みする

前回、第3章をやったので
今回は、次に面白そうな2章




■第二章 プロセスモデル

まず、
「2.1 一般的なプロセスモデル」
 で、一般的なプロセスモデルとして、5つのアクティビティをあげている
  1.コミュニケーション
  2.プランニング
  3.モデリング
  4.構築
  5.デプロイ
そして
「2.1.1 フレームワークのアクティビティの定義」
「2.1.2 タスクセットの識別」
「2.1.3 プロセスパターン」
 でアクティビティを説明している




■2.2 アセスメントと改善のプロセス

 ここでプロセス改善の話として
  SCAMPI SEI CMMIを使ったアセスメント
  CBA IPI CMMをベース
  SPICE(ISO/IEC15504)
  ISO 9001:2000 for software

 を紹介している




■2.3 規範的なプロセスモデル
 ここで「規範的な w」プロセスモデルを紹介している。こんなかんじ

 2.3.1 ウォーターフォール モデル
 2.3.2 インクリメンタル プロセスモデル
 2.3.3 進化的プロセスモデル
   プロトタイピング
   スパイラルモデル

 2.3.4 コンカレントモデル
 2.3.5 進化型プロセスモデルのファイナルアンサー
  (とは書いていないで、ファイナルワードとなっているが・・)




■2.4 専門的なプロセスモデル

 2.4.1 コンポーネントベース開発
 2.4.2 形式仕様モデル
 2.4.3 アスペクト指向ソフトウェア開発




■2.5 統一プロセス(UP)

 2.5.1 ちょっとした歴史
 2.5.2 統一プロセスのフェーズ




■2.6 PSPとTSP(って表題じゃないけど、これがふつう)

 2.6.1 PSP:パーソナルソフトウェアプロセス
 2.6.2 TSP:チームソフトウェアプロセス




■2.7 プロセス技術
 2.8 製品とプロセス
 2.9 まとめ
 



って、こんなかんじ。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする