PPTOK :您身边最贴心好用的PPT站!

您当前所在位置:优信购彩首页  > PPT课件 > 课件PPT → 优信购彩软件 优信购彩技术 基础课件

优信购彩软件 优信购彩技术 基础课件

  • 素材大小:2.33 MB
  • 素材授权:免费优信购彩下载
  • 更新时间:2017-08-18
  • 素材类别:课件PPT
  • 素材格式:.ppt
  • 关键提要:优信购彩软件 优信购彩技术 基础
  • 素材版本:PowerPoint2003及以上版本(.ppt)
网友评分:
PPT介绍优秀PPT相关PPT精品PPT

这是优信购彩软件 优信购彩技术 基础课件,包括了优信购彩软件 的基本概念,优信购彩软件 工程,优信购彩软件 生存周期,结构化的优信购彩软件 开发优信购彩方法 ,面向对象的优信购彩软件 开发优信购彩方法 以及习题等内容,欢迎点击优信购彩下载 。

PPT预览

优信购彩软件
优信购彩技术
基础课件

PPT内容


1.1.1  优信购彩软件 的特征   要理解优信购彩软件 的含义,首先要了解优信购彩软件 的特征。优信购彩软件 是逻辑的而不是物理的优信购彩产品 ,因此,优信购彩软件 具有与硬件完全不同的特征。   (1) 优信购彩软件 的开发不是传统意义上的生产制造。   优信购彩软件 开发与硬件制造之间有一些相似之处,但却有着本质的区别。优信购彩软件 优信购彩产品 的生产主要是脑力劳动、手工开发方式,大部分优信购彩产品 是“定做”的。   
  优信购彩软件 并不受引起硬件磨损的环境因素的影响。因此,理论上讲,优信购彩软件 的故障率曲线呈现出如图1.2所示的形式。优信购彩软件 在其生命初期具有较高的故障率,但在这些错误改正之后(优信购彩优信购彩我 们 假设理想情况下改正过程中并不引入其他错误),曲线就会趋于平稳。优信购彩软件 不会被磨损,不过它会退化,这一点可以通过图1.2来解释清楚。在其生命期中,优信购彩软件 会经历修改(维护),随着这些修改有可能会引入新的错误,使得故障率曲线呈现为图1.2所示的锯齿形。
  硬件和优信购彩软件 之间的不同还表现在当一个硬件构件磨损时,可以用另外一个备用零件替换它,但对于优信购彩软件 就没有备用零件可以替换了。每一个优信购彩软件 故障都表明了设计或是将设计转换成机器可执行代码的过程中存在错误。因此,优信购彩软件 维护要比硬件维护复杂得多。
  (3) 优信购彩软件 的可复用性差,不能通过已有的构件组装而成。   优信购彩优信购彩我 们 先来看一下一个基于微处理器的控制硬件是如何设计和建造出来的。设计工程师画一个简单的数字电路图,做一些基本的分析以保证可以实现预定的功能,然后查阅所需的元器件的目录,每一个集成电路(通常称为“IC”或“芯片”)都有一个零件编号、固定的功能、定义好的接口和一组标准的集成指南,每一个选定的零件都可以买到,由此可以很方便地组装起一个基于微处理器的控制硬件。   在优信购彩软件 开发中,采用一些已有的构件组建一个优信购彩软件 的优信购彩方法 ,仅仅在小范围内得到应用。多数优信购彩软件 的设计开发还必须完全从零开始。
1.1.2  优信购彩软件 的分类   优信购彩软件 种类繁多,概括起来可分为两类:系统优信购彩软件 和应用优信购彩软件 。   1.系统优信购彩软件   系统优信购彩软件 是指操作系统及与之相关的各种优信购彩软件 的总称。系统优信购彩软件 是一组为其他程序优信购彩服务 的程序。一类系统优信购彩软件 (如编译器、编辑器和文件管理程序)所处理的信息结构是复杂的,但又是确定的;还有一类系统优信购彩软件 (如操作系统、驱动程序和通信进程等)则处理大量的非确定的信息。系统优信购彩软件 具有以下特点:
  ● 与计算机硬件频繁交互;   ● 支持多用户;   ● 需要精细调度、资源共享及灵活的进程管理的并发操作;   ● 复杂的数据结构;   ● 多外部接口;   ● 具有可移植性,例如嵌入式系统中的实时操作系统。   常见的操作系统有DOS、UNIX、Linux以及优信购彩Win dows。   2.应用优信购彩软件   应用优信购彩软件 是指为用户的特殊应用目的而开发的优信购彩软件 。例如财务管理优信购彩软件 、人力资源管理优信购彩软件 。
1.1.3  优信购彩软件 的发展   今天,优信购彩软件 担任着双重角色,它是一种优信购彩产品 ,同时又是开发和运行优信购彩产品 的载体。作为一种优信购彩产品 ,它扩充了计算机硬件的功能;作为开发和运行优信购彩产品 的载体,它是计算机控制 (操作系统)的基础、信息通信(网络)的基础,也是创建和控制其他程序(优信购彩软件 优信购彩工具 和环境)的基础。   计算机硬件的发展经历了四个时代,同样,计算机优信购彩软件 的发展也大致经历了四个阶段。
  (1)  20世纪60年代中期以前,是计算机系统发展的早期阶段。   在计算机发展的早期阶段,大多数人把优信购彩软件 开发看成是不需预先计划的事情。计算机编程很简单,没有什么系统化的优信购彩方法 。优信购彩软件 的开发没有任何管理,一旦进度拖后了或者成本提高了,程序员才开始手忙脚乱地弥补。由于那个时期的优信购彩软件 很简单,因而他们的努力在一般情况下往往也会见效。
  当通用的硬件已经非常普遍的时候,优信购彩软件 却相反,对每一类应用均需自行设计,应用范围很有限。此时,优信购彩软件 优信购彩产品 还处在婴儿阶段,大多数优信购彩软件 均是由使用它们的人员或优信购彩组织 自行开发的,优信购彩软件 在使用过程中出现了问题,编写优信购彩软件 的人员必须负责修改。在这种个人化的优信购彩软件 开发环境中,设计往往仅是人们头脑中的一种模糊想法,而优信购彩软件 文档根本就不存在。在早期,优信购彩优信购彩我 们 了解了很多优信购彩关于 计算机系统的实现,但对于计算机系统工程却几乎一无所知。
  (2) 从20世纪60年代中期到70年代中期,是计算机系统发展的第二阶段。   计算机系统发展的第二阶段跨越了从20世纪60年代中期到70年代中期的十余年。其主要特征是:多道程序设计、多用户系统引入了人机交互的新概念;交互优信购彩技术 打开了计算机应用的新世界及硬件和优信购彩软件 配合的新层次;实时系统能够从多个源收集、分析和转换数据,使得进程的控制和输出的产生以毫秒而不是分钟来进行;在线存储的发展导致了第一代数据库管理系统的出现。   
  第二阶段的一个特点就是优信购彩软件 优信购彩产品 的使用和“优信购彩软件 作坊”的出现。随着计算机应用领域的扩大,来自工业界、优信购彩政府 和学术界的人们纷纷开始开发各类优信购彩软件 包,并取得了巨大的经济利益。   随着计算机系统的增多,新的问题出现了,当发现优信购彩软件 存在错误或缺陷时,需要纠正部分代码甚至全部代码;当用户需求发生变化时,需要对优信购彩软件 进行修改;当硬件环境更新时,需要修改优信购彩软件 以适应硬件的变化。这些活动统称为优信购彩软件 维护。在优信购彩软件 维护上所花费的精力开始以惊人的速度消耗资源。更糟糕的是,许多程序的个人化特性使得它们根本不能维护。这就是所谓的“优信购彩软件 危机”。
  (3) 计算机系统发展的第三个阶段从20世纪70年代中期开始,并且跨越了整整10年。   在分布式系统中,多台计算机之间的分布式处理和通信极大 地提高了计算机系统的复杂性。广域网和局域网、高带宽数字通信以及对“即时”数据访问需求的增加都对优信购彩软件 开发者提出了更高的要求。然而,优信购彩软件 仍然继续应用于工业界和学术界,个人应用很少。第三阶段的另外一个特点是微处理器的出现和广泛应用,微处理器的出现使得一系列智能优信购彩产品 纷纷面世,大到汽车,小到微型医疗设备等,使计算机的应用真正成为大众化的应用。
  (4) 计算机系统发展的第四个阶队判殴翰饰 丫辉僮胖赜诘ヌ扑慊图扑慊绦颍敲嫦蚣扑慊陀判殴翰嗜砑 的综合影响。   20世纪70年代后由复杂的操作系统控制的功能强大的计算机、广域网和局域网,配以先进的应用优信购彩软件 已成为标准。计算机体系结构迅速从集中的主机环境转变为分布的客户机/优信购彩服务 器环境。世界范围的信息网提供了一个基本结构,使得“信息高速公路”和“网际空间连通”成为可能。事实上,Internet可以看做是能够被单个用户访问的“优信购彩软件 ”。
  优信购彩软件 产业在世界经济中不再是无足轻重的,由产业巨子(如微软)所做的一个决定可能会带来成百上千亿美元的风险。随着第四阶段的进展,一些新优信购彩技术 开始涌现。面向对象优信购彩技术 在许多领域中迅速取代了传统优信购彩软件 开发优信购彩方法 。虽然优信购彩关于 “第五代”计算机的预言仍是一个未知数,但是优信购彩软件 开发的“第四代优信购彩技术 ”确实改变了优信购彩软件 界开发计算机程序的方式。专家系统和人工智能优信购彩软件 终于从实验室里走了出来,进入了实际应用,解决了现实世界中的大量问题。结合模糊逻辑应用的人工神经网络优信购彩软件 揭示了模式识别和类似人的信息处理能力的可能性。虚拟现实和多媒体系统使得与最终用户的通信可以采用完全不同的优信购彩方法 。“遗传算法”则提供了可以驻留于大型并行生物计算机上的优信购彩软件 的潜在可能性。   
1.1.4  优信购彩软件 危机   1.优信购彩软件 危机的概念   优信购彩软件 危机是指在计算机优信购彩软件 的开发和维护过程中所遇到的一系列严重问题。这些问题不仅仅是不能正常运行的优信购彩软件 才具有的,实际上,几乎所有优信购彩软件 都不同程度地存在这些问题,如开发周期延长,成本增加,可靠性降低等。      具体来说,优信购彩软件 危机主要有以下一些典型表现:   (1) 对优信购彩软件 开发成本和进度的估计常常很不准确。   (2) 用户对“已完成的”优信购彩软件 系统不满意。   (3) 优信购彩软件 优信购彩产品 的质量不可靠。   (4) 优信购彩软件 常常是不可维护的。
  (5) 优信购彩软件 通常没有适当的文档资料。   (6) 优信购彩软件 成本在计算机系统总成本中所占的比例逐年上升。   (7) 优信购彩软件 开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及、深入的趋势。 以上列举的仅仅是优信购彩软件 危机的一些明显表现,与优信购彩软件 开发和维护有关的问题远远不止这些。   在优信购彩软件 产业中,“危机”已经伴随优信购彩优信购彩我 们 走过了30多年的历程。面向对象优信购彩方法 (OO)就是在这种背景下诞生的,它使业界看到了成功的希望,同时也促使OO优信购彩方法 和优信购彩技术 的研究得以迅速发展。
  2.产生优信购彩软件 危机的原因   在优信购彩软件 开发和维护的过程中之所以存在这么多问题,一方面与优信购彩软件 本身的特点有关,另一方面也和优信购彩软件 开发与维护的优信购彩方法 不正确有关。   与优信购彩软件 开发和维护有关的许多错误认识和做法的形成,可以归因于在计算机系统发展的早期阶段优信购彩软件 开发的个体化特点。错误的认识和做法主要表现为忽视优信购彩软件 需求分析的重要性,认为优信购彩软件 开发就是写程序并设法使之运行,轻视优信购彩软件 维护等。   了解产生优信购彩软件 危机的原因,澄清错误认识,建立起优信购彩关于 优信购彩软件 开发和维护的正确概念,仅仅是解决优信购彩软件 危机的开始,全面解决优信购彩软件 危机需要一系列综合措施。  
  3.消除优信购彩软件 危机的途径   为了消除优信购彩软件 危机,首先应该对计算机优信购彩软件 有一个正确的认识,应该推广使用在实践中总结出来的开发优信购彩软件 的成功的优信购彩技术 和优信购彩方法 ,并且研究探索更好、更有效的优信购彩技术 和优信购彩方法 ,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法,应该开发和使用更好的优信购彩软件 优信购彩工具 。   总之,为了消除优信购彩软件 危机,既要有优信购彩技术 措施(优信购彩方法 和优信购彩工具 ),又要有必要的优信购彩组织 管理措施。优信购彩软件 工程正是从管理和优信购彩技术 两方面研究如何更好地开发和维护计算机优信购彩软件 的一门新兴 学科。
1.2.1  优信购彩软件 工程的基本概念   概括地说,优信购彩软件 工程是指导计算机优信购彩软件 开发和维护的工程学科。采用工程的概念、原理、优信购彩技术 和优信购彩方法 来开发与维护优信购彩软件 ,把经过时间考验而证明正确的管理优信购彩技术 和优信购彩方法 与当前能够得到的最好的优信购彩技术 和优信购彩方法 相结合,经济地开发出高质量的优信购彩软件 并有效地维护它,这就是优信购彩软件 工程。   下面优信购彩优信购彩我 们 给出优信购彩软件 工程的基本原理,以期对优信购彩软件 工程的概念有更深刻的理解。
  (1) 用分阶段的生命周期计划严格管理。   (2) 坚持进行阶段评审。   (3) 实行严格的优信购彩产品 控制。   (4) 采用现代程序设计优信购彩技术 。   (5) 结果应能清楚地审查。   (6) 开发小组的人员应该少而精。   (7) 承认不断改进优信购彩软件 工程实践的必要性。
1.2.2  优信购彩软件 工程优信购彩方法 学   通常把在优信购彩软件 生命周期全过程中使用的一整套优信购彩技术 的集合称为优信购彩软件 工程优信购彩方法 学。   优信购彩软件 工程优信购彩方法 学包括三个要素:优信购彩方法 、优信购彩工具 和过程。其中,优信购彩方法 是完成优信购彩软件 开发的各项任务的优信购彩技术 优信购彩方法 ,回答“如何做”的问题;优信购彩工具 是为优信购彩方法 的运用提供自动的或半自动的优信购彩软件 支撑环境;过程是为了获得高质量的优信购彩软件 所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。   优信购彩软件 工程优信购彩方法 学分为结构化优信购彩方法 、Jackson优信购彩方法 、维也纳优信购彩方法 (VDM)、面向对象优信购彩方法 。目前使用最广泛的优信购彩软件 工程优信购彩方法 学是传统优信购彩方法 学和面向对象优信购彩方法 学。
1.2.3  优信购彩软件 工程的目标   优信购彩软件 工程的目标是提高优信购彩软件 的质量与生产率,最终实现优信购彩软件 的工业化生产。质量是优信购彩软件 需求方最关心的问题。生产率是优信购彩软件 供应方最关心的问题,老板和员工都想用更少的时间挣优信购彩更多 的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。从短期效益看,追求高质量会延长优信购彩软件 开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证优信购彩软件 开发的全过程更加规范流畅,大大降低了优信购彩软件 的维护代价,提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的优信购彩软件 工程优信购彩方法 可以同时提高质量与生产率。
  质量与生产率的提高就是开发人员与项目经理共同努力的结果。对开发人员而言,如果非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二。这是因为:   (1) 质量直接体现在优信购彩软件 的每段程序中,高质量自然是开发人员的优信购彩技术 追求,也是职业道德的要求。   (2) 高质量对所有的用户都有价值,而高生产率只对开发方有意义。   (3) 如果一开始就追求高生产率,则容易留下隐患。宁可进度慢些,也要保证每个环节的质量,以图长远利益。
  优信购彩软件 的质量因素很多,如正确性、性能、可靠性、容错性、易用性、灵活性、可扩充性、可理解性、可维护性等。有些因素相互重叠,有些因素则相互抵触,要提高质量是非常不容易的。   优信购彩软件 工程的主要环节有人员管理、项目管理,其中包括可行性与需求分析、系统设计、程序设计、测试、维护等,如图1.3所示。
  (3) 需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。这个阶段的另外一项重要任务是用正式文档准确地记录对目标系统的需求,这份文档通常称为需求说明(specification)。   (4) 概要设计:这个阶段的基本任务是概括地回答“怎样实现目标系统”这个问题。概要设计又称为初步设计、逻辑设计、高层设计或总体设计。首先,应该设计出实现目标系统的几种可能的方案。概要设计的另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。
  (5) 详细设计:概要设计阶队判殴翰饰 猿橄蟾爬ǖ姆绞教岢隽私饩鑫侍獾陌旆āO晗干杓平锥蔚娜挝窬褪前呀夥ň咛寤簿褪腔卮“应该怎样具体地实现这个系统”这个关键问题。这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。   (6) 编码:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。   (7) 测试:这个阶段的关键任务是通过各种类型的测试(及相应的调试)使优信购彩软件 达到预定的要求。
  (8) 优信购彩软件 维护:维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的优信购彩软件 错误;适应性维护,即修改优信购彩软件 以适应环境的变化;完善性维护,即根据用户的要求改进或扩充优信购彩软件 ,使它更完善;预防性维护,即修改优信购彩软件 ,为将来的维护活动做准备。      在实际从事优信购彩软件 开发工作时,优信购彩软件 规模、种类、开发环境及开发时使用的优信购彩技术 优信购彩方法 等因素会影响阶段的划分。      生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
