无论是国内还是国外,软件开发失败的比例都非常高,部分软件系统即使上线使用,它的生命周期也非常短,为什么软件开发失败,大部分归纳起来以下几个方面:
1、项目预算不足(开发和维护成本太高)
2、需求不明确(无法满足业务需求)
3、没有整体架构设计(后续无法迭代改进)
4、开发人员能力不足(代码写得太烂,不好维护)
。。。
不可否认,以上的是项目开发失败的原因之一,作为一个IT领域从业人员,曾经历过无数个大小项目的失败,架构过多个大型项目,我认为软件系统开发失败最主要的原因是数据库设计问题,数据库设计不好项目注定会失败,而 数据库设计恰恰是最难的 。
1、项目预算不足(开发和维护成本太高)
一般我们在规划项目的时候会根据项目的需求评估开发周期,根据开发周期和人员角色及人员成本计算总的项目预算,如果做的比较规范的,一般预算是合理的,导致预算不足也是其他原因使开发成本增加,如需求不明确、人员技术差等。
2、需求不明确(无法满足业务需求)
可以说大部分的项目开始做的时候需求不是完全明确的,经过需求调研、需求分析、需求评审等这些环节,需求逐步清晰,但也不可能达到100%。根据不是完全明确的需求做的数据库设计一定只是满足现有需求的设计,如果最后用户改了需求,可能还需要修改数据库设计。既然需求不能完全确定,那如何避免以后出问题呢。
本人认为数据库设计一定要请高手设计,有多年项目开发经验及数据库知识的高级技术人员,首先仔细研究需求和客户探讨需求,把非常明确的需求设计好业务表,不明确的需求尽量设计灵活,有时一张表能满足设计,二张表也能满足设计,这个就需要仔细斟酌,预判未来可能的情况,尽量灵活甚至可以字段冗余(暂时不用的也可以设计),这样未来修改的风险和成本就非常低,系统上线后再修改数据库设计的代价是非常高的。表名和字段名一定要规范,设计人员要具备一些英文基础。尽量避免让实习生或刚开始工作的没有任何实践经验的人员设计。
3、没有整体架构设计(后续无法迭代改进)
本人认为架构设计是方便人员开发,提高开发效率的,架构设计也可以提高系统性能和方便维护,好的架构设计可以让整体系统层次清晰,但是架构设计即使不好,用老技术还是新技术并不影响业务的正常运行,有也是性能差一点,慢一点,不至于导致业务无法正常运营。最坏的打算就是几年以后系统重构一下采用新技术再开发。但是如果数据库没设计好,几年积累的大量业务数据你要整合和调整数据库那这个代价就是非常大了。
4、开发人员能力不足(代码写得太烂,不好维护)
开发人员能力不足这个我觉得最没有影响,某个开发人员能力差也只是影响其开发的某个模块而已(一般不会让一个技术差的写核心模块),只要他写的代码能测试通过运行,代码写的再乱都没问题,影响的只是一小部分,最坏就是以后把这部分代码重写一下就行。
另外数据库设计字段命名非常重要,不要写错的单词或毫无意义的字符,开发人员喜欢用数据库字段名在代码中命名属性,这样导致代码的可读性、维护性非常差 。
请大家一定要重视数据库设计,让你的软件系统生命周期更长久,数据库设计好了即使开始业务进行不下去,过一段时间还是可以重新把项目启动起来。数据库设计差以后在系统迭代更新,性能优化等方面都是问题。
大型工程项目投资控制和合同管理信息系统集成研究_彭勇_建筑经济_建筑中文网本文首先分析了现阶段投资控制和合同管理信息系统在功能和使用上存在的问题,结合笔者多年来大型工程项目管理信息系统开发实践,提出了解决上述问题的方法,并给出投资控制和合同管理系统集成中数据定义的方法与途径,接着通过建立两个系统的编码对照结构,解决系统集成的关键问题。
1现大型工程项目计算机辅助投资控制和合同管理信息系统存在的问题
随着国家大力加强基础设施投资,出现了许多大型工程项目,这些工程项目的管理效能在很大程度影响着国民经济发展的持续力,因此加强和提高大型工程项目的建设管理水平有着重大意义。大型工程项目有着技术复杂、建设周期长、工作量大、组织结构复杂和数据处理任务繁重等特点,为了及时、准确和完整地得到项目信息,单靠人工处理数据显得力不从心,因此项目管理人员一般都借助于计算机辅助建设项目管理。投资控制和合同管理信息系统在一些大型工程项目中分别得到了应用,一定程度上提高了大型工程项目的管理水平,但现有的投资控制和合同管理信息系统在功能和使用上存在很多问题:
(1)预算软件使用比较多,这些软件只是代替了简单的手工劳动,且多数是针对承包商,不适用项目投资控制方,在软件的功能上缺乏投资比较、投资预测和优化功能。
(2)项目估算、概算、预算、合同价、实际投资和决算之间缺乏数据比较分析功能。
(3)项目投资数据(估算、概算、预算、实际投资和决算)与合同数据(标底和合同价)缺乏沟通,更谈不上比较分析。
(4)投资控制软件缺少项目资金使用计划功能。
(5)合同管理软件一般是基于文档形式,缺乏数据结构性,达不到数据统计、比较和分析效果。
(6)投资控制数据和合同管理数据不共享,形成信息孤岛,从而导致项目数据分离、数据重复、数据不一致和数据不完全等一系列问题。
(7)系统使用的只是简单的数据库,这限制了数据的存储量、安全性和共享性能,应采用大型的数据库管理系统(如Oracle,Sybase等)。
(8)软件一般是基于单机使用,对使用人员和地点约束大,应采用网络平台(Intranet和Internet方式)。
以上问题中一部分是由不理解投资控制和合同管理原理导致,一部分是由于投资控制和合同管理信息系统分别独立、信息不共享形成的,另一部分是由于使用的工具和开发方案不合理造成的。要想真正提高建设项目管理水平,必须系统地分析、理解投资控制和合同管理的过程和原理,规划投资控制和合同管理信息管理方案,并通过适当的方法解决系统的集成问题。通过对大型项目投资控制和合同管理信息系统的开发与实践,笔者试提出投资控制和合同管理信息系统集成的方法和实施方案。
2投资控制和合同管理信息系统集成范围及数据定义方法
21投资控制和合同管理信息系统集成范围
投资控制和合同管理信息系统集成包括三个方面的集成,即项目建设阶段集成,项目组织结构集成和投资控制数据与合同管理数据集成。
(1)项目建设阶段集成
建设项目阶段可分为项目前期(项目决策)、设计(方案设计、扩初设计、施工图设计)、招投标、施工和维护等五个阶段。项目决策阶段产生估算,方案设计产生概算,扩初设计产生修正概算,施工图设计阶段产生预算,招投标阶段产生标底和合同价,施工阶段产生实际投资、合同价支付和决算,维护阶段产生维护费用。所以说投资数据和合同管理数据涉及到项目建设的全过程,投资控制和合同管理信息系统应适用于项目的全过程,并不是只针对项目某一阶段或某一数据类型。系统集成应充分考虑项目建设全过程中投资数据和合同管理数据之间的联系。
(2)项目组织结构集成
项目组织结构包括项目管理组织结构、项目结构、投资结构、合同结构、信息通讯结构、报表系统结构等,对投资控制和合同管理信息系统而言,项目结构、投资结构和合同结构尤为重要,投资结构和合同结构有很多相似处,如都为由粗到细的树结构,但其使用目的和建立原则各不相同,并且每个项目的投资结构和合同结构也会因项目的特点而显得不尽相同。结构集成的方式在每个项目中也会各不相同,有时分别建立投资结构和合同结构,有时在建立项目结构的同时也考虑投资结构和合同结构,但不管以何种方式建立投资结构和合同结构,该两个结构的分项之间总会有一定的关系,即一对多、多对一或多对多关系。系统集成要考虑到该对照关系,同时也要考虑投资结构、合同结构与项目结构的关系。
(3)投资控制数据和合同管理数据集成
投资控制数据和合同管理数据在应用的范围、深度和侧重点上均有所区别,投资数据侧重于投资量和工作量,而合同管理涉及的数据比较细,包含的范围也比较大,不但包括合同价,还包括合同分项数据、合同包含的工作内容、条款、索赔、资金变更、材料差价、进度变更、合同单位、合同执行情况和合同价支付数据等。在数据类别上,两者有所区别,但又有联系,如合同价支付与投资数据可作比较分析等。因此,集成时需要弄清系统之间的数据关系,以保证集成的紧密度。
系统集成范围是从系统集成的功能角度提出的,即建立系统功能集成的框架,建设阶段、项目组织结构和系统间数据的集成不是独立的,是集成的三个维度,是必须满足的三个方面,也是系统功能集成的原则。
22投资控制和合同管理系统数据定义方法
集成投资控制和合同管理信息系统,必须建立一个集成的数据模型,而建立数据模型,首先要定义系统涉及到的数据。根据大型工程项目管理的特点,从投资控制和合同管理的功能入手,分析系统功能,鉴别出所需的数据主题,接着修改、整理数据主题以满足系统功能,最后全面且详细地定义数据主题中每个对象或实体。以下针对建设项目管理特点介绍四种数据定义方法。
(1)功能分解定义数据
国外许多应用协议都使用IDEFO分析生产过程的输入、输出、资源和控制,但工程项目管理有其特殊性,管理过程在项目全过程、全寿命周期中反复使用,随着项目进展深度而越来越细化,且过程之间没有严格的前后关系。这些特点使得很难用IDEFO来描述工程项目管理全过程。工程项目管理界公认最合适的方法是列出项目管理功能表,标明每个功能所需要的输入和输出信息。按此方法分别列出投资控制和合同管理系统各自的功能,即从上至下地分解系统功能,定义功能所需的数据或数据主题。分解系统功能时,最具有参考价值的是项目管理学会(ProjectManagementInstitutePMI)发布的《项目管理知识体系指南》(GuidetotheProjectManagementBodyofKnowledgePMBOK),该指南中详细给出了项目管理投资控制和合同管理的功能分解。
(2)根据文档内容定义数据
如果说功能分解定义数据是由上至下的话,那么根据文档内容定义数据是由下至上的方式。首先收集大型工程项目中经常使用的投资控制和合同管理文档,这些文档中包含着投资控制和合同管理所需的常规数据,必须对文档中的内容进行细致的分析。将文档包含的数据与功能分析产生的数据相对照和融合,相互补充,相互借鉴,形成投资控制和合同管理信息系统的数据模型。
(3)根据查询要求定义数据
每个系统都有其报表输出要求,每个报表所反映的信息即为查询的结果,通过典型或标准的查询定义投资控制和合同管理数据,这种方法具有相当强的针对性,有效的报表模块是决定系统是否成功的一个重要指标。
(4)数据建模
功能分解、项目文档和查询定义产生的数据范围广泛,但缺乏结构性,如:合同文档、条款说明、投资数据项、资金分配和支付等,这些数据还得经过标准化整理,在数据模型中以确定的对象或实体加以体现,实体的定义包括实体的属性和实体间的联系。这种数据模型是基于概念的,并不依附于某一个数据库或开发工具。
3投资控制和合同管理信息系统集成实施方案
31系统集成实施原则
(1)全面性
全面性是指集成的系统应包括投资控制和合同管理的全部功能或主要功能,并在集成的基础上能产生其它的附加功能,真正体现集成的优越性。
(2)集成性
集成的最大优点是使投资控制和合同管理系统可以共享数据,避免投资数据和合同数据分离,避免相关数据两次输入,避免形成信息孤岛、数据重复、数据不一致、数据不完全等问题。
(3)扩展性
集成系统应是开放和可扩展的,该阶段的集成不光考虑投资控制与合同管理信息系统的集成,而且需要考虑到将来与进度控制、质量控制的集成。集成的数据模型须具有较强的结构性,实体定义清晰。
(4)模块化
投资控制与合同管理系统既能集成使用,又能独立使用,并且在每个子系统中根据功能分解成模块,满足软件工程的要求。
(5)分布性
大型工程项目的参与方在不同地点参与项目的建设工作,因而网络和分布式数据库的应用将会发挥出重大效应,使得项目各方可不受时间、地点的约束,从而顺利、快速和有效地完成项目管理任务。
32系统编码集成
投资控制与合同管理信息系统的集成主要在于编码的集成。最新的研究表明,按项目部位分解的投资结构具有很好的敏感度,按工种工程分解的投资结构离散度比较高,起不到控制效果。在大型工程项目中,投资控制编码与合同管理编码一般是两套独立的编码,如何建立两套编码的关系是集成的关键。如期望以一套编码来集成投资控制和合同管理系统,将会产生技术、功能和系统灵活性问题,并从大型工程项目控制的角度出发,这也是不现实的。最好的解决办法不是提出一套集成的编码,而是建立投资编码与合同编码之间的结构关系,即编码对照表。需要说明的是,为了更有效地集成和提高数据共享能力,建议在项目分解结构上建立投资分解结构和合同结构,这样投资分解结构与合同结构既有共同的项目结构,又具有编码结构关系。当然合同结构可以不依附项目结构,可以是一个独立的结构。编码结构与项目结构如图1所示。
33 系统数据集成模型
投资控制和合同管理功能需求和数据定义的结果是数据集成模型,而该模型若具有全面性、集成性、扩展性、模块化和分布性的特点,则首先必须是概念意义上的集成模型,某一工程项目的应用可在此基础上继续细化和扩展。系统数据集成模型如图2所示。
33集成应用系统开发工具
建立了数据模型工具,接着的工作便是开发集成的应用系统。开发工具的选择恰当,能起到事半功倍的效果,因此选择合适的工具很重要。笔者在某一大型工程项目投资控制和合同管理信息系统开发实践中对此深有体会。经过广泛的调查和实践使用经验,笔者选择了客户/服务器(Client/Server)结构,后端数据库采用Oracle,前端采用Develop2000。大型工程项目中的投资控制和合同管理需处理的数据量大,并且也非常重要,对数据库管理系统的稳定性和运行性能要求都比较高,而优秀的Oracle数据库管理系统正能满足此要求。集成系统的开发过程是一个周而复始的循环上升过程,前端工具应具有较强的原型开发能力、开发周期短和便于代码、模块修改等特点。Develop2000基于第四代编程语言,只需少量代码便可完成系统预定功能和目标,并且其总体结构与数据库结构相对应。当数据模型建立后,在较短时间内就能完成前端代码和用户界面的开发。
由于信息技术的高速发展,在选择开发工具时必须考虑到该工具供应商产品的方案架构、发展方向以及升级方式。笔者参与开发的集成系统目前是基于客户/服务器,在项目公司内部局域网使用,外部项目参与单位通过ISDN或电话线Modem方式登录局域网,共享数据库中的项目信息。三级结构和基于Web的应用是项目管理信息系统发展的方向,Oracle对三级结构和基于Web的应用有一套相应的解决方案,现有程序经少量修改或无加修改即可完成技术升级。
4总结
现国际项目管理界许多学者和组织从事于项目管理信息系统或数据模型集成方面的研究,万物分久必合,合久必分,由于当时技术和管理能力的局限,迫使建筑业分离出较多的专业,在一定程度上促进了各专业的发展,但也给工程项目建设带来不可估量的困难。随着信息技术和通讯技术的高速发展和广泛应用,给建筑业带来了新的生机、活力和机遇。挖掘信息和通讯技术的潜能,结合大型工程项目的特点和需求,信息集成已成为计算机技术在建筑业管理中的应用主流。希望中国的建筑行业抓住机遇,致力于行业内或跨行业的数据集成模型研究,为项目建设和整个建筑业增值。
更多关于工程/服务/采购类的标书代写制作,提升中标率,您可以点击底部官网客服免费咨询:>
完成一个计算机毕设项目设计数据库后要搭建数据库。数据库是整个项目的核心,首先根据需求把系统需要用到的表结构理出来。例如:用户表、角色表、权限表、用户角色关系表、角色权限关系,还有其他的一些业务表。例如:订单表、商品表、购物车表等等。关系表都是根据需求设计出来的ER图转关系模型而设计出来的。搭建很有必要。
以上就是关于软件系统开发失败的最主要原因是数据库设计问题而非代码太烂全部的内容,包括:软件系统开发失败的最主要原因是数据库设计问题而非代码太烂、大型工程项目投资控制和合同管理信息系统集成研究、完成一个计算机毕设项目设计数据库后要搭建数据库吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)