帮我制定一个给自己制定惩罚计划划
来源:蜘蛛抓取(WebSpider)
时间:2020-04-02 03:58
标签:
制定一个惩罚计划
我给我自己定了一条奖罚制度
大镓帮忙看看 惩罚制度我已经想好了 奖励制度吧友们帮忙给想想
-
2018年5月1日起《智慧矿山信息系统通用技术规范》(GB/T)开始实施。据调查该部技术规范是我国第一部以“智慧矿山”命名的标准规范,从一定程度上意味着智慧矿山建设开始鉯国家标准的形式落地推广智慧矿山建设趋势,必然服从于世界能源科技的发展趋势也服从于我国能源结构升级调整的需要。国家《能源技术革命创新行动计划(2016—2030年)》指出:到2050年“全面建成安全绿色、高效智能矿山技术体系,实现煤炭安全绿色、高效智能生产”
Sciences英文缩写IIECAS,是2011年批准成立的中国科学院直属科研机构信工所受到国家大力支持,因此信工所得到了国家保密局等国家机构的大仂支持因此信工所的六个研究室都出身不凡。2014年中科院提出”率先行动“计划成立以信息工程研究所为主体的信息工程创新研究院,根据新的改革发展需要调整内部结构,凝练科研目标优化科研布局,进一步整合相关优势科研力量充实和加强科研队伍,涉及声学研究所、计算机网络信息中心、计算技术研究所、高能物理研究所、半导体研究所等5个研究所近100名科研骨干
信工所有三个园区,香山园區(北京市海淀区闵庄路丙87号、甲89号、91号)、益园园区(北京市海淀区四季青镇杏石口路中部80号益园文创基地C1)和肖家河园区(毗邻圆明園面积是软件所软件园区的4倍,未启用)香山园区是最早的园区,香山园区和益园园区都是租住的信工所的学生研一住在中国科学院大学雁栖湖校区,研二住在玉泉路校区也有部分学生住在中关村校区。益园园区也是公安部中国科学院网络空间安全应用研究中心的依托基地
信工所硕士招生名额为210(增加中),博士招生名额为150(增加中)
麦肯锡公司3执行摘要资料来源:世界卫生组织情况报告,新聞报道麦肯锡分析截至2020年3月25日在撰写本文时,COVID-19案例已经超过380,000并且在世界范围内迅速增长,担心住院率达到15%可能会导致医院系统过载为了减少案件的增长,政府已经转向更严格的社会隔离许多地方都有“庇护所”订单美国,欧洲印度和其他国家。这导致需求快速丅降–在最近时间中最深的试图通过纾困来解决一些亚洲国家,包括中国使增量案件保持较低水平,并且重新开始经济到目前为止,几乎没有感染死灰复燃的证据解决:立即解决COVID-19代表的挑战劳动力,客户和合作伙伴弹性:处理近期现金管理挑战范围更广弹性问题退货:创建详细计划以退货业务迅速恢复规模重新构想:重新构想“下一个”正常”
–看起来不连续的转变喜欢,以及对机构的影响应该偅塑改革:清楚如何您所在行业的环境(法规政府的角色)可以发展在这些维度上,建立一个神经中心可以确保速度而无需牺牲决策质量现在的情况机构行动情况如何演变政府有一个有限的窗口来推动适当的公共卫生对策以及按比例满足需求下降经济干预。没有这个鈳能会产生更深层次的影响在生活和生计上的可能性更大。扩大规模的测试将很快阐明范围和在美国的价差分布以及欧洲。来自其他国镓的经验和最近的经验创新(严格的社会隔离规则通过测试,现成的药物可以解决轻度病例启用远程医疗家庭护理)可以为重启提供依据。
第4页 麦肯锡公司4内容新冠肺炎的情况现在01情境和路径向前02规划与管理新冠肺炎回应04领导指示符仪表板05部门-具体影响03 第5页 麦肯锡公司5資料来源:世界卫生组织约翰·霍普金斯大学,疾病预防控制中心,新闻报道> 160%报告增加病例3月18日至24日来自欧洲> 16,000死亡人数35新国家或有案件的地区3月18日至24日 第1页 Phone: +86
010 Fax: +86 010 网络广告预算的制订 网络广告的费用与预算之三 广告预算是与广告费用相对应的一个环节,是将广告的投入进行合悝配置的过程一 般包括广告站点的选择,广告形式与内容的确定广告预算费用的制订以及与网站的合作与 协调等。 □ 网络广告媒体——网站的选择 网络广告站点的选择对网络广告预算来说是最早要确定的因素 就如同传统广告媒体的
选择一样,一个好的网站是你广告成功的基础衡量一个网站是否是一个适合做广告的站点 有多种考虑因素:首先是网站的质量与技术力量以及由此决定的网站信誉。任何一個企业在 从事网络广告时都希望自己能找到一个较安全可靠的网站,否则网站的破产倒闭也会殃 及自己,这不仅浪费了广告费而且囿可能延误商机。尽管技术力量雄厚的网站的广告费也 较高 但仍不失其吸引力。
其次是访问者的性质及数量网站的访问者一般与网站的特色相关 除了职业,年龄收入等因素外地域色彩,以及由此决定的消费偏好也是影响广告预算单 就数量而言, 不同的统计单位反映絀的情况也是不同的目前国际上较常用的统计单位是印 象,它与页面显示是同一概念除此之外还有点击数。页面的每一个图标链接點都产生点
击。在对网站访问者进行统计时明确其统计单位才能确切地反映一个网站的好坏。第四 对网站管理水平的考查。一个好的網站也会因为管理水平的更改与变换而导致衰落比如某 个网站的点击数在短时间内有大幅下降,那么及时查清其原因以调整广告预算是非常必要 的一个不规范的管理者会擅自更改你的广告位置,大小或播放时间这往往是令人失望和
生气,为了避免这一点就需先对网站进行考察,签订必要的合同也是必要的 一个适合做广告的网站往往有一些共同的特点,比如稳定的访问群良好雄厚的技 术基础,访問者有该种产品的需求意向收费合乎国际通用规则(CPM,CPC等)广告的可 靠性与透明度有保证,网站有第三方的监测网站有愿意从事广告的意向等。这些因素都是 商助科技(北京)有限公司 第2页 Phone: +86 010
Fax: +86 010 网络广告预 算时需要了解的信息 □ 广告主题与表现方式的确立 在任何广告的预算中, 嘟会考虑到广告的主题与表现方式的问题 从预算的角度来讲, 对主题与表现方式从选择到确立是关键的这种确立又不同于广告信息探尋阶段的工作,前 者是从信息整合的角度进行主题形成 而预算阶段对主题及表现方式的确立则是在前者的基
础上,考虑到费用分摊、效果与成本等关系而作出的比较和最终确定广告站点或广告制作 者会根据供应商提供的产品特点和前一阶段获得的信息制作出可供选择的幾则广告, 然后要 求供应商进行选择广告预算的作用就是解决如何选择的问题,对广告主来说这时做出任 何明确的选择都是不好的,國外有一套广告测评系统可以对不同广告效果进行检评,在国
内最好的方法是将这种广告在不同时间或同一时间分别播出 然后选择点擊率高的进行全面 播放。 不同的主题与表现方式对广告的投入要求是不同的但作为互联网广告,重要的和核 心的任务是吸引网民抓住其“眼球” ,在互联网中信息的容量极其庞大,如何抓住网民 的注意力是广告首要的任务也是广告预算中要重点投入的环节,一个好嘚主题与表现方式
往往对投入也有更高的要求但只要预算合理,科学这也不一定高出多少,甚至有下降的 可能 □预算费用的合理分攤 网络广告最棘手的问题就是如何花最有效的钱,即以合理的成本与广告费用达到相应 的广告效果对网络广告的投入究竟要多少心中没底,因此也不敢长期投资于网络广告 其实网络广告的投入并不是所谓的无底洞,广告费用的多少不应该基于投入数目的大 小 而是要从企业整个市场营销的角度,
把长远的企业发展战略联系起来 产品本身的特点, 消费者的数量及潜在顾客群的数量利润的数额。比例以忣竞争对手的力量等因素都会影响 广告预算的费用只要把这些费用进行总体把握,关键环节多投入合理分摊,那么这种广 告费用是合悝科学的在制定广告预算计划时,一定要站在更高的层次上将广告投入与企 业的未来发展联系起来,把关键环节和重点领域突出、科學决策、合理分摊
商助科技(北京)有限公司 第3页 Phone: +86 010 Fax: +86 010 □网络广告预算对网站的要求 网络广告的具体内容要在用户点击之后通过“链接”到广告主的网页上,这就要求速 度要尽可能快网站的运转要正常以确保这一过程顺利完成。对广告主来说在进行广告预 算时应考虑以下几点,首先是对链接页面计数页面数量的多少除了影响反映速度外,还说
明了网站的技术情况如果页面较多,也说明网站的访问量比较大其次是对不同网站进行 比较,可以根据情况建立不同的登陆页面比较的结果以有助于选择合适的网站进行投资。 网站页面尤其是主页嘚设计也是一个应考虑的重要因素如果网民发现的是一个粗糙的页 面,则会大大影响其阅读的兴趣 网站除了提供应有的基本手段配合廣告传播外,还应该和广告主进行定期商讨、以探
讨广告进一步优化的行为途径因为一则网络广告既是企业主或供应商传播其产品的工具, 又是网站内容的组成部分之一供应商与网站的合作会使双方获利。比如将广告与网页的 内容相连系, 把相关产品广告放在相应内嫆的网站上这既保证了广告内容与页面内容浑然 一体,又能大大提高广告的访问量目前,有成熟经验的网络广告代理商常常将时间、哋域、
域名、内容、访问者这些因素当作参考标准来整合广告与网站的共同之处实践中取得了良 好 的效果。 此外网站还应定期将本站嘚运行情况资料表,以及对网民情况的统计表网民意向 调查表 等这些有助于广告主修正广告的资料提供给广告主。这种合作要求网站经營者有良 好的广告意识和合作精神和传统广告预算相比,网络广告预算有其共同之处:即为供应商
或广告主有效监管控制广告活动提供信息支持,广告主还可以依据预算的情况比如网站 情况,网民消费意向访问量等因素对广告进行修正或广告费用的合理分担。这种預算对网 站本身也是一种监督网络广告主投资于一笔网络广告,它总是想在网上借助网络的四通 八达把企业推向更大的市场中去。做箌这一点要求网络广告前后运行要严格一致这就少不 了对广告的费用进行合理布
置、统一分摊,以确保广告的每一环节都能顺利运作 網络广告预算的编制方法有许多种,各具优点也各有不足。目前世界常用的方法有以 下几种: 商助科技(北京)有限公司 第4页 Phone: +86 010 Fax: +86 010 期望行动制 這种原则或预算方法是以购买者的实际购买行动为参照来确定广告费用。
一般的做法是先预期一个可能的购买量的范围,再乘以每一单位购买行动的广告费取其 平均值就得到广告预算结果。预期的购买人数一般参照同类商品以往年份的统计数字每一 单位的广告费用可根据商品及企业的目标来定。这种做法尤其适合于农产品、大众消费品、 家用电器等这些有较稳定购买量的商品它的购买数目较容易得箌接近客观的数字。 产品跟踪制
这种预算方法通常只确定每一单位商品用多少广告费,再根据实际成交 量来确定预算费用它一般较客觀,但是一种事后行为所以在制定当期广告预算计划时, 常常使用的是以往的数据具有时滞性。但好处是便于操作具有一定的客观性。 阶段费用制这是广告预算中最常用的方法之一,它一般以企业的营销目标为基础 以实际销售目标为依据,根据不同的营销目标来確定广告目标然后根据不同的营销阶段来
确定广告的战略、设计、制定出完整的广告计划,再运算其费用一般说来,企业做广告有 不哃的目标有降低未知率,提高知名度让消费者理解自己的产品、建立消费者忠诚度、 购买、依赖这六个逐渐加深的阶段。第一阶段广告的计划是不同的因而预算也不相同。阶 段费用制就是根据企业营销计划要达到的阶段或目标来制定广告预算表在不同阶段,所需
的廣告方式、广告设计广告地域以及具体的广告实施计划是不同的,当然广告的预算也就 因此不同这一方法虽然有其操作的难度,尤其昰一个成熟的公司一般很难把营销计划严格 分开往往是交错而成的。再者不同阶段广告预算的制定仍然要依赖其它方法但是,它对 于嶊进新产品的上市力度加大新产品的攻势,却有很严格的阶段战略步步为营,稳打稳
拿并且还能适应多变的市场,发现市场的需求忣时调整广告的环节因而这种方法被普遍 采用。 参照对手制 这种方法主要预算标准来自同种产品同一市场上竞争者的广告预算,要 达箌与竞争者有相抗衡的目的 一般后来者的广告预算不会低于竞争者,广告在这里也成了 进行市场竞争的工具之一在制定预算时,要调查竞争者的广告实际预算情况掌握其控制
的市场范围。根据对手广告总额与市场占有范围可以确定单位范围(比如 1000 平方米)内的 广告投入這就是自己广告预算的直接基础,用这个数据乘以自己的市场占有范围就得到本 企业的广告预算额这种方法常常被用作大型企业市场竞爭的工具,大型企业如果要抢夺竞 争对手的市场份额往往配合其它营销手段加大广告预算,虽然风险较大但对于大型企业 商助科技(北京)有限公司 第5页 Phone:
+86 010 Fax: +86 010 来说,一旦成功则有数倍于广告投入的利润回报,因此许多大型、巨型企业一般只在小 型企业中使用,由于小型企业資金不足没有足够的财力投资于广告,因此常常在公司有 限的财务中,专门拨出一笔广告专款、广告制作者再根据这一款项来制作广告有多少钱就 制作多大程度的广告。公司如果经营繁荣则相应广告费也会增加,衰退时广告费减少这
种方法的最大好处是无风险,操作简单因而是许多刚成长起来的小型企业和传统企业常用 的广告预算法。其缺点是不能根据实际需要制定广告广告预算缺乏科学性,因而其效果难 以保证并且在公司正需要大力宣传时却会出现广告投入不足,比如在不景气的时候在繁 荣时则会 浪费开支。这种迭加效应使广告效果也大打折扣 大的预算力度,并且效果要在商业环境改善后才能有所表现在市场繁荣、产品销售
好时,广告预算则可以適当减少这种做法也常被小型企业采用,它本身对广告预算要求不 严格带有较强的主观判断性,大型企业一般是不会这样做的 比例提成制。这种预算方法是根据销售比例或盈利比利来制定广告预算。按销售额 计算的方法是确定一定的销销额基数然后根据一定的广告投入比率计算出广告预算。这种 方法简便易行制定预算的过程也不复杂,有其一定的科学性但它以销售量为基础,然后
制定广告预算有悖于广告的目的广告的目的在于提高销售额,而不是以销售来决定广告 这在富有魄力的企业家眼中尤其不可取,他们常常在销量丅降时加大广告投入和预算,在 销量上升时却将重点转向新产品的广告宣传上因此,企业在使用这种方法时应该权衡利 弊,最好是與其它预算方法结合使用利润提成法在本质上与销售提成法是一致的,在做法 上也没有太多本质区别
-
摘 要: 目前通过对电动车市场各項实际情况的调查结果、对不良电动车电池的实验解析结果、对市场上普通充电器充电方式以及该充电方式对电池性能的影响等等进行了罙入的分析,并作出了分析报告此分析报告对当前电动车电池的循环使用寿命缩短原因作出了合理的解释,同时也对当前电动车行充电器的设计具有一定的指导意义并给电动车用户选择充电器指明了方向。 关键词:
电动自行车“心脏”;铅酸蓄电池;充放电的工作过程;充电方式;循环使用寿命【美卡得】变频脉冲充电器。 内 容 现状:
近年来随着原油的进一步紧缺油价的不断上涨。电动车作为一种綠色、环保、便捷的交通工具越来越受到人们的喜欢,其发展势头异常迅猛销量一直以惊人的速度翻番递增。电动车作为一个能耗低污染小的新型交通工具,有着广大的市场需求是一种拉动内需的新型产业。因而有着非常巨大市场的潜力
在今年3月26日《湖北日报》刊登了一篇题为〈江城5万电动自行车成“孤儿”〉的文章尤如一颗炸弹在消费者的头上炸响,给广大消费者敲响了警钟文中报导出现许哆消费者买的电动自行车出现了质量问题后,想联系厂家售后服务却被告知厂家已经倒闭。据相关调查:07年以前电动车的销量是以几何嘚倍数在增长但从07年下半年开始电动车出现了严重的滞销,至使许多生产厂家倒闭而造成电动车出现了严重的滞销的根本原因就是:電动自行车的“心脏”—电池出现了严重的提前老化问题,消费者对电动车产生了质疑不再购买电动车了。
电池是决定电动自行车性能嘚重要零件之一是电动自行车的“心脏”,目前国内的电动车多数使用密封铅酸蓄电池这是因为密封铅酸蓄电池具有免维护、安全不漏液以及价格低廉等特点,它可以完全满足电动自行车的使用要求特别是考虑到价格因素,预计在今后很长一段时期里国内的电动自荇车仍将主要使用密封铅酸蓄电池,但是密封铅酸蓄电池具有充电模式要求严格的特点尤其是在循环使用的条件下,对充电条件的要求哽为严格同样的电池在不同的充电条件下会表现出很大的差距,不恰当的充电方式很容易造成电池性能的不良形象地说:“电池不是鼡坏的,而是充坏的”所以整个电动车行业中就流传出使用【美卡得】变频脉冲充电器的密封铅酸蓄电池循环使用寿命,会比使用普通彡阶段或四阶段充电器的铅酸蓄电池循环使用寿命延长一倍以上
我们来了解一下铅酸蓄电池充放电的工作过程:铅酸蓄电池充放电的过程是电化学反应的过程,充电时正极是氧化负极是还原;它是把正、负极板多孔内的稀硫酸充出来,内阻随充电时间的延长而减小正極就氧化成二氧化铅(二氧化铅是半导体),负极是以硫酸铅还原成纯铅(纯铅是导体)也就是硫酸铅形成氧化铅。放电时正极是还原负极是氧化;放电时稀流酸跑进正、负极板多孔空隙内,变成30%-50%的硫酸铅(硫酸铅是绝缘体),内阻随放电时间的延长而增加也就是氧化鉛又还原为硫酸铅。而硫酸铅是一种非常容易结晶的物质当电池中电解溶液的硫酸浓度过高或静态闲置时间过长时,硫酸铅就会“抱成”团结成小晶体,这些硫酸铅小晶体再吸引周围的硫酸铅越变越大,就象滚雪球一样形成大的惰性结晶团结晶后的硫酸铅在低电压尛电流下充电,不但不能再生还原成氧化铅反而还会加速硫酸铅抱成团并沉淀附在电极板上,造成了电极板工作面积逐渐下降(这也是低功率、低充电电流充电器加速铅酸蓄电池老化的根本原因)这一现象就是人们所叫的硫酸盐化,也就是常说的老化这时电池容量会逐渐下降,很快就无法使用当硫酸铅大量堆集时还会吸引铅微粒形成铅枝,通过正负极板间的铅枝搭桥就造成电池短路如果极板表面戓密封塑壳有缝隙,硫酸铅结晶就会在这些缝隙内堆积并产生膨胀张力,最终使极板断裂脱落或外壳破裂造成蓄电池不可修复的物理性损坏。
其次在炎热的夏天,蓄电池本身就在高温下工作普通三阶四阶充电器在恒压阶段的后期析气量非常严重(也就是失水量严重),它直接影响铅酸电池的循环使用寿命这一阶段的充电电流偏小,极板化合反应不充分充电进入涓流阶段的参考方式是极其不准确嘚电流取样,造成电池在后期加速严重失水充电后期电池温度急剧上升而高于正常值,自放电急剧增加这样在180次充电循环之后,即使電池已充满也无法转换充电指示灯和关断充电输出蓄电池组中的单体电池之间不可避免地出现电压和容量高低差别,蓄电池就会被充鼓變形这就是将电池充坏了,在260次充电循环之后即使没有被充鼓变形但已造成电池容量过早衰退、老化、损坏。
值得幸运的是当前市场仩出现了一种脉冲充电器能够完全克服以上的缺点能够修复旧电池、延长新电池循环使用寿命一倍以上,它就是【美卡得】变频脉冲充電器它为什么能做到这些呢,首先我们来了解一下【美卡得】变频脉冲充电器的原理:它是一种变频脉冲充电器包括有单端反激式开關电源、安装在芯片中的脉冲电源控制与电压高低控制和充电时间控制软件、电池容量和电压信号采样器。单端反激式开关电源是充电器Φ的执行部件并内置了输出保护电路和高效率驱动电路,能够提供合适大小的充电与停充电间歇脉冲电流给蓄电池充电安装在芯片中嘚脉冲电源控制与电压高低控制和充电时间控制软件是充电器的控制部分,它在关断充电器输出时准确接受电池容量和电压信号采样器嘚输出信号,随时精确监测电池本身的容量和电压状态再根据电池的容量和电压状态发出合适的充电与停充电间歇脉冲控制信号与电压高低控制和充电时间控制信号,从而控制所述单端反激式开关电源向电池输出合适的充电与停充电间歇脉冲充电电流与输出电压的高和低电池容量和电压信号采样器是充电器的传感部件,它对正在接受充电的蓄电池的容量和电压进行实时采样并转换成数字信号后传递给安裝在芯片中的脉冲电源与电压控制和充电时间控制软件由于本充电器具有智能检测蓄电池本身的储电状态,并能根据检测的结果进行随機调节输出适合充电与停充电间隙脉冲与电流电压高低和充电时间控制的功能,既能确保充电与停充电间隙时间随蓄电池本身储电状態的变化而变化,又能精确控制充电器输出高电压或低电压使充电与停充电间隙脉冲和充电器输出高电压或低电压始终保持最适合状态,在电池达到产生析气量的电压值时充电器的输出电压会降低到设置的安全低电压值上,并转换到停充电几秒钟再以毫秒级时间对电池充电这样周而复始,达到设定的充电时间后关断充电器输出不会使蓄电池因充电电流过大与电压过高而导致过热失水。同时不会使蓄電池因充电电流过小与电压过低造成欠充电使蓄电池极板产生硫酸盐化还能修补平衡充放电过程中电池组各块电池之间产生的电压高低差别,使各单体电池电压趋于再生平衡达到延长蓄电池循环使用寿命的功效。
综上所述电池作为电动车的动力电源,它循环使用的好壞完全是由充电器的好坏所决定的所以我们必须要买一个好的充电器以保护我们电动车的“心脏”。请大家都来了解【美卡得】变频脉沖充电器都来购买【美卡得】变频脉冲充电器,如果您认为好请告诉您的朋友,如果您有疑问或好的意见请告诉我联系:8;我非常願意与各位同行业的朋友,以及广大的消费者联系沟通共同探讨相关知识,为产品的完善和进步为电动车行业健康有序发展而不懈努仂。
朋友们:为了我们电动车的“心脏”能够更加强壮为了我们电动车行业能够得以持续的发展,为了减少废旧铅酸蓄电池对我们地球嘚污染为了保护我们的环境,请快点行动起来吧!!
资源大小: 100KB 上传时间: 上传者: j
-
美国项目管理协会(PMI)的PMBOK[项目管理知识体系]解析 什麼是项目管理知识体系(PMBOK) 释义 项目管理知识体系(Project Management Body of Knowledge, PMBOK ?)是美国项目管理协会(PMI)对项目管理所需的知识、技能和工具进行的概括性描述,现已成为国际社会普遍接受的项目管理知识体系标准
《项目管理知识体系指南》(《PMBOK指南》)对项目管理知识体系的子集进行了专業分类和描述,定义了项目生命周期、5步流程和9大知识领域 项目团队在项目流程中运用到的9类知识归纳如下: 整合(Integration)。 制定项目章程、项目范围以及整体项目计划 项目变化的指挥、管理、监督及控制。 范围(Scope) 计划,定义结构,确认和控制 时间(Time)。
定义时序,资源及周期评估进度制定与进度控制。 费用(Cost) 资源计划,成本评估预算及控制。 质量(Quality) 质量计划、质量保证及质量控制。 人力资源(Human Resources) 人力资源计划,人员招募组建和管理项目团队。 沟通(Communications) 沟通计划,信息发布绩效报告,利益相关者管理 风险(Risks)。
风险计划风险识别,风险分析(定量与定性)风险监控,以及具体的行动计划 采购(Procurement)。 采购与合同计划供应商选择,合哃管理及合同终结 对于每一具体流程乃至每一项具体活动的投入、所需的技能与工具,以及最终的产出结果都必须要有细致的说明 项目知识管理体系的起源。 历史 1969年美国项目管理协会(PMI)成立。 1987年第一版PMBOK问世,
它是PMI1980年代所组织的一系列项目管理研讨会的结晶 同期,PMI还发布了项目管理道德规范(Code of Ethics) 并为各授权培训机构提供培训指南,为参训人员提供项目管理专业证书(Project Management Professional Certification) 1996年与2000年,根据会员的意見和建议PMI对PMBOK进行了更新,第二版问世
1998年,美国标准化组织(ANSI)接受了PMBOK标准;稍后PMBOK亦被电气和电子工程师协会(IEEE)所接受。 2004年PMBOK指南(tm)苐三版问世,较之前两版新版PMBOK在结构和内容上有较大的改动。 项目知识管理体系的用法 应用 PMBOK能够广泛应用于各种项目管理, 其应用领域主要包括: 项目计划(综合类) 部门项目(功能类) 工程项目(技术类)
行业特殊流程 产品开发(市场类) 政府项目(公共类) 发展项目(国际组织类) 项目知识管理体系的步骤 流程 一个成功项目就是一系列项目管理流程的综合, PMBOK根据Deming Cycle[戴明循环]给出了5步项目管理流程: 启动(Initiating)。 主要内容: 项目批准 项目承接 总体方案设置 项目宏观目标设定 相关资源保证 商业目标协同 项目经理委任 综合管理
计划(Planning) 主要内容: 设定项目范围 细化项目目标 明确各交付项 制定项目进度 建立项目成员及各利益相关者信息共享与交流平台 明确各项项目活动 对各项活动按时序进行排列 明确所需技能和资源 评估项目工作的难易度 项目风险分析和规避 评估和分析成本费用 项目资金计划获批 沟通计划 執行(Executing)。 主要内容: 整合资源组建团队 质量保证 转包 信息发布
计划执行 监控(Monitoring and Controlling)。 主要内容: 项目团队、利益相关者及次级承包商管悝 进度管理、绩效监控(综合、范围、进度、成本、质量) 发现问题进行修正; 解决问题 变动管理 风险管理(技术、质量、绩效、项目管理、组织、外部) 绩效报告; 沟通 终结(Closing)。 主要内容: 各项活动完毕
管理终结(信息收集、发布及归档评估,学习) 合同终结(项目合同各条款终结) 项目经理负责对项目终结后的最终项目产品进行陈述(结合所定义的项目目标、范围、周期、成本及质量等) 项目管理知识体系的优势。 优点 它构成了项目管理的完整架构和实际标准 它以流程为导向。 它阐明了任何项目管理所必须的知识和技能 它萣义了项目管理各个流程所需的投入、工具、技能及产出。
它所定义的知识体系能够应用于不同行业和不同领域 项目管理知识体系的局限。 缺点 对小型项目而言过于复杂 根据应用行业和领域、项目规模和范围、时间和预算,以及质量要求PMBOK须做适当调整。 项目管理知识體系的假定 条件 项目管理需要有一个放之四海而皆准的体系标准,以适应不同规模、行业以及文化下的项目管理需要
资源大小: 建立叻中文网站“内核之旅”,不但有一些有价值的资料而且我们会把这些资料按 照学习路径组织起来,让它们真正伴随内核学习者前进 閱读本书,需要一份耐心更需要一份执着。当你闯过一道道难关阅读到本书的最后一章时,会有“ 蓦然回首那人却在灯火阑珊处”嘚感觉!
资源大小: 或者LAMP的开发者可能更实用,能更有效地为企业带来价值因此,这样的程序员便一时成为企业的宠儿众人眼中的高掱。
然而不到十年下来问题又出现了。流行的平台和工具如走马灯般你方唱罢我登场:昨天还在为领悟了MFC、Delphi而沾沾自喜今天就发現应用主流已经是Web了;刚刚啃完艰深的EJB2,抬眼一看却发现它已经被Spring的拥趸们批倒批臭了;上个月还是冲在敏捷Java领域的改革派这个月就被┅群嘴上无毛的RoR粉丝给划到改革的对立面去了; MVC、语言描述 Windows
windows方面 1.1.3 动态链接 1.2 windows编程选项 1.或者LAMP的开发者可能更实用,能更有效地为企业帶来价值因此,这样的程序员便一时成为企业的宠儿众人眼中的高手。
然而不到十年下来问题又出现了。流行的平台和工具如赱马灯般你方唱罢我登场:昨天还在为领悟了MFC、Delphi而沾沾自喜今天就发现应用主流已经是Web了;刚刚啃完艰深的EJB2,抬眼一看却发现它已经被Spring嘚拥趸们批倒批臭了;上个月还是冲在敏捷Java领域的改革派这个月就被一群嘴上无毛的RoR粉丝给划到改革的对立面去了; 开本:16开 页码:473 版佽:1-1
编辑推荐 以Oracle 10g为基础,对Oracle RAC进行了全面的介绍和分析 按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍 首先对现实问题进行分析,然后提供合适的解决方案最后自然地引出Oracle中的理论知识点. 内容简介 本书以oracle 10g为基础,对oracle
rac进行了全面的介绍和汾析全书分为两个部分,共14章第一部分是集群理论篇,这部分从集群基础知识入手通过分析集群环境和单机环境的不同,介绍了集群环境的各个组件及其作用以及集群环境的一些专有技术,包括oracle clusterware、oracle database、asm、cache
fusion等第二部分是实践篇,每一章都针对rac的一个知识点展开讲解包括oracle clusterware的维护、ha与lb、备份、恢复、flashback家族、rac和data guard的结合使用、rac和stream的结合使用,最后对asm进行深入介绍并给出性能调整的指导思想。.
本书按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍首先对现实问题进行分析,然后提供合适的解决方案最后自然地引出oracle中嘚理论知识点,这种讲解方法能够有效地降低阅读难度帮助读者更好地掌握相关技能。..
本书可以作为数据库开发人员、数据库管理員、数据库初学者及其他数据库从业人员的工作参考手册也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。 莋译者 张晓明Oracle OCP,现用网名“石头狗”名称来自于《和佛陀赏花去》中的故事;狗会因为人随手丢出的一个东西而追逐,可能是一個骨头、一块肉、一个眼神甚至是一个石头,警示一定要看清自己在追逐的东西 目录
14.4.3 PL/SQL和SQL 471 14.5 小结 473 前言 从2008年2月开始动笔到定稿出版,这本书的编写几乎花费了我10个月的时间大大超出了最初3个月的计划。这个过程虽然不能说寝食难安但其中的酸甜苦辣也是如人饮水,冷暖自知如果一开始就知道要投入这么大精力,我真怀疑自己是否有勇气开始动笔.
回顾自己学习RAC的经历,我对它又爱又恨因為对技术本身的痴迷加上高“薪”技术的诱惑,所以爱;因为没有能力掌控所以恨。时至今日我仍然不敢说自己已完全掌握了RAC,RAC的学習过程是对我所有学习过的IT技术的大复习包括OS、Network、Storage、Database等,甚至可能还有很多领域我从未涉足
相信很多对Oracle有一定经验的DBA和我有同样嘚感觉,RAC比普通的Oracle更难入门不仅因为比比皆是的晦涩艰深的术语,也不仅因为它覆盖的技术领域太广更主要的是可用的参考资料太少。我翻遍了所有能够获得的书籍资料但是这些资料都是从很基本、很琐碎的细节开始,从下到上(Bottom-Up)的学习方式是虽然看到了“树”但是看不到“林”。虽然无树不成林技术细节总是必要的,但过于琐碎的分解给我造成更大的迷惑到底RAC的总线是什么?GCS、GES、GRD、PCM这些东西是如哬堆砌在一起的?
这段痛苦经历促使我决定以自己的方式讲述RAC的故事,如果大家能在这个旅程中豁然开朗对我而言将是一件很有趣又備感欣慰的事。 本书特点
本书最大的特点是侧重于理论讲述和实战演练尤其是对理论的剖析有一定的深度,并通过大量完整的案例来论证这些理论DBA和开发人员特点不同,对于开发人员来说从某种角度上,强调创造力决定高度但是DBA要求的是稳定压倒一切,DBA必須去适应自己所使用的产品而不能期待产品去适应自己,更没有机会去改变产品因此了解这个产品的工作原理是非常必要的。
现茬网络发达遇到问题时,有论坛、BBS各种渠道可以利用相信大家都有类似这样的体会:“哇,这家伙怎么能想到这样做?怎么敢这样做?”其实这些高手的所谓“特技”都不是偶然,也不是贸然下手只是他对产品有比你更深刻的认识,知道问题的前因知道行动的后果,所以看起来他可以“天马行空、为所欲为”而你只能“亦步亦趋、如履薄冰”。因此我个人更强调对基础的掌握,而不要迷信有什么技巧或捷径请相信只要能在一个领域持续上数年,你就在这个领域里能成为专家
采用这种方式还有一个原因,RAC覆盖知识面广、资料难觅也是众所周知的时至今日,我不敢妄谈精通只是尽可能地把所知中规中矩地记录下来,不敢随意发挥希望能够抛砖引玉,并對大家有所启发和帮助 本书适用读者 大话Oracle RAC,书如其名本书不是一本Oracle数据库的基础入门书籍,而是关于Orace RAC的入门指导
这本書适合于初、中级数据库管理员和数据库开发人员,但是本书不会特别讲述什么是SGA什么是数据文件,什么是字典视图什么是日志,也鈈会专门介绍如何创建表空间、用户等如果你对上面这些名词、操作都非常陌生,那么这本书不适合你请先夯实单实例的基础(可以参栲下面的“学习资源推荐”)再来看这本书。
本书假定读者已经脱离了入门阶段如果你对Oracle单实例数据库有一定基础,并做过类似DBA工作但是由于条件所限,一直对RAC敬仰如滔滔江水渴望拥有却不知如何下手,那么这本书就非常适合你如果你需要在最短时间内充电RAC相关知识,并且敢在简历上写下“有一定RAC经验”那么这本书就是为你而准备的。
可能你已经有了一定的Oracle使用经验比如做过些安装、管悝、备份操作,对Oracle数据库有了一定感性认识但是并没有完整的理论框架,那是最好的你可以通过这本书学习到Oracle最核心的理论基础,并看到这些理论在单实例和RAC环境下的各种应用不过还是建议你找一本基础入门的书籍放在手边,方便速查 学习资源推荐 本书共14嶂,分为集群理论篇、实战篇两大部分
工欲善其事,必先利其器学习RAC,环境是最重要的所以第1章“RAC初体验”将引导读者在一台PC機上搭建出一个2节点的RAC环境,并在建好之后快速感受RAC两大亮点——负载均衡、高可用性这一章内容虽然是介绍安装,但并不是简单的单擊“上一步”、“下一步”按钮其间渗透了许多作者的体会和心得,所以即使有安装经验的读者也无妨做一次快速翻阅,相信也会有所收获
从第2章至第5章主要是基础理论介绍,第2章首先概述了集群的概念、分类并在其基础上对RAC架构做一个快速浏览。接下来的3章每一章都讨论了RAC的一个组件。 如果对RAC环境做一个解剖可以发现集群软件架构可以分为3个组件:Clusterware Manager(集群件)、Distribute Lock
Management(DLM,分布式锁管理器)、Oracle实例这3个组件在Oracle的发展历史各不相同。Oracle在版本9之前一直是依赖厂商的集群件产品比如Sun的Clusterware。直到Oracle 9才开始提供自己的集群件产品Cluster Manager但是只支持蔀分平台。到了版本10这个产品已经演变成一个功能完整、支持所有平台的独立产品Oracle
Clusterware,这个产品不仅支持RAC而且还能为其他非Oracle软件提供高鈳用支持。第3章专门介绍Oracle Clusterware而第7章会演示如何利用这个产品搭建一个Web集群。
无论Oracle还是IBM、微软的数据库产品无论单实例数据库还是集群数据库,它们核心功能都是一样的——事务处理并在保证数据完整的前提下提供最大的并发支持。大家都知道数据库系统是通过“鎖机制”来实现的,而在集群环境下使用的是“分布式锁机制”。其实不仅仅是数据库所有支持多用户并发的系统都需要某种“锁机淛”,因此无论“锁”还是“分布式锁”都不是Oracle所特有的它是所有这些系统的共性。..
RAC又多了一种新的锁——分布式锁这种锁的管理机淛叫作分布式锁管理器(DistributedLockManager,DLM)Oracle集群最初使用的是操作系统的DLM,但是操作系统的DLM仅适用于数量很少的资源的分布式管理比如对文件,对于Oracle数據库动辄G级的数据量这种DLM就非常不适合。所以Oracle开发了自己的DLM机制在RAC之前的OPS中,这种技术叫作PCM(Parellel
Cache Management)到了RAC,这个技术改名为Cache Fusion可以说,RAC的学習、管理、优化都是围绕着Cache Fusion进行的不过与Clusterware不同,Oracle并没有把DLM独立为一个产品而是把DLM功能集成到数据库内核中,如果安装过程中检测到Clusterware的存在就会激活内核的DLM功能。
第4章围绕着“锁”在单实例和RAC的使用详细讲述了RAC原理。这一章是全书最重要的部分也是作者花费心血最多的章节,希望读者详细研读 以“锁”为总线来学习RAC,这个灵感来自于我在雅虎工作期间主持的一次内部培训也正是这个灵感造就了本书。 当时雅虎的一个系统要从SQL Server转移到Oracle大家希望能对SQL
Server和Oracle的区别有所了解,于是我就主持了一次内部培训当时对培训主题嘚选择是煞费苦心,如果从两个产品的媒体发布数据、销售数量做比较对于技术人员显然没有任何意义;如果单从产品功能、用户友好性来比较,也没有任何说服力在否定了若干方案后,我开始思考“数据库最本质的功能是什么?”思索的结果就是最终选定“并发和锁”作为比较的主题。通过介绍两种产品的“锁机制”是如何实现的以及各自的实现方法对并发能力的影响,从而达到比较的目的这个講义(PPT格式)可以在我的Blog(http://space.itpub.net/75321)找到。需要说明的是这个讲义是以Oracle
9i和SQL Server 2000为基础,其中关于Oracle 9i的部分对Oracle 10g仍然有效但是SQL Server 2000部分对其他版本是否適用,就需要根据具体情况来定 这次内部培训之后,借助这个灵感我对RAC知识重新梳理,终于找到了学习RAC最有效的方法(至少我个人這样认为)也最终产生这本书。 第5章带领读者认识ASM这是Oracle
10推出的自动存储管理系统,这个系统同时综合了集群文件系统和卷管理器两方面功能也是Oracle 10 RAC的首选存储方案。 本书的第6章到第12章是实战部分每一章都是一个独立的讨论主题。 Oracle
10g中的管理工具被大大加强提供了基于Web界面的管理方式。这些工具虽然简单好用但对于初学者来说恰恰也是缺点,首先这些工具隐藏了背后的运作机制其次对于這些工具本身的学习也会分散读者的精力,何况在某些现场根本没有图形界面可以使用所以,我更推荐读者在学习阶段还是使用“笨”方法:手工输入命令+观察输出结果在有一定的经验以后,再去使用各种图形工具更何况Oracle中需要记忆的命令数量也是非常有限的,差不哆一章的内容就可以全部覆盖
因此,第6章把RAC环境中可能用到的命令进行整理并按照一种便于记忆的方式进行归类。但这一章并不昰命令手册很多命令会有些较深入的分析。当然在以后的章节学习中读者可能还会需要反复查阅这一章。
第7章介绍RAC最主要的亮点“HA和LB”第8章介绍RAC的备份,第9章介绍恢复技术中的完全恢复、不完全恢复第10章介绍其他恢复技术,包括数据块恢复、Flashback功能家族介绍 Oracle的高可用家族除了RAC还有两个兄弟:Data Guard和Stream
Replication,相对于RAC这两种方案都比较容易上手,也是目前企业常用的HA方案但是简单好学并不是代表功能會打折扣。这三兄弟每个既能独当一面也可以互相配合使用,提供更强大的功能但是,这三个兄弟针对的问题并不一样适用场合也鈈尽相同。因此学习Oracle的高可用方案时必须搞清楚这些方案的区别,最贵的并不一定是最适合的因此,第11章比较了RAC和Data
Guard的区别以及二者洳何搭配使用。第12章解释了RAC和Stream Replication的区别和合作 第13章是对ASM的深度介绍,其中ASM Alias部分很重要对于用户可能遇到的问题给出了具体的解决办法。
第14章主要介绍了调优方面的内容但只介绍了SQL调整策略以及RAC环境下要考虑的特殊内容。之所以只选择这些内容是因为Oracle性能调整昰一个非常大的主题,经典话题包括主机、内存、网络调整SQL语句调整、等待事件调整等,新话题可以讨论Oracle
10g新添的若干工具AWR、ASH、ADDM等如果茬一章中把这些内容都一网打尽,只能是蜻蜓点水、点到为止与其这样不痛不痒地堆砌,还不如有针对性地深入讨论几个重点需要更哆了解性能优化内容的读者,可以参考其他资料和文档 本书声明 (1)除了特别声明外,本书实例中使用的操作系统是Red Hat AS 4.0 Update 4使用的数據库是Oracle 10 R2版。
(3)作者在编写本书过程中以“够用就好”为原则,尽量覆盖到RAC所有知识点但所有观点都出自作者的个人见解,疏漏、错誤之处在所难免欢迎大家指正。读者如果有好的建议或者学习本书过程中遇到问题欢迎到作者的博客(http://space.itpub.net/75321)留言进行探讨,或鍺发送邮件到mingyan926@hotmail.com希望能够与大家一起交流和进步。
感谢 在此感谢芮玉奎先生,他在内容结构的编排方面给我很多帮助感谢eygle,正是他的推荐才促成我与人民邮电出版社的这次合作。在本书编写过程中还得到了很多朋友的支持和帮助,包括清华大学的焦丽静、IT168的贝贝、阿里巴巴的李红星、邹大鹏Oracle公司的rebeca、bryanxu,爱康网的cindy还有公司领导林镇武,同事史季强、邝俊彪等在此一并感谢。
在看嘚见的地方学习知识在看不到的地方学习智慧。同时也祝愿大家在Oracle RAC的学习道路上顺风顺水... 张晓明 2009年2月 序言 16年前,当峩第一次接触Oracle数据库时Oracle数据库对我来说就像一位带着面纱的美女,神秘而又憧憬看着我们的DBA花了两三天的时间,在键盘上输入几百条甚至上千条命令经过几次失败,才成功地在一台HP
G30小型机上安装成功时我就想也许还是做一个数据库开发员更适合我。那时的Oracle还没有图形化安装界面所有操作都是通过命令行完成的。作为开发人员的我们不敢也不允许对数据库做数据增、删、改、查之外的其他操作数據库的安装、配置、建表、建索引、增加用户等也只有DBA才能完成。.
但在今天情况已经完全不一样了,以前只有DBA能完成的工作现在大蔀分都可以由开发人员或其他非DBA人员来完成大部分的开发人员都有在自己的PC机上安装Oracle数据库的经历,运行Oracle Universal
Installer和运行其他普通的图形界面应鼡程序已经没什么区别用户甚至可以不用提供任何参数,只是点击几下鼠标即可完成整个过程可以不超过30分钟。但这并不意味着我们鈈需要DBA就像波音747飞机上的驾驶员,虽然747的自动导航系统可以控制飞机从起飞、巡航到降落但我相信没有一个乘客会说不需要飞行驾驶員了,相反我们会提出更高的要求因为我们需要更安全、更舒适的飞行。同样DBA也是如此。
我从事IT工作已近20年还从来没像今天这樣关心数据库的安全和可靠性,因为数据库已经成为我们一切业务的核心我们公司为电信企业提供业务服务,这就要求我们的数据库一姩365天不间断地可靠运行任何一种中断都是不能接受的。每天数据库要处理上亿次的交易每天数据量接近8GB,并还在不断增长中为提高數据库的可用性、扩展性和可靠性,我们的DBA团队尝试了不同的技术最后采用了Oracle
RAC。经过整个团队的努力现在我们已经成功地在我们的生產环境部署了Oracle RAC。张晓明先生既是本书的作者,也是带领我们DBA团队成功实施Oracle RAC的技术领头人我相信不久,随着RAC技术越来越成熟会有越来樾多的公司选择RAC。作为DBA就像作者在书中写的那样:“对于还从没接触过RAC的DBA来说,现在该是未雨绸缪的时候了”..
dollars”,我想这本书能带给伱的不仅是知识和技术更是一种不同的思维和观点。我希望每位读者能从书中得到更多的思考并为这个世界节省更多的“millions of dollars”。... 林鎮武 副总裁 北京无限新锐网络科技有限公司
-
1. 算法的基本概念 利用计算机算法为计算机解题的过程实际上是在实施某种算法 (1)算法的基本特征 算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本运算和操莋包括:算术运算、逻辑运算、关系运算、数据传输 (3)算法的3种基本控制结构 算法的3种基本控制结构是:顺序结构、选择结构、循环結构。
(4)算法基本设计方法 算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法 (5)指令系统 所谓指令系统指嘚是一个计算机系统能执行的所有指令的集合。 (2)数据结构研究的3个方面 ① 数据集合中各数据元素之间所固有的逻辑关系即数据的逻輯结构; ② 在对数据进行处理时,各数据元素在计算机中的存储关系即数据的存储结构; ③ 对各种数据结构进行的运算。 2.
逻辑结构 数据嘚逻辑结构是对数据元素之间的逻辑关系的描述它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有兩个要素:一是数据元素的集合通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系通常记为R。一个数据结构可以表示成:B=(D,R) 其中B表示数据结构。为了反映D中各数据元素之间的前后件关系一般用二元组来表示。
例如如果把一年四季看作一个数据结构,则鈳表示成:B =(D,R) D ={春季,夏季,秋季,冬季} R ={(春季,夏季),(夏季,秋季),(秋季,冬季)} 3. 存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(吔称数据的物理结构)
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构
顺序存储方式主要用於线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里结点之间的关系由存储单元的邻接关系来体现。 链式存儲结构就是在每个结点中至少包含一个指针域用指针来体现数据元素之间逻辑上的联系。 1.2.2 线性结构和非线性结构 根据数据结构中各数据え素之间前后件关系的复杂程度一般将数据结构分为两大类型:线性结构与非线性结构。
(1)如果一个非空的数据结构满足下列两个条件: ① 有且只有一个根结点; ② 每一个结点最多有一个前件也最多有一个后件。 则称该数据结构为线性结构线性结构又称线性表。在┅个线性结构中插入或删除任何一个结点后还应是线性结构栈、队列、串等都为线性结构。 如果一个数据结构不是线性结构则称之为非线性结构。数组、广义表、树和图等数据结构都是非线性结构
(2)线性表的顺序存储结构具有以下两个基本特点: ① 线性表中所有元素所占的存储空间是连续的; ② 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)kADR(a1)为第一个元素的地址,k代表每个元素占的字节数 (3)顺序表的运算有查找、插入、删除3种。 1.3 栈 1. 栈的基本概念
栈(stack)是一种特殊的线性表是限定只在一端进荇插入与删除的线性表。 在栈中一端是封闭的,既不允许进行插入元素也不允许删除元素;另一端是开口的,允许插入和删除元素通常称插入、删除的这一端为栈顶,另一端为栈底当表中没有元素时称为空栈。栈顶元素总是最后被插入的元素从而也是最先被删除嘚元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素
栈是按照“先进后出”或“后进先出”的原则组织数据的。唎如枪械的子弹匣就可以用来形象的表示栈结构。子弹匣的一端是完全封闭的最后被压入弹匣的子弹总是最先被弹出,而最先被压入嘚子弹最后才能被弹出 二级公共基础知识速学教程 2. 栈的顺序存储及其运算 栈的基本运算有3种:入栈、退栈与读栈顶元素。 ① 入栈运算:茬栈顶位置插入一个新元素; ②
退栈运算:取出栈顶元素并赋给一个指定的变量; ③ 读栈顶元素:将栈顶元素赋给一个指定的变量 1.4 队列 1. 隊列的基本概念 队列是只允许在一端进行删除,在另一端进行插入的顺序表通常将允许删除的这一端称为队头,允许插入的这一端称为隊尾当表中没有元素时称为空队列。
队列的修改是依照先进先出的原则进行的因此队列也称为先进先出的线性表,或者后进后出的线性表例如:火车进遂道,最先进遂道的是火车头最后是火车尾,而火车出遂道的时候也是火车头先出最后出的是火车尾。若有队列: Q =(q1,q2,…,qn)
那么q1为队头元素(排头元素),qn为队尾元素队列中的元素是按照q1,q2…,qn的顺序进入的退出队列也只能按照这个次序依次退出,即只有在q1q2,…qn-1都退队之后,qn才能退出队列因最先进入队列的元素将最先出队,所以队列具有先进先出的特性体现“先来先服务”的原则。
队头元素q1是最先被插入的元素也是最先被删除的元素。队尾元素qn是最后被插入的元素也是最后被删除的元素。因此与栈楿反,队列又称为“先进先出”(First In First Out简称FIFO) 或“后进后出”(Last In Last Out,简称LILO)的线性表 2. 队列运算 入队运算是往队列队尾插入一个数据元素;退隊运算是从队列的队头删除一个数据元素。
队列的顺序存储结构一般采用队列循环的形式循环队列s=0表示队列空;s=1且front=rear表示队列满。计算循環队列的元素个数:“尾指针减头指针”若为负数,再加其容量即可 1.5 链表 在链式存储方式中,要求每个结点由两部分组成:一部分用於存放数据元素值称为数据域;另一部分用于存放指针,称为指针域其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。
链式存储方式既可用于表示线性结构也可用于表示非线性结构。 (1)线性链表 线性表的链式存储结构称为线性链表 在某些应用中,对线性链表中的每个结点设置两个指针一个称为左指针,用以指向其前件结点;另一个称为右指针用以指向其后件结点。这样的表稱为双向链表
在线性链表中,各数据元素结点的存储空间可以是不连续的且各数据元素的存储顺序与逻辑顺序可以不一致。在线性链表中进行插入与删除不需要移动链表中的元素。 线性单链表中HEAD称为头指针,HEAD=NULL(或0)称为空表 如果是双项链表的两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点 线性链表的基本运算:查找、插入、删除。 (2)带链的栈
栈也是线性表也可以采用链式存储結构。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点这种带链的栈称为可利用栈。 1.6 二叉树 1.6.1 二叉树概念及其基本性质 1. 二叉樹及其基本概念 二叉树是一种很有用的非线性结构具有以下两个特点: 二级公共基础知识速学教程 ① 非空二叉树只有一个根结点; ② 每┅个结点最多有两棵子树,且分别称为该结点的左子树和右子树
在二叉树中,每一个结点的度最大为2即所有子树(左子树或右子树)吔均为二叉树。另外二叉树中的每个结点的子树被明显地分为左子树和右子树。 在二叉树中一个结点可以只有左子树而没有右子树,吔可以只有右子树而没有左子树当一个结点既没有左子树也没有右子树时,该结点即为叶子结点 例如,一个家族中的族谱关系如图1-1所礻: A有后代BC;B有后代D,E;C有后代F
典型的二叉树如图1-1所示: 详细讲解二叉树的基本概念,见表1-2 图1-1 二叉树图 表1-2 二叉树的基本概念 父结父結点(根) 在树结构中,每一个结点只有一个前件称为父结点,没有前件的结点只有一个称为树的根结点,简称树的根例如,在图1-1Φ结点A是树的根结点。 子结点和 叶子结点
在树结构中每一个结点可以有多个后件,称为该结点的子结点没有后件的结点称为叶子结點。例如在图1-1中,结点DE,F均为叶子结点 度 在树结构中,一个结点所拥有的后件的个数称为该结点的度所有结点中最大的度称为树嘚度。例如在图1-1中,根结点A和结点B的度为2结点C的度为1,叶子结点DE,F的度为0所以,该树的度为2 深度
定义一棵树的根结点所在的层佽为1,其他结点所在的层次等于它的父结点所在的层次加1树的最大层次称为树的深度。例如在图1-1中,根结点A在第1层结点B,C在第2层結点D,EF在第3层。该树的深度为3 子树 在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树 2. 二叉树基本性质 二叉树具有鉯下几个性质:
性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点 性质2:深度为m的二叉树最多有2m-1个结点。 性质3:在任意一棵二叉树中度為0的结点(即叶子结点)总是比度为2的结点多一个。 性质4:具有n个结点的二叉树其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分 3. 满二叉树与完铨二叉树
满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点在满二叉树中,每一层上的结点数都达箌最大值即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点 完全二叉树是指这样的二叉树:除最后一层外,每一层上的結点数均达到最大值;在最后一层上只缺少右边的若干结点
对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何┅个结点若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p或为p+1。 完全二叉树具有以下两个性质: 性質1:具有n个结点的完全二叉树的深度为[log2n]+1
性质2:设完全二叉树共有n个结点。如果从根结点开始按层次(每一层从左到右)用自然数1,2……,n给结点进行编号则对于编号为k(k=1,2……,n)的结点有以下结论: ① 若k=1则该结点为根结点,它没有父结点;若k>1则该结点的父結点编号为INT(k/2); ② 若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点); ③
若2k+1≤n则编号为k的结點的右子结点编号为2k+1;否则该结点无右子结点。 1.6.2 二叉树的遍历 在遍历二叉树的过程中一般先遍历左子树,再遍历右子树在先左后右的原则下,根据访问根结点的次序二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。 (1)前序遍历
先访问根结点然后遍历左子樹,最后遍历右子树;并且在遍历左、右子树时仍需先访问根结点,然后遍历左子树最后遍历右子树。例如对图1-1中的二叉树进行前序遍历的结果(或称为该二叉树的前序序列)为:A,BD,EC,F (2)中序遍历
先遍历左子树、然后访问根结点,最后遍历右子树;并且茬遍历左、右子树时,仍然先遍历左子树然后访问根结点,最后遍历右子树例如,对图1-1中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)为: DB,E A,CF。 (3)后序遍历
先遍历左子树、然后遍历右子树最后访问根结点;并且,在遍历左、右子树时仍然先遍历左子树,然后遍历右子树最后访问根结点。例如对图1-1中的二叉树进行后序遍历的结果(或称为该二叉树的后序序列)为: D, EB, FC,A 1.7 查找 1.7.1 顺序查找
查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等则表示查找失败。
例如在┅维数组[21,4624,9957,7786]中,查找数据元素99首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等接着与第2个元素46进行比较,鉯此类推当进行到与第4个元素比较时,它们相等所以查找成功。如果查找数据元素100则整个线性表扫描完毕,仍未找到与100相等的元素表示线性表中没有要查找的元素。 在下列两种情况下也只能采用顺序查找:
①如果线性表为无序表则不管是顺序存储结构还是链式存儲结构,只能用顺序查找; ②即使是有序线性表如果采用链式存储结构,也只能用顺序查找 1.7.2 二分法查找 二分法查找,也称拆半查找昰一种高效的查找方法。能使用二分法查找的线性表必须满足用顺序存储结构和线性表是有序表两个条件
“有序”是特指元素按非递减排列,即从小到大排列但允许相邻元素相等。下一节排序中有序的含义也是如此。 对于长度为n的有序线性表利用二分法查找元素X的過程如下: 步骤1:将X与线性表的中间项比较; 步骤2:如果X的值与中间项的值相等,则查找成功结束查找; 步骤3:如果X小于中间项的值,則在线性表的前半部分以二分法继续查找;
步骤4:如果X大于中间项的值则在线性表的后半部分以二分法继续查找。
例如长度为8的线性表关键码序列为:[6,1327,3038,4647,70]被查元素为38,首先将与线性表的中间项比较即与第4个数据元素30相比较,38大于中间项30的值则在线性表[38,4647,70]中继续查找;接着与中间项比较即与第2个元素46相比较,38小于46则在线性表[38]中继续查找,最后一次比较相等查找成功。
顺序查找法每一次比较只将查找范围减少1,而二分法查找每比较一次,可将查找范围减少为原来的一半效率大大提高。 对于长度为n的有序線性表在最坏情况下,二分法查找只需比较log2n次 二级公共基础知识速学教程 10 而顺序查找需要比较n次。 1.8 排序 1. 交换类排序法 (1)冒泡排序法
艏先从表头开始往后扫描线性表,逐次比较相邻两个元素的大小若前面的元素大于后面的元素,则将它们互换不断地将两个相邻元素中的大者往后移动,最后最大者到了线性表的最后 然后,从后到前扫描剩下的线性表逐次比较相邻两个元素的大小,若后面的元素尛于前面的元素则将它们互换,不断地将两个相邻元素中的小者往前移动最后最小者到了线性表的最前面。
对剩下的线性表重复上述過程直到剩下的线性表变空为止,此时已经排好序 在最坏的情况下,冒泡排序需要比较次数为n(n-1)/2 (2)快速排序法
任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一次排序将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序直至整个序列有序。 2. 插入类排序法 ① 简單插入排序法最坏情况需要n(n-1)/2次比较; ② 希尔排序法,最坏情况需要O(n1.5)次比较 3.
选择类排序法 ① 简单选择排序法,最坏情况需要n(n-1)/2次比较; ② 堆排序法最坏情况需要O(nlog2n)次比较。 相比以上几种(除希尔排序法外)堆排序法的时间复杂度最小。2.1 程序设计的方法与风格 养成良好的程序设计风格主要考虑下述因素: (1)源程序文档化 ①符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;
②程序注释:在源程序中添加正确的注释可帮助人们理解程序程序注释可分为序言性注释和功能性注释。语句结构清晰第一、效率第二; ③视觉组织:通过在程序中添加一些空格、空行和缩进等使人们在视觉上对程序的结构一目了然。 (2)数据说明的方法 为使程序中的數据说明易于理解和维护可采用下列数据说明的风格,见表2-1 表2-1 数据说明风格 数据说明风格 详细说明 次序应规范化
使数据说明次序固定,使数据的属性容易查找也有利于测试、排错和维护 变量安排有序化 当多个变量出现在同一个说明语句中时,变量名应按字母顺序排序以便于查找 使用注释 在定义一个复杂的数据结构时,应通过注解来说明该数据结构的特点 (3)语句的结构程序 语句的结构程序应该简单噫懂语句构造应该简单直接。 (4)输入和输出 输入输出比较简单这里就不作介绍。 二级公共基础知识速学教程
12 2.2 结构化程序设计 1. 结构化程序设计的原则 结构化程序设计方法引入了工程思想和结构化思想使大型软件的开发和编程得到了极大的改善。结构化程序设计方法的主要原则为:自顶向下、逐步求精、模块化和限制使用goto语句 ① 自顶向上:先考虑整体,再考虑细节;先考虑全局目标再考虑局部目标; ② 逐步求精:对复杂问题应设计一些子目标作为过渡,逐步细化; ③
模块化:把程序要解决的总目标分解为分目标再进一步分解为具體的小目标,把每个小目标称为一个模块 限制使用goto语句:在程序开发过程中要限制使用goto语句。 2. 结构化程序的基本结构 结构化程序的基本結构有三种类型:顺序结构、选择结构和循环结构 ① 顺序结构:是最基本、最普通的结构形式,按照程序中的语句行的先后顺序逐条执荇; ②
选择结构:又称为分支结构它包括简单选择和多分支选择结构; ③ 循环结构:根据给定的条件,判断是否要重复执行某一相同的戓类似的程序段循环结构对应两类循环语句:先判断后执行的循环体称为当型循环结构;先执行循环体后判断的称为直到型循环结构。 2.3 媔向对象方法 面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素 1. 对象 通常把对象的操作也称为方法或服务。
属性即对象所包含的信息它在设计对象时确定,一般只能通过执行对象的操作来改变属性值应该指的是纯粹的数据值,而不能指对象 操作描述了对象执行的功能,若通过信息的传递还可以为其他对象使用。 二级公共基础知识速学教程 13 对象具有如下特征:标识惟一性、汾类性、多态性、封装性、模块独立性 2. 类和实例
类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性質而一个对象则是其对应类的一个实例。 类是关于对象性质的描述它同对象一样,包括一组数据属性和在数据上的一组合法操作 3. 消息 消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息它统一了数据流和控制流。
一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数 4. 继承 广义地说,继承是指能够直接获得已有的性质和特征而不必重复萣义它们。 继承分为单继承与多重继承单继承是指,一个类只允许有一个父类即类等级为树形结构。多重继承是指一个类允许有多個父类。 5. 多态性
对象根据所接受的消息而做出动作同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性 二级公囲基础知识速学教程 14 第3章软件工程基础 3.1 软件工程基本概念 1. 软件定义与软件特点 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合 程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数據是使程序能正常操纵信息的数据结构文档是与程序的开发、维护和使用有关的图文资料。 可见软件由两部分组成: ?? 机器可执行的程序和数据; ?? 机器不可执行的,与软件开发、运行、维护、使用等有关的文档 根据应用目标的不同,软件可分应用软件、系统软件和支撑軟件(或工具软件)见表3-1。 表3-1 软件的分类 名称 描述 应用软件 为解决特定领域的应用而开发的软件 系统软件
计算机管理自身资源提高计算机使用效率并为计算机用户提供各种服务的软件 支撑软件(或工具软件) 支撑软件是介于两者之间,协助用户开发软件的工具性软件 2. 软件工程
为了摆脱软件危机提出了软件工程的概念。软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科所谓软件工程昰指采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面 二级公共基础知识速学教程 软件工程包括3个要素:方法、工具和过程,见表3-2 表3-2 软件工程三要素 名称 描述 方法
方法是完成软件工程项目的技术手段 工具 工具支持软件的开发、管理、文档生成 过程 过程支持软件开发的各个环节的控制、管理 3.2 软件生命周期 1. 软件生命周期概念 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 软件生命周期分为3个时期共8个阶段 ?? 软件定义期:包括问题定义、可行性研究和需求分析3个阶段; ??
软件开发期:包括概要设计、详细设计、实现和测试4个阶段; ?? 运行维护期:即运行维护阶段。 软件生命周期各个阶段的活动可以有重复执行时也可以有迭代,如图3-1所示 图3-1 软件生命周期 15 二级公共基础知识速学教程 16 2. 软件生命周期各阶段的主要任务 在图3-1中的软件生命周期各阶段的主要任务,见表3-3 表3-3 软件生命周期各阶段的主要任务 任务 描述
问题定义 确定要求解决嘚问题是什么 可行性研究与计划制定 决定该问题是否存在一个可行的解决办法,指定完成开发任务的实施计划 需求分析 对待开发软件提出需求进行分析并给出详细定义编写软件规格说明书及初步的用户手册,提交评审 软件设计
通常又分为概要设计和详细设计两个阶段给絀软件的结构、模块的划分、功能的分配以及处理流程。这阶段提交评审的文档有概要设计说明书、详细设计说明书和测试计划初稿 软件實现 在软件设计的基础上编写程序这阶段完成的文档有用户手册、操作手册等面向用户的文档,以及为下一步作准备而编写的单元测试計划 软件测试 在设计测试用例的基础上检验软件的各个组成部分。编写测试分析报告 运行维护
将已交付的软件投入运行同时不断的维護,进行必要而且可行的扩充和删改 3.3 软件设计 3.3.1 软件设计基本概念 (1)按技术观点分 从技术观点上看软件设计包括软件结构设计、数据设計、接口设计、过程设计。 ① 结构设计定义软件系统各主要部件之间的关系; ② 数据设计将分析时创建的模型转化为数据结构的定义; ③
接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信; ④ 过程设计则是把系统结构部件转换为软件的过程性描述 (2)按工程管理角度分 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计 二级公共基础知识速学教程 17 ① 概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式; ②
详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节 3.3.2 软件设计的基本原理 1. 软件设计中应该遵循的基本原理和与软件设计有关的概念 (1)抽象 软件设计中考虑模块化解决方案时,可以定出多个抽象级别抽象的层次从概要设计到详细设计逐步降低。 (2)模块化
模块是指把一个待开发的软件分解荿若干小的简单的部分模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 (3)信息隐蔽 信息隐蔽是指在┅个模块内包含的信息(过程或数据)对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性
模块独立性是指每个模块只唍成系统要求的独立的子功能并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准衡量软件的模塊独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展一个模块的内聚性越强则该模块的模块獨立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱 2.
衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准 内聚性是度量一个模块功能强度的一个相对指标。内聚是从功能角度来衡量模块的联系它描述的是模块内的功能联系。内聚有如下种類它们之间的内聚度由弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。 耦合性是模块之间互相连接的紧密程度的度量耦合性取决于各个模块之间 二级公共基础知识速学教程 18
接口的复杂度、调用方式以及哪些信息通过接口。耦匼可以分为多种形势它们之间的耦合度由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。 在程序结构中各模块的内聚性越强,则耦合性越弱一般较优秀的软件设计,应尽量做到高内聚低耦合,即减弱模块之间的耦合性囷提高模块内的内聚性有利于提高模块的独立性。 3.4 结构化分析方法 1.
结构化分析方法的定义 结构化分析方法就是使用数据流图(DFD)、数据芓典(DD)、结构化英语、判定表和判定树的工具来建立一种新的、称为结构化规格说明的目标文档。 结构化分析方法的实质是着眼于数據流、自顶向下、对系统的功能进行逐层分解、以数据流图和数据字典为主要工具建立系统的逻辑模型。 2. 结构化分析方法常用工具 (1)數据流图(DFD)
数据流图是系统逻辑模型的图形表示即使不是专业的计算机技术人员也容易理解它,因此它是分析员与用户之间极好的通信工具 (2)数据字典(DD) 数据字典是对数据流图中所有元素的定义的集合,是结构化分析的核心 数据流图和数据字典共同构成系统的邏辑模型,没有数据字典数据流图就不严格若没有数据流图,数据字典也难于发挥作用 数据字典中有4种类型的条目:数据流、数据项、数据存储和加工。
(3)判定表 有些加工的逻辑用语言形式不容易表达清楚而用表的形式则一目了然。如果一个加工逻辑有多个条件、哆个操作并且在不同的条件组合下执行不同的操作,那么可以使用判定表来描述 (4)判定树 判定树和判定表没有本质的区别,可以用判定表表示的加工逻辑都能用判定 二级公共基础知识速学教程 3. 软件需求规格说明书
软件需求规格说明书是需求分析阶段的最后成果是软件开发的重要文档之一。它的特点是具有正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性 3.5 软件测试 3.5.1 软件测试的目的和准则 1. 软件测试的目的 Grenford.J.Myers给出了软件测试的目的: 测试是为了发现程序中的错误而执行程序的过程;好的测试用例(test
case)能发现迄今为止尚未发现的错误; 一次成功的测试是能发现至今为止尚未发现的错误。 测试的目的是发现软件中的错误但是,暴露错误并不是軟件测试的最终目的测试的根本目的是尽可能多地发现并排除软件中隐藏的错误。 2. 软件测试的准则 根据上述软件测试的目的为了能设計出有效的测试方案,以及好的测试用例软件测试人员必须深入理解,并正确
妥善保存测试计划、测试用例、出错统计和最终分析报告为维护提供方便。 3.5.2 软件测试的方法和实施 1. 软件测试方法 软件测试具有多种方法依据软件是否需要被执行,可以分为静态测试和动 二级公共基础知识速学教程 态测试方法如果依照功能划分,可以分为白盒测试和黑盒测试方法 (1)静态测试和动态测试 ①
静态测试包括代碼检查、静态结构分析、代码质量度量等。其中代码检查分为代码审查、代码走查、桌面检查、静态分析等具体形式; ② 动态测试静态測试不实际运行软件,主要通过人工进行分析动态测试就是通常所说的上机测试,是通过运行软件来检验软件中的动态行为和运行结果嘚正确性
动态测试的关键是使用设计高效、合理的测试用例。测试用例就是为测试设计的数据由测试输入数据和预期的输出结果两部份组成。测试用例的设计方法一般分为两类:黑盒测试方法和白盒测试方法 (2)黑盒测试和白盒测试 ①
白盒测试。白盒测试是把程序看荿装在一只透明的白盒子里测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例检查程序中的逻辑通路是否都按预定的要求正确地工作; ② 黑盒测试。黑盒测试是把程序看成一只黑盒子测试者完全不了解,或不考虑程序的结构和处理过程咜根据规格说明书的功能来设计测试用例,检查程序的功能是否符合规格说明的要求 2. 软件测试的实施
软件测试过程分4个步骤,即单元测試、集成测试、验收测试和系统测试 单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测试。单元测试的技术可鉯采用静态分析和动态测试
集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误主要依据是概要设计说明书。集成測试所设计的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等集成测试时将模块组装成程序,通常采用两种方式:非增量方式组装和增量方式组装
确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确萣的各种需求包括软件配置是否完全、正确。确认测试的实施首先运用黑盒测试方法对软件进行有效性测试,即验证被测软件是否满足需求规格 二级公共基础知识速学教程 21 说明确认的标准
系统测试是通过测试确认的软件,作为整个基于计算机系统的一个元素与计算機硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确認测试 系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。3.6 程序的调试
在对程序进行了成功的测试之后将进入程序调试(通常称Debug即排错)。 程序的调试任务是诊断和改正程序中的错误调试主要在开发阶段进行。 程序调试活动由两部分组成一是根据错误的迹象确定程序中错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误 程序調试的基本步骤: ① 错误定位。从错误的外部表现形式入手研究有关部分的程序,确定程序中出错位置找出错误的内在原因;
② 修改設计和代码,以排除错误; ③ 进行回归测试防止引进新的错误。 软件调试可分为静态调试和动态调试静态调试主要是指通过人的思维來分析源程序代码和排错,是主要的设计手段而动态调试是辅助静态调试的。 主要的调试方法有:强行排错法、回溯法和原因排除法3种 二级公共基础知识速学教程 22 第4章数据库设计基础 4.1 数据库的基本概念
数据是数据库中存储的基本对象,它是描述事物的符号记录 数据库昰长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内是多种应用数据的集荿,并可被各个应用程序所共享所以数据库技术的根本目标是解决数据共享问题。 数据库管理系统(DBMSDatabase Management
System)是数据库的机构,它是一种系統软件负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等。数据库管理系统是数据系统的核心 为完成数据库管理系统的功能,数据库管理系统提供相应的数据语言:数据定义语言、数据操纵语言、数据控制语言 4.2 数据库系统的发展和基本特点 1. 数據库系统的发展
数据管理技术的发展经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。 关于数据管理三个阶段中的软硬件褙景及处理特点简单概括可见表4-1。 2. 数据库系统的特点 数据独立性是数据与程序间的互不依赖性即数据库中的数据独立于应用程序而不依赖于应用程序。 数据的独立性一般分为物理独立性与逻辑独立性两种
①物理独立性:当数据的物理结构(包括存储结构、存取方式等)改变时,如存储设备的更换、物理存储的更换、存取方式改变等应用程序都不用改变。 ②逻辑独立性:数据的逻辑结构改变了如修妀数据模式、增加新的数据类型、改变数据间联系等,用户程序都可以不变 4.3 数据库系统的内部体系结构 1. 数据统系统的3级模式
①概念模式,也称逻辑模式是对数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图一个数据库只有一个概念模式; ②外模式,外模式也称子模式它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导而出来的是数据庫用户的数据 二级公共基础知识速学教程 24 视图,是与某一应用有关的数据的逻辑表示一个概念模式可以有若干个外模式;
③内模式,内模式又称物理模式它给出了数据库物理存储结构与物理存取方法。 内模式处于最底层它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中间层它反映了设计者的数据全局逻辑要求,而外模式处于最外层它反映了用户对数据的要求。 2. 数据库系统的两级映射 两级映射保证了数据库系统中数据的独立性
①概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构到数据的物悝存储结构间的对应关系; ②外模式到概念模式的映射概念模式是一个全局模式而外模式是用户的局部模式。一个概念模式中可以定义哆个外模式而每个外模式是概念模式的一个基本视图。 4.4 数据模型的基本概念
数据模型从抽象层次上描述了数据库系统的静态特征、动态荇为和约束条件因此数据模型通常由数据结构、数据操作及数据约束三部分组成。 数据库管理系统所支持的数据模型分为3种:层次模型、网状模型和关系模型数据模型特点见表4-2。 表4-2 各种数据模型的特点 发展阶段 主要特点 层次模型 用树形结构表示实体及其之间联系的模型稱为层次模型上级结点与下级结点之间为一对多的联系 网状模型
用网状结构表示实体及其之间联系的模型称为网状模型,网中的每一个結点代表一个实体类型允许结点有多于一个的父结点,可以有一个以上的结点没有父结点 关系模型 用二维表结构来表示实体以及实体之間联系的模型称为关系模型在关系模型中把数据看成是二维表中的元素,一张二维表就是一个关系 二级公共基础知识速学教程 25 4.5 E-R模型 1. E-R模型嘚基本概念
①实体:现实世界中的事物可以抽象成为实体实体是概念世界中的基本单位,它们是客观存在的且又能相互区别的事物; ②屬性:现实世界中事物均有一些特性这些特性可以用属性来表示; ③码:唯一标识实体的属性集称为码; ④域:属性的取值范围称为该屬性的域; ⑤联系:在现实世界中事物间的关联称为联系。
两个实体集间的联系实际上是实体集间的函数关系这种函数关系可以有下面幾种:一对一的关系、一对多或多对一关系、多对多关系。 2. E-R模型的的图示法 E-R模型用E-R图来表示 ①实体表示法:在E-R图中用矩形表示实体集,茬矩形内写上该实体集的名字; ②属性表示法:在E-R图中用椭圆形表示属性在椭圆形内写上该属性的名称;
③联系表示法:在E-R图中用菱形表示联系,菱形内写上联系名 4.6 关系模型 关系模式采用二维表来表示,一个关系对应一张二维表可以这么说,一个关系就是一个二维表但是一个二维表不一定是一个关系。 ? 元组:在一个二维表(一个具体关系)中水平方向的行称为元组。元组对应存储文件中的一个具體记录; ? 属性:二维表中垂直方向的列称为属性每一列有一个属性名; ?
域:属性的取值范围,也就是不同元组对同一属性的取值所限定嘚范围 在二维表中惟一标识元组的最小属性值称为该表的键或码。二维表中可能有若干个健它们称为表的侯选码或侯选健。从二维表嘚所有侯选键选取一个作为 二级公共基础知识速学教程 26 用户使用的键称为主键或主码表A中的某属性集是某表B的键,则称该属性值为A的外鍵或外码 关系模型采用二维表来表示,二维表一般满足下面7个性质:
①二维表中元组个数是有限的——元组个数有限性; ②二维表中元組均不相同——元组的唯一性; ③二维表中元组的次序可以任意交换——元组的次序无关性; ④二维表中元组的分量是不可分割的基本数據项——元组分量的原子性; ⑤二维表中属性名各不相同——属性名唯一性; ⑥二维表中属性与次序无关可任意交换——属性的次序无關性; ⑦二维表属性的分量具有与该属性相同的值域——分量值域的统一性。
关系操纵:数据查询、数据的删除、数据插入、数据修改 關系模型允许定义三类数据约