1.3.2  优信购彩软件 生存周期模型   优信购彩软件 开发优信购彩方法 是指在规定的投资规模和时间限制内,为实现符合用户需求的高质量优信购彩软件 所制定的开发策略。人们提出了多种优信购彩软件 开发策略,常见的优信购彩软件 设计模型有瀑布模型(Waterfall Model)、增量模型(也叫渐进模型)(Increamental Model)、快速原型模型(Rapid Prototype Model)、演化模型(Evolutionary Model)、螺旋模型(Spiral Model)、喷泉模型(Fountain Model)、智能模型(Intelligent Model)等。这里介绍其中主要的几种模型。
  1.瀑布模型   瀑布模型于1970年由W.Royce提出,其开发过程依照固定顺序进行,各阶段的任务与工作结果如图1.4所示。该模型严格规定各阶段的任务,上一阶段任务的输出作为下一阶段工作的输入。此模型适合于用户需求明确、开发优信购彩技术 比较成熟、工程管理严格的场合使用。其缺点是,由于任务顺序固定,优信购彩软件 研制周期长,前一阶段工作中造成的差错越到后期越大,而且纠正前期错误的代价高。   在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍是优信购彩软件 工程中应用最广泛的过程模型。
  按照传统的瀑布模型来开发优信购彩软件 ,有如下几个特点:   (1) 阶段间具有顺序性和依赖性。   (2) 推迟实现的观点:清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发优信购彩软件 的一条重要的指导思想。   (3) 质量保证的观点:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;每个阶段结束前都要对本阶段所完成的文档进行评审,以便尽早发现问题,改正错误。   瀑布模型的开发过程如表1.2所示。
  实际的瀑布模型是带“反馈环”的,如图1.5所示(图中实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,在修正前面阶段的错误之后,再回来继续完成后面阶段的任务。
  下面优信购彩优信购彩我 们 对瀑布模型的优缺点作一总结。   瀑布模型具有顺序性和依赖性,即后一阶段的工作必须在前一阶段的工作完成后才能开始。 把逻辑设计与物理设计清楚地划分开,是瀑布模型的重要指导思想。 瀑布模型强调的是优质,即每一步都循序渐进,及早消除隐患,从而保证优信购彩软件 质量。它的致命缺点在于只有做出精确的需求分析,才能取得预期的结果。由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。
  2.快速原型模型   原型是指模拟某种优信购彩产品 的原始模型,在其它产业中经常使用模型。例如,在建造一座楼房之前,先按一定的比例建造一个缩小的楼房模型,通过模型的外观、形状和颜色等可以对所要建造的楼房有一个直观的理解和认识。   优信购彩软件 开发中的原型不同于最终的系统,两者在功能范围上的区别在于最终系统要实现优信购彩软件 需求的全部功能,而原型只实现所选择的部分功能。最终系统对所有的优信购彩软件 需求都必须详细实现,而原型仅仅是为了试验和演示用的,部分功能需求可以忽略或者模拟实现。
  快速原型模型的表示如图1.6所示。图1.6(a)是原型本身的表示,图1.6(b)说明了原型的开发步骤。可以看出,采用快速原型模型开发优信购彩软件 经历了快速分析、构造原型、运行原型、评价原型、根据评价的结果进行修改这样一个过程。
  采用快速原型模型开发优信购彩软件 时,在开发的整体上仍然采用瀑布模型。按照引入原型的阶段不同,快速原型分为以下三种类型:   (1) 探索型:在需求分析阶队判殴翰饰 朐停从迷凸檀嫘枨蠓治觥0言妥魑枨笏得鞯牟钩湫问剑擞迷途】赡苁剐枨笏得魍暾⒆既贰⒁恢隆⑽薅逍浴   (2) 实验型:用原型过程代替设计阶段,即在总体设计阶段使用原型。快速分析实现优信购彩软件 系统的方案,并构造出原型,然后通过运行考察设计方案的可行性与合理性。   (3) 演化型:用原型过程代替优信购彩软件 开发的全部阶段,通过原型过程的反复循环演化,直至得到优信购彩软件 系统。在开发过程中并不强调严格的阶段性和高质量的阶段性文档,不追求理想的开发模型。
  3.增量模型   增量模型也称为渐增模型,如图1.7所示。使用增量模型开发优信购彩软件 时,把优信购彩软件 优信购彩产品 作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现优信购彩软件 的基本需求,提供最核心的功能。
  增量模型在各个阶段并不交付一个可运行的完整优信购彩产品 ,而是交付满足客户需求的可运行优信购彩产品 的一个子集。整个优信购彩产品 被分解成若干个构件,开发人员逐个构件地交付优信购彩产品 。这样做的好处是优信购彩软件 开发可以较好地适应变化,客户可以不断地看到所开发的优信购彩软件 ,从而降低开发风险。但是,增量模型也存在以下缺陷:   (1) 由于各个构件是逐渐并入已有的优信购彩软件 体系结构中的,所以加入的构件不应当破坏已构造好的系统部分,这需要优信购彩软件 具备开放式的体系结构。   (2) 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化,这一点大大优于瀑布模型和快速原型模型,但也很容易退化为“边做边改”的模型,从而使优信购彩软件 过程的控制失去整体性。
  4.螺旋模型   优信购彩软件 开发几乎总要冒一定的风险,因此,在优信购彩软件 开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。1988年,Barry Boehm正式发表了优信购彩软件 系统开发的螺旋模型。   螺旋模型的基本思想是将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,以尽量降低风险,其特别适合于大型复杂的系统。
  5.喷泉模型(面向对象的生存期模型, OO模型)   迭代是优信购彩软件 开发过程中普遍存在的一种内在属性。经验表明,优信购彩软件 过程是各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代。喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,这种模型在面向对象范型中比在结构化范型中更常见。图1.8所示的喷泉模型是典型的面向对象生命周期模型。“喷泉”这个词体现了面向对象优信购彩软件 开发过程中迭代和无缝的特性。图1.8  喷泉模型   喷泉模型的固有特征是:① 迭代,指多次重复、演进的过程;② 无间隙,指各阶段间无明显的界限,支持分析和设计结果的自然复用。
  喷泉模型与传统的结构化生存期比较,具有优信购彩更多 的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期,就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。为避免在使用喷泉模型开发优信购彩软件 时开发过程过分无序,应该把一个线性过程(例如,快速原型模型)作为总目标。但是,同时也应该记住,面向对象范型本身要求经常对开发活动进行迭代或求精。
   6.各种模型的比较   每个优信购彩软件 开发优信购彩组织 应该选择适合于该优信购彩组织 的优信购彩软件 开发模型,并且应该随着当前正在开发的特定优信购彩产品 的特性而变化,以减小所选模型的缺点,充分利用其优点。表1.3列出了几种常见模型的优缺点。
  优信购彩软件 过程是为了获得高质量优信购彩软件 优信购彩产品 所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。优信购彩软件 过程必须科学、合理,才能开发出高质量的优信购彩软件 优信购彩产品 。   按照在优信购彩软件 生命周期全过程中应完成的任务的性质,在概念上可以把优信购彩软件 生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等八个阶段。实际上,从事优信购彩软件 开发工作时,优信购彩软件 规模、种类、开发环境及使用的优信购彩技术 优信购彩方法 等因素,都影响阶段的划分。因此,一个科学、有效的优信购彩软件 过程应该定义一组适合于所承担的项目特点的任务集合。
  生命周期模型(即优信购彩软件 过程模型)规定了把生命周期划分成的阶段及各个阶段的执行顺序。本章介绍了五类典型的优信购彩软件 生命周期模型。   瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的优信购彩方法 ;这种模型的问题是,最终交付的优信购彩产品 可能不是用户真正需要的。   快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可运行的原型系统,让用户试用原型并收集用户反馈意见的办法,来获取用户的真实需求。但是,需要优信购彩软件 法开发优信购彩技术 和优信购彩工具 支持,需要用户参与开发过程,参与原型的运行和评价。   
  增量模型具有能在优信购彩软件 开发的早期使投资获得明显回报和易于维护的优点。但是,要求优信购彩软件 具有开放结构是使用这种模型时固有的困难。   风险驱动的螺旋模型适用于大规模的内部开发项目。但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。   当使用面向对象范型开发优信购彩软件 时,优信购彩软件 生命周期必须是循环的,也就是说,优信购彩软件 过程必须支持反馈和迭代。喷泉模型是一种典型的适合于面向对象范型的过程模型。   每个优信购彩软件 开发优信购彩组织 都应该选择适合于本优信购彩组织 及所要开发的优信购彩软件 特点的优信购彩软件 生命周期模型。这样的模型应该把各种生命周期模型的合适特性有机地结合起来,以便尽量减少它们的缺点,充分利用它们的优点。  
1.4.1  系统分析与定义   为了开发出真正满足用户需求的优信购彩软件 优信购彩产品 ,首先必须知道用户的需求。对优信购彩软件 需求的深入理解是优信购彩软件 开发工作获得成功的前提和关键。不论优信购彩优信购彩我 们 把设计和编码工作做得如何出色,不能真正满足用户需求的优信购彩软件 只会给用户带来失望,给开发者带来烦恼。   传统的优信购彩软件 工程优信购彩方法 学采用结构化分析(Structured Analysis,SA)优信购彩技术 来完成需求分析工作。
  1.需求分析的任务   需求分析是发现、求精、建模、规格说明和复审的过程。为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题,也就是说,需求分析的第一步是尽可能准确地了解用户当前的情况和需要解决的问题。      分析员对用户提出的初步要求应该反复求精、多次细化,才能充分理解用户的需求,得出对目标系统的完整、准确和具体的要求。
  为了更好地理解问题,人们常常采用建立模型的优信购彩方法 。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和优信购彩组织 这些符号的规则构成。结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。      除了用分析模型表示优信购彩软件 需求之外,还要写出准确的优信购彩软件 需求规格说明。模型既是优信购彩软件 设计的基础,也是编写优信购彩软件 规格说明的基础。   在分析优信购彩软件 需求和编写优信购彩软件 规格说明的过程中,优信购彩软件 开发者和优信购彩软件 用户都起着关键的、必不可少的作用。
  用户与开发者之间需要通信、沟通的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。因此,不仅在整个需求分析过程中应该采用行之有效的通信优信购彩技术 ,集中精力缜密工作,而且对需求分析的结果(分析模型和规格说明)必须严格审查。 尽管目前存在许多不同的结构化分析优信购彩方法 ,但是,所有这些分析优信购彩方法 都遵守下述准则:   ● 必须理解和表示问题的信息域,根据这条准则应该建立数据模型。   ● 必须定义优信购彩软件 应完成的功能,这条准则要求建立功能模型。   
  ● 必须表示作为外部事件结果的优信购彩软件 行为,这条准则要求建立行为模型。   ● 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。   ● 分析过程应该从要素信息移向实现细节。
  2.需求分析的优信购彩方法   优信购彩软件 需求分析是与用户通信的过程,总是从两方或多方之间的通信开始的。用户面临的问题需要用基于计算机的方案来解决;开发者应该对用户的需求作出反应,给用户提供优信购彩帮助 ,这样就产生了相互通信的需求。   1) 访谈      访谈(或称为会谈)是最早开始运用的获取用户需求的优信购彩技术 ,也是迄今为止仍然广泛使用的主要的需求分析优信购彩技术 。
  访谈有两种基本形式,分别是正式的和非正式的访谈。在正式的访谈中,系统分析员将提出一些事先准备好的具体问题,例如,询问客户优信购彩公司 销售的商品种类、雇用的销售人员数目以及信息反馈时间的长短等。在非正式的访谈中,将提出一些可以自由回答的开放性问题,以鼓励被访问的人员表达自己的想法,例如,询问用户为什么对目前正在使用的系统感到不满意。当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。   在对用户进行访谈的过程中,使用情景分析优信购彩技术 往往非常有效。所谓情景分析,就是对用户运用目标系统解决某个具体问题的优信购彩方法 和结果进行分析。
  2) 简易的应用规格说明优信购彩技术   这种优信购彩方法 提倡用户与开发者密切优信购彩合作 ,共同标识问题,提出解决方案的要素,商讨不同的优信购彩方法 并指定基本的需求。现在,简易的应用规格说明优信购彩技术 已经成为信息系统界使用的主流优信购彩技术 。尽管存在许多不同的简易应用规格说明优信购彩方法 ,但是它们遵循的基本准则是相同的。   ● 在中立地点举行由开发者和用户双方出席的会议。   ● 制定准备会议和参加会议的规则。
  ● 提出一个议事日程,这个日程应该足够正式,以便能够涵盖所有要点;同时,这个日程又应该足够非正式,以便鼓励自由思维。   ● 由一个“协调人”来主持会议,他既可以是用户,也可以是开发者,还可以是从外面请来的人。   ● 使用一种“定义机制”(例如,工作表、图表等)。   ● 目标是标识问题、提出解决方案的要素,商讨不同的方案并制定初步的需求。
  3) 构建优信购彩软件 原型   构建原型的要点是,应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。   快速原型应该具备的第一个特性是“快速”。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。
  快速原型应该具备的第二个特性是“容易修改”。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户的需求。在实际开发优信购彩软件 优信购彩产品 时,“修改—试用—反馈”的过程可能要重复多遍,如果修改耗时过多,则势必延误优信购彩软件 开发时间。
  3.分析建模和优信购彩软件 需求规格说明   结构化分析实质上是一种创建模型的活动。通过需求分析而建立的模型必须达到下述三个基本目标:描述用户的需求;为优信购彩软件 设计工作奠定基础;定义一组需求,一旦开发出优信购彩软件 优信购彩产品 之后,就可以用这组需求作为标准来验收该优信购彩产品 。为了达到上述目标,在结构化分析过程中导出的分析模型的形式如图1.9所示。      通过需求分析除了创建分析模型之外,还应该写出优信购彩软件 需求规格说明,它是分析阶段的最终成果。
  4.实体—关系图      数据模型包含三种相互关联的信息:数据对象、描述数据对象的属性及数据对象彼此间相互连接的关系。      数据对象:是对优信购彩软件 必须理解的复合信息的表示。所谓复合信息,是指具有一系列不同性质或属性的事物,因此,仅有单个值的事物(例如宽度)不是数据对象。      属性:定义了数据对象的性质,应根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。
  关系:数据对象彼此之间相互连接的方式称为关系,也称为联系。关系分为一对一联系(1∶1),一对多联系(1∶N),多对多联系(M∶N)。其中多对多联系也具有属性。   用实体—关系图(Entity Relationship Diagram)建立的数据模型简称为E-R图。相应地,用E-R图描绘的数据模型也可以称为E-R模型。   E-R图中包含了实体(即数据对象)、关系和属性等三种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用无向边把实体(或关系)与其属性连接起来。例如,图1.10是某优信购彩学校 教学管理的E-R图。
  5.数据流图      当数据在优信购彩软件 中移动时,它将被一系列“变换”所修改。数据流图(DFD)是一种图形化优信购彩技术 ,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。   如图1.11所示,数据流图有四种基本符号:正方形(或立方体)表示数据的源点或终点,是系统之外的人员或优信购彩组织 ;圆形(或圆角矩形)代表变换数据的处理;两条平行横线(或矩形)代表数据存储;箭头表示数据流,即特定数据的流动方向。源点/终点与处理、处理与处理之间的数据流应当具有名称,与数据存储有关的数据流的名称可以省略,因为用数据存储的名称就可以清楚表示了。
  下面通过一个简单例子来具体说明怎样画数据流图。    【例1.1】  假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件,应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和从判殴翰饰 ┯φ摺A慵肟饣虺隹獬莆挛瘢ü旁诓挚庵械腃RT终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时,就应该再次订货。      数据流图有四种成分:源点或终点、处理、数据存储和数据流。因此,可采用以下步骤画出订货系统的数据流图。
  首先要从问题描述中提取数据流图的四种成分,接下来考虑数据的处理与加工,最后考虑数据存储和数据流。一旦把数据流图的四种成分都分离出来以后,就可以着手画数据流图了。任何系统的基本模型都是由若干个数据源点/终点以及一个处理组成的,这个处理就代表了系统对数据加工变换的基本功能。对于上述的订货系统可以画出如图1.12所示的顶层数据流图来表示基本系统模型,在顶层和数据流图中突出表明了数据的源点、终点和系统的输入、输出。
  下一步应该把基本系统模型细化,得到描绘系统的主要功能的0层数据流图。图1.13是系统的0层数据流图,系统中含有处理事务和产生报表两个子系统,所给出的处理和数据存储都加了编号,这样做的目的是便于引用和追踪。   接下来应该对功能级数据流图中描绘的系统主要功能进一步细化,对0层数据流图中的每个子系统进一步分解,得到1层数据流图。图1.14是将事务处理子系统进一步分解的订货系统的1层数据流图。
  在对数据流图分层细化时,必须保持信息的连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。   数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性,因此,给这些成分起名字时应该仔细推敲。命名时应注意以下问题:为数据流(或数据存储)命名时,名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分;不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类);如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是对数据流图分解不恰当而造成的,应该试试重新分解,看是否能克服这个困难。
  通常先为数据流命名,然后为与之相关联的处理命名,这样命名比较容易,而且体现了人们习惯的“由表及里”的思考过程。名字应该反映整个处理的功能,而不是它的一部分功能;名字最好由一个具体的及物动词,加上一个具体的宾语组成;应该尽量避免使用“加工”、“处理”等空洞笼统的动词作名字;通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再分解成两个处理可能更恰当些;如果在为某个处理命名时遇到了困难,则很可能是发现了分解不当的迹象,应考虑重新分解。
  6.数据字典   数据字典是为了描述在结构化分析过程中定义的对象的内容,而使用的一种半形式化的优信购彩工具 。      数据字典中的每个条目是对数据流图中所出现的每个成分的精确、严格的定义,从而使得用户和系统分析员双方对构成输入、输出、数据存储的数据项,以及加工处理逻辑有共同的理解。
  虽然可以使用自然语言描述数据流和数据存储的条目,但是为了更加清晰简洁起见,建议采用下列符号:   = ——等价于(或定义为)。   + ——和(即连接两个分量)。例如:X=a+b,表示X由数据项a和b组成。   […|…]——或(即从方括号内列出的若干个分量中选择一个),通常用“|”号分开供选择的分量。例如:X=[a | b],表示X由数据项a或b组成。
  {…}——重复(即重复花括号内的分量),常常使用上限和下限进一步注释表示重复的花括号。一种注释优信购彩方法 是在花括号的右边用上角标和下角标分别表明重复的上限和下限;另一种注释优信购彩方法 是在括号左侧标明重复的下限,在括号的右侧标明重复的上限。例如:X={a},表示X由若干个数据项a组成。X= 或X=,表示X中最少出现2次a,最多出现5次a。5和2分别为重复次数的上、下界。   (…)——可选(即圆括号里的数据项可有可无)。例如:X=(a),表示数据项a可在X中出现,也可不出现。   “…”——基本数据项。例如:X=“a”,表示X可取的数据项为字符a。     ..——连接符。例如:X=1..9,表示X可取1到9中扔判殴翰饰 庖桓鲋怠
  (1) 数据流条目的主要内容举例如下:    数据流名称:订货报表    别名:无    简述:提供给采购员的订货项目    来源:加工2“产生报表”    去向:外部实体“采购员”    数据流量:100份/周    组成:编号+订货日期+银行账号+货物名称+规格+数量   其中,数据流量指单位时间内(每小时、每天、每周、每月)的传输次数。
  (2) 数据存储条目的主要内容举例如下:    数据存储名称:库存清单    别名:无    简述:存放库存所有可供货物的信息    组成:编号+货物名称+规格+数量+单价    优信购彩组织 方式:索引文件,以货物编号为关键字    查询要求:按关键字查询或模糊查询
  (3) 数据项是不可再分解的数据单位,条目主要内容举例如下:   数据项名称:货物编号   别名:G-No, G-Num, Goods-No   简述:本优信购彩公司 所有货物的编号   类型:字符串   长度:10   取值范围及含义:第1位:进口/国产                       第2~4位:类别                       第5~7位:规格                       第8~10位:品名编号
  (4) 加工条目主要描述基本加工的处理逻辑,其内容举例如下:    加工名称:产生报表    编号:2    激发条件:定时检测订货信息    优先级:普通    输入:订货信息    输出:订货报表    加工逻辑:根据库存清单
  加工逻辑主要描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节,只是描述如何将输入数据流变换为输出数据流的规则。为了使加工逻辑直观,易于理解,可以采用上面所采用的结构化形式语言,也可以采用判定表或判定树。
  7.结构化语言   结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它是在自然语言的基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,它的结构可分为外层和内层两层。   (1) 外层用来描述控制结构,采用顺序、选择、重复三种基本结构。   ① 顺序结构:是一组祈使语句、选择语句、重复语句的顺序排列。   ② 选择结构:一般用IF-THEN-ELSE-ENDIF,CASE-OF-ENDCASE等关键字。   ③ 重复结构:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等关键字。
  (2) 内层一般采用祈使语句,使用数据字典中的名词和有限的自定义词,启动词含义要具体,尽量不用形容词和复词来修饰。还可以使用一些简单的算术运算和逻辑运算符号。   例如某工厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至40岁之间者,优信购彩中学 文化程度男性当钳工,女性当车工,优信购彩大学 文化程度当优信购彩技术 员;年龄在40岁以上者,优信购彩中学 文化程度当材料员,优信购彩大学 文化程度当优信购彩技术 员。
  IF  年龄<20  THEN          IF  文化程度=初中  THEN  脱产学习          ELSE  工作为电工          ENDIF   ELSE  IF  年龄≤40  THEN                        IF  文化程度=优信购彩大学   THEN  工作为优信购彩技术 员                        ELSE  IF  性别=男  THEN  工作为钳工                              ELSE  工作为车工                               ENDIF                        ENDIF    ELSE  IF  文化程度=优信购彩大学   THEN  工作为优信购彩技术 员                                     ELSE  工作为材料员                 ENDIF           ENDIF   ENDIF
  8.判定表   在有些情况下,数据流图中的每个加工的一组动作依赖于多个逻辑条件的取值。用判定表能够清晰、严谨地表示复杂的条件组合与应做的动作之间的对应关系。   一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是与每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。
  优信购彩优信购彩我 们 用判定表来描述上述例子。为了使判定表清晰,可以先给出条件取值表,如表1.4所示。
