1. 推荐一种适合非程序员的IT工作者开发GUI小工具的语言
我推荐你用python!你不会后悔的。
(1)简单
(2)强大
(3)跨平台
(4)可以开发c/s也可以开发b/s
(5)开源、免费
2. 一个软件项目如何评估工作量和成本
软件开发成本估算过程可进一步细分为软件规模估算、工作量估算、成本估算和确定软件开发成本等四个过程。
其中成本估算需要对直接人力成本、间接人力成本、间接非人力成本及直接非人力成本分别进行估算。
国家标准《GB/T 36964-2018 软件工程 软件开发成本度量规范》中建议的软件开发成本估算基本流程如下图所示:
国家准中的四个估算过程,层层递进,逐步细化,最终达到科学、一致的成本估算。
一、软件规模估算
通常情况下,规模估算是软件成本估算过程的起点。
估算规模是后续计算软件项目的工作量、成本和进度的主要输入,是项目范围管理的关键,因此,在条件允许的情况下,应首先进行规模估算。
在规模估算过程中,需要注意以下情况:
在规模估算开始前,应根据可行性研究报告或类似文档明确项目需求及系统边界。项目需求除包含最基本的业务需求外,还应进行初步的子系统/模块划分,并对每一子系统或模块的基本用户需求进行说明,以保证可以根据项目需求进行规模预估。
依据项目特点和需求详细程度不同,通常估算人员在选择估算方法时应采用纳入国际标准的功能点方法进行功能规模估算,在适用IFPUG或NESMA方法时,可以根据需求的粒度和管理需要,选择预估功能点方法、估算功能点方法或者详细功能点方法。
若当前的项目需求极其模糊或不确定,可不进行规模估算,而直接采用类比法或类推法估算工作量和成本。
二、工作量估算
在完成规模估算后,应当开展工作量估算工作,若当前项目未开展规模估算,也可直接启动工作量估算工作。
工作量估算时,可采用方程法、类比法、类推法、功能点法:
方程法:即基于基准数据建立参数模型,通过输入各项参数,确定估算值。
类比法:即将待估算项目的部分属性与类似的一组基准数据进行比对,进而确定估算值。
类推法:即将待估算项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,并进行适当调整后确定估算值。
功能点法:从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。
在开展工作量估算的过程中,需要注意以下情况:
当需求极其模糊或不确定时,如果此时具有高度类似的历史项目,则可直接采用类推法,充分利用历史项目数据来粗略估算工作量。
当需求极其模糊或不确定时,如果此时具有与本项目部分属性类似的一组基准数据,则可直接采用类比法,充分利用基准数据来粗略估算工作量。
对于规模估算已经开展的项目,可采用方程法,通过输入各项参数,确定待估算项目的工作量。若客户或高层对项目的工期有明确的要求时,在采用方程法估算工作量时,工期要求有可能是方程的参数之一。
为追求估算的准确性,建议在条件允许的情况下,可采用两种估算方法,对估算结果进行交叉验证,若估算结果差别不大,可直接使用两种估算结果的平均值或以某种估算结果为准,若差别较大,需进行差异分析。
工作量的估算结果宜为一个范围而不是单一的值。
三、成本估算
在获得了工作量估算结果后,可采用科学的方法进行成本估算。
在成本估算过程中,应需要注意的情况:
类比法和类推法,同样适用于需求极其模糊或不确定时的成本估算;
间接成本是否与工作量估算结果相关取决于间接成本分摊计算方式。在绝大多数组织,项目周期越长,项目组成员越多,其分摊的间接成本就越高,此时项目的间接成本与工作量估算结果直接相关;
直接非人力成本通常与工作量估算结果无关,宜单独分项测算;
成本估算结果,也通常为一个范围,而不是单一的值。
四、确定软件开发成本
在《软件工程 软件开发成本度量规范》中,将软件开发成本分为四类,主要是为便于对成本构成(即哪些成本属于开发成本,哪些不属于开发成本)进行清晰界定。
而在实际确定软件开发成本时,通常并不是分别测定四类成本,加和后获得总成本,而是通常采用以下两种方式确定总成本:
根据人力成本费率及工作量估算直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本;
根据规模综合单价和软件规模,测算出直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本。
在进行软件的规模、工作量、成本估算时应遵循以下原则:
在规模估算时,应根据项目特点和需求的详细程度选择合适的估算方法;
充分利用基准数据,采用方程法、类比法或类推法,对工作量和成本进行估算;
工作量和成本的估算结果宜为一个范围值;
在进行成本估算时,如有明确的工期要求,应充分考虑工期对项目成本的影响,可以根据项目实际情况以及工期对项目的影响程度,对成本的估算结果进行调整;
成本估算过程中宜采用不同的方法分别估算并进行交叉验证。如果不同方法的估算结果产生较大差异,可采用专家评审方法确定估算结果,也可使用较简单的加权平均方法;
在软件项目的不同场景下(如预算、招投标、项目计划和变更管理等)采用国家标准时,相关要求见国家标准中附录A。
除了上述主要原则外,我们还需注意在使用基准数据时:
对于委托方和第三方,建议使用或参考软件行业基准数据进行估算。估算模型的调整因子的增减或取值有可能随着行业基准数据的变化而变化。
对于开发方,在引入行业基准数据的基础上,可逐步建立组织级基准数据库,以提高估算精度。组织级基准数据定义应与行业基准数据定义保持一致,以便于与行业基准数据进行比对分析,并持续提升组织能力。
3. 想转行做程序员,是学python好还是C++好
首先,对于非程序员职场人员来说,当前情况选择学习Python语言会更合适,因为Python应用场景多、简单易学、发展前景好、薪资待遇高。
从技术体系来看,C++语言比较典型的面向对象的编程语言,特点是优秀的执行性能,在操作系统开发、多媒体开发以及各种容器开发中有着非常广泛的应用,可以说C++语言继承了C语言优秀的性能,用来构建庞大的软件系统。
虽然C++有众多优点,C++语言也是目前比较流行的编程语言之一,但是学习C++还是具有一定难度的,同时由于C++应用场景是非常专业的,对于非程序员来说,不建议从C++开始学习。在IT行业中,C++语言需要研发级程序员常见工作,不过也是非常重要的研发工具之一。
Python语言是全场景编程语言之一,可以用于Web开发、大数据开发、人工智能开发和嵌入式开发等领域,而且Python语言比较简单易学,没有任何基础的人也可以入门学习。随着人工智能以及数据分析的发展,Python语言得到了广泛的关注。
4. 有哪些适合非专业编程人员使用的软件开发
非专业编程人员使用的软件,你的意思就是说可以快速上手,快速入门,简单而又能做出强大的东西吧;这方面最简单的就是【按键精灵】学三个月,自动打怪,自动加人辅助办公什么的没啥问题,学三个月基本上就可以到达这个程度了,除了 按键精灵 还有【触动精灵】【触摸精灵】等等简单的软件,我说的这些都是比较简单易懂的,也是当今社会上最出名的;好好学吧,在这方面有不懂的问题提示我即可
5. 软件开发除了需要程序员,还需要哪些人,这些人的薪酬怎么样工作量跟程序员比起来怎么样
这要看你的软件工程的规模。如果是很小的项目,只需要一个顶梁柱似的人物从头到尾规划项目,其他的人员就是程序员了。如果有美术方面的工作,工作量小的完全可以外包出去。而不需要美工人员。
6. 非程序员,为方便工作开发了web应用给公司其他部门同事使用,所有权怎么算
软件所有权归你,公司找你要你可以不给.但是你是上班期间开发的,所以公司可以以在上班期间做其他事开除你.如果你的软件只是一些简单的功能的话,可以直接送给公司,没必要把关系闹僵,服务器的费用你可以跟公司明说,或者让公司自己购买服务器.
7. 如何开发iPad App
你有两种方式。如果你有面向对象的编程语言背景,如C ++或Java,你可以加入苹果的iOS开发者计划或购买iOS
SDK(软件开发工具包),并着手通过Mac OS X电脑开发一款App。无需编程经验或访问到Mac电脑上,你可以开发一个Web
App。功能少但更易 于非程序员开发,Web App都是为Safari、iPad的原生Web浏览器基于HTML定制Web页面。
开发一个iOS App
阅读苹果iOS App编程指南以获得一个对iOS架构和开发一个iOS App的基础知识的了解。这个指南对开发iPhone和iPad App都是有帮助的。
回顾加盟苹果iOS开发者计划的好处。你将获得教程、示例代码、苹果的iOS 4 SDK免费样书和其他好处。你还可以将你的App上传到苹果应用商店。该计划自2011年4月起每年花费99美元。
从苹果应用商店下载苹果iOS 4 SDK。在出版的时候,其费用为4.99美元并需要Mac OS X 10.6.6或更高版本。SDK不适用于Windows。
通过修一门课程学习的iOS编程,参加研习班或学习书籍。开发iPhone App的资料也可能会有所帮助。你学到的开发iPhone App的技能将帮助你开发一个iPad App,因为这两种设备使用相同的操作系统和开发工具。
开发一个Web App
勾勒出你想通过开发iPad App实现什么的 “待办事项”列表。然后,决定你是否能通过一个Web App实现这些目标。
回顾加盟苹果免费Safari浏览器开发者计划的好处。这会让你访问Safari开发库,示例代码,教程和其他工具来帮助你开发iPad Web App。
研究苹果关于准备iPad Web内容的指南。这个文件包含有关主题的详细说明,例如如何使用W3C标准而非插件、如何修改CSS代码(层叠样式表)以及如何准备你的iPad触摸界面的Web App。
学习和使用有经验的Web App开发人员撰写的、由苹果或其它网站提供的开发Web App在线教程。
上传你完成的Web App到你的网站上并使用一台iPad进行测试。
8. ai智能何时能完全取代程序员去做软件开发呢
人工智能已经可以帮助人类做越来越多的事情,前不久网络宣布推出了音频转录应用 SwiftScribe,这个网页应用的出现意味着人工智能将改变完全依赖人工的速记行业。
早在前几年,网络就推出了“网络寻人” 公益互动开放平台,借助网络人脸识别技术帮助走失人员回归家庭。该平台已与民政部全国救助寻亲网中,近 3 万条走失人口信息完成对接。依托如此庞大的人口数据库,人脸识别技术可以迅速匹配出走失孩子的照片。
类似实例不胜枚举,而所有的应用都在说明着人工智能正在人类社会中不断融入,对话方式和行为能力都在不断向人类靠拢。下围棋、玩游戏这样的“休闲活动”已经无法满足 AI 的“野心”,最近人工智能技术又有了一项突破:它们已经学会写代码了!
聪明到会“偷”现有程序代码的人工智能
由微软和剑桥大学研究员一同开发的人工智能系统 DeepCoder,已聪明到会“偷”现有程序的代码来解决程序问题。
该机器学习系统名为“DeepCoder”,基本上可以自动撰写代码,而且能成功解决那些入门级程序竞赛的题目。
研究员相信,DeepCoder 可以帮助那些没有任何编码知识的人,让他们可以更容易地编写初级程序。他们只需简单地描述自己的想法,即可让 AI 代工。
程序组合 program synthesis
研究员在发表成果的论文中讲述说:“我们发现,就英文来说,在线编程面临的真正挑战中,有几个是可以用程序来解决的问题。”,“不过我们目前能够解决的最难问题,跟程序竞赛网站上最简单的问题差不多是同等水平。”
DeepCoder 通过“程序组合(program synthesis)”方法实现编码。将不同代码的输入值和输出值进行分类,了解每条代码的意义,挑选出合适的片段重组,创造出能解决当前问题的程序。
编码过程的效率嗖嗖提升
从现有软件中提取出代码片段并不难,很多人类程序员也会这样做,只需要明确每条代码的意义,并将其用于完全不同用途的另一程序。
然而不同于人类程序员的是,AI 能够在很大范围内全面搜索现有程序,并用独特方式整合在一起,这些是人类程序员不太容易想到的方式。此外可以肯定的是,整个编码过程也会大大加快,DeepCoder 在几分之一秒内就能编写一个程序。
可以想见的是,程序员的工作效率会有一个质的飞跃,从前靠人力的编程手段,“进化”到自动化的编码行为。未来的工作模式,将会是一场新的工业革命,未来的行业中,智力产出品最终也可以像工业品一样流水生产,这样一来人类就可以免除重复性的脑力劳动,投入到更有价值的事情中去,哪怕只是有空闲下来喝杯咖啡、享受一下生活呢?
希望对你有帮助
9. 怎样运行非程序员指定的软件,不被卡巴斯基卡掉EXE
卡巴斯基有个暂停保护功能,或者你将软件添加到卡巴斯基信任程序中就可以。
10. 我需要一个简单实用的数据库软件~
SQL Server 是 Microsoft(微软) 的数据产品,它的易用性强! Oracle 是 Oracle(甲骨文)公司的数据产品!号称世界上最好的数据系统! DB2 是IBM公司的产品,在全球500强的企业中有80%是用DB2作为数据库平台的。
数据库软件优缺点:
SQL Server:
优点: 1.支持5000万条记录的数据仓库
2.适应于所有的平台
3.是开源软件,版本更新较快
4.性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。
5.价格便宜
缺点: 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能
MsSqlserver:
优点: 1.真正的客户机/服务器体系结构
2.图形化的用户界面,使系统管理和数据库管理更加直观、简单
3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
4.与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft BackOffice产品集成。
5.有很好的伸缩性,可以跨平台使用。
6.提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。
Oracle:
优点: 1.Oracle的稳定性要比Sql server好。
2.Oracle在导数据工具sqlload.exe功能比Sqlserver的Bcp功能强大,Oracle可以按照条件把文本文件数据导入.
3.Oracle的安全机制比Sql server好。
4.Sql server的易用性和友好性方面要比Oracle好。
5.在处理大数据方面Oracle会更稳定一些。
6.Sql Server在数据导出方面功能更强一些。
7.处理速度方面比Oracle快一些,和两者的协议有关.
缺点: 价格昂贵
1. Oracle跨平台,SQL Server只能运行在Windows上,而Windows能够安装的硬件是有限的,如Sun的Sparc服务器不能安装Windows,一些大型机、小型机也只能装UNIX,在这些高端机器上就只能跑Oracle了,这注定了Oracle就是高端数据库,而SQL Server呢,中低端。
2. Oracle真正实现了行级锁,SQL Server也宣称实现了行级锁,但你实际去试,如果不加索引,其实是不行的。
3. Oracle因为有多版本数据的技术,读写操作不会相互等待,虽然SQL Server 2005学习Oracle增加了snapshot机制,从而也引进了多版本数据(MySQL也有多版本数据机制,不能说一定是学习Oracle),但是实际效果感觉就是2个版本的数据,隔离级别为read committed时候,读写不再相互等待,但是把隔离设置为Serializable还是会产生读写相互等待。
4. Oracle的事务日志归档相当方便,而SQL Server要用事务日志备份来实现,而且还要配置自动作业,启动agent服务。
5. Oracle的数据字典丰富,使得DBA容易判断数据库的各种情况,虽然SQL Server 2005学习了Oracle的数据字典的特点,但从数量及方便程度上还是相差太多。个人感觉这是Oracle最人性化的地方。
6. Oracle的PL/SQL比SQL Server的T-SQL功能强大很多。
7. Oracle的触发器比SQL Server的种类多几种。
8. oracle的备份恢复原理相当简单明了,备份就在操作系统上拷贝数据文件好了,恢复呢,再拷贝回来,数据是旧的,不怕,应用重做日志好了。SQL Server呢,虽然原理在本质上还是这些,但操作起来麻烦多了,麻烦到让你体会不到其本质。
9. Oracle数据库启动可以有多个阶段,使得DBA可以在不同的情况下,通过启动到特定的阶段解决一些特殊问题,而SQL Server只要服务一启动,所有数据库就都打开了。
10. SQL Server给人的感觉是简单易用,但是我要说,如果你继续向前走,就会发现SQL Server的体系结构相当复杂(注意我这里是说的复杂),大体还是沿袭的Sybase的体系结构,这种复杂结构,估计很难有根本性的改变,而Oracle呢,时间越长你越会觉得其体系结构严谨,虽然开始会感觉很难。我的一个比喻,SQL Server是傻瓜相机(就是那些一两千的小数码),Oracle是单反相机(40D,5D,D300),如果你是入门者,那用傻瓜相机好了,在各种环境下拍摄,基本都过得去,用单反,光圈、快门都要自己设定,反倒不如傻瓜相机的效果,如果你是高手了,那傻瓜相机就很难得心应手了。
11. Oracle的书籍一般都比较深,随便一说就是一大批,Epert Oracle、Practical Oracle 8i、Cost-based Oracle,SQL Server呢,恐怕只有那套Inside SQL Server了,虽然SQL Server的书籍数量比Oracle的多的多(特别是在国内),但多数都是step by step的入门书。
12. 对比SQL*Plus与sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太简陋,差得太多了。
13. SQLServer的最大优点就是和Windows结合紧密,易用,但是要注意事情都是两面的,这些优点可能导致其致命的缺点,例如易用,使得搞SQL Server的人可以不求甚解,有时候不求甚解是没问题的,但是有时候不求甚解可能会造成灾难,特别是对搞数据库的人来说。不好意思,本来要说SQL Server的优点呢,最后也成了缺点了。
ACCESS是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和图形用户界面两项特点,是 Microsoft Office的成员之一。优点:Access部署简单方便就一个文件运用起来比较灵活主要是桌面数据库系统,他也可以开发基于自己的桌面数据库应用(UI),也可以作为前端开发工具与其它数据库搭配开发应用程序(如SQL Server,DB2,Oracle等),熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的初级用户则使用它来开发简单的应用软件。
缺点:数据储存量小安全性不够高,加了用户级密码容易破解。C/S结构下对服务器要求很高,否则容易造成MDB损坏并发数255,但是对高强度操作适应性差,如果服务器不够好,网络不够好,编程的方法不够好,6-7个人同时访问就能导致MDB损坏或者并死,不能将VBA代码开发的软件系统直接编译成EXE可执行文件,不能脱离ACCESS或者ACCESS RUNTIME环境,该环境相对其他软件体积较大(50M左右)。Microsoft Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
缺点:因功能强大,所以操作数据比ACCESS较为复杂。