JavaScript 覆盖document.createElement 方法

题:软件项目报价方法

广告:==========================================================

欢迎使用[豆瓣读书] 管理你的阅读,查阅书评,编写读书笔记等。 ^^

app下载:http://itunes.apple.com/cn/app/id695492935

=================================================================

软件项目一般包括解决方案、开发、维护、系统集成等。以下将分别介绍软件开发价格、软件(系统)维护价格、系统集成价格、系统解决方案费用的价格估算方法,以供大家参考。

1.软件开发价格估算方法

软件开发价格与工作量、商务成本、国家税收和企业利润等项有关。为了便于计算,给出一个计算公式:

软件开发价格 = 开发工作量 × 开发费用/人·月

1.1开发工作量

软件开发工作量与估算工作量经验值、风险系数和复用系数等项有关:

软件开发工作量 = 估算工作量经验值 ×风险系数 × 复用系数

1.1.1估算工作量经验值(以A来表示)

软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度。目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也是采用经验的方式加以估算工作量。

工作量的计算是按一个开发工作人员在一个月内(日历中的月,即包括国家规定的节假日)能完成的工作量为单位,也就是通常所讲的“人·月”。

特别要提醒的是软件开发过程中既包括了通常所讲的软件开发,也应包括各类软件测试的活动。

1.1.2风险系数(以σ来表示)

估算工作量经验值亦会存在较大风险,造成软件危机的因素很多,这也是一个方面的因素。特别当软件企业对该信息工程项目的业务领域不熟悉或不太熟悉,而且用户又无法或不能完整明白地表达他们的真实的需求,从而造成软件企业需要不断地完善需求获取,修改设计等各项工作。因此:

l ≤ 风险系数 ≤ 1.5

根据我们对软件企业的了解,超过估算工作量经验值的一半,已是不可接受,所以我们确定“1.5”为极限值。当然这既要看企业的能力,也要看用户能接受的程度。

1.1.3复用系数(以τ来表示)

估算工作量经验值是软件企业承担一般项目来估算的,但如果软件企业已经采用“基于构件的开发方法”,并己建立起能够复用的构件库(核心资产库),或者已有一些软件产品,仅作二次开发,从而使软件开发工作量减少。因此:

0.25 ≤ 复用系数 ≤ 1

根据国内外软件企业在实施基于构件开发方法(软件产品线)的经验数据,提高工作效率达到25%(最高值)。

1.2开发费用/人·月

软件企业的商务成本、国家税收、企业利润、管理成本和质量成本。均可摊分到各个软件开发人员头上。

开发费用/人·月 =(P+Q+R)× S× τ

设(B)为平均工资,即企业支付给员工的工资、奖金、物质奖励等多项总和,除以企业员工数,分摊到每个月。则所有费用计算方式如下。

1.2.1 P(人头费)

人头费主要是员工的工资、奖金和国家规定的各项按人计算的费用。其总量在软件企业中的商务成本占70%-80%。

P = B
× 1.476

国家规定的公积金 7%,医疗保险金12%,养老金22%,失业金 2%,另外还有按工资总额计征的工伤保证金0.5%,生育保证金0.5%,残疾基金1.6%,工会基金2%,累计为47.6%。

1.2.2 Q(办公费)

办公费包括企业办公房屋租赁费和物业管理费、通信费、办公消耗品、水电空调费、设备折旧、差旅费,另外也包括企业对员工的在职培训所支付的费用,其总量在软件企业中的商务成本占20%-30%。

Q = B/3

1.2.3 R(国家税收和企业利润)

软件企业需缴纳国家税收,可一并与企业利润一起考虑。

另外,软件企业的员工不可能全年满负荷地工作,即使一年十二个月都安排工作,但也需抽出时间进行在职培训和提职的岗前培训。据我们的了解,软件企业的员工一年能有10个月到 11个月的工作也是正常的。税收利润通常占薪资20%-30%,不同企业变动较大。

R = B/3

1.2.4 S(管理系数)

通常每个机构的管理人员都会有一定的比例,参考一些机构的做法,按每十个软件人员配备两个管理人员即管理成本:

1 ≤ S≤ 1.2

1.2.5 T(优质系数)

提高软件质量,必然有所开支,即质量成本,对于不同的软件企业来说,其质量成本不尽相同。

软件企业与其他企业一样,也有诚信和品牌等诸多因素,从而增加企业的开支。

优质系数通常取值1.05、1.1、1.15、1.2。

据此,我们综合上述各点:

开发费用/人·月 =(B× 1.476 + B/3 + B/3)× l.2 × T

= B×(1.476 + 2/3)× 1.2 × T

= B× 2 .575 × T

= B× λ

当T=1.05时,λ=2.7

当T=1.2时,λ=3.09

因此,2.7≤ λ ≤ 3.09

对于承接员工工资较高,工作安排较难满负荷的,建议R=B/2。因此

开发费用/人·月 = B(1.476 + 1/3 +1/2)× 1.2 × T

= B× 2.767 × T

= B× λ

当T=1.05时,λ=2.906

当T=1.2时,λ=3.32

因此,2.9≤ λ ≤ 3.32

结论:

软件开发价格 = A× σ ×τ × B × λ

A:估算工作量经验值

B:软件企业的平均工资/人·月

Q:风险系数l≤ Q ≤ 1.5

T:复用系数0.25≤ τ ≤ 1

λ:综合系数2.7≤ λ ≤ 3.09

2. 软件(系统)维护收费价格估算方法

在完成信心工程项目的系统集成和应用软件开发,并交付用户正式运行的一年内,对软件(系统)实行免费维护服务一年。

在正式运行一年后,软件企业应与用户签定软件(系统)维护合同。该合同属技术转让合同,也可属技术开发合同。

根据不同的用户要求,可分四种级别进行软件(系统)维护。

2.1 A级

软件企业派出技术人员常驻用户,解决日常运行中发生的问题。

2.1.1 U(系统建设投资额)

用户需要软件企业维护的系统,该系统建设的投资额。如用户只需要软件企业维护其所开发的应用软件,U就是该应用软件开发费;如用户需要软件企业维护整个系统,包括计算机硬件、软件、网络和应用软件,则U就是该工程项目的总投资额。

2.1.2 N(技术人员数)

软件企业派出N个技术人员,常驻用户,因此:

软件(系统)维护费/年 = U × 15% 或 B ×λ × N × 12

B、λ参见第1节,软件开发价格估算方法。

2.2 B级

软件企业每周七天,每天24小时(即7×24小时)响应,2小时到现场,且每天派技术人员到现场进行软件(系统)性能调试,使之运行处于良好状态。

软件(系统)维护费/年 = U × 10%

2.3 C级

软件企业7×24小时响应,2小时到场。

软件(系统)维护费/年=U × 5%

2.4 D级

用户的信息工程系统或应用软件发生问题,由原承担的软件企业派人维护。

2.4.1 B’

这种维护方式要求软件企业需要保存所有的技术档案,更需要软件企业抽出专人来不断熟悉和全面掌握该软件(系统)的各项技术细节。因此,软件企业的这项支出必然要在维护费用收入中得到回报。

以1.1.3节中的B 作为参数,将其人·月单位改为人·天,以B’表示。

2.4.2 τ’

软件企业如果采用基于构件开发方法,并建立起构件库,则会大大提高软件维护的效率。另外,如果有多家用户运行的系统大致类似,也可有所提高效率。

以1.1.3节中的τ 作为参数,以τ’来表示。因此:

软件(系统)维护费/次=B’ × τ’× n

此次n表示所需要的人·天数。τ’的取值是0.2 ≤ τ’≤ 1。

3. 系统集成价格的估算方法

将整个系统所涉及到的设备、软件、网络整和起来,并能正常地运行,其运行的结果能达到用户建立该系统的目标。这就是系统集成的含义。因此,可以理解为单纯的设备采购和供应并不涉及系统集成,以及单纯的应用软件开发也并不涉及系统集成。

系统集成费应与整个系统的规模、整个系统的复杂程度等项有关。

系统规模往往与系统建设费用密切相关。为了简便计算,以系统建设费用(以U来表示)为参考坐标。复杂程度(以α来表示)可分四种级别来区分。

系统集成费 = U × α × T

T参见1.2.5节

3.1 A级

整个系统涉及到计算机硬件、软件、局域网络,且体系结构在三层次以下(含三层次)。

5% ≤ α ≤ 8%

3.2 B级

整个系统涉及到计算机硬件、软件、局域网络、互联网,且体系结构在三层以上(含三层次)。

7% ≤ α ≤ 10%

3.3 C级

整个系统涉及到计算机硬件、软件、局域网络、互联网以及多种网络接口。

8% ≤ α ≤ 12%

3.4 D级

整个系统涉及到计算机硬件、软件、网络、通信以及各种数据采集设备接口或者与用主系统有接口。