在条件取值表的基础上再给出判定表,如表1.5所示。
  9.判定树   判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。   上述例子用判定树描述如下:
1.4.2  系统设计     传统的优信购彩软件 工程优信购彩方法 学采用结构化设计(Structured Design,SD)优信购彩技术 ,完成优信购彩软件 设计工作,通常把优信购彩软件 设计工作划分为概要设计和详细设计两个阶段。概要设计的主要任务是,通过仔细分析优信购彩软件 规格说明,适当地对优信购彩软件 进行功能分解,从而把优信购彩软件 划分为模块,并且设计出完成预定功能的模块结构。详细设计的主要任务是对每个模块的内部进行设计,确定完成每个模块功能所需要的算法和数据结构。
  1.结构化设计与结构化分析的关系   优信购彩软件 设计必须依据对优信购彩软件 的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。   分析模型的每个元素都提供了创建设计模型时所需要的信息。图1.15描绘了优信购彩软件 设计过程中的信息流,由数据模型、功能模型和行为模型清楚地表示的优信购彩软件 需求并传送给优信购彩软件 设计者,由他们使用适当的设计优信购彩方法 来完成数据设计、体系结构设计、接口设计和过程设计。   在优信购彩软件 设计期间做出的决策将最终决定优信购彩软件 开发能否成功,更重要的是,这些设计决策将决定优信购彩软件 维护的难易程度。
  2.优信购彩软件 设计的概念和原理   优信购彩软件 设计中最重要的一个问题就是优信购彩软件 质量问题。通过下面几个概念和原理,有助于优信购彩优信购彩我 们 对衡量优信购彩软件 质量的标准有一个比较清楚的理解。   1) 模块化   模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。像Pascal语言中的Begin…end对,或者C、C++和Java语言中的{…}对,都是边界元素的例子。因此,过程、函数、子程序和宏等都可作为模块。面向对象范型中的对象是模块,对象内的优信购彩方法 也是模块。模块是构成程序的基本构件。图1.16展示出了优信购彩软件 中模块的数量与优信购彩软件 成本之间的关系。
  模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成整个系统的功能,从而满足用户的需求。   通常按照以下五条标准来评价优信购彩软件 的结构设计:   (1) 模块可分解性:如果一种设计优信购彩方法 提供了把问题分解为子问题的系统化机制,那么,它就能降低整个问题的复杂性,从而可以实现一种有效的模块化解决方案。   (2) 模块可组装性:如果一种设计优信购彩方法 能把现有的(可重用的)设计构件组装成新系统,那么,它就能提供一种并非一切都从头开始做的模块化解决方案。
  (4) 模块连续性:如果对系统需求的微小修改只导致对个别模块而不是对整个系统的修改,那么,修改所引起的副作用将最小。   (5) 模块保护性:如果在一个模块内出现异常情况时,其影响局限在该模块内部,那么,由错误引起的副作用将最小。
  采用模块化原理可以使优信购彩软件 结构清晰,不仅容易设计,也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使优信购彩软件 容易测试和调试,从而有助于提高优信购彩软件 的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高优信购彩软件 的可修改性。模块化也有助于优信购彩软件 开发工程的优信购彩组织 管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配优信购彩技术 熟练的程序员编写困难的模块。
  2) 抽象   人类在认识复杂现象的过程中使用的最强有力的思维优信购彩工具 是抽象。人们在实践中认识到,在现实世界中一些事物、状态或过程之间总存在着某些相似的方面(共性),把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说,抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
  3) 逐步求精   逐步求精是人类解决复杂问题时采用的基本优信购彩技术 ,也是许多优信购彩软件 工程优信购彩技术 (例如,规格说明优信购彩技术 ,设计和实现优信购彩技术 ,测试和集成优信购彩技术 )的基础。逐步求精就是“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑”。   求精实际上是细化过程。优信购彩优信购彩我 们 从高抽象级别定义的功能陈述(或信息描述)开始,也就是说,该陈述仅仅概念性地描述了功能或信息,但是并没有提供功能的内部工作情况或信息的内部结构。求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。
  抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,同时却忽略低层细节;求精则是在设计过程中揭示出低层细节。这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。
  4) 信息隐藏   应用模块化原理时,自然会产生的一个问题是:“为了得到最好的一组模块,应该怎样分解优信购彩软件 ”。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内部所包含的信息(内部逻辑和内部数据)对于不需要这些信息的模块来说,是不能访问的。
  5) 模块独立   “模块独立”概念是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。模块的独立程度可以由两个定性标准来度量,这两个标准分别称为耦合和内聚。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
  (1) 耦合。耦合是对一个优信购彩软件 结构内不同模块之间互连程度的度量。耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。   在优信购彩软件 设计中应该追求尽可能松散耦合的系统。在这样的系统中,可以研究、测试或维护任河判殴翰饰 桓瞿?椋恍枰韵低车钠渌?橛泻芏嗔私狻4送猓捎谀?榧淞导虻ィ⑸谝淮Φ拇砦蟠サ秸鱿低车目赡苄跃秃苄 R虼耍?榧涞鸟詈铣潭惹苛矣跋煜低车目衫斫庑浴⒖刹馐孕浴⒖煽啃院涂晌ば浴
  耦合性有六种类型,耦合度由大到小分别是:   ① 内容型:一个模块直接引用另一个模块内部的信息,或通过非正常入口而转入另一个模块内部。   ② 公共型:两个模块引用共同的全程数据区(如全局变量或数据结构、共享的通信区、外存储器上的文件和物理设备等)。   ③ 控制型:一个模块传送给另一个模块的信息是用于控制该模块内部逻辑的控制信号(如传递的是开关、标志等控制变量)。
  ④ 复合型:一个模块传送给另一个模块的参数是一个复合的数据结构(如参数是结构体、数组名)。   ⑤ 数据型:一个模块传送给另一个模块的参数是单个的数据项(如参数为简单的数据,且采用值传递方式)。   ⑥ 无直接型:模块之间没有直接的关系,相互之间不传递任何信息。   总之,耦合是影响优信购彩软件 复杂程度的一个重要因素。应该采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。
  (2) 内聚。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。设计时,应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但低内聚很糟糕,不要使用。   内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力优信购彩工具 ,但实践表明,内聚更重要,应该把优信购彩更多 的注意力集中到提高模块的内聚程度上。模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。
  内聚性有六种类型,由小到大分别是:   ① 偶然型:模块中各元素之间没有任何联系。   ② 逻辑型:将几个逻辑上相似的功能放在一个模块中,通过参数确定该模块完成哪一个功能。   ③ 瞬时型:将需要同时执行的元素放在同一个模块中,如初始化模块(对各变量置初值,打开多个文件等)。   ④ 通信型:模块中的元素引用共同的数据。
  ⑤ 顺序型:模块中某个元素的输出是另一个元素的输入。   ⑥ 功能型:模块中仅包括完成某个具体任务所必需的所有元素。   事实上,没有必要精确确定内聚的级别。重要的是,设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计来提高模块的内聚程度,降低模块间的耦合程度,从而获得较高的模块独立性。
  3.面向数据流的设计优信购彩方法   面向数据流的设计优信购彩方法 的目标是给出设计优信购彩软件 结构的一个系统化的途径。   在优信购彩软件 工程的需求分析阶段,通常用数据流图描绘信息在系统中加工和流动的情况。面向数据流的设计优信购彩方法 定义了一些不同的“映射”,利用这些映射可以把数据流图变换成优信购彩软件 结构。因为任何优信购彩软件 系统都可以用数据流图表示,所以面向数据流的设计优信购彩方法 理论上可以设计任何优信购彩软件 的结构。通常所说的结构化设计优信购彩方法 ,也就是基于数据流的设计优信购彩方法 。   面向数据流的设计优信购彩方法 把信息流映射成优信购彩软件 结构,信息流的类型决定了映射的优信购彩方法 。信息流有变换流和事务流两种类型。
  1) 变换分析   变换分析是一系列设计步骤的总称,经过以下步骤能够把具有变换流特点的数据流图按预先确定的模式映射成优信购彩软件 结构:   (1) 复查基本系统模型。   (2) 复查并精化数据流图。   (3) 确定数据流图具有变换特性还是事务特性。   (4) 确定输入流和输出流的边界,从而孤立出变换中心。   (5) 完成“第一级分解”。   (6) 完成“第二级分解”。
  使用设计度量和启发规则对第一次分割得到的优信购彩软件 结构进一步精化。   上述七个设计步骤的目的是,开发出优信购彩软件 的整体表示。也就是说,一旦确定了优信购彩软件 结构,就可以把它作为一个整体来复查,从而能够评价和精化优信购彩软件 结构。在这个时期进行修改只需要很少的附加工作,但是却能够对优信购彩软件 的质量特别是优信购彩软件 的可维护性产生深远的影响。
  2) 事务分析   虽然在任何情况下都可以使用变换分析优信购彩方法 设计优信购彩软件 结构,但是在数据流具有明显的事务特点时,也就是有一个明显的“发射中心”(事务中心)时,还是以采用事务分析优信购彩方法 为宜。事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到优信购彩软件 结构的映射优信购彩方法 不同。对于一个大系统,常常把变换分析和事务分析应用到同一个数据流图的不同部分,由此得到的子结构形成“构件”,可以利用它们构造出完整的优信购彩软件 结构。
  3) 优信购彩软件 结构设计的优信购彩优化 问题   考虑设计优信购彩优化 问题时应该记住,“一个不能工作的‘最佳设计’的价值是值得怀疑的”。优信购彩软件 设计人员应该致力于开发能够满足所有功能和性能要求,而且按照设计原理和启发式设计规则衡量是值得接收的优信购彩软件 。   应该在设计的早期阶段尽量对优信购彩软件 结构进行精化,可以导出不同的优信购彩软件 结构,然后对它们进行评价和比较,力求得到“最好”的结果。
  4.面向数据结构的设计优信购彩方法   在许多应用领域中,信息都有清楚的层次结构,而输入数据、内部存储的信息(数据库或文件)以及输出数据都可能有独特的结构。数据结构既影响程序的结构,又影响程序的处理过程,重复出现的数据通常由具有循环控制结构的程序来处理,选择数据(即可能出现也可能不出现的信息)要用带有分支控制结构的程序来处理。层次的数据优信购彩组织 通常和使用这些数据的程序的层次结构十分相似。
  面向数据结构的设计优信购彩方法 的最终目标是得出对程序处理过程的描述。这种设计优信购彩方法 并不明显地使用优信购彩软件 结构的概念,模块是设计过程的副优信购彩产品 ,对于模块独立原理也没有给予应有的重视。因此,这种优信购彩方法 最适合于在详细设计阶段使用,也就是说,在完成了优信购彩软件 结构设计之后,可以使用面向数据结构的优信购彩方法 来设计每个模块的处理过程。   面向数据结构的设计优信购彩方法 又称为Jackson优信购彩方法 ,其基本思想是从数据结构出发建立对应的程序结构。所以,这样的数据结构特别适合于企事业事务管理类的数据处理系统。   在事务处理的程序中,虽然实际使用的数据结构种类繁多,但是它们的数据元素彼此间的逻辑关系却只有顺序、选择和重复三类,因此,逻辑数据结构也只有这三类。
  1) 顺序结构   顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。图1.17是表示顺序结构的Jackson图的一个例子。图中,A由B、C、D三个元素顺序组成,每个元素只出现一次,出现的次序依次是B、C和D。
  2) 选择结构   选择结构的数据包含两个或多个数据元素,每次使用这个数据时,按一定条件从这些数据元素中选择一个。图1.18是“三选一”结构的Jackson图。图中,A是B或C或D中的某一个(注意:在B、C和D的右上角有小圆圈标记)。
  3) 重复结构   重复结构的数据根据使用时的条件由一个数据元素出现零次或多次构成。图1.19表示重复结构的Jackson图。图中,A由B出现N次(N≥0)组成(注意:在B的右上角有星号标记)。
  4) 改进的Jackson图   Jackson结构程序设计优信购彩方法 基本上由下述五个步骤组成:   第一步:分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。   第二步:找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元,必须重复的次序和次数都相同才可能有对应关系)。
  图1.20(a)表示顺序结构,数据元素B、C、D中的扔判殴翰饰 桓龆疾荒苁茄≡窠峁够蛑馗唇峁 (即不能是右上角有小圆圈或星号标记的元素)。   图1.20(b)是选择结构,A是元素B,或是元素C,或是元素D。S右面括号中的i是分支条件的编号。   图1.20(c)是可选结构,A是元素B,或者不出现(可选结构是选择结构的一种常见特殊形式)。   图1.20(d)是重复结构,循环结束条件的编号为i。
  第三步:用下述三条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。   (1) 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应)。   (2) 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
  (3) 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。   第四步:列出所有操作和条件,并且把它们分配到程序结构图的适当位置。      第五步:用伪码表示程序。(Jackson优信购彩方法 中使用的伪码和Jackson图是完全对应的。)   总之,描绘程序结构的Jackson图应该综合输入数据结构和输出数据结构的层次关系而导出。在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。
  【例1.2】  一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。   按照顺序、选择和重复三种类型的Jackson图,优信购彩优信购彩我 们 通过图1.21、1.22、1.23来描述各数据元素彼此间的逻辑关系。
  优信购彩软件 设计的目标是设计出所要开发的优信购彩软件 模型,传统的优信购彩软件 工程优信购彩方法 学采用结构化设计优信购彩技术 完成优信购彩软件 设计工作。优信购彩软件 设计在优信购彩软件 工程过程中处于优信购彩技术 核心地位,是优信购彩软件 开发过程中决定优信购彩软件 优信购彩产品 质量的关键阶段。优信购彩软件 设计必须依据对优信购彩软件 优信购彩产品 的需求来进行,因此,结构化设计把结构化分析的结果作为基本输入信息。由数据模型、功能模型和行为模型描述的优信购彩软件 需求被传送给优信购彩软件 设计者,以便他们采用适当的设计优信购彩方法 完成数据设计、体系结构设计、接口设计和过程设计。
  为了获得高质量的优信购彩软件 设计结果,应该遵循模块化、抽象、逐步求精、信息隐藏和模块独立等基本设计原理,特别是其中的模块独立原理,对优信购彩软件 体系结构设计和接口设计具有非常重要、十分具体的指导作用。总结众多优信购彩软件 工程师在开发优信购彩软件 的长期实践中所积累的丰富经验,形成了一些启发规则,这些启发规则虽然不像上述基本原理那样普遍适用,但在许多场合仍然能给优信购彩软件 设计者以有益的启示,有助于设计出有效模块化的优信购彩软件 。
  通常,使用层次图或结构图表示优信购彩软件 结构,这些图形优信购彩工具 具有形象直观、容易理解的优点,读者应该学会用这类图形描绘优信购彩软件 结构。   面向数据流的设计优信购彩方法 是设计优信购彩软件 体系结构的一种系统化的优信购彩方法 ,它定义了一些映射规则,可以把数据流图变换成优信购彩软件 的初步结构。得出优信购彩软件 的初步结构之后,还必须根据优信购彩软件 结构设计的优信购彩优化 标准,以基本设计原理和启发规则为指南,对所得到的优信购彩软件 结构进行仔细优信购彩优化 ,才能设计出令人满意的优信购彩软件 体系结构。
