软件集成开发平台

2024-06-09

软件集成开发平台(精选12篇)

软件集成开发平台 第1篇

随着计算机与网络技术的飞速发展, 软件已经渗透到了社会经济和建设的各个领域, 在信息社会中发挥着至关重要的作用。针对越来越多的软件应用需求, 为了保证这些软件的成功开发, 人们建立起软件工程思想, 希望软件开发能够借鉴其他工程学科的成功做法, 走“软件工程化”的道路。要实现软件的工程化, 最关键是建立以配套的计算机辅助软件工程工具组成的软件开发平台。目前, 人们在软件开发和相关应用技术方面都有了很大的提升;但现有的软件集成开发产品, 大多停留在发展完善阶段, 相关的研究多集中在软件集成开发平台的扩展机制上, 缺乏对软件集成开发环境体系结构以及评价指标方面的研究。文章从6个方面, 即结构性指标、开发指标、协作性指标、成熟度指标、持续性指标和综合指标进一步阐述软件集成开发平台的评价体系[1,2,3]。

1 结构性指标

结构性指标体现在软件集成开发平台的体系结构设计和关键机制设计上。因而可以从功能层划分、微内核设计、扩展机制设计和系统插件设计这四个方面建立指标进行定性的分析。

功能层划分:功能层一般分为业务功能和系统功能两层, 平台功能层的划分是否符合此两层标准是评价功能层划分合理的重要指标;微内核设计:微内核是内核的一种精简形式, 将通常与内核集成在一起的系统服务层被分离出来, 变成可以根据需求加入的选件, 对系统进行升级, 用新模块替换旧模块而非改变整个系统, 这样就可提供更好的可扩展性和更优良的应用环境;扩展机制设计:通过插件机制实现集成开发平台的扩展渐渐地成为人们的共识, 其直接关系到平台良好的成长性;系统插件设计:系统插件一般包括工作空间、工作平台、协同开发支持和帮助等, 系统插件设计的合理和丰富直接关系到开发平台基本功能的完备性和易用性。

2 开发指标

开发指标体现在软件开发的各个环节, 主要可以从平台对软件开发的支持程度去建立指标[4]。

编译支持:编译直接影响软件的最终质量, 编译器对代码错误的定位准确度以及对后续开发过程的支持都是考察该指标的依据;调试支持:调试直接影响开发效率和代码质量, 支持局部变量、单步执行等流程控制功能、支持条件断点、堆栈显示和监视、支持远程调试功能、线程的查看及修改以及支持会话都是对该指标进行评价的因素;测试支持:测试支持考察的是开发平台对测试模式、测试方法的支持以及测试效率的优劣, 也是影响开发效率和代码质量的重要指标, 对优秀的测试插件支持是评价该指标的重要依据;界面设计与开发:开发平台对界面开发和设计的支持度是界面设计与开发考察的内容, 其直接影响用户需求的表达和开发的效率, 可视化开发工具、界面元素的支持等都是影响该指标的因素;开发帮助:该指标考察的是软件开发平台对软件开发全过程的帮助情况, 具体包括在线帮助、帮助文档、设计和编码帮助、开发实例帮助、解决方案支持等;国际化机制:国际化是指为同一应用程序开发出多套语言包, 使应用程序可以应用于不同的国家和地区, 国际化是提高产品国际竞争力、优化用户体验的重要手段;代码编辑:代码编辑考察的是代码编辑器的人性化设计, 其直接影响到开发效率和代码质量, 源程序自动纠错和自动排版、代码自动提示等都是考察该指标的因素;产品发布:该指标考察的是开发平台对产品发布功能的支持度, 软件产品发布方式的易用性是考察该指标的因素。

3 协作性指标

协作性指标体现在集成开发平台对软件开发领域一些前瞻性概念和方法的支持度上。具体包括5个部分:开发社区、知识管理、协作开发、版本管理和在线帮助[5]。

开发社区目前在开源软件社区表现最为显著, 成熟的开发社区是考察一个软件协同开发和软件开发过程的重要因素;知识管理创造价值的过程, 也是流程运行的过程, 必须将知识管理紧紧的运用到开发流程体系, 为开发的流程运行提供最合适的人员和工具;协作开发考察的是开发平台对软件团队协同开发的支持度, 软件协作开发方式的易用性是考察该指标的因素;版本管理是开发制品改进的基石, 开发制品达到一个稳定状态后称为一个版本, 版本管理自然管理了开发制品的稳定性;在线帮助提供软件开发平台的API查询等服务, 该指标考察的是开发平台是否支持帮助的在线查询。

4 成熟度指标

成熟度指标体现在插件支持、开源项目组活跃程度、产品市场化程度、成功应用案例和应用模式支持这5个方面[6,7,8]。

插件支持:一个成熟的软件集成开发平台必须有成熟的插件去支持其应用, 软件开发的各个环节都必须有与之对应的多种插件进行支持, 以确保软件开发平台的专业性、通用性和易用性, 因此成熟的第三方插件便成为衡量软件开发平台成熟度的重要指标;开源项目组活跃程度:每个软件集成开发平台都有官方的开源项目组, 其主要工作是组织开发新版本开发平台和插件、新研功能上具有代表性的插件以及在应用领域有代表性的应用系统;产品市场化程度:作为产品, 软件集成开发平台需要一个良性的市场环境去支持其发展, 具体表现在有良好的研发资金链以确保其持续稳定的推出新版本适应新的需求, 有多种推广产品行之有效的手段确保其市场占有率以及商业化插件的应用程度;成功应用案例:基于软件开发平台的成功应用案例, 可以有效地降低同类软件产品的开发难度和开发成本, 具有丰富、典型的成功应用案例是软件开发平台成熟度的重要标志;应用模式支持:软件开发平台应该提供多种应用模式的支持, 以适应各种应用领域的需求, 进而降低开发应用软件的成本。

5 持续性指标

持续性指标体现在业界对开发平台的持续性开发、升级、维护, 以及对插件开发的支持上, 可以分为应用前景、厂商支持度和开发群体支持度这3部分[9]。

应用前景:软件开发平台是基于应用情景和技术背景开发的, 应用前景的优劣是考察持续性指标的重要因素;厂商支持度:评价一个软件开发平台还要考虑它的可持续性, 其中厂商支持度是其可持续性的重要保证, 厂商支持度包括对新功能和新版本的开发、对软件开发平台发展趋势的把握、组织开源组进行相关项目的开发和技术支持等;开发群体支持度:与厂家支持类似, 一个软件开发平台的持续性发展离不开开发群体的支持, 开发群体通过开发组、论坛等形式促进和支持软件开发平台的发展, 开发群体支持度体现在开发组的数量和活跃程度、相关论坛的规模和活跃程度以及开源项目排名等。

6 综合指标

综合指标体现在开发平台的总体使用体会和应用领域侧重上, 可以分为应用领域侧重、学习周期和人性化设计3个部分[10,11]。

应用领域侧重:不同厂商和组织研发的软件开发平台具有不同的应用领域侧重, 应用领域侧重直接关系到软件开发平台的生命力;学习周期:熟悉软件开发平台需要学习周期, 这个学习周期不但与程序员本身有关, 还与软件开发平台的插件支持、设计、帮助等有关, 是衡量软件开发平台优劣的综合性指标;人性化设计:与学习周期指标类似, 人性化设计指标在其系统插件设计指标、开发指标、协作性指标、扩展机制设计指标中都有具体的体现。

7 结束语

软件集成开发平台的评价体系由六个部分组成:结构性指标、开发指标、协作性指标、成熟度指标、持续性指标和综合指标。其中结构性指标体现在软件集成开发平台的体系结构设计和关键机制设计上。开发指标体现在软件开发的各个环节。协作性指标体现在开发平台提供新的开发趋势的支持上、成熟度指标和持续性指标体现在开发社区和厂商对平台和插件的支持上, 综合指标体现在开发平台的总体使用体会和应用领域侧重上。

本文根据软件集成开发平台的体系结构, 从6个层面提出了29项软件集成开发平台的评价指标, 基本覆盖了软件集成开发平台的各个方面, 建立了软件集成开发平台的评价体系, 为软件集成开发平台的设计和选择提供重要的参考。

摘要:目前, 软件集成开发平台还处在发展阶段, 功能、应用和发展方向还在探索阶段。但是, 基于软件集成开发平台的应用越来越广泛, 软件集成开发平台相关评价体系及其指标等一系列研究急需进一步开展, 以指导用户的选择和开发。文章研究软件集成开发平台的评价体系, 深入阐述了组成评价体系的6大指标, 旨在为软件集成开发平台的更全面的评价提供可靠的理论依据。

关键词:软件集成开发平台,评价体系,分析

参考文献

[1]相东飞.基于OSGi插件化的应用框架[J].科技信息, 2007 (12) :174-176.

[2]郭娜, 黄永平, 吴学义, 等.基于插件的动态模块框架研究[J].吉林大学学报, 2008 (1) :154-159.

[3]吴明晖, 应昌, 何志均.基于构件的框架式开发方法及其重用库系统[J].计算机工程与应用, 2000 (9) :93-94.

[4]李连云, 李毅, 温利娜, 等.基于Eclipse框架的嵌入式IDE实现[J].计算机工程, 2006 (18) :278-279.

[5]熊江.OSGI的分析和实现及其改进思路[J].计算机科学, 2004 (3) :192-194.

[6]张旻, 麦先根, 贾璐.Eclipse插件开发技术浅探[J].航空计算技术, 2006 (6) :173-176.

[7]陈方明, 陈奇.基于插件思想的可重用软件设计与实现[J].计算机工程与设计, 2005, 26 (1) :172-173.

[8]姜昌华.插件技术及其应用[J].计算机应用与软件, 2003 (10) :10-11.

[9]陈火旺, 王戟, 董威.高可信软件工程技术[J].电子学报, 2003, 31 (12A) :1933-1938.

[10]唐雄燕, 庞韶敏.软交换网络-技术与应用实践[M].北京:电子工业出版社, 2005.

软件开发管理平台设计分析论文 第2篇

中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2016)02-0073-0

20引言

近些年来,软件开发管理系统方面的技术有比较稳定的发展,在逐渐完善的同时功能需求也越来越大,因此为了满足功能需求软件开发管理平台必须进行进一步的发展和升级。在目前我们主要研究的软件开发管理平台还存在局限性,从整体出发进行多元设计是我们现阶段必须掌握的技术。

1软件开发管理的相关内容

