软件开辟工期估算系列5
「見積もり」は、ソフトウェア開発における大きなテーマであり、ソフトウェア工学における最重要課題の1つでもあります。
今回お届けしている“見積もり・シリーズ”では、「見積もりの目的(正確に見積もるだけでは不十分)」「見積もりの具体的な方法(精度を上げるため、少なくとも、2つ以上の方法で見積もる必要がある)」「見積もりの応用(見積もり値に合わせる制御と再見積もり)」「見積もりの調整(状況に応じて開発量とスケジュールを再見積もりしなければならない)」について、具体的に解説していきます。
見積もり技法は「類推法」「積み上げ法」「パラメトリックス法」の3つに分類することができます。前回、“勘・経験・度胸”のいわゆる「KKD」による類推法を解説しましたので、今回から世界のソフトウェア開発プロジェクトで最も頻繁に使われている積み上げ法による見積もりを紹介していきます。
積み上げ法類推法は過去の経験を基に全体を一挙に見積もる方法ですが、今回から紹介する積み上げ法は、“部分”や“機能”に分解してそれぞれを見積もり、合計を出す方式です。類推法は“トップダウン式”、積み上げ法は“ボトムアップ方式”といえます。
例えば、新しく会社を創設する際、社員が何人必要かを見積もるとします。類推法では、同業他社の社員数をベースに、自社固有の事情を加味して、必要人員数を類推します。一方、積み上げ法では、会社組織を「人事部」「経理部」「営業部」「第1開発部」「第2開発部」「品質保証部」に分割し、さらに第1開発部を「エンジン設計課」「ボディ設計課」「電気系統設計課」「油圧系統設計課」に分け、エンジン設計課をさらに細分化して必要人員数を決める方式です。
積み上げ法による規模見積もりの王様と女王様が、「LOC(ofCode)見積もり」と「FP()見積もり」です。
LOC見積もりLOC見積もりは、開発対象のソフトウェアの規模をソースコードの行数(LOC)で見積もる方式です。見積もりの“王様”であり、恐らく人類初の見積もり法がこれでしょう。LOC見積もりは、以下の手順で進めます。
開発するソフトウェアを通常の設計時と同じ方法で機能の分解や詳細化を進め、小さいモジュールに分割(通常は、3、4段階まで詳細化する)各モジュールのステップ数を合計その総LOC(あるいは、KLOC=KiloLineOfCode)を一人当たりの生産性(例えば、ステップ数/月)で割り算して人月を計算し、コスト・必要人数を出す例えば、ソースコード行数がプロジェクトの平均生産性が/月(注1)、1人月が98万円とすると、開発コストは以下のようになります。
/×98万円=約1億840万円
このように、LOC見積もりは通常の設計と同じ方法でアプローチするため、誰にでも能够で、特別な見積もり技術は不要です。また、見積もり値の単位(ステップ数)が明確なので、分かりやすくてカウントも簡単です。それ故、説得力もあります。ステップ・カウント用のツ-ルを使えば、自動計算できますし、工程管理ともよくなじみますので、例えば「5日遅れ」などを簡単に計算することが能够です。どんなに手抜きし放題のいいかげんなプロジェクトでも、さすがにソフトウェアのソースコード行数は計測しています。こうした来由から、LOCは「見積もり技法の王様」といわれるようになったのでしょう。
※注1:ソフトウェアの生産性は、過去40年、“1人1カ月1000ステップ前後”であり、ほとんど進化していませんし、今後も大きく変わることはないでしょう。これはなぜかソフトウェア開発は、通常の工業製品を作るというより、小説を書く作業に近いためだと筆者は考えます。2007年は、紫式部が世界初の長編恋愛小説「源氏物語」を書いた千年紀でしたが、原稿用紙2500枚にも及ぶこの源氏物語を紫式部が1日10枚ずつ書いたとして、完成まで250日かかることになります。同じ内容のものを1000年たった現代の恋愛小説の名手、例えば、林真理子や山田詠美が書いたとしても恐らく同じ日数がかかると筆者は思います。LOC見積もりの課題世界中のソフトウェア開発プロジェクトで大人気のLOC見積もりですが、実は以下のような大きな欠点や課題があります。
何を・どのように、ソースコードとして数えるかで行数に5倍の違いが出るカウントが主観的であり、サバを読む余地が多い開発ライフサイクルの初期に予測するのが困難「見積もり」と「実績」のズレが大きい使用するプログラミング言語を意識する必要がある以下、それぞれの課題を詳細に見ていきましょう。
1.何を・どのように、ソースコードとして数えるかで行数に5倍の違いが出る単に、ソースコード行数のカウントといっても、“流儀”によって5倍の差が出ます。例えば、以下を考えてください。
コメント行、空行、ヘッダ行の扱いは1行に複数命令を記述した場合のカウントは複数行で1命令を記述した場合のカウントはいろいろな流儀がありますが、最も多いのは以下のカウント法だと思われます。
コメント行、空行は含まないヘッダ行は展開してカウントするステートメントが複数行にわたっても1行と見なす1行に複数命令を記述しても1行と見なすどんなカウント法を採用するにしても、同じ組織の中、少なくとも、同じプロジェクトの中では、カウント規則を統一しなければなりません。すなわち、同じステップ・カウントツールを使う必要があります(注2)。
余談ですが、ISO(国際標準機構)では、ソフトウェアの規模を測定する尺度を「規模尺度法」として標準化していますが、LOCは、値が一意に決まらないので規模尺度法の要件を満たしていません。一方、LOCの永遠のライバルであるFPはそれを満足しているため、この点がLOCに比べて使用者の数で圧倒的に少ないFPの大きな自慢ポイントです。
※注2:ソフトウェアの生産性を測定する場合、「1カ月(あるいは、1年)で何ステップをコーディングできるか」で表す場合がほとんどですが、何をソースコードに算入しているのかを十分認識している必要があります。A社の「1884ステップ/月」と、B社の「1017ステップ/月」を単純に比較できません。2.カウントが主観的であり、サバを読む余地が多い例えば、「データベース初期化処理モジュール」のステップ数を、Aさんは80ステップと見積もり、Bさんは300ステップと見積もるなど、人によって大きな差があります。この差が、積もり積もって規模が数倍にも違ってきます。
これは、プロジェクトの中だけの問題にとどまりません。お金を払う発注側も、「なぜ、たかだかデータ受信バッファの初期設定に300ステップも掛かるのか」と信用しない能够性が大で、「開発量を水増しするため、サバを読んでいるのでは」との不信感につながりかねません。LOC見積もりでは、カウントの根拠になった数値やデータをきちんと提示できないのがツラいところです(提示しても、信用してくれない)。
一方、ライバルのFPは、客観的な根拠を示すことができ、誰がカウントしても同じ数値が出ます(というより、それを目指しているように思います)。
3.開発ライフサイクルの初期に予測するのが困難規模見積もりにより、プロジェクトに何人の技術者が必要かが分かりますが、この時期はまだ要求仕様定義の段階であり、開発ライフサイクルの初期です。当然、処理方式、データ構造、アルゴリズムが見えていません。そんな状態ではソースコード行数を正確に見積もることは不能够で、見積もり精度が低い最大の来由がこれです。桁違いの見積もりミスを起こす能够性が高く、細心の注意が必要です。
LOCによる規模見積もりは、幻想をいえば「バージョン2」以降、すなわち、新規開発が終了して処理方式やデータ構造が完全に固まり、マイナーな機能を追加するフェーズ以降で適用すべきでしょう。新規開発の見積もりで適用する場合は、他の見積もり手法、例えば、類推法と併用する必要があります。
4.「見積もり」と「実績」のズレが大きい上記の「3.開発ライフサイクルの初期に予測するのが困難」と関連した課題がこれで、±64%の差異があるといわれています。見積もりの場合、厳しい方にズレる見積もりミス(例えば、と見積もったが、実際はだった)は、狭義の観点では見積もりミスと見なしません。楽観的な見積もりミスが、「本当の見積もりミス」で、絶対に避けねばなりません。
楽観的な見積もりミスの怖さは、プロジェクト管理者なら誰でも認識していますので、勢い、多めに見積もって「保険を掛ける」ことになりますが、LOC見積もりの場合、その保険分をはるかに上回る壮大な見積もりミスが発生します。繰り返しになりますが、致命的な見積もりミスをなくすため、必ず、絶対に、何が何でも、死んだ気になって、他の見積もり手法を併用すべきです。
5.使用するプログラミング言語を意識する必要がある当たり前ですが、ソースコードの行数をカウントする場合、具体的なプログラミング言語を想定します。アセンブリ言語と高級言語では、総行数は数倍の差が出ます。プログラミング言語の違いによって、生産性の数字を異なりますし、他のプロジェクトの数値をそのまま参考にできなくなりますので、注意が必要です。
LOC見積もりは、単純明快な技法なので、課題や欠点を認識しながら上手く使えば大きな効果を出せます。次回は、規模見積もり法の女王様「FP見積もり」について解説します。(次回に続く)
【下载地址】
1.下载时迅雷软件如提示‘任务错误,未知错误,敏感资源,违规内容,版权等等’都是迅雷屏蔽资源的表现,和6v无关。请仔细浏览下载帮助,依旧可以正常下载。
2.迅雷对资源的屏蔽越来越严重,推荐大家使用BT类软件或各种网盘离线。
3.本站所有资源没有不良广告,请大家放心下载。
本站所有电影完全免费,推荐使用迅雷下载,下载的人越多下载速度越快,把资源分享给您的朋友可以大大提高下载速度。
匿名 发表于 2023-10-24 20:56:36 | |
热门电影电视剧
- 叶梦舒叶罗丽全书免费阅读
- 高分求日本或非日动漫电影!类似苹果核战记,宫崎俊全集之类,不要动画片的剧场版!
- 跪求此本出处
- 鬼神童子动画,动画大全
- 叶罗丽24|勇敢的叶罗丽战士
- 刺客伍六七漫画白其表现超强,四种武器配合,飞龙被重创
- 儿童谜语大全全集2031个
- 动画片天行九歌百度网盘全了,终于找到了啊!网盘资源吧
- 一人之下免费,阅读全集,全集图片,在线读
- 催眠邪恶少女小说大全
- 动漫大全app免费版下载
- 二年级读书笔记10篇(精选3篇),二年级读书笔记10篇短的
- 养宠物对战的手游推荐
- 葫芦兄弟七子降妖破解版下载
- 才艺表演活动方案精选7篇
- 动漫头文字D国语版全集下载地址
- 小马宝莉评析重置篇·星光书记序
- 公主准则CrownHandler动漫
- 妃夕妍雪男主宠幸过别人吗
- 彩虹小马中的女王有几位,你了解吗
最新电影下载
- 这些豆瓣评分9.0以上的国产动画让老外都苦求英文字幕
- 动漫中的未解之谜,你最好奇哪一个
- 古代有声小说全集目录
- 火爆全球的LittleFox英语分级动画1
- 小马宝莉第九季全集资源
- 春夏秋冬古诗各四首名句
- 读空城计有感400字
- 公主准则CrownHandler动漫
- 有哪些我们从未见过的稀有图片
- 蚩肆的推荐LOFTER乐乎
- 儿童睡前小故事少女玛琳
- 吉尔莫·德尔·托罗的匹诺曹
- 熊熊乐园全集第11集
- 迪斯尼的公主动画都有哪些(迪士尼公主动画片大全电影)
- 公司起名大全2021最新版的
- 给大家分享一下我收藏中国水墨动画全集
- 中国华能集团公司建体系夯基础促融合抓重大全面推进风险管理体系建设
- 姐妹兄弟第42集分集剧情
- 光战士的信物
- 假装不是小黄图西方美术里为啥有这么多裸女画
最新电视剧下载
- 小马宝莉皇家婚礼(小马宝莉当小马穿上婚纱裙,宇宙公主很唯美,月亮公主倾国倾城)
- 儿童益智动画片半斤八两全28集无对白高清MP41.62GB动画片半斤八两全集下载
- 妃良无常漫画
- 敢爱电视剧全集21
- 永恒的祈祷
- 变形金刚拂晓的历程
- 高中女生漫画下拉式,免费看,观看全集,在线看
- 古风好听的动漫男主名字
- 一拳超人职业漫画家被怀疑是本子画家画风太接近,互相竞争食戟之灵佐伯俊田雄介
- 花季美少女余苡然漫画改变人生,身在威斯康星推介国漫
- 朝日奈绘麻简介
- 儿歌动画
- 饮食文化礼仪四格漫画图片高清大全(饮食文化礼仪四格漫画图片高清大全集)
- 宠幺幺乐园熊孩子闯祸了,被爸爸打屁屁!
- 儿童动画儿童科普百科动画片阿u学科学全32集下载mp4高清720美妈联盟吧
- 公司名字大全,好听的公司名字(讲解)
- 熊出没熊二最强悍的4种变身,超人形态虐得光头强没脾气!
- 关于爱我的姐姐的作文四篇
- 短小的十个民间故事大全集
- 国王游戏哪一集牛了