软件工程师的产品(精选9篇)
软件工程师的产品 第1篇
身处信息时代, 科技的发展越来越快, 软件产品的更替也越来越频繁, 为了跟进时代的步伐, 软件产品就得出高质量、高实用性。同时, 软件工程师也应当确保其产品和相关的改进符合可能达到的最高专业标准。可以说一代人的成就源于高质量的软件产品, 如马云、周鸿祎、马化腾、丁磊等等。但是, 这些人不是唯一的, 在这个时代, 每个人都有机会, 不过, 成功肯定是留给恪守职业道德的人的。“不道德者”终不会成功。
2. 软件工程师与软件产品
2.1 软件工程师能力要求
软件工程师要熟识基本计算机常识, 如编制、数据库、通信协议原理等。软件工程师对产品和体系要有认知, 最基础的要能够将产品文档内描述的UC变动成TC。软件工程师还需"不要脸”, 如测试工程师与研发工程师之间极易发生矛盾, 如果能拉下脸把不愉快扔到一边, 会对项目质量起到关键作用。软件工程师的思维要发散, 会异想天开, 对产品有创意。作为一个软件工程师, 活到老学到老是必须的, 信息世界变更太快, 如果跟不上节奏, 是会被OUT的。
2.2 软件缺陷造成的严重后果
软件产品的不合格会造成各种各样的后果, 后果可大可小, 但如果是应用于银行、军事、航天等领域, 一点点差错都可能会造成灾难性的后果。如2011 年温州的7.23 动车事故, 由于温州南站信号设备在设计上存在严重缺陷, 遭到雷击后, 发生故障, 导致本应显示为红灯的区间信号机错误显示为绿灯, 从而造成40 人去世、172 人受伤。2009 二月, 谷歌的Gmail故障的另一个例子是, Gmail用户数小时无法访问邮箱, 这失败是由于负载均衡软件缺陷之间的数据中心造成的。再如最近5 月28 日上午的时候, 携程官网大面积瘫痪, 官方回应说是服务器受到了不明攻击, 但是其处理速度相对来说较慢, 因其保护工作做得不到位导致了服务器被攻击。由以上几个案例可以看出软件做得不到位会对人们的生活造成各种各样的影响, 甚至会出现灾难性的事情, 因此, 软件工程师应确保产品和相关的改进, 生产的产品和有关的改良, 不仅负责自己, 而且还负责世界。
3. 产品与客户
在客户不认识或不熟识一个软件工程师的情况下, 产品是校验一个软件工程师的能力的唯一标准。只有让客户满意的产品才是好产品。在客户的要求是合法的、不危害公众的前提下, 客户的需求, 产品都应具有, 客户才是第一位的, 标新立异是在满足客户要求的前提下才得以成立。对于软件工程师来说, 只须合用, 遵循最适合的工作的专业标准, 除非出于品德或技能思考可认定时才容许偏离。
讲个小故事, 有一名初到小镇的神甫问一个孩子" 小朋友, 请问邻近的邮政局怎么走?”孩子对神甫说得很清楚。神甫说:" 小朋友, 非常感谢你。对了, 星期天来教堂玩玩, 可以告诉小朋友通往天堂的路哦”。孩子说:" 免了吧, 连到邮局的路也不明白的人, 又怎能晓得何方通往天国呢?”这个故事也从侧面告诉大家, 如果连客户的需求都没摸清楚, 就算产品做得再好, 客户也不会买单。
4. 产品与文档
要做出高质量的产品, 其文档是不可避免的, 文档的编写是整个项目的基础, 就好比高楼大厦的地基, 地基不稳, 难以持久。在软件产品的开发中, 总会有大批的讯息孕育与行使, 软件文档在产品的开发过程当中就起到了举足轻重的功用。软件文档可以抬高开发效能, 使得开发人员对各个阶段的作事都进行精密考虑、全面盘衡量、削减返工。并且可以在开发早期发现错误和不一致性, 便于及时加以纠正[1]。在大学期间, 老师教大家软件工程的时候, 就告诉说软件文档是非常重要的, 可以记录软件工程师对程序的设计思路, 当这个软件产品需要维护的时候, 软件维护人员也可以清楚明白地了解这个软件产品以方便维护。除了这类针对软件工程师的文档, 还有针对用户的软件文档, 就像电冰箱的说明书一样, 让客户简单明白地知道如何使用此软件。这说明, 软件工程师要保证软件在软件中的描述是一个很好的文档。
5. 产品与隐私
某些软件因为一些功能, 或多或少都会涉及到一些个人隐私, 如微信的" 在附近查找”功能会获取用户现在所处的地理位置;还有一些软件功能涉及到了钱财, 需要用户提供真实姓名、身份证号、银行账户等等。再举一个具体的例子, 在2012 年2月9 日, 商家把消息告诉了十亿个国家电力网说, 收到一家公司发电子邮件, 其中包括当当网、淘宝网店、1 号店、麦考林等主流企业对客户个人信息的网站。7 月份的时候, 1 号店、当当网、京东商城等多家电商网站再" 集体”被曝账户信息泄漏, 导致用户财产损失、隐私泄露, 电商信息安全问题再次引起" 围观”。
所以, 一款软件产品必须得保证用户的隐私不被泄漏, 否则也没有用户敢使用这样的软件产品。所以要确保软件和相关文档的开发, 应该尊重受软件影响的人的隐私。只有保证了用户的合法利益, 才能基本保证一个软件产品的持久。
6. 产品与测试
软件测试是为了发现程序中的错误而执行程序的过程。软件测试在软件生命周期中占据重要的地位, 是软件产品交付用户使用之前保证软件质量的重要手段[2]。现在简要地说几点软件测试的作用。第一点, 软件测试对产品质量的落成有着全盘的评估的作用;第二点, 经过连续的测试 (包括需求评审、设计评审、代码评审等) 对产品质量供给持续的、迅速的反应, 从而促使在整个开发过程当中不断地、即时地改善产品的质量, 并削减各类返工, 下降软件开发的成本;第三点, 经过测试挖掘所要交付产品的弊端, 尤其是尽量地发现种种首要的缺陷, 下降或解除产品质量危机, 升高客户的合意度, 扩展市场份额, 提高客户的忠诚度;第四点, 经过对劣点进行剖析, 寻找缺陷发生的根本原因 (软件过程当中的问题, 囊括错误的行为方式) 或概括出软件产品的缺陷形式, 为了避免将来的错误或产生类似的产品, 以达到预防缺陷的目的。因而可知, 软件测试在软件质量安全控制上的地位是不可替代的[3]。软件产品的质量就是其生命, 为了保证软件产品的质量, 软件工程师做了很多的努力, 长期以来, 也就积累了很多有效的经验。可以说, 软件测试的重要性, 可以尽可能地保证软件产品的质量。因此, 软件工程师要确保对其从事的软件和文档资料有合适的测试、排错和评审。
7. 产品与维护
为了与时俱进, 不被同行另外的软件产品超越, 就需要对软件产品进行维护。对于软件的维护的作用, 如下, 在运行中发现软件错误和设计缺陷, 这些错误和缺陷在测试阶段未能发现;改进设计, 以便增强软件的功能;是已经运行的软件能够适应特定的软件、硬件、外部设备和通信设备等的工作环境, 或者是要求适应已一变动的数据或文件;是投入运行的软件与另外相关的程序有良好的接口, 以利于协同工作;使运行软件的应用范围得到必要的扩充等[4]。维护软件, 保持同一个态度作为新的发展, 只有保持热情不变, 才能保证工作的质量, 保证产品的质量, 保证客户满意。软件工程师也应该注意保持数据的完整性, 这是很容易因过时引起错误的。如日前, 也就是2015 年5 月27 日下午, 光缆被挖断影响了支付宝, 导致支付宝无法登陆, 但支付宝方用了2 小时就完成了修复, 在这2 小时内是最危险的时刻, 最容易受到攻击, 但支付宝方安然地度过了这场风波, 确保了数据的完整性, 也让用户悬着的一颗心踏实了。
8. 产品与估算
在产品设计中, 进行成本的预算是很重要的。成本估算是成本控制的基础与保障, 可以加强全员的成本控制意识, 可以避免成本的失控。如果没有成本, 就算有再好的创意, 终究也只是一张白纸。因此, 软件工程师以保证从事或建议的项目, 作出实际和定量估计, 包含进度、成本、人员、质量和输出, 并对预算的不确定性作出评价。若估算不全面, 会对软件产品的开发造成可大可小的障碍。
结论
通过以上的分析, 可得知要做好一款好的软件产品不是随随便便就能成功的。一款优秀的软件产品不仅需要软件工程师的不懈努力, 还需要有各式各样的文档, 要经过一层一层的测试、改进、维护。作为一个软件工程师, 不仅要有相对应的软件技能, 还要有各种精神以应对各种不同的情况。由以上, 也可得知一款好的软件产品的重要性, 如果产品有问题, 很可能会酿成大祸, 千里之堤毁于蚁穴。这些也是软件工程师职业道德规范中所提及的, 作为软件工程师必须要恪守的准绳。不管时代怎么变更, 从古至今, 唯有恪守本行的职业道德者才会成功。相信, 在不久的未来, 可以看见越来越多的高质量软件产品。
参考文献
[1]李玉玲, 张瑾.软件文档的编制方法研究[J].河南大学学报 (自然科学版) , 2003, 03:54-56.
[2]王萍.软件测试的重要性[J].软件导刊, 2009, 04:20-21.
[3]http://blog.csdn.net/kerryzhu/article/details/7516100.
年度百佳产品——软件 第2篇
Mac OS X 10.4
代号为“Tiger”的Mac OS X 10.4是当前技术最先进、最易于使用的操作系统之一,作为Mac OS X家族的最新成员,10.4集诸多先进技术于一身,且引入200多种全新功能,其中最重要的SpotLight聚光灯技术,它可以让苹果的用户瞬间找到所需的文件;采用H.264编解码技术的iChat AV,让用户能够快速展开高质量的视频交流及多人视频会议;全新的Dashboard提供丰富多样的实用小程序,QuickTime 7、Safari RSS浏览器以及VoiceOver语音功能都可为用户创造新鲜有趣的娱乐体验。另外,基于Darwin内核的Mac OS X 10.4秉承UNIX体系惯有的高稳定性和高安全性等优点,堪称迄今为止最为优秀的操作系统之一。
苹果电脑股份有限公司,电话:800-810-2399,网址:www.apple.com.cn。
桌面搜索引擎
Google Desktop Search
Google Desktop Search可帮助Windows系统的用户快速检索到自己所需的文件,无论它是文本、图像、视频、电子邮件、地址簿还是在线聊天的内容。该软件通过建立索引的方法给计算机上的文件设立了快速定位链接,极大提高了用户查找文件的效率和准确性,进而提高信息的使用价值。借助Google Desktop Search,用户不必再为查找陈年文件而烦恼,只要文件还在你的硬盘上,Google Desktop Search都可以帮你轻松搞定,而它所具有的高使用价值绝对会让人对微软虚无飘渺的WinFS技术嗤之以鼻。
网址:www.google.com。
浏览器
Firefox 1.5
作为FireFox浏览器的最新版本,Firefox 1.5在多方面都有了重要的改进,它可以支持自动在线更新功能,以保证用户能够在第一时间获得升级、将产品始终保持在最佳状态。其次,Firefox 1.5支持包括SVG、CSS 2/CSS 3、JavaScript 1.6在内的最新Web标准,并改进了前进后退按钮加快导航速度,提供更容易的方法快速清除隐私数据,重新设计操作菜单、增加RSS搜索功能,支持DHTML传输,引入Windows-Eyes5.5屏幕阅读器—这些改进都有效提高了产品的实用价值。Firefox 1.5在安全方面也作了进一步的增强,是目前综合品质最优秀的互联网浏览器之一。
Mozilla中国中心,网址:http://www.mozilla.org.cn。
数字生活套件
Apple iLife'05
iLife'05是苹果公司数字生活应用软件套装的升级版,它包括全新版本的iPhoto、iMovie HD、iDVD和GarageBand以及iTunes 。作为一款拥有很多创新的综合套装软件,iLife’05在技术和理念上都走在了同类产品的前面。它不但可以管理、编辑和共享数码照片,还可制作数码影片及DVD,以及购买、管理和制作数字音乐。软件设计者使得iLife'05其中的每个独立软件达到了前所未有的紧密程度,任何音乐、照片和视频都能够从一个程序方便地拖放到另一个程序中,给用户带来了简洁、智能、人性化的真实体验。
苹果电脑股份有限公司,电话:800-810-2399,网址:www.apple.com.cn。
办公套件
OpenOffice.org 2.0
OpenOffice.org 2.0是开源阵营的重量级成果,作为史上第一款开源协作模式设计的办公套件,OpenOffice.org 2.0给用户带来全新的使用体验,各方面的功能日臻完善,对微软Office文件的兼容能力也明显增强,具有很高的实用价值。更重要的是,OpenOffice.org 2.0将ODF开放文档格式(Open Document Format)作为默认的格式,目前Open Document已经提交给ISO进行标准化认证并将成为国际通行的文档格式标准,这将使用户在未来能够摆脱对单一办公软件平台的依赖。
军用软件产品评价的工程化实现方法 第3篇
本文根据GJB5236-2004《军用软件质量度量》和GJB2434A-2004《军用软件产品评价》的原则和要求,探讨第三方软件评测机构在实施软件测试后,按照软件自身特点对软件进行评价的可行性方法。
1 军用软件质量度量
软件由程序、数据和文档等组成。软件质量是指软件特性的总和,表示软件满足明确或隐含要求的能力。软件产品质量可以通过测量其内部质量属性或外部质量属性或使用质量属性来评价,目标是使产品在指定的使用环境下具有所需的效用。当用软件本身的内部属性(如软件的规模、复杂性或模块间的独立性等)来刻画软件产品质量时,所体现的是内部质量,当软件在特定环境下运行时所表现的行为则代表了产品的外部质量,根据使用软件的结果而不是软件自身的属性来测量评价的则是使用质量。
GJB5236-2004《军用软件质量度量》中定义了外部质量、内部质量以及使用质量的质量模型。其中外部质量和内部质量的质量模型相同,但度量方法不同。外部质量和内部质量的质量模型将软件质量属性划分为6个特性(功能性、可靠性、易用性、效率、维护性和可移植性),并进一步细分为若干子特性(见图1)。每个特性和子特性可由一组内部属性来度量,也可通过包含该软件的系统所提供的该能力的程度从外部来度量。使用质量的质量模型将软件质量属性划分为4个特性:有效性、生产率、安全性和满意度。
一般说来,开发者使用内部度量,需方使用外部度量或使用质量度量,评价者使用内部度量或外部度量或使用质量度量,并且各自使用相应的质量模型。GJB5236-2004《军用软件质量度量》中列出了外部度量、内部度量和使用质量度量的实例。
2 评价过程
2.1 确立评价需求
评价者分析委托方提出的最初评价需求,分析要评价产品的应用领域和产品用途,并与委托方共同协商,参照GJB5236-2004《军用软件质量度量》确定要使用的质量模型和要评价的产品质量特性及其子特性。
2.2 规定评价
GJB5236-2004《军用软件质量度量》中对软件质量模型中的每个内部、外部和使用质量的特性及其子特性,通过提供若干度量元的方式列出了一些行之有效的测量方法。评价者在确定产品质量特性及其子特性后,需用一个或多个可以测量的质量属性来进一步描述每个质量特性及其子特性,并给每个质量属性确定相应的目标值。选择度量时,可以根据评价需求从GJB5236-2004的度量表中选择适当的度量元,也可根据需要开发和设计更为有效的度量元并进行量化,此外要注意选择那些成熟且简便易行的测量方法和技术,测量的结果要易于使用。
对一个特定的软件来说,它的各个质量特性及其子特性的重要性是不同的。如对于实时系统来说,可靠性、效率和功能性比较重要,而生存期长的软件则除功能、可靠性以外,可移植性、可维护性也比较重要。因此,在确定产品质量特性、子特性、度量后要综合考虑它们之间的相互关系和重要程度,给出相应的权值。
度量选定后,应确定质量评定等级。确定质量评定等级是将产品满足质量需求的程度进行分类,比如按是否满足最低要求的程度分为2类:满意或不满意,或将满足需求的程度分为4类:优秀、良好、合格或不合格,等等,确定分类后,给每一类赋以确定范围的级别值。
2.3 设计评价
评价者分析技术约束条件,把适宜的评价方法编成文档,起草评价计划。当描述的评价方法是基于使用软件工具时,应在评价计划中标识该工具的名称、版本标识和它的来源。此外评价计划中描述评价所需的资源,如人力资源、计算机资源和办公场所,以及对这些资源的分配,根据可用资源安排评价工作的进度。
2.4 执行评价
第三方评测机构在软件测试过程中针对选定的质量特性及其子特性度量元收集相应的测量值,把所有中间数据记入评价记录,以便将产生的结果记入评价报告。当中间数据量非常大并且非常复杂时,应使用正式的配置管理来保持中间评价结果与评价产品之间的一致性。
2.5 做出评价结论
评价者如实收集各度量项值,按照质量特性评价方法计算出各质量特性、子特性值和评价项值,填写在软件综合评价表中,并与预定的质量评定等级值进行比较,对软件进行综合性评价,得出软件综合评价结论,编写评价报告。对评价所产生的全部中间和最终评价结果都要进行评审。
3 评价实例
以下以某软件为例,描述软件评价的方法。在确定评价需求和规定评价阶段,评价者与委托方协商后采用外部质量模型,确定了要评价的产品质量特性及其子特性,确定了相应的度量项及度量方法。然后评价者给出各质量特性、子特性和度量项的加权系数评分,再根据公式(1)计算出加权系数。其中,K为参加评分的人员数,各质量特性、子特性和度量项及其加权系数具体计算结果见表1。
随后确定质量评定等级,按照满足需求的程度分为4类:优秀、良好、合格(最低可接受)或不合格(不可接受),给出相应的评价值。各质量特性、子特性的质量评定等级见表2。
在设计评价阶段,评价者编写评价计划,确定评价方法如下:
根据公式(2)评价软件各质量特性:
其中,Vi表示第I个质量特性的测量值,Vsij表示第I个质量特性的第j个子特性的测量值,Vijk表示第I个质量特性的第j个子特性的第k个度量项的NN测量值,sj表示第I个质量特性的子特性数量,mij表示第I个质量特性的第j个子特性的度量项数量,ωsij表示第I个质量特性的第j个子特性的加权系数,ωmjk表示第I个质量特性的第j个子特性的第k个度量项的加权系数。
在执行评价和做出评价结论阶段,评价者收集各度量项值,填写软件评价表见表3。
得出软件综合评价结论见表4。
评价者编写评价报告草稿,与委托方一起进行评审,然后,评价者根据评审意见形成正式的评价报告提交给委托方。
4 结束语
本文主要讨论了软件评价实施的技术可行性,详细描述了确立评价需求、规定评价、设计评价、执行评价、做出评价结论等步骤,据此可对被测软件进行较为客观的评价,从而较好的满足软件产品的评价需求。然而,本文仅是对软件评价技术的探讨,而软件评价过程管理的进一步规范化、程序化还有待继续研究完善,这样能将软件评价结果中人为因素的干扰降至最低,使评价结果更加准确公正。
参考文献
[1]张金福,莫永成.略论军工通信企业软件工程化管理的工作思路[J].移动通信,2006(11).
[2]马植平.军用软件工程化管理初探[J].水雷战与舰船防护,2009(8).
企业ERP软件产品的选择 第4篇
当前, 无论是高端市场的SAP、Oracle等国外老牌软件开发商, 还是中低端市场用友金蝶等一大批国内优秀软件企业, 都在不遗余力地为自己的ERP产品摇旗呐喊, 在ERP厂商的的眼花缭乱的概念面前, 在保持理智的前提下, 我们在对ERP供应商的考察和选型的时候应着重从以下几方面进行考察:
一、ERP产品性能
国内软件无论是从纯计算机技术的平台还是体现ERP核心价值的服务上与国外优秀软件都有极大的差别, 国外ERP软件厂商更加务实、专业与系统。
SAP早在20世纪80年代就开始同中国国营企业进行项目合作, 并取得了丰富的成功经验。SAP是ERP行业的领导者, 这里不讨论它的R/3产品, 毕竟跟国内的产品不是一个等级的, 我们说的他新推出的“中国新干线”系统。在国内的ERP市场趋于成熟之后, SAP也逐渐从中国的高端市场逐渐向中小企业扩张。考虑到8 0%的中国中小企业只能用到R/3的20%功能, SAP把R/3经过预配置后推出了“中国新干线”系统。虽然只配置了R/3的2 0%的功能, 但这套系统依然是功能强大, 几百个预定义的参数足可以满足各个行业的用户。“只有用户用不到的, 没有SAP做不到的”, 这个就是SAP的自豪之处。
Oracle于1989年正式进入中国市场, 是第一家进入中国的世界软件巨头。在过去的几年时间中, Oracle在中国的收入也以每年50%的速度增长, 而预测未来3至5年中, Oracle收入年增长率将达到前所未有的100%。在相当长的时间内, Oracle与SAP, 将主导国内高端ERP产品的市场份额, 而金碟和用友的ERP产品量, 虽然近几年在中小型企业中突飞猛进, 但于整体而言, 与SAP和Oracle的差距将在一定的时期内保持下去。
提起国内的ERP厂商, 就不得不提用友。用友的U8以财务软件为核心, 逐渐开发物流系统;收购人力资源系统、整合制造系统, 在设计上整合和接口太多, 各子系统相对完整和适应性强, 比较适应局部应用的现实中国市场, 整个设计受快速占有市场的思想影响很大, 短期收益明显。低廉的价格, 加上品牌的优势, 使得用友U8和用户实在是有太多了。
金蝶目前的主流产品K 3, 财务、物流、制造、人力资源等核心模块进行了一体化设计和规划, 产品的整体功能适应性较强。据了解:K 3制造系统主要是针对离散型生产特点的企业, 客户同样很多。但很多用户用的是基于会计系统的产品。
二、行业经验和成功经验
从目前情况看, 除专业从事ERP产品开发的企业, 如高端市场的SAP、Oracle, 和面向中低端市场的用友金蝶外, 国内ERP软件公司规模都较小, 难于形成全国范围的销售网络和服务支持体系, 也不可能投入大量资金提高软件的成熟度和适应特大型企业的复杂应用。
三、实施周期
作为老牌流程管理软件开发商, SAP的ERP产品已经具备相当的人性化特征, 其实施周期长短主要取决于一系列的主观非技术因素, 主要为下列三个方面:一是企业高层的支持力度;其次为企业本身的管理基础和管理意识;最后是实施小组成员的综合水平。对于管理基础较成型的企业, 实施SAP不需要进行大范围的业务流程重组, 一般可在三至六个月内完成实施。
而Oracle则由于长期以来的软件自身特点, 一般实施周期较SAP长, 目前Oracle也基于国内企业的特点进行软件重构, 使其实施周期变得越来越短, 一般来说, 采用他们解决方案也会在3至7个月内完成, 值得一提的是, 采用他们的标准化解决方案, 理论上有可能在5天内就能完成整体方案的实施。
而相对于SAP和Oracle, 国内的ERP产品由于更多的是面向中小型企业, 虽然在实施周期上往往较短, 但是从产品评估的角度而言, 是明显缺乏可比性的。
四、总体价格
从价格方面来看, SAP的ERP产品价格无疑是最高的。然而, 高昂的价格背后, 它所具备的绝对领先的优势又是其他所有ERP厂商不可同日而语的。随着SAP产品的安装, 用户购买初期的成本会越来越小, S A P用户在系统正式上线运行后往往很快就能获得预期的效益和回报:联想集团的库存周转由72天降到22天、应收帐周转天数由2 8天降到1 4天、公司总体费用率由2 0%降到9%;海尔集团采用了S A P物流管理系统和电子采购平台后, 第一年的采购成本就节省了8000万人民币。这是SAP在国内的两个重点案例。
与此同时, Oracle却从来没有因为价格而失去一份合同。Oracle的特点是会放弃产品价格, 转而采用一种模块化的服务提供方式, 让用户更灵活的选择适合自己业务规模和业务流程的定制化产品。从这一点上说, Oracle的实施价格显得更加灵活。当然, 国内的ERP产品在价格上有时会与上述国外顶尖级产品出现数量级的差异, 就普遍而言, 国产ERP的总体实施价格也确实停留在一个较低的水位线上, 抛开产品质量, 人力成本恐怕还是最重要的因素之一。
五、软件提供商的实力和服务
应该说目前市场上的各厂商都是各具特点, 从出身来看, SAP最初起步于财务软件, 随着客户以及管理信息化需求的增长而成长。SAP拥有近30年的丰富的行业和企业管理经验, 并且在服务众多国际知名企业的过程中成就了“最佳业务实践”, 具备了为客户提供最好的企业管理解决方案和服务支持的能力, 在国际上得到了广泛的认可。
Oracle的主要优势是数据库业务, 对管理软件的研究和开发, 则是于近十年以内开始。从产品上看, 与SAP基于客户服务体系结构的紧耦合庞大系统不同, Oracle推行的是基于JAVA模块的整体网络。他的基本做法是向其数据库客户推销其应用软件, 并结合各自的特点进行有针对性的实施。
软件产品成本核算的困境与创新 第5篇
与软件行业的蓬勃发展相比,软件产品的成本核算还在沿袭工业产品核算的路子。软件产品成本无论在生产过程还是产品形式上,与工业产品都有明显的不同,工业产品的核算方法能否适应软件行业的需求?对软件行业是否应该制定更加合理的会计核算准则?何种方法更适合软件产品的成本核算?这些问题已经越来越多地引起人们的思考和讨论。
对于软件产品的成本核算,笔者亦有一些不成熟的想法,列示如下,与会计同行共同探讨。
一、软件产品的特点
产品成本核算的方法,很大程度上取决于产品的生产过程和产品的特点,因此在探讨软件的成本核算之前,先对软件的生产过程进行界定,作为讨论的基础。
(一)软件产品的生产过程
任何产品从无到有,生产过程一般都需要经过产品研究、产品开发、产品制造三个阶段,软件也不例外,其生产过程也包含以上三个阶段:
1. 研究阶段:
是指为获取新的技术和知识等进行有计划调查的过程。此阶段的特点是计划性和探索性,可能会形成软件项目研究成果,也可能半途而废。研究阶段发生的支出称为“研究支出”ⅰ。
2. 开发阶段:
是指从软件立项到开发成功的过程。此阶段具有针对性,形成软件成果的可能性较大。开发阶段发生的支出称为“开发支出”。
3. 制造阶段:
是指软件开发成功后进行拷贝、复制、印刷、包装等活动的过程。此阶段形成可商业推广的软件存货。制造阶段发生的支出称为“制造支出”。
(二)软件产品的独特之处
与工业产品相比,软件产品的生产有独特之处,其中对会计核算形成实质影响的特点主要有:
1. 生产过程独特
工业产品的生产过程一般指制造阶段,只有新产品才会有研究和开发阶段。
而软件则不同,研究阶段和开发阶段是软件的主要生产过程,软件研发成功意味着产品生产基本完成。从实质上看,研究阶段和开发阶段的活动创造了软件产品的使用价值,在软件生产过程中占绝对主导地位。制造阶段也是软件的生产过程,但只是辅助活动,居于绝对从属地位。
2. 生产支出构成独特
制造支出一般是工业产品生产支出的全部,只有新产品才涉及研究支出和开发支出。
而软件则不同,研究支出和开发支出占软件生产支出的绝大部分,制造支出只占软件生产支出中微不足道的小部分。
3. 产品归属独特
一般工业产品的生产过程会形成流动资产存货。
软件产品的生产过程也应该形成存货,但软件产品具有无形资产的特性,有形成本只占生产支出中很微小的部分,从产品特性看更应归属于无形资产。
二、当前软件产品的成本核算及存在的问题
(一)软件产品会计核算的现状
目前我国还没有专门制定关于软件产品的会计准则,软件企业在成本核算时的主要依据是《企业会计准则第1号存货》和《企业会计准则第6号无形资产》,通行的核算方法是:
1. 把软件产品的研究支出确认为当期管理费用,计入当期损益。
2. 把软件产品的开发支出确认为当期管理费用,计入当期损益。
3. 把软件产品的制造支出确认为软件生产成本,计入存货。
比如:用友软件(600588)2009年年度报告中的会计政策规定:将内部研究开发项目的支出,区分为研究阶段支出和开发阶段支出。研究阶段的支出,于发生时计入当期损益。开发阶段的支出,只有在同时满足下列条件时,才能予以资本化,。不满足上述条件的开发支出,于发生时计入当期损益。
虽然如此规定,但在用友软件2009年年度报告中却没有发现内部研究开发的无形资产。无形资产中的2项软件使用权、17大项软件著作权都来自收购或投资者投入。而同期计入管理费用的研究及开发费将近2.9亿元,占主营业务收入的12%ⅱ。可见用友软件是按照当前通行做法来核算软件生产成本的。
(二)软件产品成本核算存在的问题
在软件产品成本核算中,业界对研究支出确认为当期管理费用和制造支出确认为生产成本并无争议。争议集中在“开发支出确认为管理费用是否合理”这一问题上。当前,将开发支出确认为管理费用的做法,造成了以下矛盾:
1. 软件产品的生产成本与实际生产支出不配比
生产成本应当是产品生产过程中费用的归集。软件产品的主要生产过程是开发阶段,开发支出应占软件生产成本的绝大部分。然而应占据主导地位的开发支出均未计入软件生产成本,微小的制造支出却成为软件生产成本的全部,造成了软件生产成本远远小于实际生产支出,不符合软件产品的生产过程和特点。
2. 产品销售收入与销售成本不配比
软件产品绝大部分的价值是在开发阶段创造的,软件产品的销售收入中包含了这部分价值,但在相应结转的销售成本中却只包含软件的制造支出,并未包含与开发阶段创造的价值相匹配的开发支出,造成销售收入与销售成本不配比。
3. 各年度利润与业务实际情况不配比
对于软件公司而言,本年度开发的新产品不一定会在本年度产生收益,而是会在未来年度产生收益。根据目前核算方法,在软件开发年度,大量的开发支出计入本年损益,造成当年利润很低。而在以后销售年度,开发支出所创造的软件价值持续为公司带来收入,但此时与软件收入配比的却只有软件制造支出,成本畸低,造成当年利润很高。由此,导致各年度利润与实际业务不配比,影响到会计数据的质量。
以上三个方面说明,软件开发支出全部计入当期管理费用存在不合理之处,未能真实反映出软件企业的客观情况,不符合权责发生制、实质重于形式、等会计信息质量要求。
三、对软件产品成本核算的观点
既然软件开发支出全部计入当期管理费用不合理,那么应该如何处理呢?
很多会计人员认为,开发成功后的软件产品符合资产的定义,开发支出应计入资产项目。《企业会计准则基本准则》规定:资产是指企业过去的交易或者事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源。无论从定义还是实质上看,开发成功的软件产品完全符合资产的定义,因此开发支出应在满足确认条件时,计入资产项目。
但这又产生了新的问题,即软件开发支出计入资产的哪个项目呢?主要有两种观点:
(一)软件开发完成时确认为存货
这种观点认为:软件开发支出属于软件的生产成本,所以应该像工业品核算一样,软件开发完成时应该确认为存货。这种观点符合一般产品成本核算的逻辑。
但这种观点面临如何确定完工产品的数量的难题。软件开发支出确认为存货成本时,分摊开发支出的产品数量很关键,对产品的单位产品成本有直接影响,进而影响到存货发出成本、销售成本的计量。可用于分摊开发支出的数量有:
1. 按照实际制造的软件产品的数量
比如,公司对某软件投入开发支出1000万元,软件成功后,制作了100套软件光盘用于出售,那么每套光盘分摊的开发支出就是10万元。但如果制作了1000套软件光盘,每套分摊的开发支出就变成了1万元。产品数量的不同,造成了产品的单位成本差异非常大。
而且,假设开发支出都分摊到本期实际制作的产品中,那么如果以后期间再制作新产品,新产品就没有开发支出可以分摊了,造成前后各期同种产品的成本不相同。
2. 按照软件生命周期内的总销量分摊
此种方法根据软件生命周期内的总销售量分摊开发支出,可以将开发支出均匀地分摊到每一套产品中,比较合理。但此种方法虽然符合逻辑,却不易操作。
一项软件产品的未来销售量可能是1套,也可能是10000套,在开发成功之时,很难准确预测未来的销售量。即使能够准确预测销售量,但企业一般会分期制作,而不会一下子将全部产品都生产出来,如果将开发支出一次性计入存货科目,就会导致分摊不易操作。
比如,公司对某软件投入开发支出1000万元,软件成功后,公司预测能销售1000套,每套分摊1万元。但本期只制作了100套软件光盘,可以分摊100万元的开发支出,但此时剩余900万元尚不能分摊的开发支出也放在存货中,未分摊和已分摊的开发支出混在一起,势必会对存货的发出计价造成影响。
从以上两个方面看,在软件开发成功时直接确认为存货的做法,如果不解决如何确定完工产品数量问题,将会引起核算成本不准确、产生混乱的状况。
(二)按照内部研发项目处理,在开发完成时确认为无形资产
这种观点认为,软件产品开发应比照《企业会计准则第6号无形资产》中有关内部研发项目的规定处理,对软件开发阶段的支出,满足规定的条件时,确认为无形资产。软件产品从产品特性上看,具有无形资产的特征,因此开发支出确认为无形资产更具合理性。
但这种观点面临开发支出确认为无形资产后,如何摊销的问题。
1. 是否需要摊销?
软件开发支出的是软件生产成本的一部分,因此开发支出被确认为无形资产后,应采取合理的摊销方式,将开发支出摊入软件的生产成本中。
2. 按照何种标准摊销?
无形资产一般采用直线法摊销。如果开发支出形成的无形资产按照直线法摊销,就需要解决两个问题:
(1)如何确定摊销年限?这是一个相对较为简单的问题,因为专业人员一般会对一款软件的市场周期有比较准确的估计。即使对使用年限估计不准确,也可以通过会计估计变更的方式予以修正。
(2)如何解决没有销售收入时的配比问题?
摊销需要每月进行,如果有的月份没有销售,而开发支出的摊销额却照旧计入损益,那么当月的收入和成本还是不能配比。
因此,开发支出按照直线法进行摊销也存在问题,但目前还没有其他摊销的标准能够解决这个问题,需要进行推销方法的创新。
3. 开发支出的摊销额应入哪个科目?
无形资产的摊销一般计入管理费用。如果软件产品的摊销计入管理费用,还是未能解决软件产品销售收入和销售成本配比的问题。
如果开发支出的摊销直接计入销售成本,可以总体上解决收入成本配比问题。但是摊销需要每月进行,如果有的月份没有销售,而软件产品摊销额却照旧计入销售成本,那么当月的收入和成本还是不能配比。
如果开发支出的摊销计入软件存货成本,可以解决软件存货成本与实际支出不配比的问题,也能解决销售收入和销售成本不配比的问题,但还是需要面对完工产品数量的问题。
综上所述,从软件产品的特性上看,软件产品的开发支出在开发完成后确认为无形资产是合理的,但如果拘泥于目前会计准则的规定,则无法很好地解决摊销标准、摊销年限、摊销额计入科目中存在的问题,因此要求我们在符合业务实际和基本原则的基础上,必须在核算理念和方法上进行创新。
四、对软件产品成本核算的设想
为了解决软件产品成本核算中存在的问题,根据以上分析,笔者提出软件产品成本核算的以下设想,在核算方法方面有所创新,仅供参考:
(一)对软件产品生产过程中各阶段支出的处理
1. 研究阶段支出:计入当期管理费用。
2.开发阶段支出:先在“研发支出”科目归集,待软件开发项目完成后,符合资本化条件的开发支出,计入无形资产;不符合资本化条件的支出,计入当期管理费用。比如:如果软件开发失败,开发支出应计入管理费用。资本化条件可以参照《企业会计准则第6号一无形资产》的规定执行。
3.制造阶段支出:直接计入软件产品的存货成本。
(二)开发支出资本化后的摊销
无形资产准则规定;使用寿命有限的无形资产,其应摊销金额应当在使用寿命内采用系统合理的方法进行推销。企业选择的无形资产摊销方法,应当反映与该项无形资产有关的经济利益的预期实现方式。无法可靠确定预期实现方式的,应当采用直线法摊销。iii
一般而言,无形资产传统的摊销方法是直线法,但准则也允许使用生产总量法等合理的方法。鉴于软件开发支出的特殊性,单纯的直线法并不能满足需要,应创新无形资产的摊销方法。笔者设想采用销售总量法,该方法的要点有:
1.符合条件的软件开发支出确认为无形资产后,企业应估计此项软件产品在销售周期内的销售总量,作为摊销开发支出的标准,计算每套产品应摊销的软件开发支出。在估计软件的总销售量时,应考虑市场、更新换代的年限、竞争状况等多方面的因素,使估计的总销售量能够更加合理。
比如:某软件的开发支出1000万元,全部符合资本化条件,那么确认为无形资产的金额就为1000万元。软件开发成功后,企业合理预计该款产品的总销售量为1000套,那么每套分摊的开发支出就应该是1万元。
2. 在软件产品制造完毕,存货入库时,开发支出暂不摊销。
3.在产品销售时,将每批产品应承担的开发支出摊销计入软件存货成本,然后结转为销售成本。未摊销的开发支出继续留在无形资产科目,直到下一次销售时再按照标准摊销。
比如:接上例,如果企业2010年制作了100套软件光盘,每套制作成本200元。根据预计1000套的销售量,每套还应分摊开发支出1万元。某月销售10套软件,则把10万元转入存货成本,然后结转销售成本10.2万元(摊销的开发支出+制作支出)。如果后来又制作了光盘,每套软件的制造支出可以用移动平均法计算,但每套应承担的开发支出摊销不变。
这种摊销方法,既能够使软件的生产成本与软件生产实际支出相一致,又能够使销售收入和销售成本相配比,同时也避免了研发当期利润低、销售期间利润高的问题,使各个年度期间的利润更加均衡,更加符合业务实际。
(三)软件开发的后续支出
软件产品开发完成后,可能还会发生一些后续支出,用于对软件进行修补完善。对于这些后续支出,企业应对其性质进行判断,符合资本化条件的,增加无形资产原值;不符合资本化条件的,计入当期费用;如果后续支出形成了一项新的软件,则应该确认一项新的无形资产。
(四)会计估计变更
因为软件市场变化莫测,一款软件的实际销售量可能达不到企业预计的总销售量,也可能会远远超过预计的总销售量。这种情况下,企业必须每年对软件的预计总销售量进行重新估计。如果根据获取的新信息、积累的经验或未来市场展望,软件的总销售量会发生变化,则应该按照会计估计变更处理,重新估计总销售量,并将未摊销的开发支出按剩余销售数量摊销。
比如:接上例,如果2010年底,已经销售200套软件,软件开发支出余额为800万元。企业根据新信息,预计1000套的总销售量不能实现,600套的总销售量更加可靠,因此需要按照会计估计变更处理:预计剩余销售数量为400套,尚需摊销的开发支出为800万元,则从下一年度开始每套应承担的开发支出摊销就变为2万元。
(五)资产减值
软件市场技术更新速度很快,企业的销售目标没有达到前,软件可能就面临着技术更新、淘汰,使无形资产的价值降低或者完全消失,因此企业应按照资产减值的规定,对软件开发支出进行资产减值测试,符合提取减值准备的,提取资产减值准备。
产品渲染软件课程的教学方法研究 第6篇
产品渲染课程是工业设计专业学生的专业必修课, 具有实用性强、更新速度快、应用面广、操作性强、与项目联系密切等特点。V-Ray是渲染质量较好、比较容易上手的渲染软件, 本文以V-Ray软件为例探讨产品渲染课程的教学方法。
V-Ray渲染课程的教学, 既包含了比较抽象的理论学习, 也有丰富的实践操作培训。本课程的传统教学方式是先由教师在多媒体教室授课, 然后安排学生在实验室上机练习。这种方式忽略了学生的主动性, 学生学到的知识比较零碎, 很难用于开发实际项目。随着课程内容的深入, 很多学生逐渐失去了学习兴趣, 以致课程结束时, 几乎没有学生能够渲染出具有一定水平的效果图。就这几年的就业情况来看, 从高职学校毕业的学生, 在走上设计岗位的时候, 对于渲染的理论知识、实践知识的掌握还是比较薄弱的, 项目制作的技术也不够娴熟。
结合当前高职教学改革以培养学生的实际应用能力为主要目标, 我们应大胆地进行教学改革, 让学生成为教学的主体。结合该课程的特点, 将实际中的工作项目引入课堂, 改革教学方法、教学手段及考核形式, 更好地实现课程教学目标, 让学生既能学到知识, 又能积累实际设计经验。
二任务驱动教学法和项目教学法在V-Ray软件教学中的重要性
任务驱动教学法, 是指教师将教学内容设计成一个或多个具体的任务, 力求以任务驱动, 以某个实例为先导, 进而提出问题引导学生思考, 让学生通过学和做掌握教学内容, 达到教学目标, 培养学生分析问题和解决问题的能力。它是一种以学生主动学习与教师加以引导相结合的教学方法, 既符合探究式的学习模式, 又符合教学的层次性和实用性。
项目教学法是师生通过共同实施一个完整的项目工作而进行的教学活动。将一个相对独立的项目, 交由学生自己处理。信息的收集、方案的设计、项目的实施及最终的评价, 都由学生自己负责。项目教学法最显著的特点是“以项目为主线、教师为引导、学生为主体”, 改变了以往“教师讲, 学生听”被动的教学模式, 创造了学生主动参与、自主协作、探索创新的新型教学模式。
与传统的教学模式相比, 任务驱动教学法和项目教学法都有明显的优势, 更符合现代的教学理念。但是这两种方法也各有利弊, 在实际的教学过程中, 我们应将二者结合起来进行整合课程开发。对于教师来说, 设计任务驱动法的教学内容比项目教学法容易得多;而对于学生来说, 通过任务驱动法的锻炼后再设计较难的项目教学法将更容易领会其核心要素。这两种教法的结合, 使得课堂的教学紧扣实际的项目, 让学生置身于模拟的真实环境中进行具体问题的解决。
三任务驱动教学法和项目教学法在V-Ray课程设计中的运用
1. 应用任务驱动教学法进行课程任务的设计和实施
课程任务是学生能力训练的主要载体, 设计合适的课程任务是进行任务驱动教学的关键。任务驱动教学法就是教师根据教学内容, 提出教学任务, 用任务引导学生边学边练, 以达到真正掌握知识和技能的目的。所以, 教师应在充分分析教学内容的基础上确定要求学生掌握的知识点, 再根据所要掌握的知识点设计任务。要注意的是, 任务的设计要以激发学生的学习兴趣为出发点, 以培养实际职业能力为目标。
将教学内容整合后, V-Ray课程可构建如下课程任务:
模块一:渲染面板的设置。
任务一:帧缓存设置;任务二:全局设置;任务三:采样设置;任务四:间接照明设置;任务五:发光贴图设置;任务六:焦散特效设置;任务七:环境特效设置。
模块二:灯光的设置。
任务一:灯光的创建;任务二:灯光的渲染参数设置;任务三:阴影的设置。
模块三:材质的设置。
任务一:V-Ray专用材质的设置;任务二:V-Ray贴图材质的设置;任务三:V-Ray双面材质的设置;任务四:V-Ray灯光材质的设置。
模块四:摄像机的设置。
任务一:摄像机的创建;任务二:摄像机的渲染参数设置。
课程任务的实施过程就是课堂教学的组织过程, 是学生获得知识和技能的学习过程。在教学实施过程中, 教与学要有机结合, 这样才能保证课程任务的顺利开展和完成, 才能保证学生能力的培养达到预期目标。在提出任务后, 教师应与学生共同讨论, 分析任务, 发现完成任务需要解决的问题, 并引导学生形成解决问题的正确思路与计划。学习的过程要以自主探索为主, 形成主动学习, 使每个学生都积极参与到问题的解决过程中来。教师可以在设计任务的同时, 还要设计任务评价标准, 让学生也参与到教学评价中, 根据任务完成情况分析学生的自学能力、理解能力、空间思维能力, 总结教学效果。
2. 应用项目教学法进行课程任务的设计和实施
当全部内容讲授结束后, 可渲染较大型的项目来进行教学, 比如“家庭厨房的效果图”等, 以达到两种教学法整合使用来培养学生综合职业能力的目标。
项目名称:家庭厨房效果图的渲染。
项目要求:厨房的落地窗口为光源主入口, 得到光照均匀、阳光充足、清新淡雅的室内餐厅效果。
完成该项目所需的具体任务: (1) 摄像机的设置; (2) 材质的设置:白色乳胶漆材质、地砖材质、不锈钢材质、木纹材质、黑陶瓷材质、玻璃材质、竹条编制材质、水果材质等; (3) 灯光的设置; (4) 渲染参数的设置。
项目教学法中最重要的环节是项目的具体实施过程。在该过程中教师应及时恰当地对学生进行引导, 督促学生根据工作任务, 按时按量完成相应的项目内容, 保证项目顺利进行, 实现课程教学目标。教师可以将学生划分成若干小组, 采用小组合作方式, 在一定时间内分工完成整个项目。项目完成后, 每组学生在教师机上展示各自的效果图, 并向全班学生介绍渲染的设置和流程。其他学生可向展示的学生提问, 最后由教师做总结性点评。教师在学生兴趣浓厚的学习氛围中完成了教学的任务, 取得了较好的教学效果。
3. V-Ray渲染课程的考核方式
随着任务驱动教学和项目教学的展开, 其课程考核方式也要做相应的改变, 实现强调实践技能积累、注重综合素质培养的考核目标。考核的成绩可由三个方面组成:知识考核成绩占20%, 实践考核成绩占40%, 综合实训考核成绩占40%。其中, 知识考核成绩来自于课内实施项目的工作任务进行过程中所学的理论知识, 实践考核成绩是来自于平时学生完成的课程任务, 综合实训考核主要是项目开发综合实训的过程和结果考核。
四总结
任务驱动教学法与项目教学法都强调以学生为主体, 教师只是知识的设计者、引导者和辅导者。这两种教法的结合, 使学习目标更明确、具体, 可以充分激发学生的学习兴趣, 提高自主学习能力, 极大地发挥了学生勇于实践和创新的潜能, 改变了以往重理论轻实践的状况。而且, 学生分组进行项目的操作, 激发小组内部的学习积极性, 使学生在竞争与协作中完成任务。需要强调的是, 任务的分割与项目的选取是关键, 必须体现理论联系实践、完成难度适中的原则。因此, 要求教师首先必须深刻领会和理解任务驱动教学法与项目教学法的精神实质, 在实践中先易后难, 循序渐进, 认真设计和实施课程的任务与项目, 从而培养出高质量的专业技术人才。
参考文献
[1]徐肇杰.任务驱动教学法与项目教学法之比较[J].教育与职业, 2008 (11) :36~37
软件产品度量 第7篇
1基于WebApp设计的软件度量
基于WebApp设计的软件度量我们需要定量地解决以下问题:用户接口是否提高了可用性;WebAPP的美学设计对于应用领域是否合适,是否能够得到客户的认可;是否能够以最小的工作量提供最多的信息的方式来设计内容;WebAPP体系结构设计是否适应WebAPP用户的特定目标和目的、内容结构和功能结构以及有效地使用系统所需的导航流程;构件设计是否减少了流程复杂度且提高了正确性、 可靠性和性能;
解决这些问题,提供量化答案的有效度量集,定性地处理,我们从这几个方面考虑。
本质上,美学设计依赖于定性的判断,通常不遵守测量和度量的规则。所以关于美学度量我们总结一组可能在评估中有影响的测量度集。
该类度量强调内容复杂度和内容对象的聚集。
该类度量处理导航流程的复杂度,通常它们只应用于静态的Web应用,不包含动态产生的链接和页面。
2源代码度量
Halstead提出利用可以在代码生成后导出的或一旦设计完成之后可以估算得到的一组基本测度,源代码度量的一组基本测度如下:
n1= 在程序中出现的不同操作符的数量
n2= 在程序中出现的不同操作数的数量
N1= 出现的操作符总数
N2= 出现的操作数总数
我们利用这些基本测度形成一些表达式,这些表达式可用于度量整个程序的长度、算法的最小潜在信息量、实际信息量(指定一个程序所需的“位”数)、程序层次(一种软件复杂性测度)、语言级别(对给定语言为一常量)和其他特征(如:开发工作量、开发时间、软件预计缺陷)。长度N可以估算如下:N=n1log2n1+n2log2n2,而程序的信息量可以定义为:V=Nlog2(n1+n2), 需要注意的是,V随着编程语言的不同而不同,它表示说明一个程序所需要的信息量(以“位”计数)。
理论上,一个特定算法必定存在一个最小信息量。信息量比率L定义为程序最简洁形式的信息量与实际程序的信息量之比。实际上,L一定总是小于1的。基本测度信息量比率可以表示为:L=2/n1*n2/ N2。
3测试度量
体系结构设计度量提供了与集成测试相关的难易信息以及对专用测试软件的需求。环复杂度(一种构件级设计度量) 是基本路径测试的核心。此外,环复杂度还可以用来定位要进行广泛单元测试的候选模块。环复杂度高的模块可能比环复杂度低的模块更易于出错。因此,测试人员还应该在将这些模块集成到系统之前花费超过平均值的工作量以发现该模块中的错误。
界面度量 :
美学(图形设计)度量
内容度量
导航度量
(1)用于测试的度量,从测试导出的度量也可用来估算测试工作量。利用程序信息量V的定义和程序层次PL,可以计算工作量e :PL=1/[(n1/2)*(N2/n2)],e=V/ PL。分配给模块k的工作量占整体测试工作量的百分比估算:k=e(k)/ ∑ e(i),其中, e(k) 是计算模块k的测试工作量,∑ e(i) 是系统所有模块的工作量总和。
(2)面向对象测试的度量,为设计质量提供了一种指标,它也为检查一个面向对象系统所需要的测试工作量提供了通用的指标。Binder提出过一组对面向对象系统的可测试性具有直接影响的设计度量。这个度量更多的考虑了封装和继承方面。
a方法缺少内聚(lack of cohesion in methods, LCOM)LCOM的值越高,为保证方法不会产生副作用,需要测试的状态越多。
b公有与保护属性的百分比(percent public and protected, PAP)。公有属性是从其他类继承的,因此对这些类是可见的。 保护属性对子类的方法是可访问的。该度量指明类的公有属性或保护属性的百分比。PAP的高值增加了类间副作用的可能性,由于公有和保护属性导致较高的潜在耦合。必须设计保证发现这些副作用的测试。
c对数据成员的公有访问(public access to data members, PAD)。这个度量指明可以访问另一个类属性的类(或方法) 的数量,这违背了封装。PAD的高值导致类间的潜在副作用,必须设计保证发现这些副作用的测试。
d根类的数量(number of root classes,NOR)。该度量是在设计模型中描述的不同层次的计数。必须为每个根类和相应的类层次开发一组测试。当NOR增大时,测试的工作量也随之增加。
e扇入( fan-in, FIN)。当用于面向对象环境时,在继承层次中的扇入是多继承的指示。FIN > 1指示类从多个根类中继承属性和操作。应该尽可能避免FIN > 1的情况。
软件工程师的产品 第8篇
一
个高水准的产品经理总是能够清晰地梳理出产品线,明确知道当前最该做什么,并且抓到问题的核心所在。“链式拆分法”是一种帮助大家明确产品思路,更重要的是让产品经理理解自己真正定位的方法。下面以叫车软件为例,结合实际分析一下。
第一步:整理业务环节/模块
第一步是弄清整个业务的流程,把重要环节梳理出来。
首先我们要找到一个业务的起点。对叫车软件而言,无非就是乘客叫车、司机接客。要关联起乘客和司机,最基本的是一条乘客线和一条司机线。
有了起点,接下来就是模拟业务流程:用户需要用车,发出了一个从A地点到B地点的用车请求,这时需要把这个用车请求发送给司机,告诉他们来“活儿”了。可是,发送用车请求好像不是那么简单的事情:发送给哪些司机呢,附近1公里的,还是2公里的?如果附近2公里都没有司机怎么办呢,发送到5公里之内的?发送给太多不在附近的司机,会不会对司机形成骚扰?
此外,发送队列是怎样的,如何控制先后顺序?附近快要完成现有订单的司机要不要发?如果附近有司机,挑单不愿接单怎么办,加价还是强制接单?现在好像流行拼车,那怎么把多个用户的路线匹配起来给司机发单呢?
仔细一想,派单是一个重要的事情,所以我们要再加上派单系统。
现在订单派发给司机,司机接单了,用导航接到用户,再用导航将乘客送到目的地,乘客需要付款,问题又来了:用什么方式支付?用别人的支付方式还要交手续费,有没有省钱的方式呢?如何计费,白天晚上是不同价格?不同车型价格也不同?过收费站怎么算?甚至财务还要求不同的钱分别入到不同的几个账目上。看来还需要一个结算体系。
那么,有了乘客端、派单系统、司机端、结算体系就够了?只要做到了这些事情,就每天会有大量用户使用?显然不是,还需要运营,让更多的用户来使用,让不了解的用户体验服务。所以要经常搞一些活动,发放优惠券,调整计费标准,而且还需要对订单、司机、乘客有一个好的管理,这就需要一个运营支持系统。
近期专车市场打得火热,企业纷纷大量发放用车优惠券、给司机补贴,造成了个别司机刷单的现象。假设一笔叫车订单的结算金额是50元,平台分成20%,那么司机可以得到40元。但平台为了鼓励司机给予30元的补贴,那么司机此单收入就是70元。如果司机自己给自己下单,在支付完50元车费给平台后,司机就可以得到70元,净赚20元。另一方面,平台为了刺激用户下单,还会给用户发放优惠券,司机自己给自己下单时假设使用了一张20元的优惠券,那么50元的订单就只需支付30元,司机给平台30元车费,就得到了70元。为了尽量杜绝刷单行为,风控系统就很重要了。
目前来看,整个体系需要以下这些业务环节和模块:
第二步:各环节/模块拆解
高阶产品经理需要思考每一个模块的作用,制定出他们的产品主线和任务。
乘客端:用户的叫车工具,其核心在于保证用户使用体验,最大程度降低用户使用难度,最高效地帮用户叫车,同时能够最大程度地灵活运用各种运营活动,刺激用户下单。
派单系统:叫车软件的本质是通过派单的方式把用户和司机联系起来,而充分利用每一个运力资源是派单的核心所在。派单算法是运力利用的关键,叫车成功率则是其重要指标。
司机端:司机的接单工具,核心在于确保司机使用顺畅而有效。同时作为平台连接司机的唯一的载体,通知、沟通、引导也是其重要部分。
结算体系:结算体系的问题主要是业务流程繁琐,各个支付通道都有自己的流程规矩,需要专人去熟悉追踪。另外,与财务的对接也需要产品经理对财务的结构有基本的了解。
风控系统:包括两件大事,即找出作弊的人,以及制定规则让他们无法作弊。
运营支撑系统:满足运营的需求即可。产品难度一般不大,但通常分配的资源很少,在有限资源和运营无限的需求之间做平衡是关键。
第三步:根据业务目标抓住关键点
凡事都有轻重缓急,而一个产品经理的实力高低很大程度上取决于其选择能力。产品有很多模块,一个高阶产品经理/总监不可能做到每一块都狠抓,所以一定要找到关键点。同理,每个模块拆分下去都是无底洞,一定要抓住最重要的需求。那么衡量重要与不重要的参照物是什么呢?是业务。在不同阶段,业务目标也有不同。
初期,最重要的是有一个完整的流程,由乘客端和司机端去推广运行、验证模式。在市场都还没有接触过这类产品的时候,让用户/司机能够无门槛地使用。所以乘客端和司机端的体验是关键。
中期,用户市场已经接受了这个产品,但是司机人数还未跟上,所以派单算法就是重点。用算法和预测实现100%地利用运力,比如给即将到达目的地的司机派目的地附近的订单,优先给车辆密集区的司机派发前往车辆稀少地区的订单,等等。同时,到了中期,财务正规化要更加注意,结算系统也会成为一个重点。
现在,进入火拼期,在高额的优惠、补贴刺激下,任何体验都不那么重要了,完全变成了运营驱动,运营支撑系统浮出水面。在高补贴、高优惠下也将催生出更多的刷单,风控将是史无前例地重要。据说,某代驾业务刚上线的那几天被人刷掉上千万元,这也是为什么某新加入补贴大战的公司愿意以40万月薪招一个风控产品经理。
未来,即稳定期,当一切对手都被打败,不再需要通过补贴、优惠来打击对手时,面对12亿人口的巨大市场,算法、效率又将成为业务提升的重点。
第四步:添加功能
这种生命周期级别的例子或许离大家太远。我们再举一个简单的例子:加一个拼车功能需要做什么。
乘客端要开一个拼车的入口,其重点在于拼车是一套新的交互流程,要与之前的业务兼容,同时,作为一个新概念,让用户理解拼车是什么也颇为重要;派单系统的重点在于匹配不同乘客的行程路线;司机端的重点是司机接多位乘客的流程以及结算引导;结算系统是多一套拼车计算公式;风控方面采用的是和平台差不多的通用规则,无需特别处理;运营支撑方面是多了一种订单类型,要注意不同乘客的拼车订单的关联。
拼车这个事情最关键的点是什么?是派单系统!拼车的关键是“顺路”的匹配。其他几项不过是花点时间就能解决,而路线匹配不仅是重点,也是难点。像Uber做得就不够好,拼车行程花费的时间几乎是不拼车的2倍,属于是“强行”拼车。
如果要做好拼车这个业务,算法是利器。但是如果用疯狂补贴的方式,比如拼车无论去哪里都9.9元,就无所谓算法了。其实这也算是一种打法,用高额补贴的方式让用户接受拼车这个事情,同时恶补算法,让用户慢慢接受。
和所有的方法论一样,链式拆分法只是一个整理思路的分析方法,决定真正实力的还在于第三步的关键点抉择和最终的执行。
软件工程师的产品 第9篇
关键词:价格过高,盗版软件,合理定价
1 软件行业的特点
软件是指与计算机系统的操作有关的计算机程序、规则以与之有关的文档。软件产品一般根据其服务对象的不同分为通用软件 (如Office办公软件) 和定制软件 (如为某个公司特别需求设计开发的业务管理系统) , 本文主要研究的是通用软件的定价策略。
软件产品属于知识性产品, 它有与一般消费品不同的特点:首先, 软件产品具有高固定成本、低边际成本的特性。软件产品属于数字化产品, 其成本基本往往在集中在产品的开发和研制上, 软件开发完成以后, 复制就可以产生大量的软件产品, 增加产量所增加的成本仅仅是存储介质的成本, 而如今存储介质的价值是十分低廉的, 所以增加其产量对其基本的影响微乎其微。再次, 软件产品的需求具有“起飞”现象。一般情况下, 一个新上市的软件产品, 在被客户接受后, 其需求量会迅速攀升至相当大的市场容量, 然后再缓缓进入平稳期, 整个过程就像飞机起飞一样。最后, 软件产品容易形成垄断。由于用户习惯, 用户往往会在选择一个软件之后不愿意改变, 而且不同的软件之间存在一定的兼容性问题, 这使软件产品市场容易形成垄断的现象。
2 软件盗版现象、原因及其解决措施分析
商业软件联盟 (BSA) 在《2011年全球PC套装软件盗版研究》报告显示, 2011年全球盗版率为42%, 亚太地区为60%, 我国盗版率为77%, 与上个年度相比均无变化。2012年盗版软件按市值折算的价值总额为2722.77亿元, 给软件行业的发展产生了重大影响。同时报告还指出, 自2003年至今, 中国的PC套装软件盗版率在逐年降低, BSA承认, 这和近年来一系列推进软件正版化、加强保护知识产权的举措密不可分。
盗版软件如此猖獗的原因有以下几点:
(1) 由于计算机网络技术及数字技术的发展, 很多人开始熟悉和使用电脑, 同时有很多专业人员和电脑爱好者精通加密、解密技术, 这为盗版软件提供了技术支持;另外, 刻录技术和计算机扫描技术的发展使光盘等电子产品的仿制变得更加简单, 使复制一个软件更加容易。
(2) 随着发展进入信息化时代, 人们对软件的需求也日益增加, 然而正版软件产品的高价和相对薄弱的消费者购买力使巨大的消费需求得不到满足。由于信息化技术的支持, 使得盗版和正版软件产品的质量相差不大, 而盗版软件的价格往往比正版产品相差很大, 这使相对薄弱购买力的消费者选择盗版产品。
(3) 盗版软件的生产者有着巨大的利益驱动。盗版软件产品没有巨大的开发成本, 只有后续的相对低廉的复制成本。
(4) 正版厂商为了击败其他竞争对手, 允许一定的盗版软件存在, 提高其市场占有率。比如只要有4元钱的盗版Microsoft Office存在, 金山WPS就很难占有市场。
3 软件产品的定价策略
面对盗版软件的猖獗, 在合理保护软件开发厂商的权益的同时又满足广大的市场需求, 一方面需要政府的有效干预;软件产品作为一项公共产品即每个人对这种物品的消费都不会导致其他人对这种消费的减少, 其社会需求量特别大, 比如说Windows操作系统在我国的市场占有率高达95%, 这就需要政府对其价格进行干预, 保证产品价格是合理的、可被接受的。同时政府也要打击盗版软件, 加大对盗版软件的惩罚力度, 保证软件厂商的权益。另一方面则需要软件生产厂应该通过合理的定价来逐步扩大和占领市场。由于软件产品不同于一般商品的特点, 我们必须制定新型的有效定价策略, 即:捆绑定价、差别定价、交叉补贴定价。
3.1 捆绑定价
这种定价策略是将不同的软件产品捆绑在一起以一个价格出售的定价方式, 这个价格低于各个产品单独售价之和。比如微软的Office办公系统, 微软的Office办公系统是由一个文字处理程序、一个电子表格、一个演示工具和一个数据库捆绑而成的, 其中这些组件也可以单独出售, 但价格之和高于Office办公系统的价格。用户在考虑到其日常办公需求、软件之间的兼容性的问题并从从经济利益角度出发, 往往会选择购买整个Office办公系统。
3.2 差别定价
所谓差别定价, 就是对成本基本相同的产品, 基于不同的对象或者市场制定不同的价格, 目的的实现企业利润的最大化。基于软件产品的特点, 最常用的差别定价方式为版本划分差异定价。版本划分就是根据不同的消费者群体制定不同的版本, 不同的版本差别定价, 消费者可以根据自身的需求选择合适的版本。一般情况下, 专业版的软件比普通版的软件价格上往往要高很多。
目前, 很多软件产品供应商均采用这种定价方式, 软件往往按方便程度、容量、技术支持等划分为不同版本, 比如一个专业的词汇软件容量比初级的词汇软件大很多, 价格也相差很多, 但是不同的版本之间的成本相差并不大。
3.3 交叉补贴定价
这一策略利用了软件产品的互补特性, 通过有意识的向消费者低价或者无偿提供一种软件产品, 使消费者对与这种软件产品的互补软件产品产生极大的需求, 进而促进出售其互补软件产品获得盈利。例如微软的操作系统和其IE浏览器就具备一定互补性, 微软把二者捆绑在一起, 让用户免费使用IE浏览器, 促使Windows IE浏览器的市场占有率大大超过了竞争对手Netscape, 取得了Netscape和IE的浏览器之争的最后胜利。
参考文献
[1]Steven E.Landsburg.Price Theory and Applications[M].北京:机械工业出版社, 2003.
[2]周异.软件市场盗版行为的经济分析[J].华南农业大学学报, 2004, 3 (2) :86-91.
[3]苏术锋, 苏先娜.基于公共视角下的软件产品饭盗版分析[J].江苏商论, 2011, (4) :6-9.