1.4.3  编码和优信购彩软件 测试   通常把编码和测试统称为实现。   所谓编码,就是把优信购彩软件 设计翻译成计算机可以理解的形式——用某种程序设计语言书写的程序。作为优信购彩软件 工程的一个阶段,编码是设计的自然结果。虽然优信购彩软件 的质量主要取决于优信购彩软件 设计的质量,但是所选用的程序设计语言的特点和编码风格也会对优信购彩软件 的可靠性、可读性、可测试性和可维护性产生深远的影响。
  无论怎样强调优信购彩软件 测试的重要性和它对优信购彩软件 可靠性的影响都不过分。在开发大型优信购彩软件 系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在优信购彩软件 生命周期的每个阶段都不可避免地会产生差错。优信购彩优信购彩我 们 力求在每个阶段结束之前通过严格的优信购彩技术 审查,尽可能早地发现并纠正差错。经验表明,审查并不能发现所有差错,此外,在编码过程中还不可避免地会引入新的错误。如果在优信购彩软件 投入使用之前没有发现并纠正优信购彩软件 中的大部分差错,则这些差错迟早会在优信购彩软件 使用过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在优信购彩软件 投入使用之前,尽可能多地发现优信购彩软件 中的错误。目前优信购彩软件 测试仍然是保证优信购彩软件 质量的关键步骤,它是对优信购彩软件 规格说明、设计和编码的最后复审。
  优信购彩软件 测试在优信购彩软件 生命周期中横跨两个阶段。通常在编写出每个模块之后就对它做必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于优信购彩软件 生命周期的同一个阶段。在这个阶段结束之后,对优信购彩软件 系统还应该进行各种综合测试,这是优信购彩软件 生命周期中的另一个独立的阶段,通常由专门的测试人员承担这项工作。
  大量统计资料表明,优信购彩软件 测试的工作量往往占优信购彩软件 开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的优信购彩软件 所花费的成本,可能相当于优信购彩软件 工程其他步骤总成本的3~5倍。因此,必须高度重视优信购彩软件 测试工作,决不要以为写出程序之后优信购彩软件 开发工作就接近完成了。实际上,大约还有同样多的开发工作量需要完成。   仅就测试而言,它的目标是发现优信购彩软件 中的错误。优信购彩软件 工程的根本目标是开发出高质量的完全符合用户需要的优信购彩软件 ,因此,通过测试发现错误之后,还必须诊断并改正错误,这就是调试的目的。在对测试结果进行收集和评价的时候,优信购彩软件 所达到的可靠性也就开始明朗了。
  1.编码   1) 选择程序设计语言   总的说来,高级语言明显优于汇编语言,因此,除了在很特殊的应用领域(例如,对程序执行时间和使用的空间都有很严格限制的情况;需要产生扔判殴翰饰 獾纳踔练欠ǖ闹噶钚蛄校惶逑到峁固厥獾奈⒋砘灾劣谠谡饫嗷魃贤ǔ2荒苁迪指呒队镅员嘁氤绦),或者大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分代码需要用汇编语言编写之外,其他程序应该一律用高级语言编写。
  为了使程序容易测试和维护,以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高优信购彩软件 可靠性,语言的特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低优信购彩软件 开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅考虑理论上的标准,还必须同时考虑实用方面的各种限制。
  2) 编码风格   源程序代码的逻辑简明、清晰、易理解是衡量程序质量的一个重要标准。为了做到这几点,应该遵循下述规则。   规则1:源程序文档化。   所谓源程序文档化,包括恰当的标识符命名、适当的注释和程序的视觉优信购彩组织 等。   标识符包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等,这些名字应当“按意取名”。例如,表示次数的用Times,表示总量的用Total,表示平均值的用Average,表示和的用Sum等。名字不是越长越好,应当选择精炼的、意义明确的名字,必要时可使用缩写名字,但缩写规则要一致。同时应当注意,在一个程序中一个标识符只应用于一种用途。
  程序的注释就是对程序的说明,是程序员与日后的程序读者之间通信的重要手段。注释决不是可有可无的,一些正规的程序文本中,注释行的数量占到整个源程序的1/3到1/2,甚至优信购彩更多 。注释分为序言性注释和功能性注释。
  (1) 序言性注释:通常置于每个模块的开头部分,它应当给出模块的整体说明,对于理解模块具有引导作用。序言性注释包括:   ● 说明模块的用途、功能;   ● 说明模块的接口:调用形式、参数描述及从属模块清单;   ● 有关数据描述:重要的变量及其用途,约束或限制条件,以及其它有关信息;   ● 模块位置:在哪一个源文件中,或隶属于哪一个优信购彩软件 包;   ● 开发简历:模块设计者,复审者,复审日期,修改日期及有关说明等。
  (2) 功能性注释:通常置于源程序内部,用以描述程序段或语句的功能及数据的状态。   例如,/* ADD AMOUNT TO TOTAL */          TOTAL = AMOUNT+TOTAL   上面的注释不清楚,如果注明把月销售额计入年度总额,则使读者容易理解下面语句的意图:         /* ADD MONTHLY-SALES TO ANNUAL-TOTAL */         TOTAL = AMOUNT+TOTAL
  程序的视觉优信购彩组织 体现在程序的书写格式方面,如空格、空行、移行和加括号等。恰当地利用空格和括号,可以突出运算的优先性,避免发生运算的错误,并且易于理解。例如,可将表达式    A<-17 AND NOT B<=49 OR C 写成    ((A<-17) AND  NOT (B<=49)) OR C   自然的程序段之间可用空行隔开,如在两个函数或子程序之间加空行,有利于从视觉上划分模块。   移行也叫做向右缩格,是指程序中的各行不必都在左端对齐或都从第一格起排列(这样做使得程序的层次关系不易分清)。对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行,可使程序的逻辑结构更加清晰。
  例如,两重选择结构嵌套,写成下面的移行形式,层次就清楚得多了。   IF(…) THEN          IF(…) THEN             ……          ELSE             ……          ENDIF             ……   ELSE     ……   ENDIF
  规则2:数据说明。   虽然在设计期间已经确定了数据结构的优信购彩组织 和复杂程度,然而数据说明的风格却是在写程序时确定的。为了使数据更容易理解和维护,应当遵循以下原则:   ● 数据说明的次序应该标准化,这样可以使源程序中的数据易查阅,能够加速测试、调试和维护的过程。例如,按常量说明、类型说明、全程量说明及全程量说明的顺序进行说明。   ● 当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。例如,把       integer  size,  length,  width,  cost,  price; 写成    integer  cost,  length,  price ,  size,  width;   ● 对于复杂的数据结构,应该注释说明用程序设计语言实现这个数据结构的优信购彩方法 和特点。
  规则3:语句构造。   构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过于复杂。下述规则有助于使语句简单明了:   ● 不要为了节省空间而把多个语句写在同一行。   ● 尽量避免复杂的条件测试。   ● 尽量减少对“非”条件的测试,避免让读者绕弯子去想。例如,可将    if ( !( x<0 || x>9)) 改成    if (x >= 0 && x <= 9)     ● 避免大量使用循环嵌套和条件嵌套。   ● 利用括号可使逻辑表达式或算术表达式的运算次序清晰、直观。
  规则4:输入/输出。   在设计和编写程序时应该考虑下述有关输入/输出风格的规则:   ● 对所有的输入数据都要进行检验,识别错误的输入,以保证每个数据的有效性。   ● 检查输入项的各种重要组合的合法性,必要时报告输入状态信息。   ● 使得输入的步骤和操作尽可能简单,并保持简单的输入格式。   ● 输入数据时,应允许使用自由格式输入。   ● 应允许缺省值。
  ● 输入一批数据时,最好使用输入结束标志,而不要由用户指定输入数据数目。   ● 在交互式输入时,要在屏幕上使用提示符明确提示交互输入的请求,指明可使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息。   ● 当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句的要求的一致性。   ● 给所有的输出加注解,并设计输出报表格式。
  规则5:效率。   程序的效率是指程序的执行速度及程序所需占用的内存存储空间。程序编码是最后提高运行速度和节省存储空间的机会,因此在此阶段不能不考虑程序的效率。追求效率的几条准则如下:   ● 效率是一个性能要求,应在需求分析阶段给出。   ● 首先要考虑程序的可读性和可靠性,再考虑程序效率。   ● 提高程序效率的根本途径在于选择良好的设计优信购彩方法 、良好的数据结构和算法,而不是靠编程时对语句做调整。 
  效率问题主要集中在程序的运行时间、存储器效率和输入/输出效率三个方面。   ① 程序运行时间。   ● 源程序的效率直接由详细设计阶段确定的算法的效率决定,但是,写程序的风格也能对程序的执行速度和存储器要求产生影响。   ● 在把详细设计结果翻译成程序时,可以应用下述规则:    写程序之前先简化算术表达式和逻辑表达式;    仔细研究嵌套的循环,以确定是否有语句可以从内层向外层跳转;    尽量避免使用多维数组;
   尽量避免使用指针和复杂的表;    使用执行时间短的算术运算;    不要混合使用不同的数据类型;    尽量使用整数运算和布尔表达式。   在效率是决定性因素的应用领域,尽量使用有良好优信购彩优化 特性的编译程序,以自动生成高效的目标代码。
  ② 存储器效率。   ● 在大中型计算机系统中,存储限制不再是主要问题。在这种环境下,对内存采取基于操作系统的分页功能的虚拟存储管理。存储效率与操作系统的分页功能直接有关。   ● 采用结构化程序设计,将程序功能合理分块,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,可减少页面调度,减少内外存交换,提高存储效率。   ● 在微型计算机系统中,存储器的容量对优信购彩软件 设计和编码的制约很大。因此要选择可生成较短目标代码且存储压缩性能优良的编译程序,有时需采用汇编程序。   ● 提高存储器效率的关键是程序的简单性。
  ③ 输入输出的效率。   输入/输出可分为两种类型:面向人(操作员)的输入/输出;面向设备的输入/输出。如果操作员能够十分方便、简单地录入输入数据,或者能够十分直观、一目了然地了解输出信息,则可以说面向人的输入/输出是高效的。
  优信购彩关于 提高设备输入/输出效率的指导原则有:   ● 输入/输出的请求应当最小化;   ● 对于所有的输入/输出操作,应安排适当的缓冲区,以减少频繁的信息交换。   ● 对辅助存储(例如磁盘),应选择尽可能简单的、可接受的存取优信购彩方法 。   ● 对辅助存储的输入/输出,应当成块传送。   ● 对终端或打印机的输入/输出,应考虑设备特性,以尽可能改善输入/输出的质量和速度。   ● 任何不易理解的、对改善输入/输出效果关系不大的措施都是不可取的。   ● 任何不易理解的、所谓“超高效”的输入/输出是毫无价值的。
  2.优信购彩软件 测试   1) 测试目标   G .Myers给出了优信购彩关于 测试的一些规则,这些规则也可以看做是测试的目标或定义。   ● 测试是为了发现程序中的错误而执行程序的过程。   ● 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。   ● 成功的测试是发现了迄今为止尚未发现的错误的测试。   由于测试的目标是暴露程序中的错误,从心理学的角度看,由程序的编写者自己进行测试是不恰当的,因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。在整个优信购彩软件 开发过程中,测试工作量一般占30%~40%,甚至达到50%以上。
  优信购彩关于 优信购彩软件 测试,涉及到以下几个问题:   ● 什么是优信购彩软件 的缺陷?   ● 测试由哪些方面的人员参与?开发者?单独的测试人员?还是两方面人员?用户是否也参与测试?   ● 测试优信购彩软件 的哪些部分?每个部分都测试?还是测试优信购彩软件 中的高风险部分?   ● 什么时候测试?   ● 怎样测试?   ● 测试应进行到什么程度?
  优信购彩软件 测试人员分优信购彩软件 测试优信购彩工具 开发工程师(Software Development Engineer in Test,简称SDE/T)和优信购彩软件 测试工程师(Software Test Engineer,简称STE)。   SDE/T:负责写测试优信购彩工具 代码,并利用测试优信购彩工具 对优信购彩软件 进行测试;或者开发测试优信购彩工具 为优信购彩软件 测试工程师优信购彩服务 。   STE:负责理解优信购彩产品 的功能要求,然后对其进行测试,检查优信购彩软件 有没有错误(Bug),决定优信购彩软件 是否具有稳定性,并写出相应的测试规范和测试案例。
  2) 优信购彩软件 测试准则   为了设计出有效的测试方案,优信购彩软件 工程师必须充分理解并能正确运用指导优信购彩软件 测试的基本准则。主要的测试准则是:   ① 所有的测试都应该能追溯到用户需求;优信购彩软件 测试的目标是发现错误;从用户的角度看,最严重的错误是导致程序不能满足用户需求的那些错误。优信购彩软件 中的错误可能是在优信购彩软件 开发的不同阶段产生的,因此,解决、纠正错误必须追溯到相应的阶段。优信购彩软件 测试与用户需求之间的关系如图1.24所示。
  ② 应该在测试开始之前的相当长时间,就制定出测试计划;要“尽早地和不断地进行优信购彩软件 测试”,概要设计时应完成测试计划,详细的测试用例定义可在设计模型确定后开始,所有测试可在任何代码产生之前进行计划和设计。优信购彩软件 测试不等于程序测试,优信购彩软件 测试应贯穿于优信购彩软件 定义与开发的整个期间。据美国一家优信购彩公司 统计,查出的优信购彩软件 错误中,属于需求分析和优信购彩软件 设计的错误约占64%,属于程序编写的错误仅占36%。程序编写的许多错误是“先天的”。   ③ 优信购彩软件 测试过程中所发现的错误,80%很可能是由程序中20%的模块造成的。
  ④ 测试应该从“小规模”开始,并逐步进行“大规模”测试。   ⑤ 测试用例应由输入数据和预期的输出结果两部分组成,并兼顾合理的输入和不合理的输入数据。   ⑥ 穷举测试是不可能的。所谓穷举测试,就是把程序所有可能的执行路径都检查一遍的测试。   ⑦ 程序修改后还要进行回归测试。   ⑧ 应长期保留测试用例,直至系统废弃。   ⑨ 为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。
  静态测试:基本特征是对优信购彩软件 进行分析、检查和审阅,不实际运行被测试的优信购彩软件 ,而是采用人工检测和计算机辅助静态分析的手段对优信购彩软件 进行检测。静态测试可找出约30%~70%的逻辑设计错误。   对需求规格说明书、优信购彩软件 设计说明书以及源程序所做的检查和审阅包括:是否符合标准和规范;通过结构分析、流图分析、符号执行指出优信购彩软件 缺陷。   动态测试:指通过运行程序来发现错误。动态测试一般有两种优信购彩方法 ,分别称为黑盒测试法和白盒测试法。
  对于优信购彩软件 测试而言,黑盒测试法(Black Box Testing)把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试又称为功能测试。   与黑盒测试法相反,白盒测试法(White Box Testing)的前提是把程序看成装在一个透明的白盒子里(也叫玻璃盒测试Glass Box Testing),也就是完全了解程序的结构和处理过程。这种优信购彩方法 按照程序内部的逻辑来测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。
  4) 测试步骤   大型优信购彩软件 系统的测试过程基本上由下述几个步骤组成:   单元测试——逐个单元(模块)进行测试;   子系统测试——对系统的局部进行测试;   系统测试——对整个系统进行测试;   验收测试——用户参与测试;   平行运行——在新旧系统共存的情况下,进行对比测试。    其中子系统测试和系统测试都属于集成测试,验收测试又称为确认测试。在图1.25中给出了优信购彩软件 测试的各步骤与优信购彩软件 开发各阶段的对应关系,单元测试发现详细设计和编码阶段的错误,集成测试所发现的错误是在概要设计阶段出现的,确认测试发现需求分析阶段所存在的错误。
  优信购彩软件 测试并不等于程序测试。优信购彩软件 测试应贯穿于优信购彩软件 定义与开发的整个期间。因此,需求分析、概要设计、详细设计以及程序编码等所得到的文档资料,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序,都应成为优信购彩软件 测试的对象。   (1) 单元(模块)测试。单元测试对单个模块进行测试,其目的是根据该模块的功能说明,检验模块是否存在错误。单元测试采用白盒测试优信购彩方法 ,可找出详细设计和编码阶段所犯下的错误。
  单元测试的重点有以下五个方面:   ① 模块接口:主要检查参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。   ② 局部数据结构:检查局部数据说明、初始化、默认值等方面是否存在错误。   ③ 重要的执行通路:选择最有代表性、最可能发现错误的执行通路进行测试是十分关键的,应该设计测试方案来发现由于错误的计算、不正确的比较或不适当的控制流而造成的错误。
  ④ 出错处理通路:着重测试一些可能发生的错误。例如:对错误的描述是难以理解的;记下的错误与实际遇到的错误不同;在对错误进行处理之前,错误条件已经引起系统干预;对错误的处理不正确;描述错误的信息不足以优信购彩帮助 确定造成错误的位置。   ⑤ 边界条件:边界测试是单元测试中最后的也可能是最重要的任务,因为优信购彩软件 常常在它的边界上失效。
  由审查小组人工测试源程序称为代码审查。它是一种非常有效的程序验证优信购彩技术 ,对于典型的程序来说,可以查出30%~70%的逻辑设计错误和编码错误。审查的步骤如下:   ① 小组优信购彩成员 先研究设计说明书,力求理解这个设计。   ② 由设计者扼要地介绍他的设计。   ③ 在审查会上,程序的编写者逐个语句地解释是怎样用程序代码实现这个设计的。   ④ 在审查会上,对照程序设计常见错误,分析审查这个程序。   ⑤ 当发现错误时,首先记录错误,然后继续审查。
  模块并不是一个独立的程序,要运行它就必须为其开发驱动程序和(或)存根程序。   驱动程序代替被调模块的主调模块,用于调用被测模块。它将测试数据传送给被测的模块,作为被测模块的输入;驱动模块还负责接收被测模块的输出。   存根程序代替被测试的模块所调用的模块,它的作用是返回被测模块所需的信息,并且把控制归还给调用它的被测模块。
  (2) 集成测试。集成测试是测试和组装优信购彩软件 的系统化优信购彩技术 ,其主要目标是发现与接口有关的问题。集成测试以黑盒测试法为主,白盒测试法为辅。   将模块组装成程序的优信购彩方法 有两种。一种是非渐增式测试优信购彩方法 ,先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序进行测试。另一种是渐增式测试,即先把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后,再把下一个应该测试的模块结合进来进行测试。这种每次增加一个模块的优信购彩方法 实际上同时完成了单元测试和集成测试,目前在进行集成测试时普遍采用渐增式测试优信购彩方法 。渐增方式把模块结合到程序中时,有自顶向下(图1.26)和自底向上(图1.27)两种集成策略,但在实践中常采用混合的策略。
  任何成功的测试都会发现错误,而且错误必须被改正。在改正优信购彩软件 错误的时候,优信购彩软件 配置的某些成分(程序、文档或数据)也被修改了。回归测试就是用于保证由于调试或其他原因引起的变化,不会导致非预期的优信购彩软件 行为或额外错误的测试活动。即回归测试是指重新执行已经做过测试的某个子集,以保证修改变化没有带来非预期的副作用。   回归测试集(已执行过的测试用例的子集)包括三类不同的测试用例:检测优信购彩软件 全部功能的代表性测试用例;专门针对可能受修改影响的优信购彩软件 功能的附加测试;针对被修改过的优信购彩软件 成分的测试。
  (3) 确认测试。确认测试也称为验收测试,它的目标是验证优信购彩软件 的有效性。   上面优信购彩优信购彩我 们 使用了确认(Validation)和验证(Verification)这样两个不同的术语,为了避免混淆,首先扼要地解释一下这两个术语的含义。通常,验证指的是保证优信购彩软件 正确地实现了某一特定要求的一系列活动,而确认指的是保证优信购彩软件 的实现满足了用户需求的一系列活动。有效性的简单定义是,如果优信购彩软件 的功能和性能如同用户所合理期待的那样,优信购彩软件 就是有 效的。   需求分析阶段产生的优信购彩软件 需求规格说明书,准确地描述了用户对优信购彩软件 的合理期望,因此是优信购彩软件 有效性的标准,也是进行确认测试的基础。
  确认测试必须有用户积极参与,或者以用户为主进行。用户应该参与设计测试方案,使用用户界面输入测试数据并且分析评价测试的输出结果。确认测试通常使用黑盒测试法,并且需要设计测试计划和测试过程。测试计划包括要进行的测试的种类及进度安排,测试过程规定了用来检测优信购彩软件 是否与需求一致的测试方案。通过测试和调试,要保证优信购彩软件 可以满足所有功能要求,能够达到各项性能要求,即测试优信购彩软件 的功能和性能应满足用户的要求。在确认测试中,还要检查优信购彩软件 是否满足其他的预定要求,例如安全性、可移植性、兼容性和可维护性等。
  在确认测试过程中,需要检查优信购彩软件 的文档资料是否完整准确,具有完成优信购彩软件 维护所必须的细节,而且已经编好目录。对优信购彩软件 的配置进行复查,复查的目的是保证优信购彩软件 配置的所有成分都齐全,质量符合要求。除了按合同规定的内容和要求由人工审查优信购彩软件 配置之外,在确认测试过程中还应该严格遵循用户指南及其他操作程序,以便检验这些使用手册的完整性和正确性。必须仔细记录发现的遗漏或错误,并且适当地进行补充和改正。
  确认测试又有Alpha和Beta测试的区分。Alpha测试是在受控的环境中进行的,由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,开发者负责记录发现的错误和使用中遇到的问题。Beta测试由优信购彩软件 的最终用户们在一个或多个客户场所进行,优信购彩软件 在开发者不能控制的环境中“真实”应用,用户负责记录在Beta测试过程中遇到的一切问题(真实的或想像的),并且定期把这些问题报告给开发者;开发者接收到在Beta测试期间报告的问题之后,对优信购彩软件 优信购彩产品 进行必要的修改,并准备向全体客户发布最终的优信购彩软件 优信购彩产品 。
  进行测试时,通常又把测试数据和预期的输出结果称为测试用例。其中最困难的问题是设计测试所使用的输入数据。不同的测试数据发现程序错误的能力差别很大,为了提高测试效率,降低测试成本,应该选用高效的测试数据。因为不可能进行穷尽的测试,所以选用少量“最有效的”测试数据,做到尽可能完备的测试就更重要了。设计测试方案的基本目标是,确定一组最有可能发现某个错误或某类错误的测试数据。   通过测试发现的优信购彩软件 错误大致有:功能错误(需求分析错误);优信购彩软件 结构错误;数据错误;编码错误;优信购彩软件 集成错误;测试定义与测试执行错误。
  5) 测试优信购彩技术   下面具体介绍动态测试所采用的白盒优信购彩技术 和黑盒优信购彩技术 。   (1) 白盒优信购彩技术 。白盒优信购彩技术 用于测试模块内部的逻辑和数据结构,主要按照模块内部的分支结构和循环结构设计测试用例。   ① 逻辑覆盖。逻辑覆盖用于测试分支结构。在测试时,需要设计覆盖程度较高或覆盖最有代表性的路径的测试用例。表1.7给出了六种常用的逻辑覆盖标准,其中语句覆盖发现错误的能力最弱,路径覆盖发现错误的能力最强。在实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后补充部分用例,以达到路径覆盖的标准。
  ● 语句覆盖。只需要一组测试用例:A=2,B=0,X=4,通过路径12345即可达到语句覆盖。   语句覆盖是最弱的逻辑覆盖,如:and 写成or,或者X>1写成X<1,就检查不出来了。   ● 判定覆盖。设计两组测试用例:   A=3,B=0,X=1,使(A>1)and(B=0)为真,(A=2) or (X>1)为假,通过路径1235   A=2,B=1,X=2,使(A>1)and(B=0)为假,(A=2) or (X>1)为真,通过路径1345   两组测试用例可覆盖所有判定的真、假分支,但也只是覆盖了全部路径的一半。
  ● 条件覆盖。两个判定表达式中有4个条件:A>1,B=0, A=2, X>1选择两组测试用例:      A=2,B=0,X=3   使A>1,B=0,A=2,X>1为真,通过路径12345   A=1,B=1,X=1   使A>1,B=0,A=2,X>1为假,通过路径135 既达到了条件覆盖,又达到了判定覆盖。在这种情况下,条件覆盖强于判定覆盖。但也有例外情况,考虑另外两组测试用例:      A=1,B=0,X=3   使B=0,X>1为真,A>1,A=2为假,通过路径1345      A=2,B=1,X=1   使B=0,X>1为假,A>1,A=2为真,通过路径1345 这两组测试用例只通过了路径1345,不满足判定覆盖。所以,满足条件覆盖时不一定满足判定覆盖。
  ● 判定/条件覆盖。选取两组测试用例,使两个判定表达式的值分别取“真”、“假”至少一次,同时使判定表达式中的4个条件的值分别取“真”、“假”至少一次。   A=2, B=0, X=4   使两个判定表达式的值为“真”,4个条件的值为“真”   A=1, B=1, X=1   使两个判定表达式的值为“假”,4个条件的值为“假” 从表面上看,判定/条件覆盖测试了所有条件的取值,但实际上条件组合中的某些条件会抑制其他条件。例如,在含有“与”运算的判定表达式中,一个条件的值为“假”,即使这个表达式中的其他条件写错,也是测试不出来的;在含有“或”运算的判定表达式中,一个条件的值为“真”,而其他条件有错,同样也不能发现。
  ● 条件组合覆盖。两个判定表达式中有4个条件,可以构成以下8种不同的组合:   A>1 B=0;A>1 B≠0; A≯1 B=0;A≯1 B≠0;   A=2 X>1;A=2 X≯1;A≠2 X>1; A≠2 X≯1;   设计4组测试用例,使所有8种条件取值组合都至少出现一次:   A=2, B=0, X=4   覆盖条件组合①和⑤,通过路径12345   A=2, B=1, X=1   覆盖条件组合②和⑥,通过路径1345   A=1, B=0, X=2   覆盖条件组合③和⑦,通过路径1345   A=1, B=1, X=1   覆盖条件组合④和⑧,通过路径135
