你对软件工程专业了解多少?
在这里看到很多网友的言论,很有启发。而且目前市面上有不少关于软件过程不同方面的书籍,但是在这里,我还没有找到切实可行的应用方法,所以现在在这里抛砖引玉,希望大家指正。
在我个人的理解中,软件工程是按照工程的管理模式,在一定的质量基础、时限和成本范围内,组织和规划的功能明确的软件系统。而且软件工程必须有企业资源的支撑,与企业经营、决策、管理制度相衔接,才能扎扎实实地实施。
软件产业作为服务业,要发展首先要形成一个迫切需要软件服务的市场。其次,这个市场的消费者必须有足够的购买力。软件的消费群体比较简单,可以分为个人消费和企业消费。我国企业数量庞大,但质量不高。世界上很少有大规模的企业。所以中国的企业对大型软件的消费肯定是有限的,软件的个人消费,至少在目前的中国,还不成气候。所以必须是目前国内能够形成比较大规模的独立市场的小型软件系统。
另外,质量的好坏也不能绝对的说。比如你花500块钱买了一双皮鞋,只穿了一个月就坏了。它们一定是劣质产品。但是,如果这双鞋你只花了5块钱,它们还能穿一个月,那就是优质产品了。软件也是如此。
另一个是软件生命周期。在国外,在许多中大型企业中,软件系统已经作为企业运行的命脉。这些企业当然需要长期稳定的软件服务和开发系统作为保障。所以相对来说,对软件的功能要求是比较明确的,而国内中小企业在运营上一直把灵活性作为生存武器。当然,不可能有长期的商业计划,更不可能用软件系统进行全面的企业管理。这就导致了对软件系统的需求是短期的,所以他们更愿意一次性购买功能有限的软件系统,而不是长期持续的软件服务。
如果上述分析具有代表性,也就是说,我们现在必须形成一套非常有效的开发这类软件的工程方法:
1。规模小。
2。低成本
3。质量要求不高。
4。售后服务有限。
5。寿命短。
我认为RUP不一定是这种系统的好方法。另外,我也想谈谈我对软件人员素质的看法。
从我个人的经验来说,我认为我们对软件工程师的培养方式有问题。理论上,只要设计好结构,解决了所有技术难点,剩下的代码高中生就能搞定。其实很多我们名牌大学的计算机毕业生都不会写好代码。尤其是现在VB,PB,JAVA都有了,大家好像都觉得计算机架构不用管了。在我经手的几个软件项目中,很多工程师在用C语言开发Win32多线程、事件驱动、死锁、内存分配时都无所适从。我不相信这些问题能靠好的文件解决。事实上,能够使用OO工具并不意味着能够进行OO系统分析和设计。
话说回来,在中国,有多少人有10年以上的软件开发背景?而且他们过去10年的经验更多的是小项目的编码,而不是大项目的管理和系统分析。而一个好的系统分析师需要练习,练习,再练习。如果我们的商业环境中没有大型的软件项目,怎么会有优秀的系统分析师呢?
所以,我认为,目前我们的问题是,工程师的技术水平和知识与管理意识和管理方法同等重要。在这个前提下,是否应该探索真正适合自己的软件工程方法?