软件开发人员的薪金及软件开发实习日记_第1页
软件开发人员的薪金及软件开发实习日记_第2页
软件开发人员的薪金及软件开发实习日记_第3页
软件开发人员的薪金及软件开发实习日记_第4页
软件开发人员的薪金及软件开发实习日记_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发人员的薪金摘要本文所要解决的是研究软件开发人员的薪金与他们的资历、管理责任、教育程度等之间的关系,建立一个模型,以便分析公司人事策略的合理性,并作为新聘人员薪金的考虑。根据题设条件,结合实际情况,建立线性回归模型,方程表达式:其中,,,,是回归系数,ε为随机误差,,,,分别为资历、管理水平和教育程度。结合题目所给的数据,运用matlab软件的命令rearess,求出了软件开发人员的薪金与资历、管理水平、教育水平之间的线性回归方程:分析后同时运用残差分析法发现模型的缺陷,改进影响软件开发人员薪金的因素,改变模型,使得管理责任因素和教育程度因素对薪金是交互作用的,这样合理化模型后,得出了影响软件开发人员薪金因素的最佳多元回归模型。建立回归方程:并用运用matlab软件得出了该模型的较准确的解:并对回归方程和各个因素运用残差分析法进行了显著性检验,去掉异常数据后,在运用matlab软件求解,得出更为准确的解:再次运用残差分析法对模型进行检验,说明模型可用。综上所述,本文对数据进行深入分析,运用MATLAB软件画图,制作表格,更形象地反映数据,简单明了,运用残差分析法对模型进行检验,说明模型可用。关键字:线性回归模型ressess残差分析法一.问题重述一家高技术公司人事部门为研究软件开发人员的薪金与他们的资历、管理责任、教育程度等之间的关系,要建立一个模型,以便分析公司人事策略的合理性,并作为新聘用人员薪金的参考。他们认为目前公司人员的薪金总体上是合理的,可以作为建模的依据,于是调查了46名软件开发人员的档案资料,如表,其中资历一列指从事专业工作的年数,管理一列中1表示管理人员,0表示非管理人员,教育一列中1表示中学程度,2表示大学程度,3表示更高程度(研究生)。表一软件开发人员的薪金与他们的资历、管理责任、教育程度之间的关系编号薪金资历管理教育编号薪金资历管理教育113876111242288461221160810325169787113187011132614803802411283102271740481151176710328221848136208722122913548801711772202301446710018105352013115942100291219520332231741013101231330233237801012111497531134254101112122137131235148611101131980031336168821202141141740137241701213152026341338159901301161323140339263301312171288440240179491402181324550241256851513191367750342278371612201596551143188381602211236660144174831601222135161345192071702231383960246193462001

