一 从软件工程说起
大家都会有这样的困惑:当一个项目摆到我们的面前,我们不知道如何进行分析处理,我们总是不能把握它们的工作量,对于难度我们也没有把握,或者不能确定我们的处理方法是否为最先进或者最稳定等等。我们可以拿出很多书籍进行参考,总想标新立异,但还是没有结果。我们寻找原因,却总是没有答案。下面我们就来谈谈这个问题。
1.1 总体概念
这里我们不讲解某个函数的用法,某个结构的意义,这里我们讲解的是一个完全的肢解问题的途径。面对一个需求,我们主要作的 便是实现它。我们有两种方法:首先是从头开发,其次是借鉴它山之石。现在的软件开发基本上都是基于第三方的软件平台进行的,我们不愿,也不可能真的从头开发,因此我们要学会引用这种学问。比如我们需要一个媒体播放程序,mpeg1,mpeg2是标准的东西,我们需要重头来过,看着标准进行编码吗?现在的软件业,如果你不是专门的解码公司,这种做法是极为愚蠢的。如果你是软件经理那么你的做法将影响到整个的软件进度,质量,因此为了确保没一步的正确性,我们需要进行正确的分析。现在已经有很多成熟的解码标准,从头开发先不说对于精力的浪费,就算开发出来的代码能快一些,但对于现在的计算机硬件我们有必要在乎它们的差别吗?现在软件所表现出的卖点大部分集中在交互的亲和性,和功能的完备上,我们便不必被限制在软件的纯理论的成绩上。 现在的软件更新速度已经到了前所未有的地步,我们作为开发者,能想到的只有创新超越,但是我们的基础却相对薄弱了一些。一个软件所包含的内在含义不是表面上可以看出来的。比如金山的wps2000 就是一个比较好的国产软件,起初看起来好像并没有想像的复杂,好像每个模块我们都可以写出来,那么你可以试试写写其中的某个功能。你可能会发现你所缺少的东西,整个软件过程的控制?设计模式不明确?数据结构的语言描述不过硬?等等。那么你就需要从头开始,这些基本功并不是需要你全部都记住,但是熟能生巧,巧就是飞跃,就象量变会导致质变一样。 软件是一个大的领域,比如你是开发界面的程序员,那么或许可以对某些数据结构看的轻一些,如果你是作驱动程序的,那么或许你可以对设计模式置之不理。但这并不影响到我们的软件水平,所谓在其位,某其政。从现在软件发展来看,整个软件业象是一个小世界,针对某个领域的程序开发,象windows程序员,linux程序员等等,会成为一个单独的行业。因此这里也有隔行如隔山的问题。我们并不要求程序员具有多么完美的表现,最主要的是将每个程序员的亮点汇聚到一点。因此开发程序最重要的是项目经理--系统分析师。他是我们的带头人,但是现在真正具备项目经理素质的还是比较少。
1.2 关于软件工程
软件工程这个领域书籍种类十分的繁多,讲解的深度也是大相径庭。我们这里讨论的软件工程只是从一个程序员的角度来看待软件工程的。也就是最实用的一部分软件工程。现在我们都知道软件业中有个名词叫做软件工程,国内的着作也是举不胜举。但是如果大家看过国外的软件工程的话就会知道,我们的东西只是他们的一部分。自从软件诞生以来中国就一直在追逐世界的先进技术。当计算机产业在国外发展的如火如荼的时候,我们终于觉醒了,我们也要做软件。但这是多么的艰难,所有国外的标准建立起来的计算机体系已经根深蒂固了。于是我们只能借鉴国外的经验,按照别人的要求进行开发。我们追逐者,渐渐的我们学会了一些技巧,但别人的操作系统,开发环境等系统软件却迎面袭来,我们措手不及,我们沉默的接受了一切。这之中当然包括别人的软件工程。于是我们看到的东西都是别人写出来的。我们想实践那些理论,但是我们总是失败,但也有成功。我们就象当年说美国人的几百年的历史,他们用什么来理解我们几千年的文化一样,我们不能完全理解他们的软件工程,我们在努力,我们于是又有了些收获,我们慢慢的明白了他们软件工程的博大精深。这里我就已经理解的部分进行讲述。
上一页 下一页






