软件开发思维的探讨

在一次招聘人员的审批过程中,和分管领导的意见有些分歧,领导问了我一句——

“这个人有没有软件开发的思维?”

这对我来说是个触发点,有必要来思考自己从事多年的这项工作,到底需要什么样的思维。

2018年,软件危机和软件工程被提出来整整50年。

我是软件工程专业的,大学没有好好学习、理解它的真谛;希望在工作中弥补这个遗憾。

软件开发的历史

软件开发届的第一个程序员是谁?

阿达·洛芙莱斯(Ada Lovelace)

生于哪个年代?英国人。

十七世纪初。

性别是什么?

女。

美国国防部将耗费巨资,研发出高级程序语言命名为Ada语言纪念她。

奥古斯塔·阿达·金,勒芙蕾丝伯爵夫人(Augusta Ada King, Countess of Lovelace

1950年代,软件伴随着第一台电子计算机的问世诞生了,开始出现以写软件谋生的人。

1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。

1960年代中期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。

1960年代中期软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件危机”((software crisis))就这样开始了

概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂的需求;二、如何维护数量不断膨胀的软件产品。

软件危机一天都没有消除。

1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。

软件工程包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。

思维如何影响我们,例子:

一家大公司引进了一条肥皂生产线。这条生产线能将肥皂从原材料的加入直到包装装箱自动完成。 但是销售部门反映有的肥皂盒是空的,经理要求工程师们解决这个问题。于是成立一个以几名博士为核心、十几名研究生为骨干的团队。在耗费数十万后,工程师们在生产线上一套X光机和高分辨率监视器,当机器对X光图像进行识别后,一条机械臂会自动将空盒从生产线上拿走。 另外一家乡镇企业也遇到了同样的情况,管理生产线的小工找来一台电风扇,摆在生产线旁。装肥皂的盒子逐一在风扇前通过,只要有空盒子便会被吹离生产线,掉在箩筐里。 从拣空肥皂盒看,博士后和民工的区别 ,博士后研究技术有时连民工都不如!

当提起“软件开发”

大家会想到什么?

会提出什么问题?

做软件开发哪些因素最重要,是记忆力,还是思维逻辑,还是英文还是其他的?

要开发软件数学是不是必须好?软件开发与数学有什么关系?

应聘软件开发的工作,一般会问什么逻辑思维的问题?

我是学软件开发的但是逻辑思维特别差,我应该怎么办?

软件开发是一门科学,软件开发是一项工程

软件开发需要科学思维;需要工程思维。

今天我们主要探讨的是科学思维。

从“思维”两个字中,我们也可以领悟到一些东西,“思”即是思考,比较容易理解,关键在“维”字,“维”其实是角度的意思。

独立思考-》头脑风暴,发散思维-》收敛思维

1、“面向过程”(Procedure Oriented)思维

就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。它是面向功能的,其结构分析和结构设计技术是围绕着实现处理功能来构造系统的,而在系统维护、软件升级的过程中,用户的需求变化往往是针对系统功能的,所以,采用这种技术设计的系统是不稳定的,其可修改性和重用性都比较差的。

侧重点是流程,拆解,他是一种最最基本的思维方法。比如早上上班这个事情。

1)起床2)洗簌3)穿衣)4)乘车5)打卡,在软件开发中可以用函数的方法对表达出每个步骤,然后有序的串起来。

2、面向对象思维是从现实世界中客观存在的事物(即对象)出发来构造软件系统,侧重以事物为中心去思考,是把事物对象化。

具体的思维方法有抽象,封装,继承,多态。

在软件系统开发的过程中,结构分析和结构设计技术具有很多优点,但是也存在着许多难以克服的缺点。因为结构分析和结构设计技术是围绕着实现处理功能来构造系统的,而在系统维护、软件升级的过程中,用户的需求变化往往是针对系统功能的,所以,采用这种技术设计的系统是不稳定的,其可修改性和重用性都非常差。在这种情况下,面向对象的程序分析和设计技术产生了,它尽可能地模拟人类习惯的思维方式,使开发软件的方法和过程尽可能地接近人类认识世界、解决问题的方法与过程。采用面向对象的程序分析和设计技术开发的软件系统,稳定性、可重用性和可维护性都很好。

3、建模思维

用模型描述系统的因果关系或相互关系的过程都属于建模。建模就是一个实际系统模型化的过程。

现实的事物是变得越来越复杂了,太复杂了(我们无法掌握所有细节)也往往就很难直接理解和把握它了,于是我们就先建立它的模型,然后研究模型以代替直接研究事物本身,

所以这个模型也就不能太失真了,否则研究结果也就跟现实相距甚远了。我们也经常能见到各种模型,如城市模型,汽车模型,轮船模型等等,这些模型都是一些实物模型,

比较好理解,也比较好建立,我们姑且把它归为物理模型。还有一类模型就是逻辑模型或是抽象模型,

比如模拟一个城市的行政系统等,我们所说的领域建模也是建立一种逻辑模型,即对企业某一功能系统建立模型。

① 分析和设计实际系统。②预测或预报实际系统某些状态的未来发展趋势。③对系统实行最优控制。对于同一个实际系统,人们可以根据不同的用途和目的建立不同的模型。所建模型只是实际系统原型的简化,因此既不可能也没必要把实际系统的所有细节都列举出来。实际建模时,必须在模型的简化与分析结果的准确性之间作出适当的折中,这是建模遵循的一条原则。

4、框架思维

软件开发是一种知识活动,因此知识的聚集和积累是至关重要的。框架能够采用一种结构化的方式对某个特定的业务领域进行描述,也就是将这个领域相关的技术以代码、文档、模型等方式固化下来。

整体观要强,从多角度多层面把握系统的框架,所以说发散性思维的培养是非常重要的。

5、懒人思维

软件的目标,就是某些工作自动化,从而让某些人可以更懒。重复的事情一定不要自己手工重复完成,侧重于自动化。

思考如何把这些原来需要很麻烦的事情,自动化执行。

彩蛋

一个岔口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,一个是说谎国的,诚实国永远说实话,说谎国永远说谎话(你不知道他们具体是来自哪国的),你现在要去说谎国,但不知道走哪条路,需要问这两个人,请问应该怎么问?

恩格斯说过“一个民族要想站在科学的最高峰,就一刻也不能没有理论思维的指导”,这句话对于我们的软件开发也是同样适应的,与君共勉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 一、消除隐喻 1、隐喻 软件开发这件事情,出现得很晚。距今只有几十年的时间,关于它的定义,我们可以简单地说:“就是...
    庄表伟阅读 3,038评论 2 15
  • 刘利刚 中国科技大学 http://staff.ustc.edu.cn/~lgliu 【前言】 自半年前笔者发表博...
    DIGITALMAN阅读 7,580评论 5 83
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,894评论 2 89
  • 进度是IT项目管理的重要目标。进度的加快,依赖于正确的思想和方法。甘特图和网络图等作为进度管理的硬技巧,受到普遍关...
    小名一峰阅读 289评论 0 0
  • 一个人默默无话可说 看那风从枝叶间飘过 想要留下些什么 可怎么也没有喝住冷漠 冷漠是寒冬季节的高歌 没有人能够逃脱...
    花蔓情缘阅读 465评论 2 12