在现阶段对软件开发管理可以通过多种途径进行优化,例如加强生产计划、改进软件开发过程等,可以使软件开发管理达到一体化的标准,促进企业的融合和发展,并且可以为企业的自动化和一站式服务提供技术支持。提升企业管理和项目管理两大基础功能。项目管理和企业管理分别从配置管理和设计管理等出发,完成测试自动化进程。质量一直是软件开发企业追求的目标,也是一个企业赖以生存和发展的根本。对于软件企业而言,鉴定软件的质量问题往往需要专门测试的软件,这是最为关键的部分。因此测试软件也是一项比较困难的问题,要采用先进的技术确保测试结果的准确性,合理的方法和工具是测试成功的重要保证。在我国现阶段市场中已经出现了关于测试过程管理的工具,这在很大程度上能够在大企业中发挥一定的作用并取得良好的效果,但是针对小公司来说还缺乏定制一个测试管理平台来提高工作效率和自动化水平。

2针对软件开发管理系统的多元化分析

多元化软件开发系统中最为关键的部分就是关于软件开发管理的自动化,要以此为设计目标和方向,不断的有机结合软件开发管理和企业资源规划两种资源,从整体上形成高效管理模式的软件开发管理平台。

2.1软件开发管理平台的初始化目标

在软件开发管理平台中要发挥多种管理的能力和潜能,充分调动各个部分的作用,例如系统需求管理、设计管理、项目管理和配置管理等多方面内容。在多元化方面主要体现在关键的位置上,一般存在于软件工程、项目管理和企业管理三个主要方面。充分促进企业管理和项目管理的相互协调,互相配合,可以使软件开发管理更为科学、提高效率。为了满足不同规模的软件企业需求必须对软件开发企业进行足够的技术支持和资金支持,才能为多元化的设计提供可行性条件。

2.2软件开发管理平台的概况和特征

网络技术在当今社会的普及程度越来越强,同时在软件开发管理平台的应用也越来越多。网络技术在软件开发中起到拓展功能的作用,在此基础上,软件开发企业的工作中心在于对开发软件的多元性方面,主要体现在基础功能和分析功能两个方面的拓展。在数学模型的基础上建立模拟基础工作流程,提高预测的准确性和开发更多的项目管理功能,以达到兼容能力更强、在线管理更健全的目的。在目前的研究水平下,我们更应该注意软件开发管理系统的多元化设计,应该投入更多的精力和资金,这样会有益于资源方面的控制力,还能实时监控进度和质量问题,全方位的对项目进程进行跟踪和指导。

3软件开发管理平台的多元化技术依托和基本结构

在实际操作中针对多元化设计一般最需要的就是先进的技术支撑。最为普遍的技术就是SOA技术,这项技术的最主要用途在于对系统的分解作用,不仅如此,还可以按照一定的序列对服务进行编排,在此基础之上能够扩大软件管理平台的功能和规模,并且大大增强了软件管理平台的可扩展性和灵活性两种性质。另一种比较常见的技术是基于WebServices技术,这种技术的主要作用是辅助SOA,对软件开发管理系统的兼容性有所扩展,并且同时构建SOA架构。第三种技术是XML技术,这种技术的主要作用在于能够规范Web服务,平台的建立需要此种技术作为标准,而平台中数据的相互转换则需要自描述功能。第四种技术是RUI技术,这种技术的界面采用富用户,但在外观上分辨不出和普通应用程序的差别,但是要想构建人机交互的功能则必须要有服务功能,平台系统更容易进行操作,并且界面更加简洁。第五种技术是J2EE标准,平台系统要保持在运行过程中不依靠其他运行程序则必须采用分布式结构,可以大大加强系统软件的灵活性,减少平时的维护费用和运行成本。在多元化方案的设计环节应该注意系统的生命周期,在软件开发管理平台多元化设计中最关键的部分就是通常要采取B/S网络结构模式,在我们现阶段的研究当中大多数都采取这种技术,这种技术最为简便的地方就是可以在不安装客户端的情况下进行运行,可以体现出更加模块化的技术特点。另外数据库的规模应该扩大,这样有利于逻辑关系的简洁化,操作系统也更加方便快捷,在数据的完整性方面有更多体现。系统的安全性和开放性也应该有所约束,让系统的安全性有一定的技术保证,针对不同用户采用分级管理模式,并以加密和访问权限两种手段来提高软件开发平台的安全性。另外平台在平时的运行过程中,要时刻注意到客户端和软硬性的先进性,并且要注意日常应用程序和数据库服务器的运行状况保持良好,保证在正常生命周期内保持良好的运行状态。软件开发管理平台在多元化设计的框架构建方面一般分为四个层次,分别是基础设施层、交互层、支撑层和应用层,在一般情况下交互层、基础设施层和应用层分别代表用户、信息和系统的核心部分。主要代表模块分别是企业管理功能、项目管理功能和软件功能自动化三大模块。除这些外还需要一些支撑层把组件进行合理构建,用于软件开发管理平台的多元化设计。三大主要功能模块涵盖了以上相关内容。项目功能主要体现在两个方面,一是项目计划模型,二是实际需求。在项目进行审核发布之前,需要根据管理和条目两种手段对项目进行预览,这样能形成最优化的配置管理模式。在对软件的功能管理方面要采取自动化手段,在原始模型和文档的基础上形成新的模型,并且要单独为其设计模式和范例,不断优化升级文档质量的管理,在设备的运作过程中要优化各技术路线相互配合作用。在目前的企业管理中,要深入考虑企业的需求内容,履行合同上的信息要求,针对子系统和标准模块进行自定义的程序设置,及时对客户信息进行回访和自动报警两种功能,这两种功能要根据客户信息才得以实现。

4软件开发管理平台的相关软件内容

开发的软件必须具有通用性强、适用范围广、提高工作效率等一系列优势,这样可以协助工作人员把项目中的软件开发管理平台做到更好。因此要求所开发的软件应具备以下功能:(1)能够在各种环境下运行,适应性要强。任何软件都需要一定的运行环境,而软件的适应性强弱将直接影响着软件的使用效果和稳定性。(2)能够积极协助指导项目开展相关工作,运用开发制约和方法学等手段构建软件架构,这样的好处是可以潜移默化的影响使用者的开发方式和风格,开发出来相似的项目间可以很通畅地进行协作和交流。(3)要做好项目的设计、开发和再测试的相关工作,能完成项目成果各方面数据的转换和协作,这就体现出最关键的衔接作用。其中最主要的部分就是关于程序设计和数据库设计向开发阶段的代码程序生成的过程。另外的作用就是在进行单元测试的过程中要把大多数相似的测试代码由辅助程序员把它们筛选出来。(4)在开发软件的相关工作中比较重要的就是常见功能组件,有很多数据需要进行操作和整理,例如字符串的操作、数字操作等,不仅如此,还会涉及到文档读写、上下载等一些相关问题。在一般情况下出于对灵活性的考虑,很少会设置这些功能组件,需要在实际工作中由程序员针对需要来分别写出代码。所以软件架构平台需要有这些协助程序员的相关功能组件才能大大提高工作效率。(5)分层结构和框架技术支持是我们软件开发管理平台需要的两种技术。根据项目需要,项目的开发人员要制定不同的框架来提供选择的余地。要改变框架去适应实际项目需要,这样更容易开展开发工作。(6)要考虑不同业务人员的需要,尽量提供一些底层业务组件。在普通的业务系统中,配置管理、用户管理、角色权限管理所涉及到的功能区别不明显,而底层平台可以在提供底层应用模块的同时起到减少项目重复开发量的效果,是一个非常科学合理的设计。(7)性能和安全是必须考虑的两大要素,因此在构建平台时要平衡性能和安全两者的关系,在确保安全的前提下尽可能的保证性能,这样也能给后续关于技术指引、工具和方法的建立提供良好的基础,例如权限控制组件和缓存组件等。(8)方便操作也是我们需要考虑的一个方向,平台应该能在业界的大多数人中使用,因此要方便理解和操作,简单的操作流程是能够提供便捷功能服务的前提。还可以节约使用平台的学习费用和节省学习精力。在进行编码实施的过程中,关于程序编码的设定要采取统一标准,并且符合相关的编写要求,能够保证可读性和运行的连贯性,方便日后的维护工作。在平台框架完成以后,还要不断的进行系统测试,保证使用效果和最初的设计效果相符合,测试出现问题后,要根据设计的框架找出问题原因,运用相关技术进行修改,并达到预期效果。

5结语

目前针对多元化软件的开发是一项比较艰巨的任务,其结构复杂、信息量较大。该软件分为很多不同的部分,故要把需求、分析、测试、设计、运行等诸多因素考虑进来。在目前比较常见的业务系统中,基础底层软件架构不但能够提高工作效率,还可以节约开发所需要的投入,提高利润。在提高质量方面则可以采取严格的规范约束和框架设计技术两种手段。在信息技术不断发展的前提下,软件开发管理平台取得飞快的进展,然而多元化软件的开发不仅在我国受到格外关注,国外也正积极针对这一方面展开研究工作,并且运用到实际运行当中,软件开发管理平台也显示着其强大的生命力,为我国的软件开发项目管理信息化做出了较大的贡献。

参考文献

软件集成开发平台 第3篇

关键词:数值仿真 有限元 优化设计 最优控制 软件平台

Advancements of Design and Development for SiPESC - a Software Integration Platform of Numerical Simulation

Chen Biaosong

(Dalian University of Technology)

Abstract:Numerical simulation/Computer aided design (CAE) is applied to analyse, simulate, predict and design mechanical and physical performances of engineering structures and products by the employment of computers. The core of most recent concepts of “virtual manufacture”“digital manufacture”“fine design” in engineering is numerical simulation. Key concept of numerical simulation is computation and computer modeling, therefore software is its vehicle from theory to application. Numerical simulation software systems are mainly developed by developed countries like USA or those in Europe and these software systems became core tools of innovative design for engineering products. Since 2006, several national organizations/committees in USA (President’s Information Technology Advisory Committee, National Science Foundation, Council on Competitiveness) continuously issued reports to stress that “Computational science has become critical to scientific leadership, economic competitiveness, and national security.”“There are immediate opportunities to strengthen the U.S. capability for SBE (Simulation Based Engineering).”“To out compete is to out compute”. China has established developing strategic through innovation and we must develop our capability independently. Self-developed numerical simulation software is of paramount importance and is facing fast developing opportunity. Dalian University of Technology (DUT) has engaged self-developed software of computational mechanics for several generations and for over 40 years. Since 2007, DUT started the research project of SiPESC—Software Integration Software Platform for Engineering and Scientific Computation. This report introduce the development of SiPESC, including research background, design ideas and system framework, system’s integration capability, computation and design optimization for CAE and engineering application.

