预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共111页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

袁运浩 计算机科学与技术系 江南大学物联网工程学院 E-mail:yhyuan@jiangnan.edu.cn Phone:15152267727 第1章软件工程概述背景材料1765年,春天的苏格兰...这就是被看作工业革命开始的 最好是把真理比做燧石,它受到的敲打越厉害,发射出的光辉就越灿烂。 ——瓦特1978年,春天的Boston...1978年,春天的波士顿...1979年,VisiCalc引入到了AppleII型计算机。 需要20小时人工的预算编制被缩减到15分钟。 VisiCalc成了畅销货。6年里他卖出了70万套。它成了AppleII型计算机的“应用王牌”。 许多顾客因为价值100美元的VisiCalc软件而购买2000美元的苹果电脑 1996年,IEEE(美国电气和电子工程师协会)表彰Bricklin为“我们今日所知的个人计算机市场兴起的催化剂”,是获得IEEE计算机企业家奖章的第一个软件业领袖。在他之后才是AndyGrove(安迪·格鲁夫)、BillGates、SteveJobs 2004年PCMagazine将其评为“全球10大最具影响力软件”首位, 之后是WordStar,Apache(开发源代码服务器),Mosaic浏览器,MacOS,Photoshop... 软件:新的驱动力20年后...带翼的软件公路上的代码健康软件……计算机软件已经成为一种驱动力软件的发展软件的发展软件的发展程序系统阶段当前软件产业的发展趋势1、软件工程产生的背景(软件危机)1.软件工程产生的背景(3)在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,但存在开发和维护的困难 软件失效率曲线(4)维护困难(5)软件的成本相当昂贵(成本高)硬、软件成本比例的变化(6)风险大30c.软件的发展软件的应用c.软件的发展软件危机 SoftwareCrisis 在软件开发和维护过程中遇到的一系列严重的问题案例:IBM公司在1963年至1966年开发IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序...据统计,这个操作系统每次发行的新版本... 都是从前一版本中找出1000个程序错误而修正的结果... 案例:在印度,编程人员的流动率高达30%! 可以想象他们的文档水平如何。他们的产品不依赖任何一个人,谁都可以立即辞职,产品的开发还是会正常进行软件危机(1):表现软件成本占计算机系统比例上升 比如:常见软件的零售价如下软件开发生产效率低,供不应求 例:美国软件生产率的提高图项目负责人Brooks事后总结了他的沉痛教训时说:“...正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难...程序设计工作正像这样一个泥潭,...一批批程序员被迫在泥潭中拼命挣扎...谁也没有料到问题竟会陷入这样的困境...”背景材料软件危机(2):错误观念错误观念1:人手越多越好事实:自己都管理不好,外包商又能管好么?另外,核心竞争力靠外包是得不到的错误观念3:忽视软件需求分析神话:项目需求总是在不断变化,但这些变化能够很容易地满足,因为软件是灵活的错误观念5:轻视维护错误观念6:忽视程序以外的软件配置错误观念7:轻视技术复审软件危机(3)--原因开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样 正如建设狗窝和高楼大厦 大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动e.软件工程(学):克服软件危机的努力2软件工程2.1软件工程定义(1)----早期定义2.1软件工程定义(2)----IEEE定义2.1软件工程定义(3)----卡耐基梅隆大学定义课本定义软件工程定义几个小问题: (1)软件工程和其它工程的区别 每个软件项目都是新的 新的需求、新的技术、新的部署方式等 每个项目都是在不断变化的 软件项目风险很大 据统计真正按期、按预算完成的不到20% 软件项目通常是团队活动 人多不一定力量更大(2)软件工程:不仅仅是编程(3)软件工程:关注建模(4)软件工程的特性背景材料软件工程:目标软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 管理:通过计划、组织和控制等活动,合理配置和使用各种资源,以达到既定目标的过程。(第13章) 方法学:软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。 软件工程方法学包含3个要素:方法、工具和过程。2.3软件工程方法学什么叫软件过程? 举一个例子:吃饭 去餐馆吃:点餐、付账、用餐 自己做饭:买菜、洗菜、做饭、吃饭、刷锅洗碗