软件工程是教会不会写程序的人开发软件吗?

软件工程是教会不会写程序的人开发软件吗?

对于软件工程是教会不会写程序的人开发软件的这个问题,首先我们要了解软件工程是怎样产生的,以及软件工程的概念。

为了解决软件危机,人们开始尝试尝试用工程化的思想去指导软件开发,于是软件工程应运而生。

那软件危机是什么呢?

1.开发出来的软件产品不能满足用户的需求,即产品的功能或特性与需求不符。这主要是由于开发人员与用户之间不能充分有效的进行交流造成的,使得开发人员对用户需求的理解存在差异。

2.相比越来越廉价的硬件,软件成本过高

3.软件质量难以得到保证,且难以发挥硬件潜能。开发团队缺少完善的软件质量评审体系及科学的软件测试规程,使得最终的软件产品存在诸多缺陷。

4.难以准确估计软件开发,维护的费用及开发周期。往往软件产品不能在预计范围内按照计划完成开发。很多情况下,软件产品的开发周期或经费会大大超出预算

5.难以控制开发风险,开发速度赶不上市场变化。

6.软件产品修改维护困难,集成遗留系统更困难。

7.软件文档不完备,并且存在着文档内容与软件产品不符的情况。软件文档是计算机软件的重要组成部分,它在软件开发人员之间,以及开发人员与用户之间信息的共享提供了重要的平台。软件文档的不完整和不一致问题会给软件的开发和维护等工作带来很多麻烦。

从软件危机我们可以看出,其中在编写程序这一块出现问题的只占整个软件开发过程的一小部分,,我认为最根本的问题,是用户没有一个很好的使用体验。假设现在要开发一个软件,最基本是你要找到软件定位,他的使用人群,比如一些游戏类,王者荣耀,聊天类,QQ,微信等等。而这每一类软件,都是在满足一部分用户的需求,并且每一个软件都有他的生命周期,时代在发展,如果不能一直满足用户的需求,那肯定会被淘汰。现在微信几乎人人都有,但以前,飞信推出时,可以使用流量免费发送短信,曾经迅速的取得了最高峰,但移动为了论断客户,只允许移动客户之间的飞信免费,这样做会丢失大批用户,且当时虽然发送消息是免费,但是回复消息确实收费,这个收费和免费之间的界限十分模糊,而当微信开始发送语言,视频,优化见面设计的时候,飞信还存在网络延时问题,这就导致电信和 联通用户体验下降,已经赶不上市场的变化。

软件危机出现的原因如下:

  1. 忽视软件开发前期的需求分析

  2. 开发过程缺乏统一的,规范化的方法论指导

  3. 文档资料不齐全

  4. 忽视与用户之间,开发组成员之间的交流

  5. 忽视测试的重要性

  6. 不重视维护或由于上述原因造成维护工作困难

  7. 从事软件开发的专业人员对这个产业的认识不充分,缺乏经验

  8. 没有完善的质量保证体系。

而软件工程又被定义为什么呢?

首先,最初的软件工程的概念被定义为:为了经济地获得可靠的和能在实际机器上高效运行的软件,而建立和使用的健全的工程规则。但它只是肯定了工程化的思想在软件工程中的重要性,却并没有提到软件产品的特殊性。

随后,软件工程逐渐发展成一门独立学科之后,人们对软件工程也逐渐有了更全面更科学的认识。
其被定义为:
1.将系统化,严格约束的,可量化的方法应用于软件的开发,运行和维护,即将工程化应用于软件
2.对1.中所述方法的研究

了解到软件产生危机的原因,软件危机,以及软件工程的产生,我觉得我们可以得出,写程序知识开发软件其中很小的一部分,而软件工程这门学科,在我看来,是为了更科学,更高效,更系统的试软件能够合理和及时的开发。软件工程不止是在写程序上,还有需求分析,设计,测试和支持等等。一个学科不可能独立于其他学科,软件工程也同样设计其他学科领域的知识,包括工程学,数学,计算机科学,经济学,管理学和心理学等。

其实,我认为,将软件开发比作盖一栋房子,首先,房子未来的主人就是用户,盖房之前就要和设计师交流,表达自己想要一个怎样的户型,而设计师就好比软件开发人员,他们要根据房主的描述,设计出实行方案,并且这个方案必须是既满足房主要求且能做出来的。盖房子的工人相当于写程序的人,其实盖一座房子,编写程序只是其中的一小部分,要根据房子所处的位置,房子是为什么人群盖的,他们的要求又是怎样,在满足他们的要求之下最终完工后的房子可以居住吗?他们会住的满意吗?等等,这些都是要考虑的问题,如果要求三个月完工,但建造要花费六个月时间,那同样是不可行的。

从理论上来讲,只是不会编程,也可以做软件开发,但我认为如果从实际出发,做软件开发的话,是需要懂编程的,因为软件开发的许多工作最终都会落实到编程。软件的实用性,他的界面设计,他的交互,这些都和编程息息相关,就像盖房子的设计师可以设计出房子的外观,但是住户的需求的功能的实现,最终要落实到房屋的结构,以及这些结构的可实现性,如果只凭喜好去设计。同样,软件的功能来自于软件的架构,只是一味的设计,而不懂它的可行性,那其实也是不可行的,那只是纸上谈兵而已,而且即使懂编程,也需从最基本的做起,大多数学习此方面的学生很多毕业都是先去做软件测试,写程序等,到有了一定的经验才会到软件设计,需求分析,可行性研究等。由此可见,不编程也可以做软件开发,但编程是基础,首先你得会编程,对其有一定的经验和和理解,才能去做其他的东西。软件工程是教会人将更系统化,严格约束的,可量化的方法应用于软件的开发,运行和维护,而不能教会不会编程的人开发软件的。就像房屋设计师在学会设计出外观好看的房屋之前,必须懂得,在那些地方应该怎样设计才能可行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值