软件工程,乃至于所有的工程,其目的都是完成设计目标,达到预期的目的。工程管理就是协调人、工具和过程,使之最终达到需要的结果。具体的说,就是让人使用一定的工具,按照一定的组织过程,最终完成任务的一个体系化的方法。这个大家都是认可的。但是……
但是有好多因素导致这么简单的一个体系化方法展开失败。第一个最主要的因素是工程目标本身。并不是说软件工程的目标有多么不清晰,多么难以琢磨,而是说,大多数人都没有意识到,软件系统是作为现实系统的一个对偶系统存在的,而且,一般情况下,软件系统总是对现存系统的某种改变而不是从0开始构造。所以,我们拿到一个目标以后,不考虑现实的状况而直接分解目标,给出方案的方式是极端错误的。
第二个因素是承接该工程的团队的特性。任何一个团队,都有自己的个性特点,都有自己习惯的过程,都有自己常用的工具,团队成员都是有个性,有弱点,知识结构不是完美的人。而大多数软件工程都希望把方案分派下去以后,所有的人都遵守定义好的过程,采用定义好的工具,在定义好的时间限度内完成。如果这些真的是预先定义好的,为什么需要人来参与?都是死的固定的东西,为什么不能用机器来完成?当然,工程方法总是需要格式化好的人,但是,这个对于程序员尤其不合适。软件工程的过程中,总是需要程序员的创造性劳动的,所谓创造性,就是不可规范的,不可预见的,突发的,跳跃的,甚至是灵光一现的思维活动。这如何能用工程规范出来?当然,我并不排除那种特别熟悉的,没有什么挑战性的项目可以部分的采用工程管理的方法进行。
先到此为止,有什么别的想法以后再加。
分享到:
相关推荐
打小儿爱听相声,特别偏好侯宝林大师的段子,尤其是很多和京戏相关的。...引起我儿时记忆的,是11月21日参与的一次非常有趣的过程改进研讨活动,CSSPI2009第八届中国系统与软件过程改进年会中的一个精彩环节——CMMI&
前段时间公司招聘软件测试人员,虽然基本上都是招的应届毕业生,但我还是从现实以及网络上找到了一些应聘软件测试/QA的面试问题集,当然这个也都不会有标准答案的,现在只是以偶的一点理解加上网上的一些内容列举...
此时,我已经跳出了“小程序员”的圈子,以软件系统工程的更大视角审视软件测试这项工作。 很长时间以来我一直被下面的问题而困惑,有些问题至今仍然只是具有肤浅的认识,而且,我感觉我做的测试项目越多,阅读的...
代码写的不好 ,维护性不够,只能玩8层的,写完以后发现很难拓展,软件工程,设计模式有待提高…. 里面提示输入等级的装B用了,没有实现,大家随便输入个个位数就可以玩了。 stackfunc.c #includeSTACK.h #...
单片机应用系统硬件电路设计是电子工程领域中至关重要的环节,它涉及到系统扩展和配置,旨在满足特定功能需求并确保系统的稳定性和可扩展性。系统扩展是指当单片机内部资源如ROM、RAM、输入/输出(I/O)、定时器/...
我自己也气馁过,所以我在第二版中,仍然试图把话说细一点,把自己的经验拿出来分享。而且我选择我能想到的最精简的设计,以便让读者不至于陷入太多细节而无法看到全貌。我想这是本书可能具有的价值所在──简化的...
我自己也气馁过,所以我在第二版中,仍然试图把话说细一点,把自己的经验拿出来分享。而且我选择我能想到的最精简的设计,以便让读者不至于陷入太多细节而无法看到全貌。我想这是本书可能具有的价值所在──简化的...
2、有专门的美工来做,美工一般用平面设计软件,还是得一张张的做,人数一多,确实是个不小的工程。 以上种种,中奖的人不知道 ,有句话说,“中奖的人笑了,做奖票的人哭了!” 为解决这个问题,作者设计了...
《图说设计模式》这本书是面向程序员和软件工程师的一本经典读物,它以其独特的图文并茂的方式,深入浅出地介绍了设计模式这一核心的软件工程概念。设计模式是经过长期实践验证的、解决常见软件设计问题的模板,是...
- 开源性:Android基于开源软件构建,允许开发者自由修改和分发其源代码。 - 生态系统:拥有庞大的开发者和用户群体,形成丰富多样的应用生态系统。 - 硬件兼容性:支持多种不同品牌和型号的硬件设备,提高了市场...
MagicalRecord运用了软件工程中的“Active Record” 模式,能够让操作 CoreData 像操作关系型数据库的数据一样,甚至可以通过一句简单的代码就可以获取 CoreData 中的数据,喜欢的朋友可以下载研究一下吧。
这话说着轻松,你我心里都明白,估计咱们的有生之年是看不到这样的情景的…… 回到可编程逻辑器件领域,随着65nm、40nm,乃至目前的28nm深亚微米工艺的采用,厂家生产出了越来越大,也越来越复杂的FPGA器件。而...
这话说着轻松,你我心里都明白,估计咱们的有生之年是看不到这样的情景的…… 回到可编程逻辑器件领域,随着65nm、40nm,乃至目前的28nm深亚微米工艺的采用,厂家生产出了越来越大,也越来越复杂的FPGA器件。而...
UML(统一建模语言)是一种在软件设计时提供给分析师、设计师和工程师之间的通用语言。即通过面向对象的方式构建一个统一并通用的模型来解决问题,那么话说回来UML所构建的模型到底包括哪些内容呢?我们知道,社会中...
它强调了在解决问题时,不仅要考虑算法的正确性,还要关注其效率和实际效果,这对于提升软件工程的实践水平大有裨益。 在实际工作中,程序员常常需要结合算法和编程来解决问题。例如,在设计一个搜索引擎时,我们...
如何把别人不想听的话说给他们听** - **尊重对方:** - 保持礼貌语气。 - 避免使用攻击性语言。 - **提供事实依据:** - 用具体例子支撑观点。 - 避免主观臆断。 **15. 如何处理管理神话** - **批判性思考:...
《信号与系统》是电子工程、通信工程以及自动化等相关专业的重要基础课程,它涵盖了信号的基本概念、系统的分析方法以及它们在实际应用中的诸多原理。北邮(北京邮电大学)作为国内信息科技领域的顶尖学府,其信号与...