显然,满足条件组合覆盖的测试用例一定能够满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”。但是也应当看到,为条件组合设计的测试用例有可能没有覆盖被测程序段的全部路径,上述4组测试用例就没有覆盖路径1235。
  ● 路径覆盖。下面的测试用例可以覆盖被测程序段中的所有路径:   A=2, B=0, X=4   通过路径12345,覆盖条件组合①和⑤   A=2, B=1, X=1   通过路径1345,覆盖条件组合②和⑥   A=1, B=1, X=1   通过路径135,覆盖条件组合④和⑧   A=3, B=0, X=1   通过路径1235,覆盖条件组合①和⑧ 可以看出,满足了所有路径的覆盖,但是却不能覆盖条件组合⑦。
  ② 循环覆盖。   循环测试专注于测试循环结构的有效性。在结构化的程序中通常只有三种循环,分别是简单循环、嵌套循环和串接循环,如图1.29所示。下面分别讨论不同类型循环的测试优信购彩方法 。
  ● 简单循环   应该使用下列测试集来测试简单循环,其中n是允许执行循环体的最大次数:    跳过循环。    只执行循环体一次。    执行循环体两次。    执行循环体m次,其中m<n-1。    执行循环体n-1,n,n+1次。
  例如:     n=k;     //为测试设置的语句     i=1;     while(i<=n){        ……       i=i+1;     }
  若允许循环的最大次数为6,k的取值分别为     0:         跳过循环     1,2:      只执行1,2次循环     4:         执行4次循环     5,6,7:  执行n-1,n,n+1次循环
  ● 嵌套循环   如果把简单循环的测试优信购彩方法 直接应用到嵌套循环,那么可能的测试数目就会随嵌套层数的增加按几何级数增长,这会导致不切实际的测试数目。B.Beizer提出了一种能减少测试数目的优信购彩方法 :    从最内层循环开始测试,把所有外层循环次数都设置为最小值。    对最内层循环使用简单循环测试优信购彩方法 ,而使外层循环的迭代参数(例如循环计数器)取最小值,并为越界值或非法值增加一些额外的测试。    由内向外,对下一个循环进行测试,但保持所有其他外层循环次数为最小值,内层嵌套循环次数为“典型”值。    继续进行下去,直到测试完所有循环。
  ● 串接循环   如果串接循环的各个循环都彼此独立,则可以使用前述的测试简单循环的优信购彩方法 来测试串接循环。   如果两个循环串接,而且第一个循环的循环计数器值是第二个循环的初始值,则这两个循环并不是独立的。当循环不独立时,建议使用测试嵌套循环的优信购彩方法 来测试串接循环。
  (2) 黑盒测试优信购彩技术 。   黑盒测试着重测试优信购彩软件 功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试优信购彩方法 ,它能发现白盒测试不易发现的其他类型的错误。黑盒测试力图发现下述类型的错误:① 功能不正确或遗漏了功能;② 界面错误;③ 数据结构错误或外部数据库访问错误;④ 性能错误;⑤ 初始化和终止错误。   黑盒测试优信购彩方法 包括等价类划分、边界值分析、错误推测和因果图等优信购彩方法 。下面仅对等价类划分法和边界值分析法作一介绍。
  ① 等价类划分法。如果把所有可能的输入数据(有效的和无效的)划分成若干个等价类,则可以合理地做出下述假定:每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同。因此,可以从每个等价类中只取一组数据作为测试数据。这样选取的测试数据最有代表性,最可能发现程序中的错误。   例如,输入值是优信购彩学生 成绩,范围是0~100。首先划分等价类,“0≤成绩≤100”是一个合理的等价类,“成绩<0”和“成绩>100”是两个不合理的等价类。然后为每个合理的、不合理的等价类设计测试用例。
  ② 边界值分析法。经验表明,处理边界情况时程序最容易发生错误。例如,许多程序错误出现在下标、数据结构和循环等的边界附近。因此,设计使程序运行在边界情况附近的测试方案,暴露出程序错误的可能性更大一些。   使用边界值分析法设计测试方案时首先应该确定边界情况,这需要经验和创造性。通常输入等价类和输出等价类的边界,就是应该着重测试的程序边界情况,如输入条件规定了值的范围或值的个数。选取的测试数据应该刚好等于、刚刚小于和刚刚大于边界值。也就是说,按照边界值分析法,应该选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类内的典型值或扔判殴翰饰 庵底魑馐允荨
  假设输入条件规定了值的范围,输入值的范围是[1..100],可取0、1、100、101等值作为测试数据。   如果一个输入文件可包括1~255个记录,则可设计有1、255、0和256个记录的输入文件作为测试用例。
