软件工程:从危机到瀑布模型的发展

需积分: 44 13 下载量 45 浏览量 更新于2024-08-19 收藏 1.4MB PPT 举报
"按发展过程程序设计语言分为-中国矿业大学-2015级-软件工程复习PPT" 在程序设计语言的发展历程中,我们可以将其主要分为三个阶段:低级语言、高级语言以及人工智能语言。低级语言包括机器语言和汇编语言,它们与计算机硬件紧密相关,机器语言直接由二进制码组成,而汇编语言则是用助记符表示机器指令,比机器语言更易读但仍然非常底层。高级语言如C、C++、Java等,它们抽象程度更高,更加接近人类自然语言,便于程序员编写和理解。人工智能语言如Lisp和Prolog,是专门为了处理人工智能任务而设计的,具有强大的逻辑推理和符号处理能力。 软件工程领域中,面对软件危机,即软件的质量、成本和进度难以控制的问题,人们一直在寻找解决方案。20世纪60年代末的软件危机催生了一系列软件工程实践的出现。例如,1970年Winston Royce提出的瀑布模型,它是最早的软件开发模型之一,将软件生命周期分为计划、需求分析、设计、编码、测试和维护六个阶段,各阶段按照线性的顺序依次进行。然而,瀑布模型的问题在于它的不可逆性,一旦进入下一阶段,就很难回溯修改,特别是在需求不清晰的情况下。 为了解决瀑布模型的局限,后续出现了演化模型,强调迭代和逐步完善的开发过程。通过创建原型,开发者可以在项目初期快速验证需求和设计,根据反馈不断调整和改进,从而降低因需求变更带来的风险。这种模型更适合应对需求频繁变化或不明确的项目。 软件工程不仅仅关注编程,还包括多个关键环节,如人员管理、项目管理、需求分析、系统设计、程序设计、测试和维护等。有效的软件开发流程需要将这些环节用规范化的流程连接起来,类似于工厂的生产线,确保软件质量和效率。同时,软件开发人员的角色和责任也在不断地演变,从单纯的代码编写者转变为全面考虑项目管理、团队协作和用户需求的专业人士。 在实际操作中,当软件交付给用户后,可能会遇到错误或新需求,这时就需要进行维护和更新,开发人员需要重新修改代码并进行测试,直至满足用户需求。尽管软件工程的方法论和工具不断发展,软件危机仍然存在,但持续改进的开发模型和方法,如敏捷开发和DevOps,都在努力提高软件开发的效率和质量,以适应快速变化的市场需求和技术环境。