版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,软件工程,2,本质上是一门指导实践的工程学科,分析、设计、写作、使用工具能力 沟通、合作能力,学习方法软件工程,3,第一讲,软件工程概述,4,软件及软件危机,软件的开发方法,软件工程,案例分析,5,计算机软件已经成为一种驱动力,进行商业活动的引擎; 现代科学研究和工程问题解决的基础; 区分现代产品和服务的关键因素; 现代社会中不可缺少的。 应用于: 交通、医药、通讯、军事、娱乐、 办公,6,软件定义,软件程序文档数据,定义真简单!,7,软件生产的发展,程序设计时代,程序系统时代,软件工程时代,时间,19461956,19561968,1968至今,生产方式,个体手工劳动,作坊式小集团合作,
2、工程化的生产,使用工具,机器、汇编语言,高级语言,开发工具,开发方法,个人编程技巧,个人编程技巧,开始提出结构化方法,使用数据库、网络、分布式、面向对象技术等,硬件特征,价格贵,存储容量小,运行可靠性差,速度、容量及工作可靠性明显提高,价格降低,向超高速、大容量、微型化以及网络化方向发展,软件特征,只有程序设计概念,不重视程序设计方法,程序员数量猛增,但开发人员素质差,开发技术没有新突破。软件危机产生。,开发技术有很大进步,但没有突破性进展,没有完全摆脱软件危机。,等于程序加技术文档,完整定义,等于程序,软件定义,用户编码者计算机,Hacker,8,软件 定义,软件是 能够完成预定功能和性能的
3、可执行的指令(计算机程序); 使得程序能够适当地操作信息的数据结构; 描述程序的操作和使用的文档。 被普遍接受的软件的定义是: 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。,9,软件特点,软件是一种逻辑实体,具有抽象性。开发过程的进度难以衡量,质量难以评价,管理和控制相当困难。,软件成本昂贵。,软件是人类能够创造的最复杂的产物 :实际问题的复杂性、程序逻辑结构的复杂性、其他领域的专门知识。,软件产品是“定做”的 ,开发工作是高强度的脑力劳动。,软件不会被“用坏”,但是较难
4、维护,维护意味着改正或修改原来的设计。,10,硬件的故障率曲线(浴缸曲线),11,软件的故障率曲线(理想情况下),12,软件的故障率曲线(实际情况下),13,14,软件分类 按软件功能划分,系统软件:操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。它是计算机系统必不可少的一个组成部分。 支撑软件:支持软件设计的图形软件包,支持软件实现的编辑程序、预编译程序等。它是协助用户开发软件的工具性软件。 应用软件:工程和科学计算软件、嵌入式软件、计算机辅助设计制造(CADCAM)软件、系统仿真软件、人工智能软件等 。,经费突破 时间一拖再拖 ,不满足要求 可维护性差,15,例: 美国IBM公司
5、在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.,Software Crisis !,软件危机产生,16,这个项目负责人F.D.Brooks事后总结了他在组织开发过程中的沉重教训时说:“正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难,程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼命挣扎,谁也没有料到问题竟会陷入这样的困境”。关于本项目的经验积累可以看F.D
6、.Brooks的著作人月神话(UMLChina翻译组 汪颖/译,清华大学出版社出版)。,17,软件危机 介绍,软件危机包含两方面问题: 如何开发软件,以满足不断增长,日趋复杂的需求; 如何维护数量不断膨胀的软件产品。,18,软件危机的表现,软件开发成本和进度的估算常常不准确; 用户对完成的软件系统不满意现象经常发生; 软件产品的质量往往靠不住; Bug一大堆,Patch一个接一个。 软件常常是不可维护的; 软件通常没有适当的文档资料; 软件成本在计算机系统成本中所占的比例逐年上升; 软件开发生产率提高的速度远远跟不上硬件的发展和人们需求的增长。,19,一个复杂的软件系统需要建立庞大的逻辑体系,
7、而这些往往只存在于人们的头脑中,正如一个大项目负责人所说:软件人员太像皇帝新衣故事中的裁缝,当我来检查软件开发工作时,所得到的回答好像对我说:我们正忙于编织这件带有魔法的织物,只要一会儿,你就会看到这件织物是极其美丽的。但是我什么也看不到,什么也摸不到,也说不出任何一个有关的数字,没有任何办法得到一些信息说明事情确实进行得非常顺利,而且我已经知道许多人最终已经编织了一大堆昂贵的废物而去,还有不少人最终什么也没有做出来。,20,产生软件危机的原因,软件本身特点: 逻辑部件:管理和控制软件开发过程相当困难,较难维护 规模庞大:代码长度不正比程序复杂程度,软件开发与维护的方法不正确 没有认识到软件的
8、生命周期 软件开发不同阶段进行修改需要付出的代价差别很大 软件产品程序每个阶段的文档资料,21,引入同一变化付出的代价随时间变化的趋势,变化出现的时期,代价,早 中 后,高 中 低,22,消除软件危机的途径,对计算机软件有一个正确的认识 (软件程序) 技术措施:推广使用在实践中总结出来的开发软件的成功技术和方法;开发和使用更好的软件工具等。 管理措施:必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。,23,软件工程产生,1968年北大西洋公约组织在联邦德国召开国际会议,讨论软件危机问题,提出软件工程概念。,软件工程的发展历
9、史尽管不长,但也经历了传统软件工程时代、对象软件工程时代、过程软件工程时代、构件软件工程时代。目前的发展趋势,正在这4个时代的基础上,朝着流水线装配软件工程的方向发展,以迎接软件发展的4大趋势:流水线生产、网络化、服务化与全球化。,24,软件工程目标,目的是成功地建造一个大型软件系统,能在开发成本、开发时间、软件功能、性能等方面达到预期目标。为了实现其目标,软件工程提出了工程化的思想。,软件工程从管理和技术两方面指导软件开发。,工程是对技术(或社会)实体的分析、设 计、建造、验证和管理。,25,美国软件工程实践的现状,20世纪90年代中期,美国软件工程的实践: 软件开发仍然很难预测,只有10%
10、的项目能在预定的费用和进度下交付; 管理规范是软件项目成功或失败的主要因素; 开发过程的返工是软件过程不成熟的标志。,26,当前的软件实践,软件工程师在实践中 没有计划他们的工作 匆匆地走过需求和设计 在编码时再进行设计 这些实践引入了大量的缺陷 有经验的工程师每7-10行代码就引入一个缺陷 平均中等规模的系统存在着上千个缺陷 这些缺陷的大多必须靠测试发现 通常要花去一半以上的开发时间 目前大多数的工作方式还象30年前一样,27,软件工程经典定义(1),“The establishment and use of sound engineering principles in order to
11、obtain economically software that is reliable and works on real machines.” Fritz Bauer 软件工程就是为了经济地获得可靠且能在实际机器上高效运行的软件而建立和使用的完善的工程原理。,28,软件工程经典定义(2),“The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” IEEE 1990 软件工程是将系统的、规范的
12、、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并研究上述提到的途径。,29,软件工程经典定义(3),“Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.” 软件工程就是应用计算机科学和数学的原理来经济有效的解决软件问题的一种工程。,30,软件工程定义,软件工程是用科学知识和技术
13、原理来定义、开发、维护软件的一门工程学科。 是一门涉及计算机科学、工程科学、管理科学、数学等领域的综合性的交叉学科。 主要思想是在软件生产中用工程化的方法代替传统手工方法。,31,软件工程研究内容:,过程:软件生存周期中的时间序列,32,【例】若要开发一个软件系统(如图书馆信息系统),为了完成这项任务,首先要选择软件开发模型,确定开发方法、准备开发工具、设计开发环境和运行环境,然后进行需求分析、设计、编程、测试、试运行、正式运行、验收和交付,最后是系统维护或系统升级换代。这样就按照所选择的开发模型,走完了软件的一个生命周期,这一系列的软件开发过程和管理过程,就是软件工程。,33,软件的管理过程
14、,Capability Maturity Model for Software,34,软件工程的基本原理,用分阶段的生命周期计划严格管理 阶段划分为:可行性分析和计划、分析、设计、编程、测试和运行维护。,坚持进行阶段评审 大部分错误在编码之前造成(设计错误63,编码错误37);错误发现越晚,所付代价越高。,3.实行严格的产品控制 改变需求时,为保证软件各个配置成分的一致性,都必须按照严格的规程进行评审,批准后才能实施修改。,35,软件工程的基本原理(最小集合),4.采用现代程序设计技术:提高软件开发和维护效率。,5 .结果应能清楚地审查:为提高软件开发过程的可见性,应根据软件开发项目的总目标和
15、完成期限,规定开发组织的责任和产品标准,使得结果能清楚地审查。,6 .开发小组的人员应少而精:效率高,错误少。1+1 2,7 .承认不断改进软件工程实践的必要性:不仅要积极主动采纳新的软件技术,而且要注意不断总结经验。,36,新原理二八定律,对软件项目进度和工作量的估计:一般主观上认为已经完成了80的,往往实际上只完成了20; 对程序中存在的问题的估计:80的问题往往存在于20的程序之中; 对模块功能的估计:20的模块实现了80的功能; 对人力资源的估计:20的人解决了软件中80的问题; 对投入资金的估计:企业信息系统中80的问题,可以用20的资金来解决。,37,软件工程在软件企业中的作用,高
16、层管理人员:他们应具备的基本条件是:软件专业宏观知识、软件工程管理知识、加上商业与资本运作知识。他们要用软件工程的理论和方法,来管理整个公司的软件业务。,中层项目经理和软件工程师。他们应具备的基本条件是:系统分析知识、系统设计知识、加上项目管理知识。他们要用软件工程的理论和方法,来管理项目组的软件开发。他们个人的奋斗目标是软件管理专家、分析设计专家、开发技术专家。这两部分人员,是软件工程的拥有者和实践者。,软件蓝领工人。他们应具备的基本条件是:掌握阅读文档的技能、程序设计的技巧,加上软件测试知识。他们要用软件工程的理论和方法,来实现软件项目的功能、性能、接口、界面。,38,软件营销人员。他们应
17、具备的基本条件是:营销知识、售前知识、加上软件工程基本知识。他们要用软件工程的基本思路,来与用户进行沟通,以赢得客户的信任。,软件实施和维护人员。他们应具备的基本条件是:软件客户化及安装、运行、维护技术。他们要用软件工程的基本方法,来实现软件功能、性能、与接口的实施和维护。,软件售前人员。他们是公司的产品形象代表,其奋斗目标是:既要成为某个行业领域的产品专家,又要成为该产品的实现顾问。只有这样,他们才能看懂招标书、写好投标书、讲好投标书。在制作和宣讲投标书过程中,有许多与软件工程相关的知识和内容,如软件开发方法、开发工具、开发环境、运行环境、管理方法、质量和进度控制方法,只有把这些方法写清讲透
18、,用户才能相信认可,投标才有成功把握。这些知识和内容,离不开软件工程知识的学习和教育。,39,从项目团队来讲,软件工程的作用在于:在规定的时间和成本内,完成预期质量目标的软件。 从软件企业来讲,软件工程的作用在于:持续地规范软件开发过程和软件管理过程,不断地优化软件组织的个人素质和集体素质,从而逐渐增强软件企业的市场竞争实力。 从软件发展进程来讲,软件工程的作用在于:克服软件危机,控制软件进度,节约软件成本,提高软件质量。,由于软件工程的作用越来越大,它的地位也越来越高。以前只是作为一门课,现在已设立了软件工程专业和软件工程学位。,40,软件工程和信息管理系统,软件工程,信息管理系统,五个面向
19、理论,面向流程分析 面向数据设计 面向对象实现 面向功能测试 面向过程管理,分析、设计、实现和维护,41,软件开发方法,好的软件开发方法是克服软件危机的重要途径之一。,方法名称,优点,缺点,适合的场合,功能强大易于维护,开发方法的新发展:软件复用与基于组件的软件开发、 敏捷开发方法,42,案例分析,可视化的电网继电保护整定计算综合管理系统(简称“整定软件”),(1)数据/图形平台。它是整定软件人机交互的主要载体。实现各种图形的浏览、转换、打印等功能,并提供多种图形浏览工具。 (2)图形建模。提供绘制一次系统图的元件工具箱,支持系统图的绘制和设备参数的录入与维护,并对连接没有错误的图形生成计算拓扑,为故障分析模块奠定基础。并提供运行方式的设置和管理功能。 (3)故障计算。它是软件的核心专业模块之一,提供多种继电保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工人员行为规范与管理方案
- 兴发集团2026届春季校园招聘备考题库附答案详解(培优b卷)
- 2026山东大学生命科学学院徐芳课题组科研助理招聘1人备考题库附参考答案详解(培优b卷)
- 混凝土透水性试验方案
- 2026江西赣州市全南县公用市政建设集团有限公司招聘1人备考题库【夺分金卷】附答案详解
- 2026华中农业大学动物医院运营管理岗招聘1人备考题库(湖北)【学生专用】附答案详解
- 2026内蒙古锡林郭勒盟金盾押运服务有限公司招聘5人备考题库附完整答案详解(典优)
- 2026云南省房物业管理有限公司招聘12人备考题库及参考答案详解【满分必刷】
- 2026浙江杭州市国有资本投资运营有限公司春季招聘备考题库(能力提升)附答案详解
- 2026渤海银行昆明分行社会招聘备考题库附参考答案详解【基础题】
- 2026江苏苏州市昆山市自然资源和规划局招聘编外人员8人笔试参考题库及答案解析
- 2026年及未来5年市场数据中国演出行业市场发展数据监测及投资潜力预测报告
- (新教材)2026年部编人教版二年级下册语文 第7课 我不是最弱小的 课件
- 2026年学士学位英语测试题及答案
- 2026年甘肃平凉市华亭煤业集团有限责任公司招聘笔试参考题库附带答案详解
- (一模)2026年深圳市高三年级第一次调研考试政治试卷(含官方答案)
- 上海市普陀区学校(五四制)2025-2026学年六年级上学期期中语文试题(解析版)
- 2026广东清远市清城区医疗卫生共同体总医院招聘编外工作人员42人笔试参考题库及答案解析
- 园林绿化工国家职业技能标准
- 智联招聘考试题库及答案
- 2025上半年湖南能源集团招聘322人笔试历年常考点试题专练附带答案详解2套试卷
评论
0/150
提交评论