アプリケーションプログラムの規模を見積もるための基となる情報として, 最も適切なものはどれか。
平成23年度 特別試験 ITパスポート試験 問52
这道题的解析和你的作答记录。
問 52
- ア
正解 正确答案是ア。估算是有顺序的:先估算 规模(要编写的程序会有多大的量),再用生产率去除它得到 工作量(人月),然后根据可投入的人员数推导出 周期 和 费用。因此,规模估算所依据的信息必须处在这条链条的最前端,也就是在还没有写一行程序的需求定义或外部设计阶段就能数得出来的、从用户角度看得见的外形规格的量。画面数量与报表数量正是其代表:只要确定了用户要输入多少种数据、要接收多少种输出,需要编写的处理大致有多少量也就随之确定了。把这一思路体系化的方法,就是 glossary 中也列出的 功能点法(FP 法)。FP 法把系统的用户功能分为 外部输入(通过画面等进行的数据登记与更新)、外部输出(报表或汇总结果的输出)、外部查询(检索与查询画面)、内部逻辑文件(系统内部保存的数据集合)、外部接口文件(与其他系统之间交换的数据)5 类,分别数出各自的个数,按复杂度加权后合计,从而得到称为功能点值的规模指标。画面对应外部输入和外部查询,报表对应外部输出,所以画面数量与报表数量正是这一计数的直接素材。用源代码行数表示规模的 LOC 法必须等设计与实现实际推进之后才能给出置信度较高的数值;与之相比,FP 法仅凭上游工序的规格书就能计数,而且是不受开发语言和承担人员影响的客观尺度,这是它的优点。因此ア正确。
错误イ
系统开发周期,是把根据规模求出的工作量再除以可投入人员数而得到的进度上的结果,是在规模之后才确定的量。把它作为规模估算的依据,因果关系正好颠倒了。此外,实务中也会因为交期的缘故先给定周期,但那种情况下的周期是约束条件,并不是表示要编写的程序量本身的信息。即便同样是 6 个月的周期,只要增加投入的人员数,能够完成的量就会不同,因此仅凭周期无法确定程序的规模。
错误ウ
系统开发工作量是按 规模 ÷ 生产率 计算出来的、由规模推导出的下游量。为了得出想要求取的规模值,却要把没有规模就算不出来的工作量当作输入来使用,逻辑上就形成了循环。而且工作量的单位是人月、人日这样的作业量单位,并不直接表示画面或报表这类交付物的量。工作量是承接规模估算的结果之后才去计算的对象,而不是作为依据的信息。
错误エ
程序员的经验年数,是影响「每单位工作量能完成多少」这一生产率的因素,属于在把规模换算为工作量的阶段才应当考虑的信息。应该编写的程序量本身,是由要实现的需求决定的,并不会因为由谁承担而增减。无论是由经验丰富的人员来做,还是由新人来做,只要规格相同,画面数量与报表数量就不变,规模也相同;改变的是完成所需的工作量与周期。因此它不属于规模估算所依据的信息。
- 估算的顺序 —— 按 规模(要编写的程序量)→ 工作量(规模 ÷ 生产率)→ 周期与费用 的顺序推导。因此,规模估算所依据的是在还没有代码的上游工序也能数出来的外形规格量(画面数量、报表数量等),而工作量与周期是由规模推导出来的、处于结果一侧的量。不把这个方向弄反,正是本题的核心。
- 功能点法(FP 法)—— 把用户功能分为 外部输入、外部输出、外部查询、内部逻辑文件、外部接口文件 5 类,数出个数并按复杂度加权合计,从而算出规模的方法。由于可以从画面和报表的数量进行估算,所以在需求定义阶段就能使用,而且不受开发语言和承担人员技术水平的影响。要与必须等设计之后置信度才会提高的、基于源代码行数的 LOC 法对比记忆。