Key Words:Numerical simulation; Finite element; Design optimization;Optimal control;Software platform

基于.NET平台开发物流软件 第4篇

1 软件的发展史

计算机软件技术发展很快。50年前, 计算机只能被高素质的专家使用, 今天, 计算机的使用非常普遍, 甚至没有上学的小孩都可以灵活操作;40年前, 文件不能方便地在两台计算机之间进行交换, 甚至在同一台计算机的两个不同的应用程序之间进行交换也很困难, 今天, 网络在两个平台和应用程序之间提供了无损的文件传输;30年前, 多个应用程序不能方便地共享相同的数据, 今天, 数据库技术使得多个用户、多个应用程序可以互相覆盖地共享数据。

2 软件的编程语言

目前, 计算机业内流行的软件编程语言有:C#、Java、PHP、C++、Visual Basic、HTML、Delphi、Power Builder等。编程的目的主要是为了解决问题, 解放现实的劳动力, 而现实的问题都是可以用语言来描述的, 将问题用计算机语言来实现, 需要编写计算机开发程序。主要的途径是对现实问题进行分析, 用合理的数学模型来表达, 然后通过计算机程序语言来实现功能, 例如:R、G、B3色份量来各表示一种颜色, 对于颜色的处理被转化为对R、G、B3个整数的处理。只要改变这3个整数, 就可以将其改变成另外一种颜色。

3 软件的需求

3.1 行业的需求

尽管软件行业近几年由高速增长期进入了稳定发展阶段, 但软件行业整体增速仍持续高于电子信息行业的总体发展速度, 软件行业在电子信息行业中占比持续提升, 行业地位逐年提高。软件行业细分结构中, 软件产品占比保持稳定, 技术服务业务成长迅速, 系统集成业务占比逐渐下滑。

3.2 软件人才的需求

在人才需求方面, 由于IT技术在通信、医疗、教育等各个方面的全面发展促进了各个软件开发方向的发展、从架构、编程到测试对人才的需求旺盛。从2007年的招聘情况看来, 软件开发工程师、软件测试工程师、网络系统工程师、咨询工程师等都有很多招聘职位, 人才需求很大。尤其是软件开发工程师, 继2008年的短缺之后, 随处于经济低潮期, 但2009年仍然有很大的人才缺口, 软件开发工程师很多都享受着地位和薪水的双高待遇。企业招聘人数很多, 而且相比更加青睐有经验的应聘人群。

4 软件的应用

4.1 软件的分类

按应用范围划分, 一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。统软件:系统软件为计算机使用提供最基本的功能, 可分为操作系统和支撑软件, 其中操作系统是最基本的软件。

系统软件是负责管理计算机系统中各种独立的硬件, 使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

4.2 软件行业的应用

如今计算机软件已经应用于航空、服装、餐饮、物流、教育、电子、能源、金融、建筑、制造业等等各大领域。

随着社会时代的发展的推移, 计算机软件逐渐由pc端转向手机移动端。比如说淘宝手机支付占整个双十一的1/3。由此可见, 软件的行业应用越来越广泛, 包括我们用的百度地图导航、手机支付钱包、携程旅游等等客户端软件。它的应用范围不再是那么单一了, 而是几乎占领了所有行业, 前景可容乐观。

5 软件的开发流程

第一步相关系统分析员向用户初步了解需求, 然后用word列出要开发的系统的功能模块, 深入了解和分析需求, 系统分析员向用户再次确认需求。第二步开发者需要对软件系统进行概要设计, 第三步在概要设计的基础上, 开发者需要进行软件系统的详细设计。第四步, 在软件编码阶段, 开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求, 开始具体的编写程序工作, 分别实现各模块的功能, 从而实现对目标系统的功能、性能、接口、界面等方面的要求。第五步测试编写好的系统。交给用户使用, 用户使用后一个一个的确认每个功能。第六步软件交付准备, 第七步, 验收用户验收。

6 软件的发展趋势及前景

高端计算机软件、操作系统微内核与源码技术、软件可靠性和安全性、软件开发和集成工具、面向人们个性化需求的应用软件, 在相当时期内仍将是软件领域的主要研究内容。软件业的发展关系到一个国家的政治和未来, 软件产业将成为21世纪拥有最大产业规模和最具广阔前景的新兴产业之一。不管是国内还是国外, 开源将是未来软件的发展趋势, 免费已经成为了用户的一种体验习惯。如今也有很多软件公司尝试着无代码的形式去编辑软件, 也就是所谓的开源代码。未来的软件行业是软件的功能越来越强大, 用户体验效果越来越好, 将会大大提高程序员的工作效率。

摘要:2014年进入了移动互联网时代, 随着社会科学技术的发展, 软件已经是我们生活中必不可少的一款工具。比如说一款QQ, 微信等及时通讯软件已经是我们生活的中必需品, 离开了它, 似乎让人们觉得回到了原始时代。软件的发展已经从PC端慢慢转变到移动端, 随着信息技术的发展以及涉及的领域和对人们生活带来的方便。同时由于信息获取的便利和信息技术的发展及其对社会生活的影响, 计算机软件已经渗透到各大行业。伴随着现代物流概念的提出, 物流企业不断涌现, 催生了物流软件市场。国内企业以杰合伟业、中软冠群、招商迪辰为代表;EXE等国外著名物流软件借由代理商跨进中国大门, SAP、Oracle等ERP供应商也提供仓储管理等物流功能模块。

关键词:移动互联网软件应用,信息技术

参考文献

[1]论文结合以前学的软件知识以及自己对软件行业的趋势的一种理解编辑而成.

软件开发实习生-转码平台-笔试 第5篇

A.多个进程都能得到系统的及时响应

B.最先调度优先级较高的进程

C.最先调度占用CPU时间短的进程

D.最先调度占用IO时间短的进程

2.导致操作系统出现死锁的原因不包括___a___。

A.系统中产生了资源依赖的环形链

B.当进程因请求资源而阻塞时,不释放本身已经获取的资源

C.对于一个进程占有的资源,在其未主动释放前,不能强制剥夺

D.同一时间内,资源能被不同进程共享

3.观察下面的三角形。给出第10行的序列之和:___19683_____1 12 3 2 13 6 7 6 3 14 10 16 19 16 10 4 1

4.一个平面内,被任意条直线划分而成的区域,最少用____c__种颜色着色,使得相邻的区域颜色不同。

A.1B.2C.3D.45.一棵具有30个结点的二叉树,其空指针的数目为:_____31_

6.快速排序平均时间复杂度是__O(n*log2n)____,平均空间复杂度是__O(log2n)___.最差情况的时间复杂度是__O(n2)____,最差情况的空间复杂度是____O(log2n)__.7.下面函数的平均时间复杂度为:___O(1)______

int f(unsigned int n){

if(n<=0)return 0;

if(n==1)return 1;

return3*f(n-1)-4*f(n-2);

}

8.某规则二叉树的定义是:对于树中任意两个叶结点A、B, 它们与根节点的距离分别为da、db,|da-db|<=1。请写出函数bool isRuledTree(Node * root)的代码实现。如果该二叉树为规则树,则返回true;否则返回false。

9.假设有两台通过网络互联的电脑A、B,A需要将自己的一棵二叉树结构传输到B。请设计一种编码、解码方法(不要求代码实现)。二叉树结点结构如下 struct Node{

struct Node * left;

struct Node* right;

charvalue;}

10.在一个大文件中有100亿个32位整数,乱序排列,要求找出中位数。内存限制为512M。写出算法设计思路,并分析时间复杂度。

答:第一步:把10G整数每2G读入一次内存,然后一次遍历这536,870,912个数据。每个数据用位运算“>>”取出最高8位(31-24)。这8bits(0-255)最多表示255个桶,那么可以根据8bit的值来确定丢入第几个桶。最后把每个桶写入一个磁盘文件中,同时在内存中统计每个桶内数据的数量,自然这个数量只需要255个整形空间即可。

第二步:根据内存中255个桶内的数量,计算中位数在第几个桶中。很显然,2,684,354,560个数中位数是第1,342,177,280个。假设前127个桶的数据量相加,发现少于1,342,177,280,把第128个桶数据量加上,大于1,342,177,280。说明,中位数必在磁盘的第128个桶中。而且在这个桶的第1,342,177,280-N(0-127)个数位上。N(0-127)表示前127个桶的数据量之和。然后把第128个文件中的整数读入内存。(平均而言,每个文件的大小估计在10G/128=80M左右,当然也不一定,但是超过2G的可能性很小)。

第三步:继续以内存中的整数的次高8bit进行桶排序(23-16)。过程和第一步相同,也是255个桶。

第四步:一直下去,直到最低字节(7-0bit)的桶排序结束。我相信这个时候完全可以在内存中使用一次快排就可以了。

软件集成开发平台 第6篇

关键词:软件开发平台;JAVA开发工具;平台组件

中图分类号:F426 文献标识码:A 文章编号:1009-2374(2014)12-0001-02

1 概述

软件开发平台,可以理解为一个软件系统开发的框架和工具,即将传统代码编写的工作流、图表、权限控制等重复类工作,以封装成组件的形式,集中在一个开发环境下就形成了软件开发平台。利用软件开发平台进行信息化建设,具有部署简单、开发灵活、拓展性强等优点,同时,由于减少了对代码的编写工作,从而使开发人员可以更加专注于业务流程的分析和建模,搭建更加满足于用户需求的信息系统。

2 存大的问题

中海油集团范围内以ERP为核心的管理系统建设,大多数采取逐个项目的模式进行,由不同的项目实施厂商采用不同的产品和系统架构设计,标准和规范方面互相难以统一。随着信息化建设的不断深入,诸如审计、保险等专业的中小型管理信息系统的需求日益增多,这些系统特点大多数架构不同,分散在不同集团及单位中。在管理需求不断增加的同时,部分问题逐渐显露

出来:

2.1 开发维护成本高

每个系统的实现都需要专人参与、专人维护,人力资源不能得到更好的共享,导致各项目实施缓慢,开发维护成本不断升高,同时也阻碍了各系统在中海油集团范围内的推广。

2.2 缺乏统一接口

各专业系统分别与SAP进行接口,缺乏统一的集成组件,开发、管理、维护投入精力较大。

因此,搭建一套类似SAP系统软件开发平台,推广使用开发平台完成各单位信息管理系统的项目实施,对海油信息化建设方面是十分必要的。在项目实施过程中,不断完善平台各业务组件,实现灵活部署,降低实施成本,提高项目实施效率,同时,系统与SAP提供统一接口,进行数据共享,并通过开发标准和规范的统一,在人员方面将Java开发技术力量合为一体,实现技术人力资源的充分共享。

