软件工程概论课件.ppt

上传人:牧羊曲112 文档编号:3916740 上传时间:2023-03-27 格式:PPT 页数:34 大小:246KB
返回 下载 相关 举报
软件工程概论课件.ppt_第1页
第1页 / 共34页
软件工程概论课件.ppt_第2页
第2页 / 共34页
软件工程概论课件.ppt_第3页
第3页 / 共34页
软件工程概论课件.ppt_第4页
第4页 / 共34页
软件工程概论课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《软件工程概论课件.ppt》由会员分享,可在线阅读,更多相关《软件工程概论课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、第一章软件工程概论,问题1:什么是软件?问题2:什么是软件危机?问题3:什么是软件工程?问题4:软件工程的目的是什么?问题5:软件工程框架及其内容是什么?问题6:软件工程的原则是什么?问题7:软件工程研究的主要内容是什么?问题8:什么是软件开发方法学?,一、软件的发展历史,软件的发展阶段,问题1:什么是软件?,(1)早期阶段在计算机发展的早期阶段,人们认为计算机的主要用途是快速计算,软件编程简单,不存在什么系统化的方法,开发没有任何管理,程序的质量完全依赖于程序员个人的技巧。(2)第二阶段计算机软件发展的第二阶段跨越了从60年代中期到70年代末期的十余年,多用户系统引入了人机交互的新概念,实时

2、系统能够从多个源收集、分析和转换数据,从而使得进程的控制和输出的产生以毫秒而不是分钟来进行,在线存储的发展产生了第一代数据库管理系统。在这个时期,出现了软件产品和“软件作坊”的概念,设计人员开发程序不再像早期阶段那样只为自己的研究工作需要,而是为了用户更好地使用计算机,人们开始采用“软件工程”的方法来解决“软件危机”问题。(3)第三阶段计算机软件发展的第三阶段始于70年代中期,分布式系统极大地提高了计算机系统的复杂性,网络的发展对软件开发提出了更高的要求,特别是微处理器的出现和广泛应用,孕育了一系列的智能产品。软件开发技术的度量问题受到重视,最著名的有软件工作量估计COCOMO模型、软件过程改

3、进模型CMM等。(4)第四阶段计算机软件发展的第四阶段是强大的桌面系统和计算机网络迅速发展的时期,计算机体系结构由中央主机控制方式变为客户机/服务器方式,专家系统和人工智能软件终于走出实验室进入了实际应用,虚拟现实和多媒体系统改变了与最终用户的通讯方式,出现了并行计算和网络计算的研究,面向对象技术在许多领域迅速取代了传统软件开发方法。,在软件的发展过程中,软件从个性化的程序变为工程化的产品,人们对软件的看法发生了根本性的变化,从软件程序发展为软件程序数据文档。,软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档。程序是计算机任务的处理对象和处理规则的描述。数据是使程序能正常

4、操纵信息的数据结构。文档是为了理解程序所需的阐述性资料。,二、概念,与硬件相比,软件具有以下不同的特点:1)软件是逻辑的,而不是物理的产品。逻辑往往实际只存在于人的头脑当中,软件人员好比“皇帝的新衣”故事中的裁缝,软件的开发过程极难加以控制。2)软件是由开发或工程化而形成的,没有明显的制造过程。软件成本集中于“开”上,意味着软件项目不能象硬件制造项目那样来管理。3)软件在运行和使用期间,不存在硬件那样的磨损和老化问题,但它存在退化问题,开发人员必须维护软件。4)大多数软件是自定的,而不是通过已有构件组装而成的。迄今为止,软件的开发尚未完全摆脱手工的方式。5)软件成本相当昂贵。IBM360操作系

5、统的研制人员最多时可达1000多人,从1963年到1966年共花了四年时间才完成,总计耗费了5000多人年,以后又进行不断的修改和补充。该系统的整个研制费用为5亿美元,其中近一半花在软件上。6)软件本身是复杂的。实际问题的复杂性程序逻辑结构的复杂性,下面给出一些software crisis的例子:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.这个项目的负责人F.D.Brooks事后总结

