软件工程学科的诞生

软件工程学科的诞生

1. 软件工程学科产生背景

要了解软件工程产生背景就要知道软件是什么,软件的特点是什么,从而知道软件危机为什么能作为软件工程的背景以及诞生原因。
软件是什么:软件是程序、数据及开发、使用和维护程序所需要的所有文档

软件的特点是什么:
  1. 软件是一个逻辑产品,不是物理的产品。
  2. 软件不会磨损,不会消耗。
  3. 主要是脑力劳动,未完全摆脱手工开发方式,大部分是定做的。
  4. 大部分软件是自己定义的。
  5. 开发和运行容易受到操作系统的控制。
  6. 开发的费用不断增加,致使生产成本相当高。
    当然软件的分类有很多,如系统软件,定制软件,关键软件等等,并且软件的应用也十分广泛,如系统软件是一组为其它软件服务的软件,实时软件管理、分析、控制现实世界种发生事件的软件,还有商业软件,嵌入式软件,个人计算机软件,当然那些游戏,QQ,微信也是软件。
    而在此时软件开发过程中遇到了一系列严重的问题,注意是严重的问题,即遇到了遇到了软件危机。而软件工程就在此刻为了解决软件危机诞生了。
软件危机表现是什么:

软件工程学科的诞生_第1张图片
为什么软件危机会有这些表现,这些表现产生的原因是什么:
这些软件危机表现源于软件本身,即源于软件的特点。上述已经介绍了软件的特点,
正是出现了这样的问题,所以诞生了软件工程学科,为了更加准确完善研究软件也为了更好的解决软件危机,当然软件工程的提出也是在一个被叫做“软件危机”的会议上提出的,所以软件工程的背景就是软件危机,存在的目的就是解决软件危机。而软件工程逐渐发展也成为了一个重要的工程学科。
解决软件危机问题的策略与途径
为什么会产生软件危机,上面已经说过了,源于软件本身的特点,是逻辑部件,并且规模随着开发过程而日益庞大,使得开发与管理过程十分复杂,并且其中还有一部分原因是错误的软件开发和维护方法,当时不注重用户要求没有认识到用户的需求而匆忙编写代码,从而没有软件需求分析的步骤,也不注重文档重要性,忽视文档,再有就是忽略软件维护,只顾着一味开发软件,没有维护也造成了后期在维护方面需要花费很大的代价去维护。
而要解决软件危机就要对软件有个正确认识,就要知道需要解决什么问题,产生问题的原因是什么。要知道软件不等于程序,软件不是程序。第二点就要必须充分认识到软件开发不是某种个体劳动的神秘技巧,软件是一个项目,就要有团队,就要有团队意识,就要有组织,并且有良好的管理措施,这样大家共同完成的一个工作项目才是一个软件。第三点就是总结经验,在每次开发时要记录过程,记录失败和成功的经验,在这些经验有了一定程度的时候就可以推广应用到每一款的软件,并且找到合适的经验和开发方法,在这样理论和实践结合的模式下就能有事半功倍的效果。除了有经验,团队合作,和正确的认识,还要有工具,使用和开发更好的工具也是成功的一大部分原因。
这样有了好的工具,对软件有了正确认识,并且有好的管理措施和团队精神,还有了一定的经验,这些组合起来去开发软件,软件的成功率会提高,并且更能适应用户需要,更容易获益,更能减少损失。

技术措施
推广和使用在实践中总结出的好的软件开发
技术和方法,并不断探索和研究更有效的技术。
开发和使用更好的软件工具,包括采用好的
开发工具,系统分析和辅助设计工具等,以提
高工作效率。

管理措施
吸收和借鉴人类长期以来从事各类工程项
目所积累的行之有效的原理、概念、技术和方法。

2. 软件工程学科研究内容

软件工程是指导软件开发和维护的学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技和当前能够得到的技术方法结合起来,并且采用更好的开发工具开发,从而更加有效更加有质量来开发软件。
研究内容:软件工程开发模式,软件工程开发方法,软件过程,软件工具,软件开发环境,计算机辅助等等。

软件开发可以划分以下几部分:

软件工程学科的诞生_第2张图片

这是软件工程基本原理:

1.用分阶段的生存周期计划进行严格管理。

2.坚持进行阶段评审。(以便早日发现错误)

  1. 实行严格的产品控制。

4.采用现代程序设计技术。

5.软件工程结果应能清楚地审查。

6.开发小组的人员应该少而精。

7.承认不断改进软件工程实践的必要性。

软件工程方法学有3个要素:方法,工具,过程
  1. 传统方法学
    又称生命周期方法学或结构化范型
    基于生命周期方法学理论
    采用结构化技术来完成开发
    特点:从上而下,顺序完成
  2. 面对对象的方法学
    开发方法与开发过程尽可能接近人类认识实践的方式
    把所有对象划分为类,对象之间仅能通过发送消息来联系
    特点:划分为多个块,可以同时开发。

总结:在学习第一章之后,我了解了软件产生的背景,软件危机的表现和如何解决,还认识到了如何才能高效并且有质量的开发软件,知道了软件工程的基本原理,还有两种开发方法,这也让我对自己所学的学科有深一步的认识,也对今后软件开发有了更深一步的认知。

你可能感兴趣的:(软件工程)