`
touchinsert
  • 浏览: 1329709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

软件开发不是一门艺术

阅读更多

软件是艺术,还是工程?”,答案是肯定的——做软件是工程,不是艺术。所谓艺术一般不是经济生活必需的,而是茶余饭后供人们休闲和欣赏的附属品。艺术品虽然价值不菲,但不是和国民经济或老百姓生活息息相关的东西,它应该是一种附属品。

艺术是人的知识、情感、理想、意念综合心理活动的有机产物,是人们现实生活和精神世界的形象表现。艺术属于娱乐游戏文化的范畴,是人们为了满足自己对主观缺憾的慰籍需求和情感器官的行为需求而创造出的一种文化现象,这种文化现象的本质特点是用语言创造出虚拟的人类现实生活。艺术是人们进行情感和思想交流的一种文化形式,人们进行情感和思想交流是以语言为基础的,所以,艺术的发生基础是人类的语言。艺术可以定义为“人类以创造美为主要目的的技术及其产品”。 艺术需要技术,但不是技术。

软件则完全不同,它已在各行各业得到广泛而深入的应用,真正在为社会服务,和人们的日常生活分不开了,直接关系到人民的生命财产。现在软件无处不在,已和大家的工作、生活密不可分。例如:

  • 固定电话、手机、数字电视等都已嵌入了计算机程序、由软件控制的。
  • 火车运行、飞机航线等也是由计算机系统来操作、监控和管理的。
  • 银行业务处理、网上银行、股票系统等无一不是计算机系统呢?

在软件天才眼中,做软件象是成就一件艺术品,充满着想象,不断创新,而且其人机交互界面设计的确需要艺术细胞。当人们将软件看成是“艺术品”时,只是过分强调了其创造性,只是看到了某个局部或少数应用场合,具有很大的局限性。虽然软件是高科技的智力产品,需要很高的创造性,但还是不能抹去其工业性。软件已经形成一项产业,是当今社会工业不可缺少的一个领域,软件产业已经是国民经济的重要支柱产业之一。所以,软件质量问题直接危害到人们的生命财产,软件质量问题会造成国家经济的严重损失、企业会为此付出很大的代价。但书法、绘画、雕塑等质量问题只影响作品本身的艺术价值,或者说只影响到观众对产品的认可度,但决不会直接影响到人们的生命财产,也不会直接给国家经济带来损失。


软件是一门技术,而且是快速发展的高技术。软件工程强调目标的实现,从目标和要求出发,力争达到“多、快、好、省”,满足业务需求、满足客户需求和质量诉求。软件工程无疑是一门工程,因为软件工程同样具备标准工程实践的三段论——分析、设计与实现。

[说明“软件开发不是一门艺术”和“软件开发工作中没有艺术性”是不同的。“软件开发不是一门艺术”,意味着“艺术在软件开发中不占有主导地位,而是工程技术占主导地位”,并不否认“软件开发中含有艺术的成分”,只不过这种艺术成分少于50%。每一项工作都有艺术性,软件开发与测试有艺术性、项目管理也有艺术性。但美术、音乐等是一门艺术,艺术在美术、音乐中占主导地位。]

参考:

后补:

从网友的评论,得到一些启发,例如,“游戏软件呢?经济生活必需的?”是一个很好的问题,也同意“艺术与工程不应该是对立的, 应该是相辅相成的”。游戏软件虽然形成一个不小的产业,不是生活必须的,和绘画、音乐、电影等艺术创作有些类似,都是供人们感官享受的,满足精神上的需要。但游戏软件为了提高性能、满足上百万在线用户的使用,其软件工程方面的要求非常高,包括3D建模、系统架构、服务器部署设计等。所以构建一个游戏软件系统,工程技术是不能忽视的,其开发过程是一个复杂的系统工程过程,虽然它比普通软件需要更多的艺术创作。


现在越来越多的绘画、音乐、电影等借助计算机来实现,形成数字艺术,这时候,软件或计算机系统只是工具,和画笔、画板没有差别,作为工具,谈不上是艺术的或工程的。软件作为工具,也很难体现其艺术性,辅助性则更为强烈。本文主要是讨论软件系统本身,即软件系统或产品的开发过程。从这个层次上看,软件的开发过程是系统的、技术的工程过程,虽然包括管理过程、人文环境等。


传统建筑是艺术和工程结合的比较好的例子,不乏许多经典之作。但所有的经典之作都是艺术和工程的完美结合,例如,“都江堰”、“赵州桥”、“伦敦塔桥”、“克里姆林宫”、“卢浮宫”等。如果没有很好的过程技术来保证质量,那些建筑早就灰飞烟灭。这些建筑艺术的创作,正是靠坚实的建筑工程使其艺术得以表现,也使它们能长久保留下来。无论建筑设计师如何创作,如果没有结构工程师等技术支持,建筑艺术创作只能是纸上谈兵。

软件本身的艺术性也很难和建筑比。传统的建筑比较成熟,至少分为建筑学、结构工程(土木工程)、给排水工程、电气工程、工程预算等,处处体现了工程,并将艺术创作(建筑学)独立起来。软件学科还比较含糊,只有一个专业“软件工程”(官方)。非官方的专业有动漫、多媒体应用、软件应用、项目管理、软件开发、软件测试等,还没有类似“建筑学”的软件设计专业,虽然有些学校也开设了“UI设计”课程,仅仅是一门课程。


文章强调“软件开发不是一门艺术”,虽然有些偏激 :-) 也是希望大家正视软件质量,奉劝大家不要将“软件开发是一门艺术”、“软件开发是高技术”等作为“软件质量低下”的借口。而多向传统的建筑学习,不仅有很好的创造,而且有一丝不苟的质量体系来保证质量,一起努力将软件推向一个新的水平、成熟的时代。

分享到:
评论

相关推荐

    《软件工程导论》第4章课件 (朱少民)

    第4章 软件工程思想 4.1 永远不可低估思想的作用 4.2 以人为本 4.3 软件开发不是一门艺术 4.4 向传统工业学习 4.5 软件工程的例外 4.6 软件工厂思想

    软件开发各种小图标大全

    在软件开发过程中,小图标...总之,软件开发中的图标设计是一门艺术,它既要美观,又要实用。这个"软件开发各种小图标大全"的资源可以帮助开发者快速找到适合他们项目需求的图标,从而提升软件的整体质量和用户体验。

    软件开发之禅.pdf

    通过对以上几个方面的深入探讨,我们可以看到软件开发不仅仅是一项技术活动,更是一门艺术。它要求开发者不仅要精通各种编程技术和设计模式,还需要具备良好的判断力和创新能力。只有这样,才能在复杂多变的实际工作...

    软件开发过程与模型ppt资料

    早期的软件开发往往依赖于个人的创造力,但现在已被普遍视为一门技术。随着软件复杂性的增加,团队合作成为必要,而商业需求则要求开发过程可重复和标准化。软件开发需要借鉴工程管理的方法,同时考虑其特有的灵活性...

    软件开发图标背景素材

    总的来说,软件开发中的图标和背景素材设计是一门综合艺术,它融合了视觉传达、用户体验和工程技术。良好的图标和背景设计可以提升产品的专业形象,增强用户对产品的认同感和满意度,从而提高产品的市场竞争力。因此...

    软件开发的形式化方法

    综上所述,《软件开发的形式化方法》不仅是一门理论科学,更是一种实践艺术。通过掌握上述形式化方法和技术,软件工程师能够在复杂的项目中更加自信地应对挑战,确保软件系统的高质量和高可靠性。随着技术的发展,...

    现实生活与软件开发

    软件开发不仅仅是编写代码,它是一门融合了逻辑思维、问题解决和创新艺术的学科。在这个过程中,对编程语言的选择和理解,对编程本质的洞悉,以及对行业动态和生活体验的反思,都是提升开发技能的关键因素。 首先,...

    软件开发中的项目管理

    在软件行业中,项目管理是确保软件开发过程高效、有序、按时交付的关键环节。软件项目管理不仅涉及技术实施,还涵盖...总的来说,软件项目管理是一门综合性的艺术,需要平衡技术、人员和时间,以实现项目的成功交付。

    学习软件开发有哪些优势.doc

    10. 激发创造力:软件开发不仅仅是编程,它也是一门艺术,需要创造力。通过编写代码,你可以实现自己的创意,创造出独特的应用程序或服务,满足用户的需求。 总之,学习软件开发不仅能为个人带来丰富的职业机会和...

    软件工程思想 讲述“软件开发”和“做程序员”的道理

    此外,软件开发也是一门艺术,需要对用户体验有敏锐的洞察力,创造出既实用又美观的软件产品。 书中还可能探讨了敏捷开发、极限编程等现代软件开发方法,这些方法强调快速响应变化,通过迭代和增量的方式实现软件...

    软件开发需求挖掘技术

    通过以上介绍可以看出,需求挖掘不仅是一项技术,更是一门艺术。它要求我们不仅要具备扎实的技术基础,还需要具备良好的沟通技巧和同理心。只有这样,才能真正理解用户的需求,设计出优秀的产品。

    软件开发项目管理.doc

    《软件开发项目管理详解》 ...总的来说,软件开发项目管理是一门综合性的艺术,需要兼顾需求理解、计划制定、团队协作、质量管理等多个方面,只有全面而细致的管理才能确保项目的顺利进行,最终实现预期的目标。

    软件开发IT项目管理.doc

    软件开发IT项目管理涉及的不仅是技术实现,更是一门关于人、时间和资源的综合管理艺术。通过科学的项目管理,可以确保软件项目按时、按质、按预算完成,同时提升团队效率和项目成功率。在实践中,应灵活应用项目管理...

    超越设计模式 软件开发

    《超越设计模式:软件开发的艺术》 设计模式作为软件开发中的...只有这样,软件开发才能真正成为一门艺术,而不仅仅是一系列约束。在实践中,我们需要根据实际情况灵活运用这些原则,创造出符合需求、易于维护的软件。

    关于软件开发的一些常识和思考

    编程是否是一门艺术?作者认为,当程序员的技能达到一定水平,确实可以体验到编程的艺术性,但这并不意味着应该将编程完全视为艺术。在实际工作中,规范化编程更为重要,因为它可以提高质量和效率。艺术化的编程可能...

    软件开发常用的BMG图标

    总之,软件开发中的BMG图标设计是一门艺术和技术的结合,良好的图标设计能提升软件的整体质量和用户体验。设计师需要遵循设计原则,结合实际需求,创造出既美观又实用的BMG图标。同时,充分利用现有的资源库,可以...

Global site tag (gtag.js) - Google Analytics