XX公司计算机软件培训讲义
XXXX 公司计算机软件培训讲义公司计算机软件培训讲义 1 1、背景、背景 20 世纪是一个革命化变革的世纪。机械化革命、电气化革命、信息化革命不管是 对社会依旧对人类都起到了全然性的变化阻碍。 专门是自动化生产的理念, 对机械化革 命、电气化革命和信息化革命中的骨骼部分(硬件产品:例如运算机及其相关部件、通 信产品、储备介质等)都起到了突飞猛进的推动作用。但关于信息化革命中的神经或血 液部分的软件, 如何将自动化生产的理念引入到其开发研制中来, 是 20 世纪 60 年代以 来给人类留下的始终未解决好的一个重大课题。 20 世纪 80 年代初,国际闻名的软件学家布鲁思曾经发表过一片闻名的论文『没有 银弹』 ,在软件界引起了专门大的震动。论文的中心散布了一种软件悲观论的思想,布 鲁思个人认为软件的自动化生产, 由于受各种外界条件的制约, 是几乎无法实现的。这 种悲观的事实虽完全解决不了, 但通过软件工程及其相关联的优秀的方法论, 通过优秀 的人才是能够缓解的。 在以后的信息化革命中, 起着神经或血液角色的软件作用越来越重要, 据国际权威 调查机构的资料,工程费用上软硬的比例目前已达到了6:4 的数值。由此可见软件工 程及其相关联的优秀的方法论、优秀的软件人才在信息化革命革命中的重要性。 2 2、软件工程、软件工程 软件工程是一类工程。工程是将理论和知识应用于实践的科学。就软件工程而言, 它借鉴了传统工程的原则和方法, 以求高效地开发高质量软件。 其中应用了运算机科学、 数学和治理科学。运算机科学和数学用于构造模型与算法, 工程科学用于制定规范、 设 计范型、评估成本及确定权衡,治理科学用于打算、资源、质量和成本的治理。 软件工程这一概念,要紧是针对 20 世纪 60 年代“软件危机” 而提出的。它首次显 现在 1968 年 NATO(北大西洋公约组织)会议上。自这一概念提出以来,围绕软件项 目, 开展了有关开发模型、 方法以及支持工具的研究。 其要紧成果有: 提出了瀑布模型, 开发了一些结构化程序设计语言(例如 PASCAL 语言,ADA 语言) 、结构化方法等。 同时围绕项目治理提出了费用估算、 文档复审等方法和工具。 综观 60 年代末至 80 年代 初,其要紧特点是,前期着重研究系统实现技术,后期开始强调开发治理和软件质量。 70 年代初,自“软件工厂”这一概念提出以来,要紧围绕软件过程以及软件复用, 开展了有关软件生产技术和软件生产治理的研究与实践。 其要紧成果有: 提出了应用广 泛的面向对象语言以及相关的面向对象方法, 大力开展了运算机辅助软件工程的研究与 实践。专门是近几年来, 针对软件复用及软件生产, 软件构件技术以及软件质量操纵技 术、质量保证技术得到了广泛的应用。 目前各个软件企业都十分重视资质认证, 并想通 过这些工作进行企业治理和技术的提升。软件工程所涉及的要素可概括如下: 软件工程框架图软件工程框架图 依照这一框架,能够看出:软件工程涉及了软件工程的目标、 软件工程原则和软件 工程活动。 软件工程的要紧目标是: 生产具有正确性、可用性以及开销合宜的产品。 正确性意 指软件产品达到预期功能的程度。 可用性指软件差不多结构、 实现及文档为用户可用的 程度。开销合宜性是指软件开发、 运行的整个开销满足用户要求的程度。 这些目标的实 现不论在理论上依旧在实践中均存在专门多问题有待解决, 它们形成了对过程、 过程模 型及工程方法选取的约束。 软件工程的四项差不多原则是: 第一, 选取适宜开发范型。 该原则与系统设计有关。 在系统设计中, 软件需求、 硬件需求以及其他因素之间是相互制约、 相互阻碍的,经常需要权衡。 因此,必须认识 需求定义的易变性,采纳适宜的开发范型予以操纵,以保证软件产品满足用户的要求。 第二,采纳合适的设计方法。在软件设计中, 通常要考虑软件的模块化、抽象 与信息隐藏、局部化、一致性以及适应性等特点。 合适的设计方法有助于这些特点的实 现,以达到软件工程的目标。 第三,提供高质量的工程支持。 “工欲善其事,必先利其器” 。在软件工程中, 软件工具与环境对软件过程的支持颇为重要。 软件工程项目的质量与开销直截了当取决 于对软件工程所提供的支撑质量和效用。 第四,重视开发过程的治理。 软件工程的治理,直截了当阻碍可用资源的有效 利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此, 仅当软件过 程得以有效治理时,才能实现有效的软件工程。 软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步 骤” 。要紧包括需求、设计、实现、确认以及支持等活动。需求活动包括问题分析和需 求分析。问题分析猎取需求定义,又称软件需求规约。需求分析生成功能规约。设计活 动一样包括概要设计和详细设计。 概要设计建立整个软件体系结构, 包括子系统、模块 以及相关层次的说明、每一模块接口定义。详细设计产生程序员可用的模块说明, 包括 每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。 确认活动贯穿于整个开发过程, 实现完成后的确认,保证最终产品满足用户的要求。 支 持活动包括修改和完善。相伴以上活动,还有治理过程、支持过程、培训过程等。 这一软件工程框架告诉我们, 软件工程的目标是可用性、 正确性和合算性; 实施一 个软件工程要选取适宜的开发范型, 要采纳合适的设计方法, 要提供高质量的工程支撑, 要实行开发过程的有效治理;软件工程活动要紧包括需求、设计、 实现、确认和支持等 活动,每一活动可依照特定的软件工程,采纳合适的开发范型、设计方法、 支持过程以 及过程治理。依照软件工程这一框架, 软件工程学科的研究内容要紧包括: 软件开发范 型、软件开发方法、软件过程、软件工具、软件开发环境、运算机辅助软件工程(CASE) 及软件经济学等。 自从软件工程概念提出以来,通过30 多年的研究与实践,尽管“软件危机”没得到 完全解决, 但在软件开发方法和技术方面差不多有了专门大的进步。 专门应该指出的是, 自 80 年代中期,美国工业界和政府部门开始认识到,在软件开发中,最关键的问题是 软件开发组织不能专门好地定义和治理其软件过程, 从而使一些好的开发方法和技术都 起不到所期望的作用。也确实是说,在没有专门好定义和治理软件过程的软件开发中, 开发组织不可能在好的软件方法和工具中获益。 依照调查,中国的现状几乎和美国 10 多年前的情形一样,软件开发过程没有明确 规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人 或小组的努力。 这种依靠于个别人员上的成功并不能为全组织的软件生产率和质量的提 高奠定有效的基础, 只有通过建立全组织的过程改善, 采纳严格的软件工程方法和治理, 同时坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高。 这一事实告诉我们, 只有坚持软件工程的四条差不多原则, 既重视软件技术的应用, 又重视软件工程的支持和治理, 并在实践中贯彻实施, 才能高效地开发出高质量的软件。 3 3、方法论、方法论 如何运用软件工程,从 20 世纪 70 年代初开始,围绕着那个问题, 产生了许多闻名 的方法论。下