6、了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,问题2:什么是软件危机?(软件危机表现在那些地方?),软件危机的具体表现如下:,(1)软件开发的进度难以控制,经常出现经费超预算、完成期限一再拖延的现象。1979年,美国US Government Accounting Office对政府项目进行了调查,其中9个软件项目的结果如下:,一个复杂

7、的软件系统需要建立庞大的逻辑体系,而这些往往只存在于人们的头脑中,正如一个大项目负责人所说:软件人员太像皇帝新衣故事中的裁缝,当我来检查软件开发工作时,所得到的回答好像对我说:我们正忙于编织这件带有魔法的织物,只要一会儿,你就会看到这件织物是极其美丽的。但是我什么也看不到,什么也摸不到,也说不出任何一个有关的数字,没有任何办法得到一些信息说明事情确实进行得非常顺利,而且我已经知道许多人最终已经编织了一大堆昂贵的废物而去,还有不少人最终什么也没有做出来。,(2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发过程带来灾难性的后果。软件需求的缺陷将给项目成功带来极大风险,如产品的成

8、本过高、产品的功能和质量无法完全满足用户的期望等等。即使一个项目团队的人员和配备都很不错,但不重视需求过程也会付出惨痛的代价。导致需求缺陷的主要原因包括需求的沟通与理解、需求的变化与控制、需求说明的明确与完整,模棱两可的需求所带来的后果便是返工-重做一些你认为已做好的事情,返工会耗费开发总费用的40%,而70%85%的重做是由于需求方面的错误引起的。(3)由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。在1985年到1987年之间,至少有2个病人是死于Therac-25医疗线性加速器的过量辐射,其原因是控制软件中的一个故障。1965年至1970年,美国范登

9、堡基地发射火箭多次失败,绝大部分出于控制系统的故障,一个小小的疏漏往往会造成上千万美元的损失。由此可见,软件错误的后果是十分严重的,医疗软件的错误可能造成病人的生命危险,银行系统的错误会使金融混乱,航管系统的错误会造成飞机失事等等。,由于认识到软件的设计、实现、维护和传统的工程规则有相同的基础,于是北大西洋公约组织(NATO)于1967年首次提出了软件工程(Software Engineering)的概念。关于编制软件与其他工程任务类似的提法,得到了1968年在德国召开的NATO软件工程会议的认可。委员会的结论是,软件工程应使用已有的工程规则的理论和模式,来解决所谓的软件危机。软件危机至今仍然

10、困绕着我们,这表明软件生产过程在许多方面和传统的工程相似,但却具有独特的属性和问题。,例1.In the late 1960s,a bright-eyed young engineer*was chosen to“write”a computer program for an automated manufacturing application.The reason for his selection was simple.He was the only person in his technical group who had attended a computer programming

11、 seminar.He knew the ins and outs of assembler language and Fortran,but nothing about software engineering and even less about project scheduling and tracking.,问题出在什么地方呢?,His boss gave him the appropriate manuals and a verbal description of what had to be done.He was informed that the project must b

12、e completed in two months.He read the manuals,considered his approach,and began writing code.After two weeks,the boss called him into his office and asked how things were going.“Really great,”said the young engineer with youthful enthusiasm,“This was much simpler than I thought.Im probably close to

13、75 percent finished.”The boss smiled.“Thats really terrific,”he said.He then told the young engineer to keep up the good work and plan to meet again in a weeks time.,A week later the boss called the engineer into his office and asked,“Where are we?”“Everythings going well,”said the youngster,“but Iv

14、e run into a few small snags.Ill get them ironed out and be back on track soon.”“How does the deadline look?”the boss asked.“No problem,”said the engineer.“Im close to 90 percent complete.”If youve been working in the software world for more than a few years,you can finish the story.Itll come as no

15、surprise that the young engineer stayed 90 percent complete for the entire project duration and only finished(with the help of others)one month late.,解决问题的方法是什么?Better management Different team organizations Better languages&tools Uniform coding conventions,问题3:什么是软件工程?“软件工程”(Software Engineering)NA

16、TO Conference,Garmisch,Germany,1968.软件工程应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于用于计划、资源、质量、成本等管理。软件工程是一门交叉性学科。,问题4:软件工程的目的是什么?倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。,问题5:软件工程框架及其内容是什么?软件工程框架由目标、活动和原则组成。软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。软件工程活

17、动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求、设计、实现、确认以及支持等活动。,特别说明一下软件工程的基本活动1)、需求 定义问题,即建立系统模型 主要任务包括:1需求获取 需求定义 系统功能的一个正确的陈述 2需求规约系统需求规格说明 主要成分:系统模型 系统功能的一个精确、系统的描述 3需求验证,2)、设计 在需求分析的基础上,给出系统的软件解决方案。1总体设计 系统的软件体系结构 C/S结构 以数据库为中心的结构 管道结构 面向对象的结构 2详细设计 针对总体设计结果,给出每一构件的详 细描述,3)、实现 选择可用的构件;或 以一种选定的语言,对每一构

