软件工程概论课件.ppt
《软件工程概论课件.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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概论 课件
链接地址:https://www.31ppt.com/p-3916740.html