1.4.4  优信购彩软件 维护   优信购彩软件 维护就是在优信购彩软件 已经交付使用之后,为了改正错误或满足新的需要而修改优信购彩软件 的过程。   1.优信购彩软件 维护的类型   优信购彩软件 维护的类型有四种:改正性维护、适应性维护、扩充与完善性维护和预防性维护。   1) 改正性维护(Corrective Maintenance) 在优信购彩软件 交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段,这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正优信购彩软件 错误、改正优信购彩软件 性能上的缺陷、排除实施中的误使用,所进行的诊断和改正错误的过程就叫做改正性维护。
  2) 适应性维护(Adaptive Maintenance)   在使用过程中,外部环境(新的硬、优信购彩软件 配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为使优信购彩软件 适应这种变化,而去修改优信购彩软件 的过程就叫做适应性维护。   3) 扩充与完善性维护(Perfective Maintenance)   在优信购彩软件 的使用过程中,用户往往会对优信购彩软件 提出新的功能与性能要求。为了满足这些要求,需要修改或再开发优信购彩软件 ,以扩充优信购彩软件 功能,增强优信购彩软件 性能,改进加工效率,提高优信购彩软件 的可维护性。这种情况下进行的维护活动叫做扩充与完善性维护。
  4) 预防性维护(Preventive Maintenance)   预防性维护的目的是为了提高优信购彩软件 的可维护性、可靠性等,为以后进一步改进优信购彩软件 打下良好基础。预防性维护的定义:采用先进的优信购彩软件 工程优信购彩方法 对需要维护的优信购彩软件 或优信购彩软件 中的某一部分(重新)进行设计、编制和测试。   各种维护所占比例分别为:适应性维护18%~25%,改正性维护17%~21%,扩充与完善性维护50%~60%,其它维护4%。
  2.优信购彩软件 维护的特点(影响维护工作量的因素)   ● 在优信购彩软件 的维护过程中,需要花费大量的精力,从而直接影响了优信购彩软件 维护的成本。   ● 应当考虑有哪些因素影响优信购彩软件 维护的工作量,相应地,采取什么维护策略才能有效地维护优信购彩软件 并控制维护的成本。   ● 系统大小:系统越大,理解、掌握起来越困难;系统越大,所执行的功能越复杂,因而需要优信购彩更多 的维护工作量。   ● 程序设计语言:使用功能强的程序设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好,所需的维护工作量就越少。
  ● 系统年龄:老系统随着不断的修改,其结构越来越乱;维护人员经常更换,程序又变得越来越难以理解;许多老系统在当初并未按照优信购彩软件 工程的要求进行开发,因而没有文档,或文档太少;在长期的维护过程中,文档在许多地方与程序的实现变得不一致,在维护时就会遇到很大困难。   ● 数据库优信购彩技术 的应用:使用数据库可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用优信购彩软件 的维护工作量。
  ● 先进的优信购彩软件 开发优信购彩技术 :在优信购彩软件 开发时,若采用能够使优信购彩软件 结构比较稳定的优信购彩软件 分析、设计优信购彩技术 和程序设计优信购彩技术 ,如面向对象优信购彩技术 、优信购彩软件 复用优信购彩技术 等,则可以减少大量的工作量。   ● 其它诸如应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等,对维护工作量都有影响。许多优信购彩软件 在开发时并未考虑将来的修改,为优信购彩软件 的维护带来许多问题。
  3.维护成本   有形的优信购彩软件 维护成本是花费了多少钱,无形的维护成本有着更大的影响。一些合理的修复或修改请求不能及时安排,使得客户不满意;变更的结果引入新的故障,使得优信购彩软件 整体质量下降;把优信购彩软件 开发人员抽调到维护工作中,干扰了优信购彩软件 开发工作。   公式M = p+Kec-d中,M是维护中消耗的总工作量,p是生产性工作量,K是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是维护人员对优信购彩软件 熟悉程度的度量。模型指明,如果使用了不好的优信购彩软件 开发优信购彩方法 (未按优信购彩软件 工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。
  4.维护的典型问题   维护中的典型问题有:   (1) 难以跟踪优信购彩软件 版本的进化过程,优信购彩软件 的变化未在文档中反映出来。   (2) 难以跟踪优信购彩软件 的创建过程。   (3) 难以读懂他人程序。   (4) 无文档或文档不全。   (5) 优信购彩软件 人员流动性大。   (6) 设计时未考虑修改需要,修改困难。   (7) 维护工作无吸引力,缺乏成就感。   采用优信购彩软件 工程优信购彩方法 至少可部分地解决与维护有关的每一个问题。
  5.优信购彩软件 的可维护性   许多优信购彩软件 的维护十分困难,原因在于这些优信购彩软件 的文档不全、质量差、开发过程不注意采用好的优信购彩方法 ,忽视程序设计风格等。许多维护要求并不是因为程序中出错而提出的,而是为适应环境变化或需求变化而提出的。为了使得优信购彩软件 能够易于维护,必须考虑使优信购彩软件 具有可维护性。优信购彩软件 可维护性是指纠正优信购彩软件 系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。   决定优信购彩软件 可维护性的因素有:可理解性、可测试性、可修改性、可移植性和可重用性。
  6.提高可维护性的优信购彩方法   ● 建立明确的优信购彩软件 质量目标和优先级。   ● 使用提高优信购彩软件 质量的优信购彩技术 和优信购彩工具 。   ● 进行明确的质量保证审查。   ● 选择可维护的程序设计语言。   ● 改进优信购彩软件 的文档。
  面向对象优信购彩方法 (Object-Oriented Method)是当前计算机界关心的重点,它是一种把面向对象的思想应用于优信购彩软件 开发过程中,指导开发活动的系统优信购彩方法 ,简称OO(Object-Oriented)优信购彩方法 ,是建立在“对象”概念基础上的优信购彩方法 学。   要学习面向对象的优信购彩软件 开发优信购彩方法 ,首先要弄明白什么是“面向对象”。起初“面向对象”专指在程序设计中采用封装、继承、抽象等设计优信购彩方法 。这个定义不再适合现在的情况,目前面向对象的思想已经涉及到优信购彩软件 开发的各个方面,如:面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design),以及优信购彩优信购彩我 们 经常说的面向对象的编程实现(OOP,Object Oriented Programming)。
1.5.1  面向对象优信购彩方法 概述   传统优信购彩软件 开发优信购彩方法 存在如下一些问题:   (1) 优信购彩软件 重用性差。重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。优信购彩软件 重用性是优信购彩软件 工程追求的目标之一。   (2) 优信购彩软件 可维护性差。优信购彩软件 工程强调优信购彩软件 的可维护性。在优信购彩软件 开发过程中,提高优信购彩软件 的可读性、可修改性和可测试性是保证优信购彩软件 可维护性的重要指标。实践证明,用传统优信购彩方法 开发出来的优信购彩软件 ,其维护费用和成本仍然很高,原因是可修改性差,维护困难,导致可维护性差。   
  (3) 开发出的优信购彩软件 不能满足用户需要。用传统的结构化优信购彩方法 开发大型优信购彩软件 系统时,涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的优信购彩软件 系统往往不能真正满足用户的需要。
  用结构化优信购彩方法 开发的优信购彩软件 ,其稳定性、可修改性和可重用性都比较差。这是因为,结构化优信购彩方法 的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层地分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的优信购彩工具 来描述各个最底层的处理。结构化优信购彩方法 是围绕实现处理功能的“过程”来构造系统的,而用户需求的变化大部分是针对功能的,因此这种变化对于基于过程的设计来说是灾难性的。用这种优信购彩方法 设计出来的系统结构常常是不稳定的,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。
  正是由于传统的优信购彩软件 开发优信购彩方法 在实际应用中存在的上述问题,因此才逐渐形成了新的优信购彩方法 体系——面向对象优信购彩方法 (Object-Oriented Method)。介绍和讨论面向对象发展历史的文章和书籍很多,这里不再赘述,有兴趣的读者可以自己查阅一下。   面向对象优信购彩方法 是以问题域中出现的物体为中心建立模型,进而设计和开发优信购彩软件 的一种优信购彩方法 。其基本出发点就是尽可能按照人类认识世界的优信购彩方法 和思维方式来分析和解决问题。客观世界是由许多具体的事物或事件、抽象的概念和规则等组成的,因此,优信购彩优信购彩我 们 将任何感兴趣或要加以研究的事、物、概念都称为对象。面向对象的优信购彩方法 正是以对象作为最基本的元素,也是分析问题、解决问题的核心。面向对象优信购彩方法 中包含对象及对象属性、优信购彩方法 、类、继承、多态性等几个基本概念,这些概念是理解和使用面向对象优信购彩方法 的基础和关键。
  1.对象(object)   对象是面向对象优信购彩方法 中最基本的概念。对象可以用来表示客观世界中的任何实体,也就是说,应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象。它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一个人、一个优信购彩企业 、一个优信购彩公司 、一个贷款和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就是反映优信购彩软件 系统保存有关它的信息并具有与它进行交互的能力。   面向对象的设计优信购彩方法 中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位。它由一组表示其静态特征的属性及其可执行的一组操作组成。
  例如,一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号、载重量等)及其操作(如启动、转弯、刹车等)。一个按钮是一个对象,它包含了按钮的属性(如大小、标题、字体、字号、图片等)及其操作(如单击、双击、划过等)。一个窗口是一个对象,它包含了窗口的属性(如大小、颜色、位置等)及其操作(如打开、最大化、最小化、移动、关闭等)。   客观世界中的实体通常既具有静态的属性,又具有动态行为。因此在面向对象优信购彩方法 学中,优信购彩优信购彩我 们 把描述对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体称为对象。对象可以做的操作表示它的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作称为优信购彩方法 和优信购彩服务 。
  属性是对象所包含的信息,用来描述对象的状态。在设计对象时,应确定该对象有哪些属性,一般只能通过执行对象的操作来改变对象属性的值。如某个人可以看做是一个对象,他的属性有姓名、出生日期、国籍等。不同对象的相同属性可以具有相同或不同的属性值。对象所能够执行的操作描述了对象的行为,操作的过程对外是封闭的,即用户只能看到这一操作实施后的结果,而不必关心这一操作是如何实现的。这相当于事先设计好了各种过程,供用户根据需要来调用。事实上,这个过程已经封装在对象中,用户也看不到。
  对象具有如下一些基本特性:   (1) 标识唯一性:指对象是可以区分的,并且是由对象的内在本质来区分,而不是通过描述来区分。   (2) 分类性:指可以将具有相同属性和操作的对象抽象成类。   (3) 多态性:指同一个操作可以是不同对象的行为。   (4) 封装性。在对象的外部只能看到对象的外部特性,用户只需知道数据的取值范围和可以对该数据施加的操作,而无需知道数据的具体结构以及实现操作的算法。封装性是保证优信购彩软件 具有优良结构的基础。
  2.类(Class)和实例(Instance)   将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同优信购彩方法 的对象集合。所以,类是对象的抽象,它描述了该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。要注意的是,当使用“对象”这个术语时,既可以指一个具体的对象,也可以泛指一般的对象;但是,当使用“实例”这个术语时,必然是指一个具体的对象。   例如:Integer是一个整数类,它描述了所有整数的性质,因此任何整数都是整数类的对象,而一个具体的整数“12345”是类Integer的一个实例。
  由类的定义可知,类是优信购彩关于 对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。例如,一个面向对象的图形程序,在屏幕的左下角显示一个半径为2 cm的红色圆,在屏幕的中部显示一个半径为3 cm的黄色圆,在屏幕的右下角显示一个半径为4 cm的蓝色圆。这三个圆的圆心位置、半径大小和颜色均不相同,是三个不同的对象。但是它们都有相同的属性(圆心坐标、半径、颜色)和相同的操作(显示、移动、放大、缩小等),因此,它们是同一类事物,可以用“Circle类”来定义。
  3.消息(Message)和优信购彩方法 (Method)   面向对象的世界是通过对象与对象间彼此的相互优信购彩合作 来推动的,对象间的这种相互优信购彩合作 需要一个机制协助进行,这种机制称为“消息”。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。消息的使用类似于函数的调用,消息中指定了某一个实例、一个操作名(即消息名、优信购彩方法 名)和一个参数表(允许为空)。参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。接收消息的实例执行消息中指定的操作,并将形式参数与参数表中相应的值(实际参数)结合起来。消息传递过程中,由发送消息的对象(发送对象)的触发操作产生输出结果,作为消息传递至接收消息的对象(接受对象),引发接收消息的对象一系列的操作。所传送的消息实质上是接收对象所具有的操作/优信购彩方法 名称,有时还包括相应参数。消息传递的示意图如图1.30所示。
  消息中只包含传递者的要求,它告诉接收者需要做哪些处理,但并不指示接收者应该怎样完成这些处理。消息完全由接收者解释,接收者独立决定采用什么方式完成所需的处理,发送者对接收者不起任何控制作用。一个对象能够接收不同形式、不同内容的多个消息;相同形式的消息可以发往不同的对象;不同的对象对于形式相同的消息可以有不同的解释,能够做出不同的反映。一个对象可以同时向多个对象传递消息,两个对象也可以同时向某一个对象传递消息。   例如,一个汽车对象具有“行驶”这项操作,那么要让汽车以时速80公里的速度行驶时,需给汽车对象传递“行驶”及“时速80公里”的消息。
  通常一个消息由三部分组成:   (1) 接收消息的对象的名称;   (2) 消息标识符(也称消息名);   (3) 零个或多个参数。   例:MyCircle是一个半径为3 cm、圆心位于(120,120)的Circle类的对象,也就是Circle类的一个实例,当要求以黄颜色在屏幕上显示这个圆时,在C++语言中应该向它发送下列消息:   MyCircle.Show (Yellow); 其中;MyCircle是接收消息的对象的名字,Show是消息名,Yellow是消息的参数。在具体的程序设计中,消息传递其实就是函数接口的调用。
  4.封装(Encapsulation)   封装是一种信息隐蔽优信购彩技术 ,是保证优信购彩软件 部件具有优良的模块性的基础。每个模块是一个封装,将其内部信息与外界隔离开来,具有明确的边界,并为外部的访问者提供了友好的接口。   面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。   对象是封装的最基本单位。封装可以防止程序的各部分之间因相互依赖而带来的影响。面向对象的封装比传统语言的封装更为清晰、更为有力。
  ► 其他对象为知道对象张老师的内部状态,必须发出相应的消息。如:“您多大年龄?”,“您属于哪个学院?”    ► 即使对象张老师的内部状态发生了变化,其他对象还是询问“您多大年龄?”,“您属于哪个学院?”。
  5.继承(Inheritance)   继承是面向对象优信购彩方法 的一个主要特征。继承是使用已有的类定义作为基础建立新类的优信购彩技术 ,已有的类作为基类(父类),而引用基类定义的新类就是派生类(子类)。   广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们的一种优信购彩技术 。   面向对象优信购彩软件 优信购彩技术 的许多强有力的功能和突出的优点,都来源于把类组成一个层次结构的系统。一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是继承性,子类直接继承其父类的描述(数据和操作)或特性,子类自动地共享其基类中定义的数据和操作。   为了更深入、具体地理解继承的含义,图1.32给出了实现继承机制的原理。  
  以图1.32中的A、B两个类为例,其中类B是从类A派生出来的子类,它除了具有自己定义的特性(数据和操作)之外,还继承了父类A的特性。优信购彩优信购彩我 们 可以创建类A的实例a1,也可以创建类B的实例b1。a1具有类A的特性;b1具有在类B中定义的特性,还具有在类A中所定义的特性。   当创建类B的实例b1的时候,b1既要以类B为样板建立实例变量,又要以类A为样板建立实例变量,b1所能执行的操作既有类B中定义的操作,又有类A中定义的操作,这就是继承。
  继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。因此,一个类实际上继承它上层的全部基类的特性,也就是说,属于某类的对象除了具有该类所定义的特性外,还具有该类上层全部基类定义的特性。   继承分为单重继承与多重继承。单重继承是指一个类只允许有一个父类,即类等级为树型结构。多重继承是指一个类允许有多个父类,多重继承的类可以组合多个父类的性质构成所需要的性质,因此功能更强,使用更方便。但是,使用多重继承时要注意避免二义性。图1.33表示了单重继承(a)和多重继承(b)时父类和子类之间的关系。
  继承关系是可传递的,如图1.33(a)中的E继承C,而C继承A,因而E也继承了A,所以E也是A的子类,是间接的子类,C则是A的直接子类。   继承性是面向对象程序设计语言不同于其他语言的最主要的特点。   继承的优点是,相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,提高优信购彩软件 的可重用性,便于优信购彩软件 的修改与维护。另外,继承性使得用户在开发新的应用系统时不必完全从零开始,可以继承已有的类或者从类库中选取需要的类,再派生出新类以实现所需要的功能。
  6.多态性(Polymorphism)   对象根据接收到的消息而做出动作,同样的消息被不同的对象接收时,可导致完全不同的行动,该现象称为多态性。在面向对象的优信购彩软件 优信购彩技术 中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给子类对象。   例如,在两个类Male(男性)和Female(女性)都有一项属性为Friend(朋友),一个人的朋友,必须属于类Male或Female,这是一个多态性的情况,因为Friend可以是指向两个类之一的实例。如果王丽的朋友或者是张红或者是李皓,则类Male就不知道应该与哪个关联。这里参照量Friend必须是多态的,多态意味着可以关联不同的实例,而实例可以属于不同的类。
  多态性机制不仅增加了面向对象优信购彩软件 系统的灵活性,进一步减少了信息冗余,而且显著地提高了优信购彩软件 的可重用性和扩充性。当扩充系统功能增加新的实体类型时,只需派生出与新实体类型相应的新的子类,完全无需修改原有的程序代码,甚至不需要重新编译原有的程序。利用多态性用户能够发送一般形式的消息,而将所有的实现细节都留给接收消息的对象。