3 技术路线

目前市场上主流开发平台主要分为.NET技术和JAVA技术的两大阵营,相比较而言,各自在不同领域均有一定的优势,很难说谁在技术上占统治地位。目前海油范围.NET技术主要使用的是SharePoint,专注于OA办公系统上,而在J2EE开发尚无统一框架,因此开发平台的技术选型,优先考虑目前需要的J2EE技术。

4 系统架构分析

在系统架构设计方面,软件开发平台主要分为数据仓库层、应用层、展示层三方面,在展示层之上,通过编制开发标准和规范等文件,统一开发标准,实现各系统开发的统一性。

数据仓库层:为开发平台提供一个集成的、相对稳定的数据存储,并符合总公司信息管理部对数据安全性管控要求的数据库系统,能够提供高效率的数据存储和访问,同时,提供目前流行的系统软件接口,可以对其他办公系统进行集成,在业务系统的构建中便于调用,体现系统的业务价值。

应用层:主要包含组织权限、工作流、报表、表单、WebUI、日志消息、异常处理等组件。这些组件可以实现信息系统中不同的业务功能和系统功能,这些组件以独立封装的模式,存在于开发平台中。

展示层:为信息系统提供丰富的图表展示和通用查询,包括传统的Excel表格,以及柱状图、饼状图等,出具分析报告,为企业不同用户分析决策提供支持。

5 核心组件分析

平台能够实现各管理信息化系统业务功能,很大程度上需要依赖各组件所实现的功能和拓展程度,核心组件的建设过程需要在平台建设初期封装组件雏形,并在后期项目中不断丰富其内容进行拓展,理想程度下,各组件所包含的的业务内容,可以在少部分代码修改的情况下,直接在项目中进行配置使用。平台应用层主要包含组织权限、工作流、报表、表单、WebUI、日志消息、异常处理等组件。

6 组织权限

企业组织机构及权限模型中,包括几个主要部分,如部门、人员、帐号、角色、功能等,其中部门间往往是多对多的关系,人员一般是从属部门范围内,按照岗位级别进行安排,且人员的管理关系也可能是多角度的。因此在组织权限方面需要进行灵活的权限管控,不同部门、人员、账号提供不同的权限机制,从而保障数据安全性和流程可控性,灵活地解决了权限管理、资源管理及权限审查问题。

7 工作流

工作流组件主要提供请假、报销等业务流程,需实现以下功能:(1)提供图形化、可视化设计流程定义;(2)流程控件丰富,可支持各种复杂流程的定义;(3)可以定义、分配任务给组织结构内的作业角色;(4)对作业处理过程可跟踪、控制;(5)提供对外的接口,便于与其他业务系统、业务组件集成。

8 报表

报表组件一般由四部分组成:报表设计器、报表服务器、报表展示以及报表引擎。报表组件整体提供报表管理、运行状态监控等功能,有报表的定时生成,报表的权限控制,报表解析日志、报表运行异常等信息的

管理。

9 日志组件

日志组件提供日志的查询、监控、备份、分析和存储功能。在系统中可进行查询显示,对于特殊的日志还需要进行审计处理。平台可提供通过多种方式对日志数据进行存储,该日志信息可由平台制定统一格式,记录平台可控制范围内的日志信息。

10 异常处理

异常组件是对异常进行分类封装,按异常程度、应用范围包装成不同的异常类型,在异常中添加上下文对象(用户信息、模块信息、服务器节点信息、异常号),对异常进行标准化封装,通过日志接口记录在日志中。将标准化的异常返回客户端由统一异常展现页面显示友好提示。

11 建设思路

通过对目前市场上主流开发平台搭建过程的研究,由于平台核心组件设计的合理性需要得到不同项目的检验,且组件本身的优化就是一个长期的过程,因此多数成熟的软件开发平台的建设也是一项长期的工作,如采用从无到有的方式进行开发平台的搭建,难以满足目前中海油管理信息化需求的增长速度需求,而购买成熟产品又因为软件的开源性、知识产权等问题,受缚于外部厂商的约束,难以实现自主管控的需要。因此,目前较为可行的实现方式是在现有的开发框架基础上,通过信息技术服务中心内部开发团队对框架的透彻研究,进行二次开发和完善,在现有具体管理信息化项目中,逐步培养一支长期的内部专业化平台开发团队,能够自主掌握该平台架构和核心开发内容,并在后期项目中不断完善各模块和组件,逐步形成在中海油集团范围内可持续推广的软件开发平台。

12 综述

通过对软件开发平台在海油信息化建设可行性研究,希望能以中海油具体项目为契机,建立统一软件开发平台,发掘中海油集团范围内各单位潜在业务和管理信息化需求,做出有竞争力的,作为信息技术服务中心自有知识产权的软件产品,再通过海油信科这个更大的销售平台实现产品的市场推广,建立信息技术服务中心的品牌形象。

参考文献

[1] 范玉顺,李建强.企业集成与集成平台技术[M].北京:机械工业出版社,2004.

[2] 任钢.基于ApacheCXF构建SOA应用[M].北京:电子工业出版社,2013.

[3] 赵强,乔新亮.J2EE应用开发[M].北京:电子工业出版社,2003.

软件开发教学试验平台设计的研究 第7篇

1 敏捷开发对软件工程人才培养的作用

1.1 软件开发模型

软件开发过程是随着开发技术的演化而随之改进的, 从瀑布开发模型到最近开始兴起的敏捷开发方法, 展示出了在不同的时代软件产业对于开发过程的不同的认识, 以及对于不同类型项目的理解方法。

瀑布模型 (Waterfall Model) 于1970年提出的, 大型软件开发可分为:分析与编程。其主旨是把软件工程分成各种工序, 每个工序可以进一步细分成更小的工序。该模型成为软件开发企业使用最多的开发模型。瀑布模型的特点一是强调文档, 二是对反馈没有涉及。目前针对瀑布模型的反对意见不少, 原因主要是:瀑布模型过于呆板, 不适合需求不断变化的软件开发;同时, 重复性的工作使得开发者无法得到新的学习和锻炼。

敏捷开发 (agile development) 概念由200 1年17名编程大师发表的“敏捷软件开发”宣言得来。敏捷开发强调:1) 编程中开发者的自我特长发挥;2) 软件开发的产品是软件, 而不是文档;3) 客户与开发者的关系是协作, 而不是互相制约的关系;4) 要适应客户需求的变化, 同时能根据环境的变化, 修改自己的设计。敏捷软件开发是一个新的开发软件管理模式, 其关注点从文档转移到开发者, 管理方式也从流水线转移到团队的自我放松式组织[1]。

1.2 软件工程人才培养的新思路

众所周知, 当今的软件已经成为多人参与、分工明确、通力协作的大型工程。是使用传统的瀑布模式, 还是新颖的敏捷开发模型, 还是将两者结合, 是软件开发组织者面临的新课题, 这显然就需要利用软件工程的思想和方法。

在实践传统和前沿软件工程的基础上, 根据具体情况选择最合适的软件工程实施模式很重要, 教会学生如何思考这些问题才是关键。所以, 应该让学生不停地自我询问:如果要完成这个项目, 会选择什么语言, 什么操作系统, 什么环境?如果是项目开发人员, 在某种特定的情况下, 会选用什么样的开发模式, 什么样的算法, 什么样的系统体系结构?本课题的主旨就是让学生在不断自建自检的过程中, 理解不同的开发模式的优劣, 以及在何种情况下, 应该使用何种开发模式。

2 软件开发教学试验平台设计的实施过程和成果

教学计划中有课程设计, 主要是组织学生进行相关企业级项目的开发。这个过程中, 让学生理论联系实际, 加深对软件开发流程的理解。具体步骤如下:首先把学生分成两组, 一个小组按传统瀑布模型开发, 另一个小组按敏捷模式开发。对于敏捷开发小组, 下一步是选择出一个项目负责人, 其余成员构成团队[2]。然后, 团队一起制定计划, 项目负责人为大家说明项目需求的优先级顺序, 团员可以提出疑问, 团队一起寻求答案, 同时补充项目描述或调整优先级。在一问一答中, 整个团队对项目有一个认识, 同时达成共识, 即对项目的规模进行估算, 这有利于任务按时进行。敏捷开发过程中, 每天固定举行简短的“每日站立会议”;会议在固定地点和固定时间举行;在会议上, 每个团队成员需要回答三个问题:今天完成了哪些工作?明天做什么?完成目标是否存在障碍[2]?

在项目实训中, 选取了两种类型的项目实例:一个是嵌入式平台的中间件的开发;另外一个是企业网站迁移到Web 2.0。前一组需求复杂, 但变化频率比较少;后一组需求简单, 但改动频繁。试验平台按照人力资源的消耗, 程序包含的bug数作为比较参数, 从这两个方面分析敏捷开发和瀑布模型的优劣及适用的项目实例。

在嵌入式开发项目中, 敏捷开发花费的人力比瀑布模型高。分析得出:每日站立会议花费了额外的时间, 学生解释自己的工作内容并不容易。而瀑布模型需求分析充分, 所以资源消耗明显较少。在质量上, 敏捷编程的提高也并不明显, 因为嵌入式项目模块之间接口相对较少。但通过对bug根本原因的分析发现, 敏捷开发中的结对编程有效地降低了学生编码过程中的偶然性错误。对于项目二, 需求更改的频率显著增加。此时, 瀑布模型所花费的人力资源远高于敏捷开发。因为每次需求变动, 瀑布模型需要重新进行需求分析、架构设计和模块设计和代码编写。而敏捷开发的及时沟通有助于需求的更改, 同时降低代码耦合性, 采取功能逻辑和用户界面分离的形式, 有效地提高了效率。在软件质量方面, 根据记录发现, 传统瀑布型开发中的bug数较多, 部分bug是对需求分析不够透彻。

从试验结果得知:对于不同的项目可以采取相应的开发模式。若项目需求固定, 适合瀑布型。而对于创新型项目, 需求更新快, 则适合敏捷开发模式。要提供高效率的项目流程, 要实行开发过程的有效管理, 只有敏捷开发模型, 或者只有瀑布模型是远远无法满足千变万化的需求的, 所以针对项目的特点对两种模型有所选择, 并有效融合, 发挥各自长处, 这才是重点。

3 结语

真正的软件人才不再是写代码的程序员, 而是整个体系结构的分析、设计、标准制定、协调人员。所以在培养软件工程人才时, 应该以人为中心, 以项目类型为中心, 软件开发者能够对软件工程的开发模型进行正确的选择, 同时锻炼学生们相互之间的协作能力, 这也正是本课题的主旨。