18、件进行编码 4)、确认 贯穿软件开发的整个过程 主要任务是:软件测试 5)、支持 完善性维护 纠错性维护,问题6:软件工程的原则是什么?软件工程原则为:选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。,问题7:软件工程研究的主要内容是什么?软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。问题8:什么是软件开发方法学?是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法等等。,全球的软件业,全球的软件业按开发模式和主要地区(软

19、件业由于产业群落影响和优惠政策吸引,极为集中)可分为:技术领导、产业支撑型美国,软件本地化型爱尔兰,外包服务型印度,嵌入式开发型日本、西欧。美国在系统软件、服务支撑软件、开发工具等核心领域占据了80%以上的市场,引领着软件业的方向。爱尔兰则把自己当作美国软件的欧化基地,为欧洲提高20多个欧化版本。日本的嵌入式开发则是应其消费类产品的数字化、娱乐化趋势和通讯设备生产而生。西欧以瑞典、芬兰、德国为代表在生产设备、高精仪器、通讯和搏彩游戏机等应用上进行嵌入式开发(那种更新了软件系统,就又当新设备卖过来的生产设备、高精仪器多从此出),我国软件业的现状,我国软件业的规模目前,我国从事软件开发、研制、销售

20、、维护和服务的软件企业有2000家左右,加上兼营的企业,总数大约有10000多家,其中具有自主软件研发能力的软件企业约5700家,已经通过双软认定的有2300余家,从事软件销售、维护和服务的企业5000多家。在这里面,营业规模超过一亿元的软件企业达到100家以上,超过5亿元的达到18家,超过10亿元的达到12家。,2001年,世界软件产品市场销售额超过1865亿美元,我国当年的销售额为285亿元人民币,只占世界市场不到2的份额。国内软件市场有限的份额中大部分为国外软件厂商所瓜分,国内所开发的软件产品仅占小部分。2001年我国软件销售总额963亿美元,软件企业约5000家,从业人员29万。200

21、1年印度软件销售总额1023亿美元,软件企业约6000家,从业人员40万。2001年我国软件的出口额仅为7.2亿美元,2000年与1999年分别为4亿美元及2.5亿美元。印度在软件出口方面,则一直保持高速的增长。1990年印度软件出口只有5000万美元,1999年就达到了39亿美元,2000年达到了62亿美元,而2001年印度软件出口额为778亿美元,已经占到了印度全部出口总额的10.5。,我国软件业的现状,我国软件业的规模当前,我国软件产业以中小型企业为主,2007年规模最大的前10家软件企业收入不足100亿美元,相比微软、甲骨文、SAP等跨国公司,仍存在较大的差距。软件业整体将继续保持高速

22、增长。据统计,2000年至2007年间,中国软件产业以年均逾30的速度增长。2007年,中国软件产业的销售收入达到5800亿元,产业规模在全球软件产业中的份额已由2000年的12提升至87。如果按照这样的发展速度,到2010年就会超过万亿元。,我国软件业的现状,我国软件业的规模我国软件业仍维持高速增长。数据显示,2008年上半年,软件业实现主营业务收入34567亿元,同比增长304。软件出口及服务外包发展较好,完成出口额495亿美元,同比增长45;完成软件服务外包45亿美元,同比增长683;增速与15月基本持平。,2009年1-8月,在国际金融危机继续蔓延深化的影响下,我国软件产业的收入增速持

