一、概论计算机软件:计算机软件指计算机系统中的程序及其文档。软件危机指在计算机软件的开发和维护过程中碰到的一系列严重问题。表现:软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难。因素:用户需求不明确、缺少对的的理论指导、软件规模越来越大、软件复杂度越来越高软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。软件是被开发或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。软件的使用没有那样的机械磨损和老化问题。但是软件会由于维护的过程中修改程序而导致副作用从而使故障率升高。软件的开发常受到计算机的限制,对计算机硬件有着不同限度的依赖性。软件的开发至今尚未完全实现自动化。软件成本相称昂贵。相称多的软件工作涉及到社会因素。软件的分类:系统软件支持软件应用软件• 按软件工作方式划分: 实时解决软件 分时软件 交互式软件 批解决软件• 按软件服务对象的范围划分: 项目软件 产品软件 • 按使用的频度进行划分: 一次使用 频繁使用• 按软件失效的影响进行划分: 高可靠性软件 一般可靠性软件软件语言: 需求定义语言 功能性语言 设计性语言 实现性语言(即程序设计语言) 文档语言软件工程的定义:Fritz Bauer:软件工程是为了经济地获得可靠的和能在实际机器上高效运营的软件而建立和使用的好的工程原则IEEE: 软件工程是(1)将系统化的、法律规范的、可度量的方法应用于软件的开发、运营和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的讨论计算机科学技术百科全书:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程软件生存周期:软件生存周期是指一个软件从立项、制造、测试、使用、维护到软件废止为止的一整个时期。计算机系统工程、需求分析、设计、编码、测试、运营和维护。软件过程模型:1.瀑布模型:waterfall model接受上一阶段的活动的结果作为本阶段活动的输入。依据上一阶段的活动的结果实话本阶段应当完毕的活动。对本阶段的活动进行评审。将本阶段活动的结果作为输出,传递给下一阶段。2.演化模型:evolutionary model从构造初始的原型出发,逐步将其演化成最终软件产品的过程。合用于对软件需求缺少准确结识的情况。典型的演化模型:增量模型、原型模型、螺旋模型3.增量模...