参考文献

[1]从瀑布模型、极限编程到敏捷开发[EB/OL].http://wenku.baidu.com/view/0267645d804d2b160b4ec057.html.

[2]http://baike.baidu.com/view/1528674.htm.

[3]http://baike.baidu.com/view/309926.htm.

软件集成开发平台 第8篇

项目管理是在一定的约束条件下, 为高效率地实现项目业主的目标, 以项目经理个人负责制为基础和以项目为独立实体进行经济核算, 并按照项目内在的逻辑规律进行有效地计划、组织、协调、控制的系统管理活动。

从软件工程的角度讲, 软件开发主要分为以下几个阶段:需求分析、总体设计、详细设计、编码和单元测试、综合测试、运行和维护。在开展软件项目管理时, 应遵循以下7条基本原则: (1) 用分阶段的生命周期计划严格管理; (2) 坚持进行阶段评审; (3) 实行严格的产品控制; (4) 采用现代程序设计技术; (5) 结果应能够清楚地审查; (6) 开发小组的人员应该少而精; (7) 承认不断改进软件工程实践的必要性。

2 项目管理实践研究

2.1 项目简介

Android手机操作系统自问世以来, 凭借其强大的易用性、开放性、丰富的硬件选择面及便捷的开发功能, 迅速成为智能手机市场的新宠儿。“PC遥控器”是基于JDK和Android SDK, 以Java语言编写的一款Android平台手机应用软件。本款软件的开发意图在于使随身携带Android手机的人群无需再花钱购买专门的远程控制设备, 如电子笔、无线鼠标等, 或者在忘记携带上述设备的情形下, 直接使用手机远程操控计算机, 为用户节省时间和金钱。从虚拟触摸板功能、文件浏览功能, 到智能PPT遥控功能、虚拟游戏手柄功能, “PC遥控器”将给用户带来更为实用、更为便捷的全新体验, 让用户在工作、娱乐中尽情享受指尖在屏幕上滑动的乐趣。

2.2 生命周期模型选择

增量模型融合了瀑布模型的基本成分 (重复应用) 和原型实现的迭代特征, 该模型采用随着日程时间的进展而交错的线性序列, 每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时, 第1个增量往往是核心的产品, 即第1个增量实现了基本的需求, 但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能, 这个过程在每一个增量发布后不断重复, 直到产生了最终的完善产品。

因本软件涉及触摸板、文件浏览、PPT控制、游戏控制等多个相对比较独立的子功能, 所以我们采用的是以增量模型 (图1) 的方式, 把软件产品作为一系列的增量构件来逐一设计、编码、集成和测试, 根据测试结果不断改善直至达到预期。

采用增量模型的优点是人员分配灵活, 刚开始不用投入大量人力资源。如果核心产品很受欢迎, 则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时, 它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户, 可以使用户有较充裕的时间学习和适应新产品。此外, 增量能够有计划地管理技术风险。

依据采用的增量模型, 将该系统的开发阶段分为需求分析、系统设计、编码实施、测试、系统试运行等, 在每个开发阶段中进行质量、成本和进度等跟踪控制管理, 主要从文档、工具、沟通、制度、合作4个方面进行。管理模型如图2。

2.3 需求分析

需求分析是每个软件开发的基础, 是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法, 可用于获取、组织和记录系统需求并使客户和项目团队在系统需求变更上保持一致。全面的需求获取是从保证系统开发少走弯路为前提。项目开发中采用了多种方法从不同角度获取不同用户、不同平台的不同需求。分析方法主要有用户调查问卷、定期召开研讨会、原型展示等。对于每一次的调查和会议, 都有专门人员做好全程记录, 会后及时做好应对策略。

本项目具有较强的可行性和创新性, 因此, 正确而又全面地做好系统的需求分析是十分重要的。本项目所开发的系统的主要特点有:

(1) 系统主要分为Android手机端应用软件和配套的PC服务端软件两部分。

(2) 手机端应用软件基于Android操作系统平台, 应充分考虑到针对各种不同硬件配置和操作系统版本的兼容性。

(3) 配套的PC服务端软件应能够跨各种不同操作系统平台运行, 且占用较少系统资源。

(4) 系统应能够在大多数无线环境下使用, 保证数据连接的速率和操作的顺畅。

(5) 软件所面向用户群体的计算机专业知识参差不齐, 因此简单友好的可视化操作界面是至关重要的。

本系统具体功能需求如表1。

2.4 项目规划

项目规划是建立项目行动指南的基准, 包括对软件项目的估算, 风险分析、进度规划、人员的选择与配备、产品质量规划等。本项目采用Microsoft Project制定项目管理计划。在制定计划时注意保证计划的可行性, 明确责任划分。项目管理计划随着系统的进行不断细化, 不断调整。对于影响系统整体进度的调整, 及时召开小组会议进行讨论决定并记录形成文档。

2.5 系统设计与编码

系统设计阶段分为概要设计和详细设计两阶段完成。概要设计阶段将系统划分为连接模块、通信协议模块、触摸板模块、文件浏览模块、PPT控制模块、游戏手柄模块、设置模块、帮助模块、关于模块及退出程序模块等10个模块, 并对这些模块进行了初步设计分析;针对PC服务端软件, 为了达到在各种操作系统平台上的可用性, 编程语言采用了跨平台的Java。系统总体流程如图3。

详细设计阶段给出了每个模块的控制流程、算法和数据结构等。每个模块的层次不同。有些模块难度较大, 涉及范围较大, 会交给编程老练、心思缜密的队员完成。每完成一个模块都将对这一模块进行反复的测试和修改, 直至稳定为止, 尽可能地降低风险和成本。

在编码实施阶段, 采用代码版本管理工具SVN, 使各子系统的功能得到最大限度的发挥, 子系统之间互相补充, 弥补软件开发过程中的短板, 降低软件开发过程中的风险和难度。这还有助于使得软件开发人员在测试和调试过程中能够针对某个特定的开发信息回到以前的任一版本, 提高软件过程的跟踪率。

2.6 测试和运行

软件测试伴随着整个项目进行, 项目中制定了详细的测试计划、精心编写了测试用例。每一个子模块由该模块编程人员之外的人员进行反复测试, 对测试过程中出现的任何问题和建议进行记录, 以备该模块编程人员修改。在编写测试用例过程中, 对测试目标、测试环境、输入数据、测试步骤、预期结果等记录具有代表性的数据, 并形成文档。

试运行阶段, 首先, 小范围地对每个子模块试运行, 试运行成功后再对整体软件试运行, 并对反馈的运行结果记录、斟酌和完善。试运行成功后编写用户手册、制作PPT并录制视频说明, 其中标注联系方式等, 以备用户反馈。

2.7 项目后期管理

当系统经过安装试用一段时间, 具备验收的各项条件之后, 我们就需要着手验收阶段的准备工作。首先我们需要把到目前为止完成的工作进行一个总结, 列出我们已经完成的各项目工作成果、各类文档, 对合同以及各类约定的技术文档中的相关内容进行自查。要彻底了解系统目前完成的情况如何, 对于没有完成的, 要考虑准备采取什么策略去进一步完成或者采取一定的回避措施, 使客户在验收的时候不再提出这些未实现的需求。

系统交付后的软件维护是必不可少的。软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改, 修改时应充分利用源程序。修改后要填写程序修改登记表, 并在程序变更通知书上写明新旧程序的不同之处。

2.8 项目跟踪控制

从软件项目前期需求分析到后期运行维护, 均需坚持整个过程的监控, 这是为通过周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源、工作成果、风险等, 不断地了解项目的进展情况, 以便当项目实际进展状况显著偏离计划时能够及时采取纠正措施, 使项目能恢复到正常轨道, 或者更正计划的不合理之处。

2.9 团队管理

软件项目的成功是靠项目管理、系统分析设计、程序编制、测试、市场营销等不同角色人员共同协作完成的, 不同角色的人执行的工作相互促进和制约着其他角色的人的工作, 因此一个高效的软件开发团队是高质量软件项目或产品的保证。

高效的软件开发团队是建立在合理的开发流程及团队成员密切合作的基础之上, 成员共同迎接挑战, 有效地计划、协调和管理各自的工作, 以至完成明确的目标。高效的开发团队具有明确且有挑战性的共同目标, 具有很强的凝聚力, 具有融洽的交流环境, 具有共同的工作规范和框架, 采用合理的开发过程。

本项目的开发团队包括5位成员, 进行科学分工, 相互协助设计、开发和测试。团队成员在专业技术上有所差异, 而项目管理能力的表现也不是很突出, 因此对于整个团队而言, 具有一定的难度。我们严格按照软件工程中开发软件的方法来控制整个项目的进行, 具体成员的工作安排如表2。

团队管理是对项目组全体成员的管理和项目组织自身的管理, 是项目管理中最为根本的一项管理。团队开发, 永远不是一个人在行动, 因此需要制定团队规范来约束大家的行为, 以保证进度和质量。团队规范的内容主要包括: (1) 每个开发人员每天晚上汇报当天的工作进度; (2) 每周末总结本周工作, 制定下周进度计划; (3) 遇到问题及时沟通, 充分利用团队优势; (4) 不能完成任务或提前完成任务及时告知负责人; (5) 个人独立解决一个问题的时间不能超过半小时, 半小时之后未解决应及时与其他成员商讨; (6) 阶段性的技术总结、团队内部技术、经验交流; (7) 使用版本管理工具来协助开发; (8) 保证充分可靠的文档; (9) 周期执行检查工作; (10) 实行公正合理的奖惩制度。团队管理的目的是使项目组人员的主观能动性得到充分发挥, 做到人尽其才、事得其人、人事相宜, 同时保持项目组织高度的团结性和战斗力, 从而成功地实现项目的既定目标。

3 结语

软件项目管理是一门很大的学问, 它贯穿于项目启动、计划、执行、控制、收尾等5个阶段, 它不仅需要项目管理相关的基础理论知识作为指导, 也需要在实践中不断学习、摸索。因此, 总结项目经验是非常重要的, 它有利于团队技术与管理经验的积累, 对于今后的项目有非常重要的指导意义, 必须引起足够的重视。

本项目通过将软件项目管理的相关知识应用到Android应用开发的过程中, 在需求分析、项目规划到系统设计与编码、测试和运行乃至团队管理等方面, 有效地保证了项目保质保量地向前推进, 有利于归纳出适合团队的开发过程, 提高团队的开发经验。同时, 团队的每位成员在项目开发的整个过程中都切实负起责任, 既增强了团队合作意识, 提高了团队的凝聚力, 又保证了用户的真实需求得到满足。