23、续回落,产业结构不断调整。1-8月,软件产业累计完成软件业务收入5891亿元,同比增长21%,增速比1-7月和一季度分别回落1.1和2.9个百分点。8月当月完成软件业务收入751.9亿元,同比增长13.2%,增速比7月份下降6.8个百分点,比去年同期低19.2个百分点。此外,软件技术服务增长突出,IC设计增速持续低位。1-8月,共完成软件产品收入2075.8亿元,同比增长20.9%。软件技术服务收入1245.1亿元,同比增长29.1%。出口和外包服务增长快于全行业,但增速放缓。1-8月,我国软件出口109亿美元,同比增长41%,增幅比去年同期低12.3个百分点。,我国软件业发展不理想的原因除了

24、政策和盗版外,最大的问题是我国绝大多数软件企业对其软件开发工作过程缺乏有效的管理和控制。多数软件企业开发和生产基本上处于“技术少标准、开发缺规范、生产无检验、质量无保证”的状态。在这方面印度软件业的发展能够给我们以启发。印度软件业能够这么迅速地发展起来,除了有政府支持、英语程度、人才储备等原因外,最重要的是从标准化与产品流程入手,重视管理。印度的软件开发管理的特点是流程重于项目,流程管理人员独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走,如果流程不对,项目肯定就此停止。另外,所谓的项目经理一般都是从编码人员升上来的,至少有四年以上的经验,而公司所有的东西(包括草稿)都有文档,其

25、详细文档要求达到只有这个文档就可以编码的程度。,于是,印度软件公司开发出来的软件整个体系架构非常清晰,而且相当稳定。由于印度企业不是靠一两个软件英雄搞研发,而是靠一大批软件技术人员的分工协作,所以,他们必须注重标准化,注重开发的流程管理,以与国际接口。目前印度软件公司中有170家公司获得ISO9000质量标准认证,是世界上获得质量认证软件企业最多的国家。在得到卡内基梅隆大学软件工程学会最高级别的全球23家计算机软件公司中,有15家是印度公司。,中国如何发展软件产业,毫无保留地开放就是自我毁灭从上世纪90年代开始,准确地说是从微软这样的软件巨头进入中国开始,一种争论就在国内持续着:政府要不要保护

26、国产软件业?在中国加入WTO之后,鼓励自由竞争、弱化政府扶持作用的声音似乎占据了上风,包括许多知名专家都主张软件业应该彻底引入竞争机制,各个行业都应该对国外软件毫无保留地开放,实现竞争层面的公平正义。在今天,当经济危机把国产软件压得喘不过气来的时候,再回头去审视这种竞争至上的观点时,就多了一种讽刺的意味。自由竞争是必要的,但毫无保留地开放,任国产软件行业自生自灭,这是近几年来我们在软件行业最大的失误。,中国如何发展软件产业,政府通过税收政策对国产软件公司进行保护;对国产软件,政府当有守土之责。如果政府不强力介入软件行业,利用扩大内需的机会扶持国产软件,这个行业的复兴是不可想象的,注定只会成为国

27、外软件的殖民地而已。最近美国众议院批准的经济刺激计划中,就有只能“购买美国货”的附加条。连标榜最自由开放经济的美国人都开始保护本国软件产品,而我们呢,却抱着“自由贸易”的口号不放。切忌“软件正版化”变成“软件外国化”当现有的国产软件已达到可替代进口软件的水平,如CAD软件等等,应大大增强这类软件正版化的力度。进行职能化分、实施软件工程、加强管理。大力推广国产软件要用自主标准、开放标准。微软Windows和Office之所以能长期垄断市场,在很大程度上得益于它们成了事实标准。例如微软Office的文档格式(.doc等等)成了事实标准后,由于这个标准是不开放的,使其他竞争产品很难和它兼容,并使用户被锁定于微软Office。几家国产Office厂商通过六七年的努力,才基本上解决了和微软Office的兼容问题,达到了可以替代微软Office的水平。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号