【观点】培养软件工程思想

简介: 导读:原文作者changeword在博客园中写了一篇文章《培养软件工程思想》,在他看来,软件工程是一门学问,如何才能培养软件工程思想需要一步一步的去实践出来,以下是作者总结出来的心得。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

导读:原文作者changeword在博客园中写了一篇文章《培养软件工程思想》,在他看来,软件工程是一门学问,如何才能培养软件工程思想需要一步一步的去实践出来,以下是作者总结出来的心得。

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。而工程化的最主要的特点是系统化、规范化、可量化并且严格控制流程得完成开发或生产任务,在此严格的条件下优质、高效的进行生产活动。工程化思想的这种优秀品质,决定了她在生产活动中不可替代的地位。比如各大品牌的手机(如Nokia、Apple)都严格的控制其生产流程,所以品牌手机比山寨机质量要好很多,售后维护也比山寨机做到系统、规范。

在软件开发过程中,我们也运用工程化思想指导开发。软件工程是前人总结的心得经验,前车之鉴、后事之师啊。就像武林之中的泛泛之辈意外的得到一本终极武功秘籍,武林至尊指日可待岂不快哉!遥想当年,诸葛孔明不就是凭借着对《孙子兵法》以及其他兵书的透彻理解,灵活运用成就千古奇谈的吗?

软件工程提供了很多模型,其中非常经典的瀑布模型,她是一种理想化模型,为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。

瀑布模型有许多优点,如可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证等。

但瀑布模型也存在缺点,其主要表现在:①在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。而瀑布模型在需求分析阶段要求客户和系统分析员必须做到这一点才能开展后续阶段的工作。②确定需求后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间方面的损失。所以说她是理想化的模型,但她的清晰明朗,规范紧凑 为其他模型提供了参考。故将其作为教材典范。

记得有一次面试,面试题目就是:如果让你开发一个图书馆管理系统,请你简单描述一下你会怎么去实现以及你的想法。想必大家在求学时期就做过图书管理系统,大概都了解怎么做,也不用工程化思想就能做到,但用语言又不知道该怎么描述。如果你用软件工程思想将步骤用你自己的话简单叙述一遍,相信你的面试分一定不会低。

作为程序员,虽然不用做软件工程类的工作,也应该培养软件工程思想。正所谓不想当将军士兵不是好士兵。在工作中面对自己的代码,多以软件工程化思想推敲考究一下,看是否能够将代码写的更漂亮、更优秀。闲的时候可以设想一下如果自己是软件架构师或者项目经理,该如何设计整个软件开发周期,预测在开发过程中可能遇到的问题及相应的解决方案。只有时刻准备着那个职位,才会有机会获得那个职位,机会是留给有准备的人的,不是吗?

原文链接:http://www.cnblogs.com/my_blog/archive/2011/05/09/2041700.html

目录
相关文章
|
21天前
技术成长中的反思与启发
在技术领域工作多年,我深刻体会到技术成长不仅仅是知识和经验的积累,更是一种心态和态度的转变。本文将从技术成长的角度出发,探讨个人成长中的反思和启发,以及在技术领域中的应对策略。
17 2
|
17天前
|
人工智能 BI
培养成功的IT文化的8个秘诀
培养成功的IT文化的8个秘诀
|
10月前
|
机器学习/深度学习 架构师 项目管理
快速成长的秘诀|学会自我培养和培养他人
本文是快速成长系列第三篇《自我培养和培养他人》,会从人才培养的目标、缺失、系统、实施几个方面介绍人才培养的实践经验。
125218 45
|
人工智能 城市大脑 达摩院
特辑 | 培养创新思维,推荐这4本书!
编者按: 创新是世界发展的动力来源,也是科学技术的生命,对于个人、企业乃至国家而言,只有创新才能具有竞争力,更好的拥抱变化。那么有哪些思维可以帮助我们创新,激发创造力,助推企业的发展?这篇文章就与大家一起分享阿里巴巴集团副总裁、达摩院城市大脑实验室负责人华先胜的阅读与思考。
368 0
|
安全 信息无障碍
|
机器学习/深度学习
拿得起放得下,我的看法
前一段瞎忙,终于累倒了,近几天休息。静下来想一想这一大段时间的事情,理解了一句话:拿得起放得下! 拿得起: 接受了一项任务后,就要干净利索的完成,不要拖泥带水,没完没了的。 要对自己的能力,对有的能力,时间进度有一个比较真实的了解。
892 0
|
人工智能 Java Linux
当你完全认清程序员这个行业,你才有走下去的勇气
以前人们总是说年龄大了就不要写代码了,或者说写不动代码了。现在多少有点矫枉过正,比如CTO怎么能不写代码呢,写代码可是一辈子的事呀。
2092 0
|
程序员 关系型数据库 Oracle