{"text_format":"2","workbook":"xlsx","n_sheets":10,"sheets":["核算结果","TCF","FPs","ILFs","EIFs","EIs","EOs","EQs","功能点规模计算明细","名词与计算规则"],"not_rendered":{"charts":0,"images":6,"macros":0,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"核算结果","index":0,"n_rows":15,"n_cols":3,"rows_kept":15,"cut":false,"hidden":false,"merged":[[0,0,0,2],[1,1,1,2],[2,1,2,2],[3,1,3,2],[4,1,4,2],[5,1,5,2],[6,1,6,2]]}
["核算结果"]
["项目信息","{projectDesc}"]
["客户名称","{customerName}"]
["项目名称","{projectName}"]
["项目编号","{projectCode}"]
["统计人","{calculateUser}"]
["日期","{calculateDate}"]
["参数","值","备注"]
["未调整功能点计数(UFC)"," {ufc}","FPs表中获取"]
["技术复杂度因子(TCF)"," {tcf}","TCF表中获取"]
["调整后功能点计数(AFP)"," {afp}","自动计算: (UFC*TCF)"]
["项目生产率 (PE)"," {pe}","项目生产率：工时/功能点"]
["项目所需工时"," {workTime}","自动计算: (AFP*PE)（单位：人天）"]
["工时价格"," {workPrice}","价格/工时（单位：元/人天）"]
["项目成本"," {projectCost}","成本"]

{"sheet":"TCF","index":1,"n_rows":19,"n_cols":4,"rows_kept":19,"cut":false,"hidden":false,"merged":[[0,0,0,3],[1,0,1,3],[2,0,2,1],[17,0,17,1],[18,0,18,1]]}
["技术复杂度因子（TCF)"]
["说明：\n一、影响程度分为0-5个档位，其中：0 毫无影响 ∙1 偶然影响 ∙2 偏下影响 ∙3 一般影响 ∙4 重大影响 ∙5 强烈影响\n二、功能点调整系数（Value Adjustment Factor, VAF）=（TDI×0.01）+0.65。"]
["通用特性",null,"影响度\n(0-5)","描述"]
[1,"数据通讯","{dataComm}","多少个通信设施在应用或系统之间辅助传输和交换信息？"]
[2,"分布式数据处理","{dataHandle}","分布的数据和过程函数如何处理？"]
[3,"性能","{behavior}","用户要求相应时间或者吞吐量吗？"]
[4,"资源需求","{loads}","应用运行在硬件平台工作强度如何？"]
[5,"事务频率","{things}","事务执行的频率（天、周、月）如何？"]
[6,"在线数据输入","{dataInput}","在线数据输入率是多少？"]
[7,"终端用户效率","{userRatio}","应用程序设计考虑到终端用户的效率吗？"]
[8,"在线升级","{lineUpdate}","多少内部逻辑文件被在线事务所更新"]
[9,"处理复杂度","{complex}","应用有很多的逻辑或数据处理吗？"]
[10,"可复用性","{multiplex}","被开发的应用要满足一个或者多个用户需要吗？"]
[11,"易安装性","{installs}","升级或者安装的难度如何？"]
[12,"易操作性","{operate}","启动、备份、恢复过程的效率和自动化程度如何？"]
[13,"跨平台性","{platform}","应用被设计、开发和支持被安装在多个组织的多个安装点（不同的安装点软硬件平台环境不同）吗？"]
[14,"可扩展性","{extend}","应用被设计、开发以适应变化吗？"]
["总影响度 (TDI)",null," {tdi}","自动计算，以上影响度"]
["调整后功能点计数(TCF)",null," {tcf}","自动计算 ((TDI*0.01)+0.65)"]

{"sheet":"FPs","index":2,"n_rows":5,"n_cols":6,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,5]]}
["未调整功能点计数(UFC)"]
["功能类型","功能复杂度","计数","权重","功能点数 (FPs) ","FP % "]
["{.fpType}","{.commplex}","{.num}","{.weights}","{.fps}","{.fp}"]
["未调整功能点计数总数",null,null,null,"{fpsCount}","{fpCount}"]
[{"$nulls":4},"=以上功能点数之和"]