通过在项目中实践软件项目管理的方法, 在最后开发出的软件中, 基本上达到了我们预期的目标, 既完成了预定的各个功能模块, 同时也在软件人性化、系统安全等方面都进行了认真地关注, 并努力修正了很多方面的细节问题。

摘要:通过在一个Android平台小型软件的开发过程中应用软件项目管理的相关知识, 初步探讨了Android平台软件开发的特点, 阐述了需求、质量、进度等方面的管理理念和方法, 特别是如何对项目进行跟踪、监控和度量, 以保证软件按照进度高质量地完成、交付和使用。

研究软件开发平台中配置管理的应用 第9篇

关键词:软件开发平台,配置管理,应用

随着现代科学技术的进一步发展, 软件开发平台开始受到社会的普遍关注, 对相关人员而言, 如何实现软件开发过程中的高质量、低成本成为其工作的主要内容。CMMI (软件能力成熟度模型集成) 的出现有效的满足了人们的要求, 其主要分为5个成熟度, 每个成熟度级别都包含若干个关键过程域 (KPA) , 而软件配置管理就是其中的一个重要KPA。在本次研究中, 主要针对软件开发平台中配置管理应用的相关问题进行研究, 希望洋酒内容能对相关学者研究有所帮助。

1软件配置管理过程KPA

1.1配置管理的必要性

裴树军等通过研究认为, 随着软件规模不断扩大, 导致软件研发过程中的中间产品数量不断增多, 严重增加了管理难度。而对整个软件开发而言, 配置管理是软件开发的核心内容之一, 若不做好配置管理工作, 则势必会引发一系列问题, 具体表现为以下几点:

1.1.1同时更新的问题

当两个或多个人员同时研发一种软件时, 同时更新现象会损害他人工作, 影响了工作的整体进程。

1.1.2通用代码问题

在一些特殊的大型系统中, 如果相关人员已经根据相关要求修改了软件的部分功能, 则会导致所有将该内容告知所有人员;如果不能及时的告知每一个软件开发人员, 则会导致部分出现严重的系统操作失误问题。

1.1.3版本冲突问题

从当前部分大型软件的开发过程来看, 其主要通过增量式发布的方式实现开发的。在这种背景下, 一个大型系统可能涵盖诸多活动版本, 这样很容易产生冲突现象, 不利于保证软件正常运行。

对相关人员而言, 若不能有效处理上述问题, 将会造成严重的混乱现象, 因此做好配置管理工作十分重要。

1.2软件配置管理分析

配置管理过程是整个软件生命周期过程中的重要元素内容之一, 这在CMMI中, 配置管理目标主要分为三种包括, 建立基线、控制变更、跟踪等。一般认为, 建立基线主要存在三种特定的实践内容:

(1) 保证标示能在配置管理的配置项中, 并建立一个能满足配置管理的系统, 完成基线创建等基础过程。

(2) 在使用一个配置管理系统后, 所有的变更都能在第二个目标结束之前实现被跟踪与控制。

(3) 保持配置项的记录, 并按照基线的相关内容开展配置审计。

2配置管理研究

2.1配置管理的基本工具

当前在开展配置管理中, 常用的工具包括:

2.1.1 Starteam

该工具提供了真正的协同工作, 保证整个开发环境内外的所有团队与功能模块都能参与到目标活动中, 保证了配置工作的顺利开展。因此可以认为, Starteam是一个集合了版本控制、缺陷跟踪等多种功能于一体的软件。

2.1.2 CC

该工具是ROSE构建的主要组成部分, 常被应用在复杂产品开发等特殊环境中, 能有效解决多种产品开发与维护的要求, 具有良好的应用价值。CC的主要功能包括建立管理体系、明确过程控制等, 是实现配置管理的主要工具。

2.1.3 VSS

该工具能将所有项目原文件给进行管理, 并通过特有的方式将原文件进行储存。但在操作过程中需要注意的是, 相关人员不能直接修改数据库中的文件, 而是需要通过该版本管理器, 对项目项目的源程序进行控制, 将其拷贝到成员自己的目录中进行修改, 再讲修改结果提交给VSS, 之后才能完成数据资料修改。

2.2软件配置管理的基本流程

有项目经理负责监督整个项目配置管理的实际情况, 重点研究配置管理中存在的问题, 并根据问题提出相应的解决措施;项目组成员协助开展配置管理工作。在上述工作内容的基础上, 配置管理人员根据既定的项目目标计划, 在项目经理的指引下参与制定《配置管理计划》并在日后工作中始终按照《计划》的相关内容展开工作, 并按照相关要求调谐《配置状态报告》, 做好相应的资料备份工作。在配置工作结束之后, 资产管理人员收集组织资产资料, 并维护组织资料库。

2.3版本控制

总体而言, 版本控制是实现软件配置管理的核心内容, 其主要目的就是根据具体的软件管理规则保存配置项目的版本资料, 以降低发生版本丢失的概率。

一般认为, 在确定配置项过程中, 常见的状态如图1所示。

在整个配置项最初建立过程中, 其产生的状态为“编辑”。在这种状态下, 开发人员能编制整个配置项。在编辑结束后, 经过编辑的配置项进入“评审”状态, 此时若显示评审通过, 则会将配置项的状态改变为“正式发布”;而评审未通过, 则进入调试状态, 对配置项进行二次修改, 直至成为“正式发布”状态。

2.4变更控制

在整个软件配置管理过程中, 变更控制的主要内容是创建产品基线, 并以此为核心, 在整个产品生存周期的过程进行变更, 最终建立一整套完成的软件控制修改的机制, 确保其质量能满足运行的要求。

从其应用过程来看, 需要变更的软件首先会处在“待修改”的状态, 并由具体的操作人员将其分配到具体人员的手中。在经过相关人员的修改并结束后, 变更软件将会改变为“关闭”状态, 此时由系统进行评审, 若评审结果显示无法修改, 则会将其设置为“不修改状态”。而如果认定为不需要进行修改, 也能将其关闭, 避免过度处理现象发生。

3结束语

主要研究了软件开发平台中配置管理的相关内容, 并对其应用进行详细的研究。总体而言, 软件配置管理在软件研发中发挥着重要作用, 因此对相关人员而言, 在工作中要正确认识到软件配置的实际要求, 并提出针对性的管理措施, 为保证软件开发工作顺利进行奠定基础。

参考文献

[1]裴树军, 陈德运, 陈晓雪.软件配置管理在软件开发平台中的应用[J].哈尔滨理工大学学报, 2010, 01:28-32.

[2]李向蔚.嵌入式系统软件开发平台配置管理技术的研究与实现[D].电子科技大学, 2005.

软件集成开发平台 第10篇

交通事故已成为社会的一大公害。交通事故死亡人员中[1], 50%是在碰撞中当场死亡, 30%是在事故发生后1至2小时内死亡, 其余在事发后30天内死亡。国外用交通事故致死率来衡量这项工作的好坏, 我国这项指标[2]近几年大致为0.18, 是美国的18倍。据我国卫生部统计, 在1000例交通事故伤者中, 只有14.3%乘救护车到达医院, 而道路交通事故实验表明, 如果在事故发生后5分钟内采用紧急救援措施, 30分钟内采用急诊, 至少可以有18到25%的重伤者免于死亡。因此实施道路交通事故紧急救援是降低事故死亡率的重要措施。

2 国内研究现状与本文的研究思路

目前国内交通事故紧急救援还停留在传统模式上。值班交警、医疗急救等分别通过报警电话确认事故发生, 再抵达事故现场开展事故救援工作。这种方式往往会耽误最佳救援时机。

本文的研究思路:首先了解现阶段救援过程;建立救援系统的可行性模型, 对成都市交通流量等数据进行拟合, 并结合理论确定实际路阻模型, 同时确定二次诱导的模型;利用superMap deskpro[3]绘制电子地图;最终运用Netbeans, JAVA语言, 开发诱导软件平台。

3 系统构建

城市交通事故紧急救援系统可通过数字视频监控器等设备, 实时监控路面的交通状况。救援系统以指挥中心救援诱导软件平台为核心机构, 具有多种技术设备的支持, 其中包括移动通信网、数字视频监控器、电子地图显示屏等。

4 算法研究

本论文的算法基于Dijkstra算法, 该算法中涉及路权的设置。现实中影响救援单位到达事故地点的因素很多, 如路段长度、道路等级等。从可计量性和数据可获得性方面看, 采用以时间为量纲的综合交通阻抗作为路权值较为合理。

4.1 路段上的交通阻抗

根据路段的性质不同, 将路段分为事故路段和非事故路段。因此将实际地图网络转化为网络图时, 就可以将边分为事故边和非事故边。二者时间权重T (e) 求法不同。

对于非事故路段交通阻抗函数的研究, 其中应用最广泛的是=美+国道=路+局开=发的BPR函数:v1v2q1

上述BPR[5]模型中, 只有路段i上的流量iq未知, 论文从成都市交委取得的数据只有路段i在某一时间段的平均车速, 根据相关参考文献可以确定路段上流量与车速的函数关系, 由此利用已得到的车速数据求得流量iq, 利用matlab自定义拟合函数nlinfit可以很快标定路阻函数中的参数α, β, 最终可得到各路段上的路权值。

对于事故路段交通阻抗函数的研究, 事故边的时间权重利用事故延误算法和车流波动理论将动态信息转化为静态信息进而确定静态权值。根据交通流的“流量—密度—速度”基本关系中, 可以得出以下几个关系式[6] (见表1) :

4.2 叉口的交通阻抗

城市道路网交叉口比较密集, 车辆在交叉口所耗费的时间大约占整个出行时间的20%~40%, 不能忽略。信号交叉口中对yij的标定有很多种方法, 比较可靠的是Webster公式[5]

4.3 间的确定

对于非事故段, 在城市交通网络中, 即使同一条道路在不同的时间段交通状况也不同, 因此T非事故段=Min∑W (e) , 应分为早晚高峰、平峰来考虑, 这将在软件运行中来体现。

对于事故段:T事故段=T1+T2或T3+T4

(1) 救援车辆从事故路段上游到达事故发生点

(2) 救援车辆从事故路段下游到达事故发生点:

因此总时间为T总=Min (T非事故段+T事故段)

5 件平台的开发

5.1 据库系统设计

本系统采用My SQL建立数据库。设计步骤如下。

(1) 需求分析阶段; (2) 概念设计阶段:E-R图如图1所示; (3) 逻辑结构设计阶段:把在需求分析阶段收集的信息转换成关系模型; (4) 物理结构设计阶段。

5.2 基于SuperMap的电子地图设计