1.5.2  面向对象建模   对象建模优信购彩技术 是美国通用电气优信购彩公司 提出的一套系统开发优信购彩技术 。它以面向对象的思想为基础,通过对问题进行抽象,构造出一组相关的模型,从而全面地描述问题领域的结构。对象建模优信购彩技术 把分析时收集到的信息构造在三类模型中,即功能模型、对象模型和动态模型。功能模型定义系统“做什么””,对象模型定义系统“对谁做”,动态模型定义系统“如何做”。三个模型从不同的角度对系统进行描述,分别着重于系统的一个侧面,组合起来构成对系统的完整描述。
  1.功能模型   功能模型着重于系统内部数据的传送和处理,说明从输入数据能够计算出什么样的输出数据,但是没有考虑参加计算的数据按什么时序来执行。功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出的整个数据流情况。功能模型还包括了对象模型内部数据间的限制。功能模型中的数据流图往往形成一个层次结构,一个数据流图的过程可以由下一层的数据流图作进一步的说明。
  建立功能模型的主要步骤如下:   (1) 确定输入和输出值。   (2) 用数据流图表示功能的依赖性。   (3) 具体描述每个功能。   (4) 确定限制。   (5) 确定功能优信购彩优化 的准则。
  2.对象模型   对象模型描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。构造对象模型的目的在于找出与应用密切相关的概念。对象模型用包含对象和对象之间关系的图来表示。   建立对象模型的主要步骤如下:   (1) 确定对象类。   (2) 定义数据词典,并利用它来描述类的属性和类之间的关系。   (3) 用继承来优信购彩组织 和简化类的结构和类之间的关系。   (4) 测试访问路径。   (5) 根据对象之间的关系和对象的功能将对象分组建立模块。
  比如,如果需要描述一个图形系统,首先就要确定优信购彩优信购彩我 们 的研究对象图形(点、线、多边形、圆形等),图形的属性(点数、边数等),图形的操作(画法)等;然后归纳各种图形之间的关系,比如多边形和圆形都从图形派生而来,三角形和四边形都从多边形派生而来。最后得出类之间的层次关系,以及每一个类的详细属性和操作。
  3.动态模型   动态模型着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态。   动态模型用状态图和事件跟踪图来描述。状态图是由状态和事件以及它们之间的关系所形成的网络,用于描述每一类对象的动态行为。事件跟踪图则侧重于说明系统执行过程中的一个特定场景,描述完成系统某个功能的一个事件序列。对象到对象的单个消息叫做一个事件,在系统的一个特定环境下发生的一系列事件叫做一个场景(scenarios)。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,在一个场景中,一系列事件和交换事件的对象都可以放在一个事件跟踪图中表示。
  建立动态模型的主要步骤如下:   (1) 准备典型的交互序列的场景。   (2) 确定对象之间的事件,为每个场景建立事件跟踪图。   (3) 为每个系统准备一个事件流图。   (4) 为具有重要动态行为的类建立状态图。   (5) 检验不同状态图中共享的事件的一致性和完整性。
1.5.3  面向对象分析优信购彩方法 (OOA)   面向对象分析属于优信购彩软件 开发过程中的问题定义阶段,其目标是清晰、精确地定义问题领域。传统的系统分析产生一组面向过程的文档,定义目标系统的功能;面向对象分析则产生一种描述系统功能和问题领域的基本特征的综合文档。   面向对象分析的主要优点有以下几个方面:   ● 加强了对问题域和系统责任的理解;   ● 改进与分析有关的各类人员之间的交流;
  ● 对需求的变化具有较强的适应性;   ● 支持优信购彩软件 复用;   ● 贯穿优信购彩软件 生命周期全过程的一致性;   ● 实用性;   ● 有利于用户参与。
  面向对象分析的主要原则如下:   1.抽象   从许多事物中舍弃个别的、非本质的特征,抽取共同的、 本质性的特征,就叫做抽象。抽象是形成概念所必需的手段。   抽象原则有两方面的意义:第一,尽管问题域中的事务是很复杂的,但是分析员并不需要了解和描述它们的一切,只需分析研究其中与系统目标有关的事物及其本质性特征;第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。
  抽象是面向对象优信购彩方法 中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。过程抽象是指,任河判殴翰饰 桓鐾瓿扇范üδ艿牟僮餍蛄校涫褂谜叨伎梢园阉醋鲆桓龅ヒ坏氖堤澹」苁导噬纤赡苁怯梢幌盗懈图兜牟僮魍瓿傻摹J莩橄笫侵福菔┘佑谑葜系牟僮骼炊ㄒ迨堇嘈停⑾薅ㄊ莸闹抵荒苡烧庑┎僮骼葱薷暮凸鄄臁J莩橄笫敲嫦蚨韵蠓治龅暮诵脑颍康靼咽(属性)和操作(优信购彩服务 )结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,而不必知道它如何做。
  2.封装   封装就是把对象的属性和优信购彩服务 结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。   3.继承   特殊类的对象拥有其一般类的全部属性与优信购彩服务 ,称做特殊类对一般类的继承。   
  在面向对象分析中运用继承原则,就是在每个由一般类和特殊类形成的一般—特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和优信购彩服务 ,一次性地在一般类中进行显式定义。在特殊类中不再重复定义在一般类中已定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的全部属性和优信购彩服务 。继承原则的好处是:使系统模型比较简练,也比较清晰。
  4.分类   分类就是把具有相同属性和优信购彩服务 的对象划分为一类,用类作为这些对象的抽象描述。分类原则实际上是抽象原则运用于对象描述时的一种表现形式。   5.聚合   聚合的原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。   6.关联   关联是人类思考问题时经常运用的思想优信购彩方法 ——通过一个事物联想到另外的事物。能使人发生联想的原因是事物之间确实存在着某些联系。
  7.消息通信   消息通信原则要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象内部的属性。通过消息进行通信,是由封装原则而引起的。在OOA中,要求用消息连接表示出对象之间的动态联系。   8.粒度控制   一般来讲,人在面对一个复杂的问题领域时,不可能在同一时刻既能纵观全局,又能洞察秋毫,因此需要控制自己的视野。考虑全局时,注意其大的组成部分,暂时不详察每一部分的具体细节;考虑某部分的细节时,则暂时撇开其余的部分,这就是粒度控制原则。
  9.行为分析   现实世界中事物的行为是复杂的,由大量的事物所构成的问题域中各种行为往往相互依赖、相互交织。   面向对象分析过程可分为问题领域分析和应用分析两个阶段。   问题领域分析是优信购彩软件 开发的基本组成部分,目的是使开发人员了解问题领域的结构,建立大致的系统实现环境。问题领域分析给出一组抽象概念(从高层来表示问题领域知识,常常超出当前应用的范围)作为特定系统需求开发的参考。问题领域分析实际上是一种学习过程,优信购彩软件 开发人员在这个阶段应该尽可能地理解当前系统中与应用有关的知识,应该放开思维并尽可能地标识与应用有关的概念。问题领域分析的边界可能很模糊。
有了广泛的问题领域知识,涉及到具体的应用时,就可以更快地进入状态,掌握应用的核心知识。而且,在用户改变对目标系统的需求时,广泛的分析可以优信购彩帮助 优信购彩优信购彩我 们 预测出目标系统在哪些方面会发生哪些变化。通常进行小组分析,小组优信购彩成员 可以包括领域专家和分析员等。在分析过程中,应该标识出系统的基本概念(对象、类、优信购彩方法 、关系等)、识别问题领域的特征,并把这些概念集成到问题领域的模型中。问题领域的模型必须包含概念之间的关系,以及每个概念的全部信息。标识出来的相关概念应该根据信息内容有机地融合到问题领域的综合视图中。
  应用分析是依据在问题领域分析时建立起来的问题领域模型进行的。应用分析时,把问题领域模型用于当前特定的应用之中。首先,通过收集到的用户信息来对问题领域进行取舍,把用户需求作为限制条件来使用,以缩减问题领域的信息量。因此,问题领域分析的视野大小直接影响到应用分析保留的信息量。一般来说,问题领域分析阶段产生的模型并不需要用程序设计语言来表示,而应用分析阶段产生的影响条件则需要用某种程序设计语言来表示。模型识别的要求可以针对一个应用,也可以针对多个应用。通常优信购彩优信购彩我 们 着重考虑两个方面,即应用视图和类视图。在类视图中,必须对每个类的属性和操作进行细化,并表示出类之间的相互作用关系。
  面向对象分析主要应该考虑与特定应用有关的对象,以及对象之间在结构和相互作用上的关系。在面向对象分析中,需要建立分析模型来描述系统的功能。   面向对象分析需要完成如下两个任务:   (1) 形式化地说明所面对的应用问题,最终成为优信购彩软件 系统基本构成的对象,以及系统所必须遵从的、由应用环境所决定的规则和约束条件。
  (2) 明确地规定构成系统的对象如何协同工作和完成指定的功能。   通过面向对象分析所建立的系统模型是以概念为中心的,因此称为概念模型。概念模型由一组相关的类组成。面向对象分析可以通过自顶向下的逐层分解来建立系统模型,也可以自底向上地从已经定义的类出发,逐步构造新的类。概念模型的构造和评审由如下五个层次构成:   ● 类和对象层;   ● 属性层;   ● 优信购彩服务 层;   ● 结构层;   ● 主题层。
  这五个层次不是构成优信购彩软件 系统的层次,而是分析过程中的层次,也可以说是问题的不同侧面。每个层次的工作都为系统的规格说明增加了一个组成部分。当五个层次的工作全部完成时,面向对象分析的任务也就完成了。   在实际操作中,面向对象分析的目标是得出问题领域的功能模型、对象模型和动态模型,并用统一建模语言UML将它们表示出来。
  面向对象分析通常按照下面的步骤来进行:   (1) 标识对象和类。可以从应用领域开始,逐步确定形成整个应用的基础类和对象。这一步需要分析领域中目标系统的责任,调查系统的环境,从而确定对系统有用的类和对象。   (2) 标识结构。典型的结构有两种,即一般—特殊结构和整体—部分结构。一般—特殊结构中的一般类是基类,特殊类是派生类。比如,汽车是轿车和卡车的基类,这是一种一般—特殊结构。整体—部分结构表示聚合,由属于不同类的优信购彩成员 聚合成为新的类。比如,轮子、车体和汽车底盘都是汽车的一部分,这些不同功能的部件聚合成为汽车这个整体。
  (3) 标识属性。对象所保存的信息称为它的属性。类的属性描述状态信息,在类的某个实例中,属性的值表示该对象的状态值。需要找出每个对象在目标系统中所需要的属性,并将属性安排在适当的位置,找出实例连接,最后进行检查。应该给出每个属性的名字和描述,并指定该属性所受的特殊限制(如只读、属性值限定在某个范围之内等)。
  (4) 标识优信购彩服务 。对象收到消息后执行的操作称为对象提供的优信购彩服务 ,它描述了系统需要执行的处理和功能。定义优信购彩服务 的目的是为了定义对象的行为和对象之间的通信。其具体步骤包括:   ● 标识对象状态;   ● 标识必要的优信购彩服务 ;   ● 标识消息连接;   ● 描述优信购彩服务 。   可以用类似于流图的图形来表示优信购彩服务 。
  (5) 标识主题。为了更好地理解包含大量类和对象的概念模型,需要标识主题,即对模型进行划分,给出模型的整体框架,划分出层次结构。可以按照如下步骤来标识主题:   ● 识别主题;   ● 对主题进行改进和细化;   ● 将主题加入到分析模型。   主题是一个与应用相关的概念,而不是人为扔判殴翰饰 庖隼吹模魈獠愕墓ぷ饔兄诶斫夥治龅慕峁
  面向对象分析的主要优点有:   ● 加强了对问题域和系统责任的理解;   ● 改进了与分析有关的各类人员之间的交流;   ● 对需求的变化具有较强的适应性;   ● 支持优信购彩软件 复用;   ● 贯穿优信购彩软件 生命周期全过程的一致性;   ● 实用性;   ● 有利于用户参与。