{"sheet":"ILFs","index":3,"n_rows":5,"n_cols":8,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,1,0,7],[1,4,1,6],[4,0,4,1],[1,2,2,2],[1,3,2,3],[1,7,2,7],[1,0,2,1]]}
[null,"内部逻辑文件 (ILFs)"]
["文件列表",null,"DET个数","RET个数","复杂度",null,null,"备注"]
[{"$nulls":4},"低","中","高"]
["{.index}","{.fileName}","{.det}","{.ret}","{.di}","{.zhong}","{.gao}","{.remark}"]
["总计",null,null,null,"{diCount}","{zhongCount}","{gaoCount}"]

{"sheet":"EIFs","index":4,"n_rows":5,"n_cols":8,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,7],[1,4,1,6],[4,0,4,1],[1,2,2,2],[1,3,2,3],[1,7,2,7],[1,0,2,1]]}
["外部接口文件 (EIFs)"]
["文件列表",null,"DET个数","RET个数","复杂度",null,null,"备注"]
[{"$nulls":4},"低","中","高"]
["{.index}","{.fileName}","{.det}","{.ret}","{.di}","{.zhong}","{.gao}","{.remark}"]
["总计",null,null,null,"{diCount}","{zhongCount}","{gaoCount}"]

{"sheet":"EIs","index":5,"n_rows":5,"n_cols":8,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,7],[1,4,1,6],[4,0,4,1],[1,2,2,2],[1,3,2,3],[1,7,2,7],[1,0,2,1]]}
["外部输入 (EIs)"]
["输入列表",null,"DET个数","FTR个数","复杂度",null,null,"备注"]
[{"$nulls":4},"低","中","高"]
["{.index}","{.inputName}","{.det}","{.ftr}","{.di}","{.zhong}","{.gao}","{.remark}"]
["总计",null,null,null,"{diCount}","{zhongCount}","{gaoCount}"]

{"sheet":"EOs","index":6,"n_rows":5,"n_cols":8,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,7],[1,4,1,6],[4,0,4,1],[1,2,2,2],[1,3,2,3],[1,7,2,7],[1,0,2,1]]}
["外部输出 (EOs)"]
[" 输出列表",null,"DET个数","FTR个数","复杂度",null,null,"备注"]
[{"$nulls":4},"低","中","高"]
["{.index}","{.outputName}","{.det}","{.ftr}","{.di}","{.zhong}","{.gao}","{.remark}"]
["总计",null,null,null,"{diCount}","{zhongCount}","{gaoCount}"]

{"sheet":"EQs","index":7,"n_rows":5,"n_cols":12,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,11],[1,2,1,4],[1,5,1,7],[1,8,1,10],[1,11,2,11],[1,0,2,1]]}
["外部查询 (EQs)"]
["查询列表",null,"输入端",null,null,"输出端",null,null,"复杂度 ",null,null,"备注"]
[null,null,"DET个数","FTR个数","复杂度","DET个数","FTR个数","复杂度","低","中","高"]
["{.index}","{.seachName}","{.inputDet}","{.inputFtr}","{.inputFzd}","{.outputDet}","{.outputFtr}","{.outputFzd}","{.di}","{.zhong}","{.gao}","{remark}"]
[null,"总计",{"$nulls":6},"{diCount}","{zhongCount}","{gaoCount}"]