论文利用网上资源下载成都市部分地图图片, 并结合百度地图进行比对相关信息和数据, 使其接近现实。通过标志点或标志线将图片拼接, 根据比例尺的要求建立点、线、面、文字数据集, 并构建网络数据集, 对道路拓进行扑化处理。

5.3 件界面设计

本软件有9个功能控件:监控窗口、辅助决策、资源维护等, 如图2左侧所示。

当接到报警信息后, 指挥中心通过视频监控确认事故发生, 软件平台自动搜索出事故点周围的交警支队、医院等救援单位。根据事故等级, 选定好救援单位和救援人数、车辆数;根据高峰、平峰需要选取不同权重, 设定完相应参数后进行智能分析, 选出最佳路径方案, 电子地图上同时显示蓝色路径, 如图2中间部分所示。车辆出发后, 屏幕出现车辆位置, 我们将时间误差率 (即后半段预计时间与初始后半段预计时间之差与初始后半段预计时间的比值) 作为衡量事故波及程度的一个指标。车辆行驶过程中, 软件平台自动演算时间误差率, 当其大于规定值时, 主窗口会自动弹出消息框, 提醒操作人员进行二次诱导。

6 结语及展望

通过对现有救援系统的学习研究, 开发出了交通救援诱导软件平台。在算法方面, 根据路段阻抗概念, 提出以时间为量纲的综合交通阻抗, 对路段和交叉口分别讨论, 最终确定了不同时间段的最短路径算法的路权值。根据成都市交委提供的数据, 对该市三环三横三纵早、晚高峰和平峰的速度和密度分析, 采用效果最好的线性关系拟合, 得到道路流量——速度的换算的可靠模型。论文还提出多次诱导思想, 在救援车辆出发后, 软件平台再进行诱导, 根据交委提供的路段路面上的车速再次导入系统, 对综合阻抗模型重新计算时间误差率, 当其大于设定值时对救援车辆进行二次诱导, 与传统路径选择相比具有更大的优势和合理性。

随着智能交通的发展, 软件平台数据获取将更加及时有效, 这样会使得本研究成果在道路交通事故紧急救援中发挥更大的作用。

摘要:现有城市交通事故紧急救援体系模式传统, 响应缓慢。本论文提出较为完善的救援系统, 并以Netbeans为工具, 开发出救援诱导软件平台。论文主要应用改进的Dijkstra算法, 并提出以时间为量纲的综合交通阻抗, 将路段分为事故和非事故路段进行考虑, 确定最短路径算法的路权值。论文通过对成都市各时段车辆速度和密度分析, 得到道路流量——速度换算模型, 得出不同时间段路权值。该软件平台可生成事故处理方案和救援路径, 发布给各救援单位。同时还可自动检算路阻变化, 提供多次诱导的功能。

关键词:交通救援诱导软件平台,综合交通阻抗,道路交通事故,多次诱导

参考文献

[1]高万云.建立道路交通事故救援系统和绿色通道[J].道路交通与安全, 2002 (5) .

[2]管满泉, 姚群.中外道路交通事故预防之比较[J].江西公安专科学校学报, 2003, 78 (7) .

[3]北京超图地理信息技术有限公司.SuPerMaPObjects开发教程[J].2003.

[4]张水舰.基于GIS-T的城市交通最优路径诱导算法研究[D].西南交通大学, 硕士学位论文, 2010.

[5]刘道君.基于改进的BPR路段阻抗函数研究城市道路交通阻抗[J].中国科技论文在线.

随手记:卖软件还是做平台? 第11篇

Project项目描述

随手记是一款针对个人的理财记账应用,可以让用户在手机上方便的记录个人账务。2010年5月产品上线,8月在苹果商店理财类应用中排名第一。

2010年底“随手记”用户突破10 0万,到目前为止有1300万用户装载“随手记”,其中包括免费版和收费版用户,每日活跃用户100万。

Innovation创新之处

将专业财务软件功能应用到个人理财软件中。

User用户

有记账需求的个人用户,主要是不拿固定工资的人。比如拿提成的保险、中介、采购等行业从业人?士。

Team团队

现有创业团队成员50人。

Business Model商业模式

软件收费。随手记是最基本的个人记账应用,公司希望通过这款产品开拓个人用户的理财记账需求,再推出更多高级功能的收费软件。比如随手记免费版有基本记账功能,6元付费版有更多增值功能,升级到40元的家财通,就可以管理自己的存款、贷款、基金和股票等理财项目。

Idea from这个主意来自

谷风上一家公司主要做企业理财软件,到2007年谷风开始关注到个人理财软件市场,2009年开始发现用触屏手机和智能手机的人越来越多,并且互联网上各种理财软件也很受欢迎,他觉得做一款手机个人理财软件的时机已经成熟了。

Market Potention市场机会

个人财务结构越来越复杂,简单的流水账已经不能满足很多人的理财需求,需要更方便的理财方式。而且在2009年随手记公司成立时,国内个人理财软件市场竞争并不激烈,没有太强大的对手。

Question

Q1:收入来自哪几个渠道?

软件付费下载是一部分。苹果系统有30万用户下载收费版“随手记”,安卓系统的用户可以付费获得增值功能,付费下载收入超过300万。另一部分是跟金融机构合作。随手记把软件付费授权给银行机构,作为他们为用户提供的增值功?能。

Q 2:个人理财软件市场的规模有多 大?

通过跟企业软件市场做对比,我估计市场总规模至少超过每年1亿元人民币。但是除了作为应用软件,当一款应用用户达到一定数量时,它本身就具有营销价值,我们已经和银联达成了合作,以后还会与金融行业企业,比如基金公司、银行,进行推广合作。

Q3:未来的竞争者可能来自哪里?

我们是在用以前做企业级理财软件的经验和要求来做一款适合个人使用的理财应用,所以目前从功能上说,没有遇到太强大的竞争者。未来的竞争者可能是金融行业的大公司,另外像支付宝这样的公司也许是我们的潜在竞争对?手。

Last Shot

Big Trouble麻烦问题

随手记的员工主要由软件公司的技术人员组成,无论是做产品还是运营都有较强的软件思维,而现在所处的领域比较复杂,要面对互联网和移动互联网等平台,需要不同的产品和运营思路,所以能够尽快转变思路是现阶段的最大问?题。

Ask Mentor最后一问

现在行业竞争比较激烈,如果公司不能短期上市,就不能对员工有足够的激励作用,如何能够在这种状态下保持员工的积极性并且能够达到生活和工作的平衡?

CBN Note

CBN Note

作为一款功能比较专一的应用,“随手记”现在的用户量已经很大,而且用户增长速度放缓,靠增加功能收费并不是长久之计,团队需要解决收费模式的瓶?颈。

基于TSP原则的软件质量开发平台 第12篇

关键词:TSP,软件度量

1 TSP概述及TSP原则

TSP (Team Software Process, TSP) 小组软件过程, 是以广泛的软件工程工业经验为基础, 致力于开发高质量的产品, 通过建立、管理和授权项目小组, 实施集体管理和个人管理相结合, 规划和管理项目, 指导小组成员在满足计划经费和期限范围的前提下, 不断生产出高质量的产品[12]。

TSP采用多个周期循环开发的策略来完成最终的产品, 每个周期都必须产生一个最终产品适当子集的可测试版本。其基于4个基本原则:

(1) 遵循一个经大家共同定义, 可重复的工作过程, 并且能从中得到快速的有效的反馈信息。TSP的程序和规范为小组软件工程提供了一套规划好的、经过评测的、可重复的框架;

(2) 小组共同确定明确的目标, 小组成员在开发前做必要的训练领导;

(3) 共同确立可靠合理的开发实践指导实际项目问题的有效解决;

(4) 并且利用先前的经验进行指导开发。

TSP的过程设计采用7条主要的设计原则:

(1) 提供一个建立于个体软件过程PSP基础之上的小组软件过程框架;

(2) 把产品开发分为数个周期;

(3) 建立标准的质量和效率评测机制;

(4) 提供关于小组和组员的准确的评价;

(5) 采用角色和小组评估;

(6) 开发过程中需要纪律;

(7) 提供关于小组协同工作的问题和指导。

TSP8个主要过程脚本分别是启动、策略、计划、需求、设计、实现、测试和后期处理。其结构如下图1。

2. 基于TSP的SQCP系统结构

SQCP的对象是广大中小型软件企业用户, 目的是为他们的软件开发过程提供一个遵从TSP原则的管理平台;相应的, SQCP又是我们项目组严格按照TSP的开发原则进行循环开发的, 完整地实现了TSP要求的八个过程脚本 (在SQCP中是八个模块) :小组启动、开发策略、开发计划、需求定义、小组设计、产品实现、系统测试以及项目评价。每个脚本典型的结构是:

(1) 目的, 简单描述相应活动的整体目的;

(2) 入口标准, 详细说明开发脚本之前需要完成的工作;

(3) 概述, 提供该脚本的一般信息;

(4) 步骤-活动-描述, 在执行脚本中将要从事的活动;

(5) 出口标准, 详细说明脚本结束时应该完成的任务。

SQCP采用三层的B/S结构, 即Browser/Server结构:第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件, 如微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能 (一般由Java Script提供一定的交互功能) , 允许用户在网页提供的表单上输入信息提交给后台, 并提出处理请求。这个后台就是第二层的Web服务器。第二层Web服务器将启动相应的进程来响应这一请求, 并动态生成一串HTML代码, 其中潜入处理的结果, 返回给客户机的浏览器。如果客户机提交的请求包括数据的存取, 应用服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务负责协调不同的Web服务器发出的SQL请求, 管理数据库, 如图2:

三层构架将界面逻辑, 业务逻辑和数据库管理分成三个层次, 使得频繁变更的界面、业务规则和数据维护起来比较方便。在这种三层式程序架构下, 用户界面完全通过WWW浏览器实现, 客户端不必安装数据库中间件, 可简化系统的安装部署。业务逻辑和大量数据库操作集中于Application Server (应用服务器) , 有效降低了网络数据传输量, 系统扩充性好。

SQCP严格按照TSP的开发策略, 采用周期开发的增量模型。增量模型融合了线性顺序模型的基本成分 (重复的使用) 和原型实现的迭代特征, 采用随着日程时间的进展而交错的线性序列。每一个周期产生一个可发布的“版本”。第一个周期发布的往往是核心的产品。也就是, 实现了基本的需求, 但很多补充的特征 (其中一些可能是已知的, 另外一些可能是未知的) 还没有发布。核心产品由项目小组和客户进行使用和评审后, 所得出的结果就是下个周期的开发计划和开发目标。该计划包含对核心产品的修改, 使其能更好的满足客户需求, 并同时不断增加新的特征和功能, 直到得到最终产品。

