课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件编程开发相信大家应该对这个概念不陌生的吧,今天我们就通过案例分析来简单了解一下,软件开发入门需要掌握哪些知识点。
一、软件定义
关于软件,已经有人给出了简单的定义,举例:
软件是计算机系统的一部分,它适配各种不同用途的机器。例如,通过同一台计算机但不同的软件,我们可以玩游戏、计算缴税、写信或者写书,以及获得约会邀请的答复。
有了上述定义,什么是软件开发也就显而易见。
软件开发研究如何让运行在计算机里的不同系统解决人们在现实中遇到的问题。
我们经常见到这种句式,试图一句话,就把事情讲得面面俱到。
不妨简化一下。
软件开发研究如何让计算机解决问题。
看起来不错,我们得到了一个相对普适的观点。
倘若你相信“一切问题都是人的问题”,那我们就可以接着简化。
软件开发解决人的问题。
不得不说,这个定义充满了敷衍的味道。如果你敢向你的女友这么解释,她大抵会问到“你是不不爱我了!”。
不过,它好在足够笼统,把所有的细节归纳为“人的问题”,一言以蔽之,至少不会有多大偏差。
你可能会刨根问底,提问“什么是人的问题?”。于此,我们无法给出更加一般的解释,但通过下面的例子,也许可以窥探到一些奥秘:早在1995年,有人就觉得软件开发要解决的问题陷入了困境。
我们遇到了前所未有的困难,不知道在做出电子表格(Excel)后,计算机还可以用来做什么。
从今天来看,这个观点有失谦逊,软件行业从来没有止步于表格处理程序。
当然,我们不是要做浅显的批判,通过考察它,我们可以发现软件开发所解决的问题的三点特性。
“人的问题”不可预料。
世界在改变,人的需求也是一直变化的,我们不知道下一步会发生什么。
“人的问题”具有延续性。
在1977年,人们开始用电子表格处理数据。在今天的办公自动化领域,电子表格仍具有着不可替代的作用。这是值得庆幸的,总有些问题和解决方案会持续很长一段时间。
“人的问题”具有复杂性。
尽管软件技术在当今的IT领域开花结果,人们探索出了各种各样的成型解决方案,但开发者和开发团队依旧面对着复杂的开发环境。
复杂性足够我们花费一整节的内容来阐述它。
二、软件复杂性
当我们来把自然无限繁多的现象同我们理解力的局限性及我们器官的粗糙相比时,除了看到我们工作进展的缓慢,在长久的工作中不时中断,天才的难得,连接重要事物的链条中断,我们还能看到什么呢?
随手翻开一本介绍软件工程的书,你都会看到它会提及复杂性。软件复杂性的本质是,现实世界是无比复杂的。至于现实为什么是复杂的,不在本文讨论的范畴。本文更关心的问题是:
是什么让软件变复杂的?
我们在上文提到“软件是运行在计算机里的系统”,这里直接给出系统的一般定义:
系统是对世界的一种观点。(一般系统论)
换种说法,系统是对世界的一种抽象,不同的抽象就会产生不同的系统。
观点可以简单也可以相当复杂。
一个软件从无到有,越来越复杂,根本原因就在于特性不断增加和改变,不同角度会产生不同的观点。
回到上面的故事,销售额的增长不一定完全归因于研发团队的努力,也许那家公司什么也不做,销售额同样会上涨。
你可能会质疑“说的轻巧,我们总不能什么都不做?”
回答它,涉及到人们做决定时绕不开的一个问题。
你愿意付出什么样的代价?
付出什么,就要准备好得到什么。你愿意付出多少薪资雇佣员工,你愿意增加多少特性,你愿意采用什么样的解决方案,你愿意为这个Bug留出多少工作量。
拿出什么样的筹码,承担什么样的风险,调和什么样的矛盾,是真实摆在软件团队面前的问题。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。