{"sheet":"功能点规模计算明细","index":8,"n_rows":5,"n_cols":23,"rows_kept":5,"cut":false,"hidden":false,"merged":[[0,0,0,22],[1,10,1,11],[1,12,1,13],[1,14,1,15],[1,16,1,17],[1,18,1,21],[4,0,4,8],[1,0,2,0],[1,1,2,1],[1,2,2,2],[1,3,2,3],[1,4,2,4],[1,5,2,5],[1,6,2,6],[1,7,2,7],[1,8,2,8],[1,9,2,9],[1,22,2,22]]}
["功能点规模计算明细"]
["序号","一级模块","二级模块","三级模块","功能点","功能点类型","类别","功能复杂度","权重","功能点数","ILF类别",null,"EIF类别",null,"EI类别",null,"EO类别",null,"EQ类别",null,null,null,"备注"]
[{"$nulls":10},"DET个数","RET个数","DET个数","RET个数","DET个数","FTR个数","DET个数","FTR个数","输入端DET个数","输入端FTR个数","输出端DET个数","输出端FTR个数"]
["{.indexNo}","{.firstLayer}","{.secondLayer}","{.thirdLayer}","{.fourthLayer}","{.ftype}","{.ftype}","{.commplex}","{.weights}","{.num}","{.ilfDet}","{.ilfRet}","{.eifDet}","{.eifRet}","{.eiDet}","{.eiFtr}","{.eoDet}","{.eoFtr}","{.eqImputDet}","{.eqImputFtr}","{.eqoutputDet}","{.eqoutputFtr}","{.remark}"]
["合计",{"$nulls":9},"{ilfDetCount}","{ilfRetCount}","{eifDetCount}","{eifRetCount}","{eiDetCount}","{eiFtrCount}","{eoDetCount}","{eoFtrCount}","{eqImputDetCount}","{eqImputFtrCount}","{eqoutputDetCount}","{eqoutputFtrCount}"]