模型假设薪金自然随着资历(年)的增长而增加;管理人员的薪金应高于非管理人员;教育程度越高薪金也越高;管理责任、教育程度、资历诸因素之间没有交互作用;资历(年)、管理水平、教育程度分别对薪金的影响是线性的;目前公司软件开发人员的薪金是合理的;在模型改进中我们假设资历(年)、管理水平、教育程度之间存在交互作用。问题的分析对于问题,在符合题意并且与实际情况较吻合的情况下,薪金记作,资历(年)记作,为了表示是否非管理人员,定义为了表示3种教育程度,定义,这样,中学用=1,=0来表示,大学用=0,=1表示,研究生则用=0,=0表示。对于影响变量的这些定性因素(管理,教育),在模型求解过程中我们采用“0-1”变量来处理,并运用数学软件matlab来求解,最后对所得的解进行讨论和分析。模型的建立及求解符号的说明:软件开发人员的薪金资历管理责任,教育程度带估计的回归系数(i=1,2,3,4,5,6)随机误差随机误差,回归系数的样本估计值回归系数的估计值的置信区间残差向量R的置信区间回归模型的检验统计量回归方程的决定系数统计量值对应的概率值剩余方差置信水平0.052.模型的建立薪金与资历,管理责任,教育程度,之间的多元线性回归方程为:模型的求解直接利用matlab统计工具箱中的命令regress求解,使用格式为:[b,bint,r,rint,stats]=regress(y,x,slpha)其中输入y为模型(1)中的y的数据(n维向量,n=30),x为对应于回归系数的数据矩阵,alpha为置信区间;输出b为的估计值,bint为b的置信区间,r为残差向量,rint为r的置信区间,stats为回归模型的检验统计量,有四个值,第1个是回归方程的决定系数(是相关系数),第2个是统计量值,第3个是与统计量值对应的概率值,第4个是剩余方差。根据上述方程式,我们用数学软件matlab对模型进行求解可以得到回归系数及其置信区间(置信水平=0.05),检验统计量,,,的结果,见表二。表二模型(1)的计算结果参数参数估计值参数置信区间11032[10258,11807]546[484,608]6883[6248,7517]-2994[-3826,-2162]148[-636,931]=0.579=226<0.0001=1.057x106结果分析和检验结果分析从表二知=0.975,即因变量(薪金)的95.7%可由模型确定,值远远超过的检验的临界值,远小于,因而模型(1)从整体来看是可用的。比如,利用模型可以估计(或预测)一个大学毕业,有2年资历,费管理人员的薪金为:=12272模型中各个回归系数的含义可初步解释如下:的系数为546,说明资历增加1年薪金增长546;的系数为6883,说明管理人员薪金多6883;的系数为-2994,说明中学程度薪金比更高的少2994;的系数为148,说明大学程度薪金比更高的多148,但是注意到置信区间包含零点,说明这个系数的解释不可靠。需要指出,以上解释是就平均值来说,并且,一个因素改变引起的因变量的变化量,都是在其他因素不变的条件下成立的。二.结果检验的置信区间包含零点,说明基本模型(1)存在缺点。为了寻找改进的方向,常用残差分析方法(残差指薪金的实际值与用模型估计的薪金y1之差,是模型(1)中随机误差的估计值,这里用了一个符号)。我们将影响因素分成资历与管理-教育组合两类,管理-教育组合的定义如表三:表三管理——教育组合123456管理010101教育112233为了对残差进行分析,图1给出了与资历的关系,图2给出与管理-教育,组合间的关系。图1模型(1)与的关系图2模型(1)与—,组合的关系从图一看,残差大概分成3个水平,这是由于6种管理—教育组合混合在一起,在模型中未被正确反映的结果,、;从图2看,对于前4个管理—教育组合,残差或者全为正,或者全为负,也表明管理—教育组合在模型中处理不当。在模型(1)中国管理责任和教育程度是分别起作用的,事实上,二者可能起着交互作用,如大学程度的管理人员的薪金会比二者分别的薪金制和高一点。以上分析提醒我们,应在基本模型(1)中增加管理与教育,的交互项,建立新的回归模型。六.优化方向通过以上分析,我们在模型一中增加管理与教育,的交互项,建立新的回归模型。模型记作:利用matlab的统计工具得到的结果如表四:表四模型(2)的计算结果参数参数估计值参数置信区间11204[11044,11363]497[486,508]7048[6841,7255]-1727[-1939,7255]-348[-545,-152]-3071[-3372,-2769]1836[1571,2101]=0.9988=5545<0.0001=3.0047x104由表四可知,模型(2)的和值都比模型(1)有所改进,并且所有回归系数的置信区间都不含零点,表明模型(2)是完全可用的。与模型(1)类似,作模型(2)的两个残差分析图(图3,图4),可以看出,已经消除了图1,图2中的不正常现象,这也说明了模型(2)的适用性。图3模型(2)与的关系图4模型(2)与—,组合的关系从图3,图4还可以发现一个异常点:具有10年资历、大学程度的管理人员(从表1可以查出是33号),他的实际薪金明显地低与模型的估计值,也明显低于与他有类似经历的其他人的薪金。这可能是由我们未知的原因造成的,为了使个别的数据不致影响整个模型,应该讲这个异常数据去掉,对模型(2)重新估计回归系数,得到的结果如表五,残差分析图见图5,图6.可以看出,去掉异常数据后结果又有改善。表五模型(2)去掉异常数据后的计算结果参数参数估计值参数置信区间11200[11139,11261]498[494,503]7041[6962,7120]-1737[-1818,,-1656]-356[-431,-281]-3056[-3171,-2942]1997[1894,2100]=0.9998=36701<0.0001=4.347x103图5模型(2)去掉异常数据后图6模型(2)去掉异常数据后与与的关系与—,组合的关系对于回归模型(2),用去掉模型异常数据(33号)后估计出的系数,得到的结果是满意的。作为这个模型的应用之一,不妨用它来"制订”6种管理—教育组合人员的“基础”薪金(即资历为零的薪金,当然,这也是平均意义上的)。利用模型(2)和表五容易得到表六:表六6种管理—教育组合人员的“基础”薪金组合管理教育系数“基础”薪金101+9463211+++13448302+10844412+++1988250311200613+182417从表六可以看出,大学程度的管理人员的薪金比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生的非管理人员的薪金略低。当然,这是根据这家公司实际数据建立的模型得到的结果,并不具普遍性。模型评价本文在模型建立时结合实际情况,对问题进行了适当的假设。对于影响因变量的定性变量因素(管理,教育),可以引入0—1变量来处理,0—1变量的个数可比定性因素的水平少1(如教育程度有3个水平,引入2个0—1变量)。运用到MATLAB软件进行计算还有制图,得到较准确的数据和图表。为求结果的精确,还运用了残差分析方法,发现模型的缺陷,引入交互作用项使模型更加完善和具可行性。因有异常数据的存在,我们予以剔除,有助于结果的合理性。对于本文所得的模型也可以用于不同单位,不同行业某类人才的预测。当然,本文也存在许多不足。但是对于对模型进行的改进和检验,难免会出现误差。八.参考文献[1]将启源,谢金星,叶俊数学建模,高等教育出版社2011[2]周明华,邬学军,周凯,李春燕,MATLAB实用教程浙江工业大学应用数学系2011附录一:表二的程序及结果:x1=[111112222333344445556666788881010101011111212131314151616161720]';x2=[1010010000111010000101011011000111001010110000]';x3=[1000000100100100000110001010110000100100000101]';x4=[0001011001010000110000110100001011010011011010]';y=[13876116081870111283117672087211772105351219512313149752137119800114172026313231128841324513677159651236621352138392288416978148031740422184135481446715942231742378025410148611688224170159902633017949256852783718838174831920719346]';x0=ones(46,1);x=[x0x1x2x3x4];[b,bint,r,rint,stats]=regress(y,x,0.05);b=vpa(b,8)bint=vpa(bint,8)stats=vpa(stats,8)b=11032.734546.127656882.5329-2994.1783147.73798bint=[10258.256,11807.213][484.44860,607.80670][6248.1051,7516.9607][-3826.3273,-2162.0294][-635.71842,931.19438]stats=[.95669181,226.42580,0.,1057144.8]图一及图二残差图程序段及结果:x5=[2563543153246165335216342326113644136143643131]';[b,bint,r,rint,stats]=regress(y,x,0.05);subplot(2,2,1)plot(x1,r,'r+')subplot(2,2,2)plot(x5,r,'b+')表四的模型及结果:x1=[111112222333344445556666788881010101011111212131314151616161720]';x2=[1010010000111010000101011011000111001010110000]';x3=[1000000100100100000110001010110000100100000101]';x4=[0001011001010000110000110100001011010011011010]';x5=[2563543153246165335216342326113644136143643131]';y=[13876116081870111283117672087211772105351219512313149752137119800114172026313231128841324513677159651236621352138392288416978148031740422184135481446715942231742378025410148611688224170159902633017949256852783718838174831920719346]';x0=ones(46,1);x=[x0x1x2x3x4x2.*x3x2.*x4];[b,bint,r,rint,stats]=regress(y,x,0.05);b=vpa(b,8)bint=vpa(bint,8)stats=vpa(stats,8)b=11203.754496.863937047.9997-1726.5042-348.39254-3070.59621835.9676bint=[11044.259,11363.248][485.63509,508.09277][6841.0518,7254.9477][-1938.9889,-1514.0195][-545.21127,-151.57381][-3371.8328,-2769.3595][1571.3704,2100.5648]stats=[.99882910,5544.7990,0.,30047.093]图3及图4残差图程序段及结果:x1=[111112222333344445556666788881010101011111212131314151616161720]';x5=[2563543153246165335216342326113644136143643131]';y=[13876116081870111283117672087211772105351219512313149752137119800114172026313231128841324513677159651236621352138392288416978148031740422184135481446715942231742378025410148611688224170159902633017949256852783718838174831920719346]';subplot(2,2,1)plot(x1,r,'r+')subplot(2,2,2)plot(x5,r,'b+')表五的程序及结果:x1=[1111122223333444455566667888810101011111212131314151616161720]';x2=[101001000011101000010101101100011001010110000]';x3=[100000010010010000011000101011000100100000101]';x4=[000101100101000011000011010000101010011011010]';x5=[256354315324616533521634232611364136143643131]';y=[138761160818701112831176720872117721053512195123131497521371198001141720263132311288413245136771596512366213521383922884169781480317404221841354814467159422317425410148611688224170159902633017949256852783718838174831920719346]';x0=ones(45,1);x=[x0x1x2x3x4x2.*x3x2.*x4];[b,bint,r,rint,stats]=regress(y,x,0.05);b=vpa(b,8)bint=vpa(bint,8)stats=vpa(stats,8)图5和图6的残插图程序段及结果:x1=[1111122223333444455566667888810101011111212131314151616161720]';x5=[256354315324616533521634232611364136143643131]';y=[138761160818701112831176720872117721053512195123131497521371198001141720263132311288413245136771596512366213521383922884169781480317404221841354814467159422317425410148611688224170159902633017949256852783718838174831920719346]';subplot(2,2,1)plot(x1,r,'r+')subplot(2,2,2)plot(x5,r,'b+')Dailywork1第一次是来面试,当时感觉不怎么好,面试的人问了一些问题有些没回答上来,这并不奇怪,C#自己学习了2个月,然后就没怎么用,回答不上我觉得可以理解。没想到还能第二次来到公司,由于对环境还比较陌生,所以今天大概熟悉了一点,成都这边有50多个员工,属于研发中心,主要从事无线微波得较大型的设备的再加工,听同事说以前在北京,但由于北京人力资源太贵所以来到成都,这听起来怎么像是在压榨的感觉啊,没关系,只是来实习而已。对于今天的第一个小任务,要求:界面、数据压入堆栈、简单冒泡排序实现数据有序输出、堆排序输出。让我快速地熟悉了C#,从界面到后台都得到了加强,此外在实现过程中对用到的冒泡排序和堆排序有了更深的理解,并能用C#熟练的实现。Dailywork2今天对昨天的实例进行了改进和提高,将堆排序和冒泡排序封装在一个动态链接库中,提供函数调用和事件委托。此外加入XML进行配置,在XML中存入相关配置信息,提供一个单独的XmlClass对其进行操作,加深了对xml的理解。为增加程序的性能,采用简单工厂模式对其客户端和算法操作进行分离,有很好的可扩展性,对于C#的动态链接库和XML配置不怎么熟悉,花了很长一段时间看书和网上查资料,才开始动手写代码,不过感觉还是很快,因为自己有编程的能力,可以说掌握了一种快速编程的方法,所以就能驾轻就熟。Dailywork3今天采用抽象工厂模式对实例进行改进,以达到动态加载算法实例,抽象工厂模式属于设计模式中的内容,自己在学习视频的时候注意到了,所以之前就买了本大话设计模式来学习,可以说了解了大部分设计模式。今天遇到后自己心里也有底,温故一下书就知道怎么做了,可以说这是我学习的方法。针对以上,在dll中提供一个接口,两个算法都继承了该接口,对于该dll的操作都通过接口ISort进行,此外,修改工厂为抽象工厂,提供一个接口创建算法,在算法中返回ISort实例,在主函数中使用该实例进行对应的排序算法操作,充分显示了抽象工厂的作用,本例子将反射和抽象工厂模式结合,增加了程序的可扩展性和可维护性。Dailywork4由于自己编程能力还算可以吧,所以软件组的老大就叫我加入开始做一些这次项目的东西,说了一句“我可是没把你当实习生哦。”,这话一听当时感觉还好,不过后来一想,我却是吃亏了,他不把我当实习生但给我的却是实习生工资,这点有点想不过去,不过没关系,实习嘛就是学习,有基本工资也不错了,关键的公司提供的条件那是在学校里所得不到的:商业性的问题。今天将上述实例的方法用到本次项目中,开始项目中的一些任务。仍然使用抽象工厂模式,将自定义窗体封装到类库中,将窗体的控件预留到外部进行实施定义;在XML文件中配置窗体的实际参数,利用反射按从XML中读出的参数动态加载窗体。将上述的实例方法运用到了实际项目中。Dailywork5昨天的任务基本已完成,今天温习了一下加深了对知识的理解,可以说掌握得比较牢固了,今天又有新的任务,可以说每天都在进步。按组长要求编写RankStyle=Group时的窗体排列方式,在XML中配置控件或窗体的参数,利用XML读接口从XML中读出参数,为了使程序具有灵活性,在组长的提示下将窗体的配置按照窗体的Name属性进行配置,之前是利用字段的方式写在XML中,但是组长说这样的话在程序中查找不方便,可我觉得没什么啊,当然了,对于我这个没有工作经验的人来说看什么都是可以的,所以要多学习学习。在FormControl中利用双层循环将控件容器中的控件按Name与读出的配置进行匹配,如果在XML中配置了该窗体,就设置该窗体的一些属性。个人感觉实现了该功能吧,最后经过组长看了一下审核基本通过。要求:根据Group,从XML中读取控件配置信息,动态设置控件在主窗体中的显示。Dailywork6每天都有不同的要求,哎,果然和学校是不一样啊,今天将DLL中的控件更换成窗体,方法仍然采用反射+抽象工厂模式。虽然自己有一定编程经验,但是遇到问题是不可避免的,今天在编写过程中遇到了一个问题,就是当窗体接口和窗体类库放在一起的时候,在工厂中创建的实例无法装换成接口类型,经过多次测试和上网查阅相关资料,发现控件类实现接口,不能将接口放在同一个类库中,针对以上问题在网上查阅相关资料,结果还是没有相同的主题,没办法,只有硬着头皮在网上找,没有主题就找有没有相关的例子,结果还是没有,差点就无语了,突然看到有类似方法的一个例子,真是柳暗花明又一村啊,仔细看了看,发现他和我的结构有些差异,所以调了一下结构,一编译果然痛过了,就是将两个类库分离,再在接口中加入工厂便可创建实例并转换成接口。在主窗体中只需要引用该接口类库便可达到要求,使程序耦合性降低了。Dailywork7由于黎甫对DLL的要求发生变化,今天就不断修正DLL程序,并验收,再结合Group的窗口排列方式对DLL中的窗体进行测试。我现在才明白,编写代码是一件很容易的事,但是编写好的代码却是很难的事情,好的代码要有可维护性、可扩展性,这样在修改的话就很简单,可不能像我昨天写得代码,根本谈不上艺术,所以一旦面对客户的要求,改动就很困难,这一点值得我继续学习。至于可扩展性也是对维护的扩充,因为顾客的要求有可能随时都在改变,我们也得适应客户的要求,如果软件有了可扩展性,那么它的改动就比较小,就能适应顾客的要求。所有上面说的这些都是自己要学习的地方,这样在以后的商业开发中才能游刃有余,应对自如。Dailywork8回顾前几天所做的练习,对遇到的问题进行解决,在网上查阅相关资料独立解决,并对之前的一些项目练习做好备份。将这几天练习中所用的编程方法都串联了一遍,形成了固定的模式,以便在今后可以快速的使用。Dailywork9今天算是正式开始做公司的项目,上午黎甫和秦阳在会议室给我讲解了项目的一些功能并进行讨论,大致理解了项目后,分配了自己的一部分任务,整理过后在多次与秦阳的沟通请教下明白了自己的任务,下午秦阳建好VSS,我拷贝项目进行框架整合和测试。在编写代码的过程中也涉及了一些问题,通过看MSDN和上论坛,基本得到解决,同时也了解了一些C#其它的相关知识。Dailywork10今天继续昨天的任务,做一个小测试,将现今做的项目所有代码进行整合测试,测试要求是在数据库中配置菜单项,动态添加几项菜单项,在不同点击下动态从DLL中加载窗体读取配置文件进行排列,顺利完成。要求:抽象接口,并继承;XML中命名空间和类名不要设置成结点,设置成属性。封装算法到DLL;在FirstWork中使用XML配置;建立一个XMLclass进行操作;建立一个中间工厂类用反射在类库中查找响应算法;事件和委托。接口.XML中结点:程序集名称;命名空间.类名;接口名称;加载的时候转化为接口;XML中增加一个结点用来存储客户端关于算法的选择,按选择动态改变其值,然后算法中读取该值进行排序选择。为解决的问题:在一个工具条上配置多个工具,并添加事件,好像数据库不能实现。OK了!Dailywork11同步多线程方式实现Tcp/Ip发送。Dailywork12多线程要解除委托,避免出现异常;设置心跳包,检查客户端是否断开连接;UDP服务器与客户端握手,以及连接,数据报Dailywork13Dailywork14Windows服务项目了解Dailywork15解决Udp局域网内广播方式通信。Dailywork16数据库导出到XML,填充已设置菜单及工具栏结构,返回上层,在工厂中添加XML配置文件,选择是从数据库还是XML中读取。首先把数据库转化为XML研究如何和调用数据库的接口结合设计XML操作工程工厂更改与设计ReadMenuInfo.cs中publicMenuItemInfoNode[]ReadInfo(stringSite)定义为接口中的函数可能的Xpath:/Root/Item[@WndId=‘’ortb_MenuID=‘’]选取所有bookstore元素中price元素的值小于9或大于10的book元素.Dailywork17完成菜单和工具条从数据库转化为XML中导出。Dailywork18整理优化从XML中导出的过程,此外还;阅读其他英文原版资料书。Dailywork19要求:封装窗体到DLL;导出事件;XML配置窗体参数;从control继承。动态生成,使用抽象工厂模式;Group的顺序无序由自己决定(从XML中读取);XML操作类;心得时间过的真快,一眨眼时间我在北京世纪德辰通信技术有限

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论