软件工程概论-计算机软件基础(ppt 114页)34210.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程概论-计算机软件基础(ppt 114页)34210.pptx》由会员分享,可在线阅读,更多相关《软件工程概论-计算机软件基础(ppt 114页)34210.pptx(114页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下一页 http:/ 拥有庞大的管理资料库计算机软件基础计算机软件基础The software basic of computerThe software basic of computer主讲:刘志强主讲:刘志强第第1515单元单元软件工程概论软件工程概论1下一页上一页停止放映停止放映教学目标教学目标l了解软件工程的基本概念了解软件工程的基本概念l掌掌握握软软件件工工程程的的基基本本理理论论、技技术术和和方法,运用于软件的开发和生产方法,运用于软件的开发和生产2下一页上一页停止放映停止放映教学内容教学内容l了解软件、软件工程的基本概念软件的特征软件危机、软件工程瀑布模型、原型模型软件生存周期
2、中各个阶段的任务、实施方法及步骤3下一页上一页停止放映停止放映本单元涉及内容本单元涉及内容l概述软件的基本概念软件的发展和软件危机l第9章 软件工程9.1 软件工程9.2 软件生存周期9.3 软件工程管理4下一页上一页停止放映停止放映一、基本概念一、基本概念l软件 计算机系统中所有程序、数据结构及有关文档资料的总称。软件是计算机技术和人类智慧高度结合的产物,软件开发不是简单、机械地重复生产,而是创造性的脑力劳动。l软件的作用 软件是今后信息产业发展的推动力。美国最近在24项高科技领域中调查结果表明,其中18项与软件有关。5下一页上一页停止放映停止放映软件工程学的体系结构软件工程学的体系结构 软
3、件工程学软件工程学软件开发技术软件开发技术软件开发方法学软件开发方法学软件工具软件工具软件工程环境软件工程环境软件工程管理软件工程管理软件管理学软件管理学软件经济学软件经济学6下一页上一页停止放映停止放映问题的由来问题的由来l软件内在规律软件内在规律。任何事物有它自己的客观规律和发展轨迹。只有认识了它,才能驾驭它。l软件地位及作用软件地位及作用。软件是计算机系统中重要的组成部分。但在早期它并没有引起业界的重视。随着计算机技术的发展,随着“软件危机软件危机”的出现,以及软件危机对社会危害的增大,软件的地位和作用也越来越重要。l软件工程学软件工程学。业界人士不得不设置专门的学科软件工程学来研究软件
4、开发、生产的内在规律,用于指导现代工程化的软件生产。7下一页上一页停止放映停止放映软件的特征(软件的特征(与硬件产品比较与硬件产品比较)l软件是逻辑产品l软件产品质量的体现方式不同l软件产品的失败曲线不同l软件产品的成本构成不同l软件产品不存在同类零件替换l软件产品的静态和动态属性8下一页上一页停止放映停止放映软件是逻辑产品软件是逻辑产品l软件产品具有产值、价格、质量和功能的特性,但看不见,是逻辑的、无形的,是脑力劳动的结晶。9下一页上一页停止放映停止放映软件产品质量体现方式不同软件产品质量体现方式不同l质量体现方式不同:实用、可靠、可操作性;可维护性强方便用户不会折旧、损坏、老化10下一页上
5、一页停止放映停止放映软、硬件失败曲线软、硬件失败曲线 11下一页上一页停止放映停止放映成本构成不同成本构成不同 12%需求需求率率4%生产率生产率开发人员开发人员成本构成不同:主要投资在研制;软件研制是一种人力、资金密集的产业,而软件生产只是简单的复制、安装和培训。12下一页上一页停止放映停止放映软件产品不存在同类零件替换软件产品不存在同类零件替换l硬硬件件可可更更换换零零部部件件。当硬件产品中某个部件损坏后,可以用相同的备用部件更换,使硬件系统恢复正常工作。l软软件件不不能能更更换换零零部部件件。而软件产品却没有相同的备用部件可言,因为软件出现的每一个故障,要么是由于设计考虑不周造成的,要么
6、是编程错误造成的。由于软件无备用部件可供更换,因而软件维护比硬件维护要复杂得多,成本也高得多。13下一页上一页停止放映停止放映软件产品的静态和动态属性软件产品的静态和动态属性l软件是由程序和相关文档资料组成的。l程序是具有双重属性的:交交流流。它是求解客观问题的逻辑描述,是供阅读和交流的,它的表示是静态的;执执行行。程序最终是通过运行去执行特定的操作和数据处理,它又具有极其复杂和丰富内涵的动态属性。l程序是否正确的有双重标准:静态的程序正确与否是检查它的语法和句法是否符合规则要求;动态的程序正确与否则要动态的测试程序的所有逻辑流结构和数据结构是否正确。而后一种测试的难度和代价较之前一种要大得多
7、。14下一页上一页停止放映停止放映硬件生产率大幅提高硬件生产率大幅提高l如今,计算机的发展已进入一个新的历史阶段;l硬件产品已系列化、标准化,“即插即用”。l硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。l生产能力过剩。返 回15下一页上一页停止放映停止放映软件生产率很低软件生产率很低l伴随计算机的普及,整个社会对计算机应用的需求越来越大。l但软件的生产却还沿用“手工作坊”的生产方式,人工编程生产。生产效率仅提高了几倍。l生产能力极其低下。返 回16下一页上一页停止放映停止放映硬、软件供需失衡硬、软件供需失衡l社会大量需求,生产成本高,生产过程控制复杂
8、,生产效率低等等因素构成软件生产的恶性循环。l由此产生“软件危机”。返 回17下一页上一页停止放映停止放映矛盾引发矛盾引发“软件危机软件危机”l软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。l为了研究、解决软件危机,诞生了一门新兴学科软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。18下一页上一页停止放映停止放映软件危机的具体体现软件危机的具体体现(1)软件开发进度难以预测(2)软件开发成本难以控制(3)用户对软件功能难以满足(4)软件产品质量无法保证(5)软件产品难以维护(6)软件缺少文档资料19下一页上一页停止放映停止放映(1 1)软
9、件开发进度难以预测)软件开发进度难以预测l拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。l以丹佛新国际机场为例。该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度
10、。20下一页上一页停止放映停止放映(2 2)软件开发成本难以控制)软件开发成本难以控制l投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。l而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。21下一页上一页停止放映停止放映(3 3)用户对产品功能难以满足)用户对产品功能难以满足l开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。l在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”
11、的开发方式必然导致最终的产品不符合用户的实际需要。22下一页上一页停止放映停止放映(4 4)软件产品质量无法保证)软件产品质量无法保证l系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。l软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。23下一页上一页停止放映停止放映(5 5)软件产品难以维护)软件产品难以维护l软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。l为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中
12、的错误。24下一页上一页停止放映停止放映(6 6)软件缺少适当的文档资料)软件缺少适当的文档资料l文档资料是软件必不可少的重要组成部分。l实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。l缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。25下一页上一页停止放映停止放映软件生产随规模增大而复杂度增大软件生产随规模增大而复杂度增大l以美国宇航局的软件系统为例:1963年 水星计划系统 200万条指令1967年 双子星座计划系统 400万条指令1973年
13、 阿波罗计划系统 1000万条指令1979年 哥伦比亚航天飞机系统 4000万条指令l假设1个人一年生产一万条有效指令,那么是否4000人生产一年,或400人生产10年就能完成任务吗?答案是否定的。一万条指令的复杂度决不仅仅是100条指令复杂度的100倍。26下一页上一页停止放映停止放映典型失败系统的例子典型失败系统的例子lIBM公司开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000个以上)的错误。27下一页上一页停止放映停止放映软件危机产生的原因软件危机产生的原因l产生软件危机有两个方面的原
14、因:内内部部因因素素。与软件本身的特点有关。内在因素是客观的存在,只能因势利导加以解决。外外部部因因素素。与软件开发和维护的技术方法有关。外部因素是可以完善、提高的。28下一页上一页停止放映停止放映软件特点的因素软件特点的因素l软软件件是逻辑产品,是代码化了的人的思维活动。在总体构思时,别人无法管理和干预。在写出程序、并在机器上运行之前,进展情况难以掌握,开发质量也无法评估。这些都给管理和控制带来不便。l软软件件是特定问题在计算机上的运行描述。实际问题的复杂性决定了一个实用软件系统规模往往十分庞大。程序规模越大,控制、管理难度也就越大。29下一页上一页停止放映停止放映软件开发维护技术方法的因素
15、软件开发维护技术方法的因素l开开发发人人员员和和用用户户之之间间的的矛矛盾盾。许多软件系统开发失败的主要原因是开发人员在没有准确、完整地了解了用户的需求后就急于编程;用户对需求也往往不能准确、完整地提出。l软软件件产产品品有有其其生生命命周周期期。在周期的各个阶段有其具体的任务,如何完成任务,各个阶段有不同的技术方法和操作步骤。只有科学的按生命周期各阶段的任务去组织实施,才能保证质量,降低成本;急于求成,不按科学规律、方法实施,只能“事倍功半”,事与愿违。l软软件件产产品品的的使使用用寿寿命命很很长长。在这期间因功能的增加、硬件的更新换代,都要对软件进行必要的修改。据统计数据表明,软件维护的费
16、用占总费用的55%70%。软件工程的一个重要目标就是提高软件的可维护性,减少软件维护的代价。30下一页上一页停止放映停止放映解决软件危机的途径解决软件危机的途径l为了解决软件危机就要从技术措施技术措施和组织组织管理管理两个方面去研究,不断总结经验教训,提高软件产品的生产效率,降低软件开发和维护的成本。l开发软件选用最好的开发工具是至关重要的,即选择、设置良好的软件工程支撑环境。工具选用的好,它可以“放大”人的智力,大大加快软件开发速度,提高软件质量。31下一页上一页停止放映停止放映软件开发的演变过程软件开发的演变过程l程序设计阶段程序设计阶段l软件设计阶段软件设计阶段l软件工程阶段软件工程阶段
17、32下一页上一页停止放映停止放映程序设计阶段程序设计阶段(1946年1955年)l特点:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料。主要是用于科学计算。33下一页上一页停止放映停止放映软件设计阶段软件设计阶段(1956年1970年)l特点:硬件环境相对稳定,出现“软件作坊”的开发组织形式。开始使用产品软件(可购买),从而建立了软件的概念。系统规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确分工,社会对软件的需求量剧增。但是软件开发技术没有重大突破,生产效率低下,从而导致“软
18、件危机”产生。34下一页上一页停止放映停止放映软件工程阶段软件工程阶段(1970年至今)l由于软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件生产进入软件工程时代。l特点:硬件已向“四化”(巨型、微型、网络、智能)发展,数据库技术已成熟并广泛应用,第三、四代语言出现。第一代软件技术结构化程序设计在数值计算领域取得优异成绩;第二代软件技术软件测试技术、方法、原理用于软件生产过程;第三代软件技术处理需求定义技术,用于软件需求分析和描述。35下一页上一页停止放映停止放映二、软件工程二、软件工程l“软件工程”一词是1968年北大西洋公约组织的计算机科学家在当时联邦德国召开
19、的专门讨论解决“软件危机”的国际会议上正式提出并使用的,并由此诞生了一门新兴学科软件工程学。l“软件工程学”是一门交叉学科,它涉及计算机科学、管理科学、工程学和数学。l计算机科学培养的是计算机科学家,而软件工程则是培养软件工程师。36下一页上一页停止放映停止放映软件工程的目标软件工程的目标l软件工程的基本目标是:l开发尽可能多的软件产品;l提高软件的生产效率;l满足应用的功能需要;l降低软件开发成本。37下一页上一页停止放映停止放映软件工程的指导思想软件工程的指导思想l为解决软件危机,把“软件”这种特殊商品的生产、管理过程纳入传统工程管理的轨道;用计算机科学中的最新成果应用于软件工程中用管理学
20、的原理和方法进行软件生产管理用工程学的观点进行核算,制定工程进度和实施方案用数学方法建立软件的可靠模型和各种有效算法38下一页上一页停止放映停止放映软件工程基本原理软件工程基本原理l自1968年提出“软件工程”的概念以来,专家学者又陆续突出了100多条关于软件工程的准则。l著名软件工程专家B.W.Boehm于1983年发表的一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是确保软件产品质量和开发效率的最小准则集合。39下一页上一页停止放映停止放映软件工程七条基本原理软件工程七条基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查
21、开发小组人员少而精承认不断改进软件工程实践的必要性40下一页上一页停止放映停止放映用分阶段生命周期计划严格管理用分阶段生命周期计划严格管理l在软件的整个生命周期中应该制定并严格执行六类计划:项目概要、项目进度表、项目控制、产品控制、验证及运行维护计划。l不同层次的管理人员必须严格按照计划各尽其职地去管理软件开发与维护工作,绝不能受客户或上级的影响而擅自背离预定计划。41下一页上一页停止放映停止放映坚持进行阶段评审坚持进行阶段评审l软件的质量保证工作不能等到编码阶段结束之后再进行。这是因为:大部分错误是在编码之前造成的(根据Boehm统计,设计错误占软件错误的63%,编码错误占37%)。错误发现
22、与改正得越晚,所付出的代价也越高。因此,在每个阶段进行严格的评审,尽早发现并修正各个阶段中所犯的错误是一条必须遵循的重要原则。42下一页上一页停止放映停止放映示意图关于阶段评审作用示意图关于阶段评审作用 43下一页上一页停止放映停止放映实行严格的产品控制实行严格的产品控制l在软件开发过程中不应随意改变需求(改变一项需求往往要付出很高的代价),但不能禁止更改需求。当必须修改时,为了保持软件各配置成分的一致性,必须实行严格的产品控制(主要是实行基准配置管理)。l一切有关修改软件的建议(特别是涉及到对基准配置的修改建议)都必须按照严格的规程进行评审,获准后才能实施修改)。l绝对不能谁想修改就随意进行
23、修改的行为。44下一页上一页停止放映停止放映采用现代程序设计技术采用现代程序设计技术l以前的结构化程序设计技术,如今的面向对象程序设计技术都被实践证明是各个不同历史阶段的优秀程序设计技术和方法。l采用先进的技术既可以提高软件开发的效率,又可以提高软件维护的效率。45下一页上一页停止放映停止放映结果应能清楚地审查结果应能清楚地审查l软件产品是看不见、摸不着的逻辑产品,软件开发人员的工作进展情况可见性差。为了提高开发过程的可见性,应根据软件开发项目中的目标完成期限,规定开发组织的责任和产品标准,使得到的结果能够清楚的审查。46下一页上一页停止放映停止放映开发小组人员少而精开发小组人员少而精l开发小
24、组成员的素质应该高,人员不宜过多。人员素质和数量是影响产品质量和开发效率的重要因素。l素质高的人开发效率比低的人高几倍甚至几十倍,而错误则明显得少;l人数增加,管理难度也增加。47下一页上一页停止放映停止放映承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性l要积极主动地采纳新的软件技术,要不断总结经验;不能自以为是,固步自封,唯我独好。l大千世界,错综复杂,只有不断学习,才能不断进取,不断进步。48下一页上一页停止放映停止放映软件工程应用范围软件工程应用范围l个人程序、中小型或一般程序同开发人员之间的关联较小,应用SE方法收效甚微。l大型程序要由若干个程序员小组承担开发,相互关
25、系极其复杂,因此,必须自始至终坚持SE方法。49下一页上一页停止放映停止放映应用程序分类应用程序分类分类 程序规模 模块数 开发时间 开发人数极小 500行以下 1020 14周 1人 小 1K2K行 2550 16月 1人 中 5K50K行 2501000 12年 25人 大 50K100K行 1000以上 23年 520人甚大 1M行 45年 1001000人极大 1M10M行 510年 2000500050下一页上一页停止放映停止放映传统软件工程模式传统软件工程模式 l70年代,计算机技术水平不高,开发工具少而且性能差。对于大型复杂问题的求解方法有很大的局限性影响。l软件工程采用的方法:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程概论-计算机软件基础ppt 114页34210 软件工程 概论 计算机软件 基础 ppt 114 34210
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内