{"sheet":"名词与计算规则","index":9,"n_rows":11,"n_cols":8,"rows_kept":11,"cut":false,"hidden":false,"merged":[[1,4,2,4],[4,4,5,4],[1,5,2,5],[1,6,2,6],[4,6,5,6],[1,7,2,7]]}
["序号","名词","释义","识别规则","功能点计算规则","计算提示与注意事项","复杂度矩阵","功能点复杂程度对应表"]
[1,"ILF","内部逻辑文件（ILF）,指的是一组用户可识别的在应用边界内且被维护的逻辑相关数据或者控制信息。ILF的主要目的是通过应用的一个或几个基本处理过程维护数据。","该组数据或控制信息是逻辑相关的且由用户定义。 \n该组数据在应用的边界之内且通过一个或几个基本处理过程来维护。 \n以上两条规则都须同时满足，才能算做ILF。","根据ILF和EIF的复杂度和贡献度来计算其功能点。 \nILF和EIF的复杂度和贡献度取决于以下两种类型元素的数量： \n数据元素类型 Date Element Types （DET） \n记录元素类型 Record Element Types （RET）\nDET计算规则:\n如果通过一个基本处理过程的执行在ILF维护或从ILF或EIF中返回一个特定的用户可识别的、非重复字段，那么每个这样的字段算一个DET \n当两个应用维护和/或查询相同的ILF/EIF，但是每个应用单独维护/查询相应的DET，只计算被每个应用使用的DET \n对于那些用户要求与其他的EIF/ILF建立关联的数据字段来说，每个这样的数据字段都应算一个DET\nRET计算规则:\n每个ILF或EIF得可选或必选子组算一个RET \n如果该ILF/EIF没有子组，那么就将该ILF/EIF算作一个RET","提示：\n一个应用可以在多个处理过程中用到同一个ILF/EIF，但是这个ILF/EIF只能被计算一次 \n在同一个应用中一个逻辑文件不能同时作为ILF和EIF来计算。如果一个数据集合同时满足ILF和EIF的识别规则，则当作ILF来计算。 \n如果一组数据没有被作为一个ILF/EIF来计算，则可计算为包含这组数据的ILF/EIF的DET \n不要假设一个物理文件、表或对象等于一个从用户视角可以识别的数据逻辑文件 \n不要假设所有的物理文件都必须被计算为一个ILF/EIF，或是ILF/EIF的一部分\n注意事项：\n以下数据不会作为ILF/EIF计算 \n临时文件或不同迭代阶段的同一文件 \n工作文件/排序文件 \n摘录或视图文件（在打印或显示前，从ILF/EIF中提取） \n由于技术原因引入的文件 \n可选索引、联合、关系或联接 \n审计数据或历史数据，他们和应用功能数据一起计算 \n除以上外，以下数据也不会作为ILF计算 \n同一文件的复本 \n用作企业备份和恢复的数据（系统的基本特征） \n包括不完整业务信息的中间数据 \n除以上外，以下数据也不会作为EIF计算 \n从另外系统接收的数据，用于应用中的一个或多个ILF(EI) \n由应用格式化后发给其他应用的数据 "]
[2,"EIF","外部接口文件（EIF），指的是一组在应用边界内被查询，但是在其它应用中被维护的、用户可识别的、逻辑相关数据或者控制信息。","EIF的识别规则：该组数据或控制信息是逻辑相关的且由用户定义。 \n该组数据处于被计数应用之外，且被该应用查询。 \n被计数的应用不对该组数据进行维护。 \n该组数据被其它的应用维护。 \n以上四条规则都须同时满足，才能算做EIF。"]
[3,"EI","外部输入 (EIs),指的是处理来自应用边界之外的数据或控制信息的基本处理过程。EI的主要目的是维护一个或多个ILF并且/或者改变系统的行为。","数据或控制信息从应用边界之外输入； \n如果穿过边界的数据不是改变系统行为的控制信息，那么至少应维护一个ILF； \n对于已识别的处理过程，至少满足下面三个条件之一 ： \n处理逻辑与该应用中其它EI所用的处理逻辑不同；\n该组已识别的数据元素不同于该应用中其它EI的数据元素；\n所涉及的ILF或EIF不同于该应用中其它EI所涉及的文件。","FTR计算规则：\n每个被维护的ILF算一个FTR \n每个在EI处理过程中读取的ILF或EIF算一个FTR \n由EI维护和读取的ILF只算一个FTR \nDET计算规则：\n完成EI的过程中，如果一个用户可识别的、非重复的字段穿越应用边界，那么该字段应算一个DET \n如果在EI过程中，系统取出或派生一个字段并且该字段存储在一个ILF之内且没有穿越应用边界，则无须计算DET \n如果应用能够发送一个系统响应信息（如：说明EI过程中发生错误，确认处理过程已经完成，确认处理过程应该继续）到应用边界之外，则算一个DET \n即使有多种方法调用同一逻辑过程，也只能为这一特定动作计算一个DET ","以下不能单独计算为EI \n包含在查询或输出中的输入请求 \n用于导航或选择不维护ILF的菜单窗口 \n帮助用户进行系统的登陆 \n激活同一逻辑的多种方法 \n刷新或取消窗口中的数据 \n需要用户删除或其他事务消息的反应 \n在同一系统内部（线程与批处理或客户端到服务器）"]
[4,"EO","指的是向应用边界之外发送数据或控制信息的基本处理过程.EO的主要目的是通过逻辑处理方式向用户呈现信息，而不只是直接恢复数据或控制信息。该处理逻辑必须包含至少一个数学公式或计算过程，或生成派生数据。一个EO也可能维护一个或多个ILF和/或改变系统行为。","数据或控制信息发送出应用边界。 \n对于已识别的基本处理过程，至少满足下面三个条件之一 ： \n处理逻辑与该应用中其它EO所用的处理逻辑不同 \n该组已识别的数据元素不同于该应用中其它EO的数据元素 \n所涉及的ILF或EIF不同于该应用中其它EO所涉及的文件 \n还需满足下述条件之一 ：\n处理逻辑包含至少一个数学公式或计算过程 \n至少一个ILF被处理逻辑维护 \n处理逻辑改变了系统的行为 ","FTR计算规则\nEO/EQ的FTR计算规则 \n每个在EO/EQ处理过程中读取的ILF和EIF算一个FTR \nEO额外的FTR计算规则 \n每个在EO处理过程中维护的ILF算一个FTR \n每个在EO处理过程中读取和维护的ILF算一个FTR\nDET计算规则\nDET数量等于根据下列规则确定的字段总数 \n用户可识别的非重复的字段进入应用边界并且指明处理什么、何时处理或处理方式并且由EO/EQ返回或产生，那么每个字段算一个DET \n每个发出应用边界的用户可识别的非重复字段算一个DET \n如果字段同时进入发出边界，对该EO/EQ来说，只算一个DET \n如果应用能够发送一个系统响应信息（如：说明过程中发生错误，确认处理过程已经完成，确认处理过程应该继续）到应用边界之外，这种能力算一个DET \n即使有多种方法调用同一逻辑过程，也只能为这一特定动作计算一个DET \n对那些虽然被保存、返回、派生的没有穿越边界的字段不计算DET \n文字的，页面的，系统产生的标签不计算DET","以下不能单独计算为EO \n数据值不同的相同报告 \n不包含公式或复杂计算的报告 \n帮助（EQ） \n退出系统 \n激活同一输出过程的多种方法 \n需要用户删除或其他事务消息的反应 \n在同一系统内部（线程与批处理或客户端到服务器）"]
[5,"EQ","指的是向应用边界之外发送数据或控制信息的基本处理过程. EQ的主要目的是通过恢复数据或控制信息向用户呈现信息。该处理逻辑不包括任何的数学公式或计算过程，不会生成任何的派生数据。EQ处理过程中既不会维护任何ILF，也不会改变系统行为。","数据或控制信息发送出应用边界。 \n对于已识别的基本处理过程，至少满足下面三个条件之一 ： \n处理逻辑与该应用中其它EQ所用的处理逻辑不同 \n该组已识别的数据元素不同于该应用中其它EQ的数据元素 \n所涉及的ILF或EIF不同于该应用中其它EQ所涉及的文件 \n还应该满足下述所有条件： \n该处理逻辑从一个ILF或EIF返回数据或控制信息 \n该处理逻辑不包含任何数学公式或计算过程 \n该处理逻辑不改变系统行为 \n该处理逻辑不维护任何ILF "]
[6,"DET","DET为Data Element Type即数据元素类型：其中一个DET就是一个唯一的用户可认知的，不重复的数据域。类似于数据库表中的字段。\n数据元素类型主要包括以下几种：1、基本数据类型：包括整型、浮点型、字符型等，这些类型是在计算机硬件中已经实现的，可以直接进行运算和处理。\n2、复合数据类型：由基本数据类型组成的复杂数据结构，包括数组、结构体、链表等，这些类型需要程序员自己设计和实现。\n3、数据项：不可分割的最小单位，具有独立含义。\n4、数据对象：性质相同的数据元素的集合，是数据的一个子集。\n5、数据结构：指相互之间存在一种或多种特定关系的数据元素的集合，它指的是数据元素之间的相互关系，即数据的组织形式。通常有：表结构、树形结构、图形结构。\n6、逻辑结构：人的大脑想像，可以画在纸上，一般分为线性结构，非线性结构。\n7、存储结构：主要有顺序结构（数组）和非顺序结构（链式存储结构）。\n8、抽象数据类型：定义了一个数据对象、数据对象中各元素之间的结构关系以及一组处理数据的操作。","1、如果通过一个基本处理过程的执行在ILF维护或从ILF或EIF中返回一个特定的用户可识别的、非重复字段，那么每个这样的字段算一个DET；\n2、当两个应用维护和/或查询相同的ILF/EIF，但是每个应用单独维护/查询相应的DET，只计算被每个应用使用的DET；\n3、对于那些用户要求与其他的EIF/ILF建立关联的数据字段来说，每个这样的数据字段都应算一个DET。"]
[7,"FRT","为File Type Referenced引用文件类型：是一个被交易功能读取或者维护的内部逻辑文件或是一个被交易功能读取的外部接口文件。","每个被维护的ILF算一个FTR \n每个在EI处理过程中读取的ILF或EIF算一个FTR \n由EI维护和读取的ILF只算一个FTR "]
[8,"RET","为Record Element Types记录元素类型，一个RET就是一个ILF或者EIF内用户可认知的数据元素子集。","1、每个ILF或EIF得可选或必选子组算一个RET；\n2、如果该ILF/EIF没有子组，那么就将该ILF/EIF算作一个RET"]
[null,null,"已调整功能点数（Adjusted Function Point）",null,"开发项目（Development）=（UFP+CFP）×VAF \n应用（Application）=ADD×VAF \n增强项目（Enhancement）=[(ADD+CHGA+CFP)×VAFA]+(DEL×VAFB) \n其中： \nUFP为未调整功能点总数 \nCFP为转换功能点 \nADD为增加的功能点 \nCHGA为增强后改变功能的UFP \nVAFA为增强后调整系数 \nDEL为被删除功能点 \nVAFB为增强前调整系数 "]
[null,null,"系统特征因子"]