软件项目设计、开发和管理序
现代软件行业的概念、方法和工具以惊人的速度出现,几乎所有的同事每天都在不断学习新的东西。我相信他们中有相当一部分人都在期待着从新的方法中找到一个好的方法来解决很多行业需要解决多年的难题,比如设计的标准化,管理的有效性,开发的可重复性等等。
但我也相信,当我的同事们带着期望不断学习和尝试这些新的理论和方法时,他们发现——虽然出现了大量的可视化开发工具和众多的应用支撑环境,但现代应用软件开发人员已经基本摆脱了过去专注于界面、通信和大量数据管理的状态,可以专心开发自己的核心业务内容;但是,往往在一个具体的项目或者一个具体的企业中,有很多令人振奋的新方法、新理论,甚至那些成功人士的宝贵经验,却很难真正起到预期的作用,甚至在某些情况下毫无用处。我觉得这些可能主要存在于新的设计分析方法与管理方法的结合以及具体的应用中。
随着软件开发工具的不断更新,软件工程师现在可以轻松构建复杂的图形用户界面(很多年前,图形用户界面是软件开发中工作量最大的部分之一),方便地管理和调试数据;同时,一些新的软件开发支撑环境和体系结构的出现,如C/S结构、J2EE、DCOM、CORBA等。,一方面使程序员摆脱RPC、Socket等底层方法,轻松开发网络化信息系统,另一方面大大提高了复杂系统构建的效率和质量。近年来,软件行业在这些领域的发展确实产生了很大的成效,这一点已经被大多数人所接受。
而软件行业的其他创新内容对软件行业的实际贡献,以及在软件管理人员、设计人员和开发人员中的普及性和实用性,远不如开发工具和环境的新内容明显和直接。
软件分析和设计方法的创新主要体现在面向对象的技术和思想,数据和方法的封装、继承、多态和重用,使设计人员可以用软件更形象地描述客观事物及其关系和功能,这应该是一个非常伟大的创造,对软件行业起到巨大的推动作用;然而,另一方面,虽然面向对象技术和思想的优势已经得到了同行的认可,但在实际工程中,除了面向对象开发工具和语言的广泛使用,真正运用面向对象思想来分析、设计系统和描述设计结果来完成实际项目的实践远没有想象中那么普及。这是因为有些项目太简单用不上,还是因为太难实用,还是其他什么原因?
软件工程的理论在不断构建新的理想:软件的生产可以有标准的零件、标准的结构、标准的流程、标准的生产线、标准的组装,就像生产一辆汽车、一台电视机、一栋大楼一样。理论家们充满了创造性的想法和信心,但大量的一线软件工程师对这一理想心存疑虑。
软件企业管理模式的创新也是大多数企业的迫切需求。先进的三坐标测量机已经出现,其理论不断被人们所了解。大家对那些获得了一定CMM等级的企业有着深深的敬佩和向往,异口同声地宣布:“我们就要做到!”但与此同时,我们发现大量软件企业在将CMM与自身企业实际情况有机结合的道路上,遇到了令人头疼的困难和疑惑。这种困难和疑惑,似乎不仅仅是为了接受新机制而“苦一阵子,利一辈子”那么简单。
有什么问题?为什么在软件产业化的道路上要达到电子机械产品的水平那么难?多年来,笔者一直在思考这个问题。
本文认为“解决一件事情的方案的制定,应该建立在对事情本质的正确认识的基础上。”那么,也许软件的特性和其他传统产品还是有很大区别的,可能不仅仅是量的区别,而是质的区别。
也许我们应该从这个角度重新审视过去采用类比传统工业化的思路所获得的灵感、理想和方法。
在此,首先感谢家人的支持!感谢在日工作多年的朋友郭和史文彪为我提供了一些信息。同时,电工工业出版社的编辑袁和顾先生也对本书的出版提出了许多宝贵意见。真心感谢!
何小超
65438+2009年2月