10% ≤ α ≤ 15%

4. 系统解决方案费用估算方法

根据用户所提出的初步需求,软件企业根据以往的经验为之提供整个系统建设的方案,包括需购买的计算机硬件、软件、网络设备和应用软件开发的大体设想、费用估算、进度初步安排、信息化所涉及到的规章制度的一些规划,有时还会涉及信息中心的建设等等。这就是系统解决方案所要完成的工作。

系统解决方案费用与整个系统的规模、复杂程度等项有关。

系统规模往往与系统建设费用密切相关,为了简便计算,以系统建设的总投资(以U来表示)为参考坐标。

复杂程度就是用户的功能、性能要求复杂性、信息接口的类型和数量有关,以β来表示。

解决方案费用=U × β × T

T参见 1.2.5节

关于β我们参照第3节所列各级。

A级: 0.7%≤ β ≤ 1.2%

B级:     1%≤ β ≤ 1.8%

C级: 1.5%≤ β ≤ 2.2%

D级:    2%≤ β ≤ 3%

JavaScript 覆盖document.createElement 方法

时间: 2024-10-08 13:12:47

JavaScript 覆盖document.createElement 方法的相关文章

javascript 中 document.createElement()的用法

分析代码时,发现自己的盲点——document.createElement(),冲浪一番,总结了点经验. document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用.其中,appendChild() 方法在节点的子节点列表末添加新的子节点.insertBefore() 方法在节点的子节点列表任意位置插入新的节点. 下面,举例说明document.createElement()的用法.<div id="

document.createElement方法的使用

我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错. 比如我们要创建一个input元素,那么在IE下,我们可以有多种写法: 要测试某种情况,请将其它情况注释: <script type="text/javascript">//第一种,连同属性一起被创建var x = document.createElement("<input  type='text' size='30' />

javascript:Document 节点

Document 节点 概述 document节点对象代表整个文档,每张网页都有自己的document对象.window.document属性就指向这个对象.只要浏览器开始载入 HTML 文档,该对象就存在了,可以直接使用. document对象有不同的办法可以获取. 正常的网页,直接使用document或window.document. iframe框架里面的网页,使用iframe节点的contentDocument属性. Ajax 操作返回的文档,使用XMLHttpRequest对象的res

用JAVA编写浏览器内核之实现javascript的document对象与内置方法

原创文章.转载请注明. 阅读本文之前,您须要对浏览器怎样载入javascript有一定了解. 当然,对java与javascript本身也须要了解. 本文首先介绍浏览器载入并执行javascript的原理. 其次将介绍怎样用java与javascript互调用对象. 最后介绍怎样用java实现javascript的document对象与其他内置方法. 浏览器从server得到含有javascript代码的html文本后,将顺序运行javascript代码块. 看代码是最简单的方式: packag

javascript document.createElement() document.createTextNode()

//--------------document.createElement("div") var div = document.createElement("div"); div.innerText = "abc"; 效果就是 //<div>abc</div> //---------------document.createTextNode()创建一个文本节点 var div = document.createEleme

JavaScript实现继承的方法

JavaScript中要实现继承,其实就是实现三层含义:1.子类的实例可以共享父类的方法:2.子类可以覆盖父类的方法或者扩展新的方法:3.子类和父类都是子类实例的"类型". JavaScript中,并不直接从语法上支持继承,但是可以通过模拟的方法来实现继承,以下是关于实现继承的几种方法的总结:1.构造继承法2.原型继承法3.实例继承法4.拷贝继承法 1.构造继承法:在子类中执行父类的构造函数. 1<SCRIPT LANGUAGE="JavaScript">

你想的到想不到的 javascript 应用小技巧方法

javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x

document.createElement()的用法

今天做项目需要做个添加地址栏和前面需要一个按钮,就看到了这篇文章! document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用.其中,appendChild() 方法在节点的子节点列表末添加新的子节点.insertBefore() 方法在节点的子节点列表任意位置插入新的节点. 下面,举例说明document.createElement()的用法.<div id="board"><

JavaScript跨域解决方法大全

跨域的定义:JavaScript出于安全性考虑,同源策略机制对跨域访问做了限制.域仅仅是通过"URL的首部"字符串进行识别,"URL的首部"指window.location.protocol +window.location.host,也可以理解为"Domains, protocols and ports must match".实际上,同源策略就是浏览器的一种保护机制,只要请求双方的URL协议.域名(主机).端口有任何一个不同,都被当作是跨域.