3 SQCP的管理过程

Meiler Page-Jones在关于软件项目管理论著的序言中, 给出了一段被许多软件工程顾问认可的陈述:我拜访了很多商业公司, 好的和不好的, 我又观察了很多数据处理的管理者, 好的和不好的。常常地, 我恐惧地看到这些管理者徒劳地与恶梦般的项目斗争, 在根本不可能完成的最后期限下苦苦挣扎, 或是交付了使其用户极为不满的系统, 而后又继续花费大量的维护时间。

Page-Jones所描述的正是源于一系列管理问题和技术问题而产生的症状。有效的项目管理集中于四个P上:人员 (people) 、产品 (product) 、过程 (process) 、和项目 (project) , 其顺序不是任意的[14]。任何管理者如果忘记了软件工程是人的智力密集的劳动, 他就永远不可能在项目管理上得到成功;任何管理者如果在项目开发早期没有进行全面的客户通信, 他有可能实际上是在为错误的问题建造一个不错的解决方案。对过程不在意的管理者可能会冒把有效的技术方法和工具插入到真空中的风险。没有一个可靠的项目计划就开始工作的管理者将危及产品的成功。而SQCP正是遵循了这一原则, 在需求分析之前就要求软件开发小组制定好计划。这样小组就可以对他们将要做的工作得到一个共同的概念;也为跟踪工作进展提供了一定的基础。这些信息帮助开发小组去估计他们何时能够完工, 也提醒开发小组成员注意可能出现的问题。依照计划的顺序, 开发小组可以更有效的完成开发任务。

以下介绍SQCP中项目管理的“四P”要素, 即人员、产品、过程和项目。

3.1 人员

SQCP由六种角色组成:小组组长、开发经理、计划经理、质量生产经理、技术支持经理、工程师。每种角色担任不同的职能, 每个项目都有上述人员参与。这六种角色和待开发项目所需要完成的任务之间是多对多的关系:一种角色可以承担多项任务, 一项任务也可以由多种角色负责。由系统管理人员指定一个项目的开发经理, 确定开发经理以后, 由开发经理来指定自己的开发小组, 以及角色人员, 如图3:

为了达到高效, 项目组的组织必须最大限度地发挥每个人的技术和能力。一个软件小组如果被给予了尽可能多的决策的责任, 则该小组可以避免受挫。给予小组成员对过程和技术决策的控制越多, 小组成员受挫的感受就越少。而SQCP正是依据此原则采用了TSP (小组软件过程) 和PSP (个人软件过程) 相结合的方式来管理整个项目:允许小组成员针对某个任务作出个人的计划, 选择自己的过程, 项目管理者根据每个人的计划进行统筹安排, 制定出最优的计划和过程, 并与小组一起达成一致意见, 一旦选定, 每个小组成员都有责任按照指定的计划交付高质量的产品。

有很多种原因使软件项目陷入困境:许多开发项目规模大, 导致复杂性高、混乱、难以协调小组成员关系;经常存在的不确定性以及变更, 它会引起困扰项目组的一连串的改变。因此, 互操作性已成为许多系统的关键特性, 要完成这项任务, 必须建立小组成员之间正式的和非正式的通信机制。SQCP中正式的通信机制包括如下方面:

正式的、与人无关的方法:软件工程文档和交付物 (包括源代码) 、问题跟踪日志、错误记录日志、时间记录日志、项目里程碑、任务进度报告、改变请求以及相关文档、小组会议和中心存储库数据。

正式的、人员间的规程:集中于应用于软件工程工作产品的质量保证活动。包括状态评审会议以及设计和代码检查。

电子通信:SQCP设置了电子邮件发送系统, 帮助小组成员之间进行消息以及文档和重要总结的传送。

3.2 产品

软件项目管理者从项目开始就需要定量的估算和有组织的计划, 但却没有可靠的信息可以使用, 因此, 面临进退两难的局面。对软件需求的详细分析可以提供必要的估算信息, 但分析常常要花数周甚至数月的时间才能完成。更糟糕的是, 需求可能是不固定的, 随着项目的进展经常发生变化。因此, 计划必须首先制定。

SQCP软件项目管理的第一个活动就是软件范围的确定。在进行项目计划之前, 首先在“小组启动”阶段建立了产品的目标和范围, 由软件开发者和客户一起定义产品的目的和范围。这项活动是作为系统工程的一部分开始的, 持续到作为软件需求分析的第一步。目的只是标识出该产品的总体目标 (从客户角度) , 而暂时不考虑这些目标如何实现。范围标识出与产品相关的主要数据、功能和行为, 更为重要的是, 它以量化的方式约束了这些特性。

一旦了解了产品的目的和范围, 就要开始考虑本周期备选的解决方案了, 也就是“开发策略”。虽然这一步并不讨论细节, 但是它使得管理者和实践者可以选择一条“最好的”途径, 该选择是根据产品“启动”阶段设定的交付日期、预算限制、可用人员、技术接口及各种其他因素所形成的约束。

在“开发策略”中考虑可选的解决方案, 标识技术和管理的约束。没有这些信息, 就不可能进行合理的准确的成本估算、有效的风险评估、适当的项目任务划分或是可管理的项目进度安排, 而其中项目进度安排给出了意义明确的项目进展的标志。SQCP采用基于问题分解的划分方式将问题划分为一组小的更易管理的问题, 作为软件需求分析的核心活动。在确定软件范围的活动中并不试图完全分解问题, 而是将分解应用于两个主要方面: (1) 必须交付的功能; (2) 用于交付功能的过程。这些功能在“开发策略”中就被评估, 为“开发计划”阶段提供更多的细节。

3.3 过程

软件过程的一般性定义——定义、开发和支持——适用于所有软件项目, 问题在于如何选择一个适合项目组要开发的软件的过程模型。SQCP基于TSP的开发原则采用增量模型。然后, 项目组基于公共框架活动集合, 建立一个完整的计划以反映框架活动中所需要的工作任务。SQCP的过程框架如图4:它是通过定义若干框架活动来建立的, 每个脚本都遵循这样的框架活动——每个脚本都由工作任务、项目里程碑、软件工程产品和质量保证点组成——使得框架活动可被修改以适应于不同软件项目的特征和项目组需求。最后是庇护性活动 (如软件质量保证、软件配置管理和度量) 覆盖了整个过程模型。庇护性活动独立于任何一个框架活动, 且贯穿于整个过程。

3.4 项目

为了管理成功的软件项目, 就要首先了解可能出现的问题风险以及如何正确地完成任务。SQCP从项目开始就提供了问题风险管理工具, 并划分了每个问题风险可能发生的部件、优先级以及必须解决的日期。了解这些可能发生的问题才有可能在开发过程中避免这些问题。同时, 针对软件项目, SQCP对每个脚本的工作任务进行跟踪, 时时控制每个阶段每个脚本的进展情况, 以便项目管理者可以根据实际情况作相应的调整。并且, 每个周期结束前的“周期评价”, 建立了一个一致的机制以便从每个完成的周期中获取可学习的经验。评估计划的和实际的进度, 收集和分析软件项目度量, 从项目组成员和客户处获取反馈。

Boehm曾经提出了一种组织方法, 该方法强调项目目标、里程碑和进度、责任、管理和技术方法以及需要的资源, 称为W5HH原则:

l为什么 (why) 该系统被开发?

l将做什么 (what) ?什么时候做 (when) ?

l某功能有谁 (who) 负责?

l他们的机构组织位于何处 (where) ?

l工作将如何 (how) 被技术和管理的进行?

l每种资源需要多少 (how much) ?

SQCP也同样遵循了W5HH原则, 并在“项目启动”和“开发策略”阶段就分别对这六个问题进行了回答。

SQCP采用了GQM作为建立度量的基本指导方针。结合中小型企业所关心的具体问题, 建立了一系列过程度量模型, 并实施实际的过程度量:

l可操作的过程度量的模型;

l过程中间产品的度量模型;

l过程度量与产品度量相结合;

l在项目规划时制订度量目标和方法;

l从软件过程中收集度量原始数据, 集中式存储;

l对过程数据进行多维分析和统计, 以多种图表方式呈现, 支持过程改进。

改善过程的唯一合理的方法是测量过程的特定属性, 基于这些属性开发一组有意义的度量, 而后使用这组度量来提供引导改善策略的指标。过程是改善软件质量和组织性能的控制因素之一。如图5:

过程位于中央, 并连接了三个对软件质量和组织性能有重大影响的因素。人员的技能和动因被认为是对质量和性能最有影响的因素[2]。产品的复杂性对质量和小组产生很大的影响。过程中所采用的技术也会产生影响。除此之外, 过程存在于开发环境、商业条件以及客户特征这样的环境条件中。

SQCP的软件度量收集过程如图6。SQCP基于从过程中获得的结果导出一组度量。这些结果包括:软件发布之前, 每个周期发现的错误数的测量、交付的工作产品的测量、花费的工作量的测量、花费的时间的测量、与进度计划是否一致的测量、任务进度等方面的测量。

4 小结

在SQCP中, 软件度量中的项目度量及从中导出的指标是由项目管理者和软件项目组使用, 以改进项目工作流程和技术活动。其第一个应用是在估算时发生的, 过去的经验可以作为估算现在项目的工作量以及时间的基础。随着项目的进展, 所花费的工作量以及时间的测量可以和预估算值及项目进度进行比较。项目管理者使用这些数据来监督和控制项目进展。随着技术工作的开始, 生产率根据文档的页数、评审的时间、交付的源代码行数来测量。每个软件工程任务中发现的错误也会加以跟踪。基于TSP的原则, 建立了面向中小型企业的软件质量控制平台SQCP, 提出了SQCP的三层系统结构。描述了SQCP有效的项目管理集中于四个P上:人员 (people) 、产品 (product) 、过程 (process) 、和项目 (project) , 其顺序不是任意的。并且应用了Boehm曾经提出的一种组织方法W5HH原则, 该方法强调项目目标、里程碑和进度、责任、管理和技术方法以及需要的资源。

参考文献

[1]程莉莉、刘宗田.基于UML模型的全功能点自动化度量.[J]计算机科学, 2004, 31 (5) , 93-95

[2]International Function Point Users Group编著方德英译.IT度量--专家实践.[C]北京:清华大学出版社, 2003年12月.

[3]刘宗田等.软件质量评价与保障.[M]上海大学出版社, 2003.6

[4]软件工程实践者的研究方法.Roger S.Pressman著, 梅宏译[M].北京:机械工业出版社, 2002年9月.

上一篇:校企联合培养基地下一篇:惯性运动