【软件工程——缘起(1)】软件危机

(一)关于软件

软件我们肯定很熟悉:
应用软件:QQ、微信等。
系统软件:windows系统、编译系统、Android系统等。

我们不难给出一种通俗的定义:软件就是为了方便地解决某一类问题,而开发出的使用工具。

评价软件的指标也很现实——能否解决问题,能解决问题的才是好软件。

产生问题也就会产生需求,所以——软件起源于需求。

当我们所说的软件过时了,便可以说——软件会因需求不符合用户群体而走向灭亡。

软件的组成绝不仅有代码,包括——文档、程序、数据

1983年IEEE为软件下的定义:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。事实上方法与规则通常在文档中说明,在程序中实现。


(二)软件危机

偶然?必然!

1、计算机系统的 “四个阶段”

  1. 个体化
    早期时代,软件规模较小,编写者和使用者往往是同一个(或同一组)人,所以软件设计通常是人们头脑中进行的一个隐含过程,除了程序清单之外没有任何其他的文档资料留下来
  2. “软件作坊”
    开发方式和第一阶段相同,该阶段的末期出现软件危机
  3. 软件工程时代
    利用软件工程方法学指导软件的开发,解决软件危机,为后续的软件开发提供保障。
  4. 第四个阶段
    第一个争议认为:该阶段人工智能自动化开发软件,极大可能释放人力、物力
    第二个争议认为:第一个争议中的终极目标无法实现,将第四阶段规定为软件工程发展的成熟阶段 (学习时建议以第二个争议为准√)

2、典型表现

软件的进度预估不准确:后期增加软件的成本投入

缺乏需求分析:软件和用户的需求不匹配,软件的本质是为了解决问题,解决不了问题的软件不是好的软件

缺乏软件管理:井喷式增长的软件的管理问题

缺乏维护:软件的维护,软件一旦开发,很难改变核心功能,但维护是必要的,需要不断的匹配用户群体的需求增长

缺乏文档:软件也是需要使用说明书的,用于软件的更新维护、软件项目的继承交接,需要详细的文档说明

缺乏成本管理:软件成本在计算机系统总成本的比例逐年升高

开发速度慢:软件的开发速度很难跟上不断增长的社会需求

缺乏团队管理:开发团队的工作人员的沟通不协调

等等,远不止这些……

3、产生原因

  • 直接原因:因为没有相关的文档,导致软件不可维护,所以在软件发展的第二个阶段的末期,软件危机出现。
  • 根本原因
    ①软件本身的特点有关
    1)软件本身是一个逻辑构件,软件开发的进展情况是较难衡量
    2)软件的质量较难评价
    3)软件的维护通常意味着改正和修改原来的设计,这就在客观上使得软件较难维护
    4)软件规模越大,其程序复杂性将会呈指数上升
    ②错误的开发与维护方法,即“错误的思想”
    错误地认为 “开发软件 = 写程序”,忽视了软件的需求分析,忽视了软件的维护的必要性。

软件自身确实有一些实现与维护的困难,但更多的还是专业人员或多或少地采用了错误的方法和技术。

4、解决途径

有了原因的分析,我们从三个方面入手,而这三个方面也是软件工程方法学的三要素

  • 方法 (技术措施)
    对开发方式进行标准化约束,提出适合的开发策略和手段
    传统开发方法、面向对象开发方法……
  • 工具 (技术措施)
    规范的文档、统一的开发环境、标准的开发语言、成熟的开发技术等
  • 过程 (组织管理措施)
    软件生命周期模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、Rational统一过程……

总之

为解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两个方面研究如何更好地开发和维护计算机软件的一门新兴学科。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值