1.5.4  面向对象设计优信购彩方法 (OOD)   面向对象设计的任务是对面向对象分析的结果作进一步的规范化整理,以便能够被面向对象编程直接接受。   面向对象设计是一种优信购彩软件 设计优信购彩方法 ,是一种工程化规范,这是毫无疑问的。面向对象设计的主要工作包括:   ● 确定需要的类;   ● 给每个类提供一组完整的操作;   ● 通过使用继承来表现共同点。
  概括地说,面向对象设计就是“根据需求决定所需的类以及类的数据和操作,建立类之间关联的过程”。   从面向对象分析到面向对象设计是一个逐步扩充模型的过程。面向对象分析以实际问题为中心,可以不考虑与优信购彩软件 实现相关的任何问题,主要考虑“做什么”的问题;面向对象设计则是面向优信购彩软件 实现的实际开发活动,主要考虑“怎么做”的问题。
  面向对象设计的目标是管理程序内部各部分的相互依赖。为了达到这个目标,面向对象设计要求将程序分成块,每个块的规模应该小到可以管理的程度,然后分别将各个块隐藏在接口(interface)的后面,让它们只通过接口相互交流。比如说,如果用面向对象设计的优信购彩方法 来设计一个客户端/优信购彩服务 器应用,那么优信购彩服务 器和客户端之间不应该有直接的依赖,而是应该让优信购彩服务 器的接口和客户端的接口相互依赖。   这种依赖关系的转换使得系统的各部分具有了可复用性。还是拿上面的例子来说明,客户端就不必依赖于特定的优信购彩服务 器,所以就可以复用到其他的环境下。如果要复用某一个程序块,则只要实现必需的接口就行了。
  面向对象设计是一种解决优信购彩软件 问题的设计范式(paradigm),一种抽象的范式。使用OOD这种设计范式,优信购彩优信购彩我 们 可以用对象来表现问题领域的实体,每个对象都有相应的状态和行为。面向对象设计是一种抽象的范式,抽象可以分成很多层次,从非常概括的到非常特殊的都有,而对象可能处于任河判殴翰饰 桓龀橄蟛愦紊稀A硗猓舜瞬煌只ビ泄亓亩韵罂梢怨餐钩沙橄螅灰庑┒韵笾溆邢嗨菩裕涂梢园阉堑背赏焕嗟亩韵罄创怼
  1.面向对象设计的主要原则   (1) 模块化。面向对象开发优信购彩方法 很自然地支持了把系统分解成模块的设计原则:对象就是模块,它是把数据结构和操作这些数据的优信购彩方法 紧密地结合在一起所构成的模块。   (2) 抽象。面向对象优信购彩方法 不仅支持过程抽象,而且支持数据抽象。   (3) 信息隐藏。在面向对象优信购彩方法 中,信息隐藏通过对象的封装性来实现。   (4) 低耦合。在面向对象优信购彩方法 中,对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。低耦合是设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其他部分的影响降到最低程度。
  (5) 高内聚。   ● 操作内聚:一个操作应该完成一个且仅完成一个功能。   ● 类内聚:一个类应该只有一个用途,它的属性和操作应该是为完成该类对象的任务所必需的,其中不包含无用的属性或操作。如果某个类有多个用途,则通常应该把它分解成多个专用的类。   ● 一般—特殊内聚:设计出的一般—特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的知识领域的正确抽取。
  2.面向对象设计的主要任务   (1) 对象定义规格的求精。对于面向对象分析所抽象出来的对象、类以及汇集的分析文档,面向对象设计需要有一个根据设计要求整理和求精的过程,使之更能符合面向对象编程的需要。这个整理和求精过程主要有两个方面:一是要根据面向对象的概念模型整理分析所确定的对象结构、属性、优信购彩方法 等内容,改正错误的内容,删去不必要和重复的内容等;二是进行分类整理,以便于下一步数据库设计和程序处理模块设计的需要。整理的优信购彩方法 主要是进行归类,包括对类、对象、属性、优信购彩方法 和结构、主题进行归类。
  (2) 数据模型和数据库设计。数据模型的设计需要确定类、对象属性的内容、消息连接的方式、系统访问、数据模型的优信购彩方法 等。最后,每个对象实例的数据都必须落实到面向对象的库结构模型中。   (3) 优信购彩优化 。面向对象设计的优信购彩优化 设计过程是从另一个角度对分析结果和处理业务过程的整理归纳。优信购彩优化 包括对象和结构的优信购彩优化 、抽象、集成。   对象和结构的模块化表示为面向对象设计提供了一种范式,这种范式支持对类和结构的模块化。这种模块符合一般模块化所要求的所有特点,如信息隐蔽性好,内部聚合度强和模块之间耦合度弱等。集成化使得单个构件有机地结合在一起,相互支持。
  面向对象设计分为两个阶段,即高层设计和低层设计。   高层设计阶段开发系统的结构,构造优信购彩软件 的总体模型。在这个阶段中,应该标识出在具体的计算机环境中进行问题求解所需要的概念,并增加一批需要的类,其中包括那些能使优信购彩软件 系统与外部世界进行交互的类。高层设计阶段应当确定优信购彩软件 有哪些类和类之间的关系,以及编写应用子系统的视图规格说明。   在高层设计的过程中,应当使子系统的高层部件之间的通信量达到最小,把子系统中相互之间存在高度交互的类划分在同一组中。
  低层设计集中于类的详细设计阶段。类设计的目标是形成单一概念的模型(即一个概念用一个独立的类来表示),而且设计的部件应该是可复用的和可靠的。在类的设计过程中,需要采用信息隐蔽、高内聚、低耦合等设计原则。重复使用现有的类是面向对象优信购彩技术 的主要优点之一。   在设计阶段可继续采用面向对象分析阶段中提到的五个层次(对象和类、结构、属性、优信购彩服务 和主题),这样有助于从分析到设计的自然过渡。面向对象设计优信购彩方法 在设计阶段的主要任务是利用这五个层次来建立系统的四个组成部分,即问题领域、用户界面、任务管理和数据管理。
  问题领域部分的设计包括:   ● 复用设计;   ● 关联问题领域中的类;   ● 加入一般化的类以建立类间协议;   ● 调整继承的支持级别;   ● 改进性能;   ● 加入较低层的组件。
  (2) 用户界面。通常在面向对象分析阶段给出了所需的属性和操作,在面向对象设计阶段必须根据需求把交互的细节加入用户界面的设计中,包括有效的人机交互所必需的实际显示和输入。
  用户界面部分的设计主要由以下几个方面组成:   ● 用户分类;   ● 描述人及其任务的脚本;   ● 设计命令层;   ● 设计详细的交互;   ● 继续扩展用户界面原型;   ● 设计人机交互类;   ● 根据图形用户界面进行设计任务管理部分的设计。
  (3) 任务管理。任务是进程的别称,是执行一系列活动的一段程序。当系统中有许多并发行为时,需要依照各个行为的协调和通信关系来划分各种任务,以简化并行行为的设计和编码。   任务管理主要包括任务的选择和调整,它所做的工作包括:   ● 识别事件驱动任务;   ● 识别时钟驱动任务;   ● 识别优先任务和关键任务;   ● 识别任务之间的协调者;   ● 对各个任务进行评审,以保证它能够满足选择任务的过程标准;   ● 定义各个任务,说明它是什么任务,任务之间如何协调工作,如何通信。
  (4) 数据管理。数据管理提供了在数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理的优信购彩方法 主要有三种:文件管理、关系数据库管理以及面向对象的数据库管理。   数据管理设计包括:   ● 数据存放设计。数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。   ● 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
  在每一个过程中,面向对象设计的基本操作步骤包括:   (1) 细化重组类;   (2) 细化和实现类间关系,明确其可见性;   (3) 增加属性,指定属性的类型与可见性;   (4) 分配职责,定义执行每个职责的优信购彩方法 ;   (5) 对消息驱动的系统,明确消息传递方式;   (6) 利用设计模式进行局部设计;   (7) 画出详细的类图与序列图。  
1.5.5  面向对象的实现(OOP)   面向对象的实现主要包括两项工作:第一项工作是把面向对象设计结果翻译成用某种程序设计语言书写的面向对象程序;第二项工作是测试并调试面向对象的程序。   为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言非常适合用来实现面向对象设计结果。事实上,具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。另一方面,所采用的程序设计语言的特点和程序设计风格也将对程序的可靠性、可重用性和可维护性产生深远的影响。
  良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象优信购彩方法 的特点相适应的一些新准则。   目前,优信购彩软件 测试仍然是保证优信购彩软件 可靠性的主要措施,对于面向对象的优信购彩软件 来说,情况也是如此。面向对象测试的目标,也是用尽可能低的测试成本和尽可能少的测试方案,发现尽可能多的错误。但是,面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。优信购彩优信购彩我 们 必须通过实践,努力探索适合于面向对象优信购彩软件 的更好的测试优信购彩方法 。
  面向对象优信购彩方法 学使用独特的概念和优信购彩技术 完成优信购彩软件 开发工作,因此,在测试面向对象程序的时候,除了继承传统的测试优信购彩技术 之外,还必须研究与面向对象程序特点相适应的新的测试优信购彩技术 。   面向对象测试的总目标与传统优信购彩软件 测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和优信购彩技术 与传统测试有所不同,测试的焦点从过程构件(模块)移向了对象类。
  一旦完成了面向对象程序设计,就开始对每个类进行单元测试。测试类时使用的优信购彩方法 主要有随机测试、划分测试和基于故障的测试。每种优信购彩方法 都测试类中封装的操作。应该设计测试序列以保证相关的操作受到充分测试。检查对象的状态(由对象的属性值表示),以确定是否存在错误。   可以采用基于线程或基于使用的策略完成集成测试。基于线程的测试,集成一组相互协作以对某个输入或某个事件作出响应的类。基于使用的测试,从那些不使用优信购彩服务 器类的类开始,按层次构造系统。设计集成测试用例,也可以采用随机测试和划分测试的优信购彩方法 。此外,从动态模型导出的测试用例,可以测试指定的类及其协作者。
  面向对象系统的确认测试也是面向黑盒的,并且可以应用传统的黑盒优信购彩方法 完成测试工作。但是,基于情景的测试是面向对象系统确认测试的主要优信购彩方法 。
  一、填空题   1.优信购彩软件 生存周期是指一个优信购彩软件 从提出开发要求开始,直到      为止的整个时期。   2.数据流图中的箭头表示      。   3.当A模块调用B模块时,若两个模块之间的参数传递是数值型参数,则这两个模块的耦合方式是      。   4.某优信购彩软件 结构图分为4层,从顶层到底层,各层的模块个数分别为1、3、5、4,那么该优信购彩软件 结构图的宽度是      。   5.优信购彩软件 的详细设计的主要任务是确定每个模块的      。
  6.程序员在编写程序时所体现出的特点、习惯、逻辑思路等,反映了这个程序员的      。   7.在集成测试中,采用自顶向下的渐增式测试,需要      程序。   8.优信购彩软件 的集成测试(联合测试)的目的是发现      阶段的错误。   9.在优信购彩软件 生存期的各个阶段中跨越时间最长的阶段是      阶段。   10.优信购彩软件 维护工作的生产性活动包括分析评价、修改设计和      等。   
  11.子类自动共享父类数据结构和优信购彩方法 的机制是      ,这是类之间的一种关系。   12. 面向对象分析的目的是对      进行建模。   13.面向对象分析阶段所使用的三种模型是      、动态模型和功能模型。
  二、选择题   1.优信购彩软件 优信购彩产品 管理包括版本管理和(     )。    A. 质量管理   B. 性能管理   C. 配置管理      D. 开发过程管理   2.螺旋模型是一种将(     )和增量模型结合起来的优信购彩软件 开发模型。    A. 瀑布模型   B. 专家系统    C. 喷泉模型      D. 变换模型   3.优信购彩软件 开发可行性分析研究的目的是(    )。  A. 争取优信购彩软件 项目  B. 优信购彩软件 项目值得开发否  C. 设计优信购彩软件    D. 规划优信购彩软件 项目
  4.优信购彩软件 需求分析的主要任务是确定所要开发的优信购彩软件 系统(    )。    A. 如何做    B. 怎么做   C. 做什么   D. 对谁做   5.在(    )优信购彩方法 中,采用数据流图(DFD)表示系统的逻辑模型。  A.  SA B.  SD       C.  SP D.  SC   6.优信购彩软件 需求分析阶段的工作是系统分析员了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出(    )的过程。  A. 模块说明书         B. 优信购彩软件 规格说明   C. 项目开发计划     D. 合同文档
  7.模块之间的耦合度应当尽可能低。当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合称为(   )。  A.数据耦合   B.公共耦合   C.标记耦合   D.内容耦合   8.模块的内聚性应当尽可能高,通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是(  )。  A. 通信、逻辑、顺序、时间         B. 通信、时间、顺序、逻辑  C. 顺序、通信、时间、逻辑      D. 顺序、通信、逻辑、时间
  9.信息隐蔽概念与(     )直接相关。  A. 模块的独立性       B. 模块类型的划分  C. 优信购彩软件 结构定义      D. 优信购彩软件 生命周期   10.结构化程序设计的三种基本结构的共同特点是(  )。  A.只能用来描述简单程序     B.不能嵌套使用  C.具有单入口和单出口         D.仅用于自动控制系统   11.源程序文档化要求在每个模块之前加序言性注释,该注释内容不应有(  )。  A. 模块的功能  B. 语句的功能  C. 模块的接口  D. 开发历史
  12.优信购彩软件 的静态测试优信购彩方法 之一为(     )。  A. 计算机辅助静态分析     B. 黑盒法  C. 因果图        D. 路径覆盖   13.优信购彩软件 测试的目的是(  )。  A. 为了证明优信购彩软件 中没有错误    B. 为了说明优信购彩软件 能够正确地执行  C. 为了发现优信购彩软件 中的错误     D. 为了评价优信购彩软件 的质量
  14.单元测试针对(    )阶段进行测试。  A. 需求分析                B. 详细设计和编码  C. 详细设计                D. 概要设计   15.随着计算机软、硬件环境变化而对优信购彩软件 修改的过程,称为(    )。  A. 校正性维护  B. 适应性维护  C. 完善性维护  D. 预防性维护
  三、问答题   1.优信购彩软件 作为一种优信购彩产品 ,其特性是什么?   2.简述程序流程图的缺点和克服优信购彩方法 。   3.在优信购彩软件 开发过程中,为增加优信购彩软件 的可移植性,应注意哪些方面?   4.简述快速原型模型的开发步骤。   5.简述优信购彩软件 结构的设计优信购彩优化 准则。   6.需求分析阶段的基本任务是什么?要进行哪几方面的工作?   7.优信购彩软件 测试要经过哪些步骤?简述这些测试的基本任务。   8.面向对象的主要特征有哪些?简要说明其含义。
  9.根据下列条件使用边界值分析法设计测试用例。   八进制常数定义为:以零开头的数是八进制整数。某一8位微机,8位带符号数值的范围是-177~177,如:05,0127,-065表示八进制整型常数。   10.简述可以在哪些方面提高优信购彩软件 的可维护性。   
  11.某优信购彩学校 将优信购彩学生 的基本情况文件(简称优信购彩学生 情况文件)和优信购彩学生 期末考试成绩文件(简称成绩文件)合并成一个新文件。优信购彩学生 情况文件包含优信购彩学生 的学号、姓名、通信优信购彩地址 。成绩文件包含学号和成绩。这两个文件均由优信购彩学生 记录重复组成,优信购彩学生 记录包含以上数据项。新文件的数据结构包含学号、姓名、通信优信购彩地址 和成绩。   要求:   (1) 给出Jackson输入、输出的数据结构图。   (2) 用Jackson优信购彩方法 设计该程序结构图。
  12.银行柜取款系统有如下功能:   (1) 用户用取款卡到柜取款;   (2) 如是不合法取款卡,则退回并显示出错;   (3) 对用户输入的密码进行确认检查,非法密码将被拒绝;   (4) 核查用户的取款额,超支将被拒绝;   (5) 登录一笔合法取款,更新账卡;   (6) 生成付款通知,经确认后支付现金。   试根据要求画出该问题的数据流图,并将其转换为优信购彩软件 结构图。
  13.下图是一个被测程序的流程图,采用条件覆盖优信购彩方法 为它设计足够的测试用例,使每个条件至少取真、假各一次。试根据所给出的X的4个取值,将下表填写完整。
  14.采用白盒测试法设计,有语句覆盖、条件覆盖、判定覆盖、路径覆盖等。为了对下图所示的程序段进行覆盖测试,须适当选取测试数据。若x、y是两个变量,则可供选择的测试数据组共有①、②、③、④四组(如表所示)。试给出:   (1) 实现判定覆盖至少应采用的测试数据组;   (2) 实现条件覆盖至少应采用的测试数据组。
 

相关PPT

《优信购彩软件 优信购彩技术 基础课件》是由用户秋桜于2017-08-18上传,属于课件PPT。

标签:

优秀PPT

缩略图

  • 优信购彩软件
优信购彩技术
基础课件

优信购彩下载 优信购彩地址

  • 优信购彩软件 优信购彩技术 基础课件

相关PPT

优信购彩推荐

颜色分类黑色优信购彩橙色优信购彩紫色优信购彩蓝色优信购彩黄色优信购彩红色优信购彩绿色优信购彩彩色优信购彩黑白优信购彩

优信购彩行业 分类科技优信购彩医学优信购彩教育优信购彩工业优信购彩金融优信购彩音乐优信购彩汽车房地产优信购彩互联网 优信购彩培训 手机

实用必备个人简历自优信购彩我 介绍年终总结职业规划述职报告工作汇报工作总结岗位竞聘优信购彩公司 优信购彩简介 发布会年会论文答辩

PPT优信购彩推荐 语文课件数学课件英语课件美术课件物理课件科学课件化学课件地理课件生物课件主题班会家长会绘本故事

节日PPT新年元旦节农历春节情人节元宵节三八妇女节愚人节清明节五一劳动节母亲节六一儿童节端午节

节日PPT 父亲节七夕情人节教师节中秋节国庆节重阳节万圣节光棍节感恩节平安夜圣诞节纪念日