第1章-软件工程学概述_第1页
第1章-软件工程学概述_第2页
第1章-软件工程学概述_第3页
第1章-软件工程学概述_第4页
第1章-软件工程学概述_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程

SoftwareEngineering

主讲人:崔欢欢

请思考以下问题你的打算:你准备找一个什么样的工作?你能分清机关、事业和企业性质的单位吗?想学到什么知识?想找工作、考研、考公务员?想过四六级?想考哪些专业认证?你了解目前软件行业人才需求的现状吗?你理想中的工作岗位可能需要什么技能?你和别人合作是否会有什么障碍?你估计一下软件工程是门什么样的课?教材《软件工程》,21世纪高等学校计算机系列实用规划教材,东北大学出版社,2010,李惠明等编著教材特点:一本传统的软件工程教材,以软件生命周期阶段为线索讲解软件过程的概念、原理、方法和软件工具。由国人编写,语言易读易懂难度适中,适合初学者作为教材使用4参考文献软件工程(原书第9版)原书名:SoftwareEngineering,NinthEdition,作者:(英)lan

Sommerville

著译者:程成等译,2011年5月软件工程导论,陈明,机械工业出版社,2010

年1月

软件工程-实践者的研究方法,RS.Pressman,机械工业出版社,2011年5月软件工程导论,张海潘编著,清华大学出版社,2013年8月Internet上的各类学习网站.课程地位计算机专业的重要专业课之一大学英语、离散数学。。。专业基础课数据结构、C/C++、计算机导论基础课软件工程、数据库、网络。。。专业课2024/2/27软件工程是计算机科学与技术专业、软件工程的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务2024/2/27本课程比较全面、系统地介绍软件工程的概念、技术与方法。主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。

通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合一些项目案例,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码、测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容2024/2/27学习本课程的基本要求

本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。

在一些人眼里,今天的软件开发似乎已成为简单的事情,已有了不少很好的开发工具和软件库,软件开发人员训练有素,都强烈渴望去编写很酷的软件,可以在几天的时间里编写出一个相当复杂的软件。但为什么有一些软件能够得到用户的喜欢,而另一些则不能?为什么有些软件能够在市场上成功,而有些则受到冷落?由此可见,开发软件并不一定难,难就难在如何开发有用的软件。微软凌小宁博士

我最大的心得是,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。微软张益肇博士第1章软件工程概述计算机基础软件软件危机软件工程的概念小结计算机基础计算机组成冯.诺依曼体系结构:输入设备输出设备存储器运算器控制器计算机中数的表示二进制(bit)八进制(byte)十进制数据:数值型、文本型、图形、图像、音频数据(多媒体数据)计算机语言语言类型:机器语言(二进制指令),汇编语言,高级语言,BASIC,C,FORTRAN,COBOL,C++,JAVA……语言要素:词汇,语法,控制逻辑控制逻辑:顺序、分支、循环程序

为解决某个计算问题,用计算机语言表示的计算步骤。如:

inputrifr<0message(“半径应大于0”)A=PI*r*routputA程序=数据结构+算法数据结构变量,数组,记录,文件存储结构(物理结构),逻辑结构算法:求解问题的步骤序列。1.每个步骤精确描述,无歧义;2.步骤是有限的;3.可以用计算机表示2024/2/27软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。2024/2/272、软件特点.

软件是一种逻辑实体,而不是具体的物理实体.

软件的生产与硬件不同.在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线2024/2/27.

软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件1950197019851995硬件2024/2/273、软件的分类1、按软件的功能进行划分系统软件支撑软件应用软件2024/2/27支撑软件一般类型:文本编辑程序文本格式化程序支持需求分析:PSL/PSA问题描述语言关系数据库管理系统支持设计:图形软件包结构化流程图绘图程序支持测试:静态分析器测试覆盖检验程序支持实现:编辑程序连接编辑程序支持管理:标准检验程序库管理程序2024/2/272、按软件的规模进行划分

按开发软件所需的人力、时间以及完成的源代码行数。类别参加人数研制期限产品规模(源代码行数)微型小型中型大型甚大型极大型112-55-20100-10002000-50001-4周1-6周1-2年2-3年4-5年5-10年约500行约2000行5000-50000行5万-10万行100万行1000万行2024/2/27

3、按软件开发划分软件项目开发软件产品开发2024/2/27软件工程的概念及范畴1、“软件工程”----SoftwareEngineering于1968年NATO组织在德国召开的一次会议上提出是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。2024/2/27软件工程学

软件开发技术

软件工程管理软件开发方法学软件工具软件工程环境软件工程管理学软件经济学----软件工程学的范畴2、软件工程学

2024/2/27

Wakeupeverydaywithafeelingofpassionforthedifferenttechnologywillmakeinpeople’sLife.微软企业文化宗旨部分内容

每天醒来的时候,要对技术给生活造成的改变始终拥有一份激情。2024/2/27程序3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发1975198920000.00016240营业额增长曲线80 独唱

小合唱

合唱

万人大合唱

|||

简单程序较复杂程序软件高薪酬职位

软件工程产生的背景1.软件的发展早期面向批处理有限的分布自定义软件第二阶段多用户实时数据库软件产品第三阶段分布式系统嵌入“智能”低成本硬件消费者的影响第四阶段强大的桌面系统面向对象技术专家系统人工神经网络并行计算网络计算机1950196019701980199020001968年10月,北大西洋公约组织(NATO)的科学家在德国召开的学术会议上正式提出了软件危机问题。软件工程产生的背景2.软件危机a、软件危机的表现(1/3)

成本高IBM360OS,5000多人年,耗时4年(1963-1966),花费2亿多美元美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85%美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元计算机软件和硬件费用比软件质量得不到保证软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭软件越来越多的应用于安全攸关(safetycritical)的系统,对软件质量提出更高的要求80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误美国阿托拉斯火箭的发射失败,原因是软件故障英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消日本第5代机因为软件问题在投入50亿美元后于1993年下马2007年诺顿误杀中文版windowsxp由于软件质量问题导致失败的软件项目非常多a、软件危机的表现(2/3)a、软件危机的表现(3/3)进度难以控制项目延期比比皆是由于进度问题而取消的软件项目较常见只有一小部分的项目能够按期完成维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用b、产生软件危机的原因与软件本身的特点有关(难于维护,逻辑复杂)与软件开发与维护的方法不正确有关:软件≠程序急于求成=拔苗助长各自为阵无方法学开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样正如搭茅草房和建设高楼大厦大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动C、软件工程(学)因危机而产生d、软件工程(学):克服软件危机的努力

(1)从管理的角度

软件开发过程的研究、文档的标准化以及人们

的交流方式等(2)软件开发方法的研究

结构化软件开发方法,面向对象的开发方法提出有效的方法和工具支持软件开发1968年提出软件工程概念和思想20世纪70年代的结构化软件开发方法20世纪80年代的面向对象的软件开发方法新的技术:软件重用、快速原型、需求工程典型技术:COM,Java,C++,J2EE,.Net,….支撑工具和环境:Jbuilder,VisualStudio,eclipse,my

eclipse,vb,…1、解决危机的技术途径20世纪80年代末,美国DoD和工业界开始认识到管理的重要性美国DoD的一项研究表明,70%的项目由于管理不善导致难以控制进度、成本和质量;进一步的研究发现:管理是影响软件项目成功开发的全局性因素,而技术只影响局部如果软件开发组织不能对软件项目进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品。2、解决危机的管理途径软件工程定义(1)Theestablishmentanduseofsoundengineeringprinciples(methods)inordertoobtaineconomicallysoftwarethatisreliableandworksonrealmachines.(1968-FritzBauer)

软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。软件工程定义(2)Softwareengineering.(1)Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).(IEEE(TheInstituteforElectricalandElectronicengineers)Std610-1990.)

软件工程是:(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径。软件工程定义(3)

Engineeringisthe

systematicapplicationofscientificknowledge

increatingandbuildingcost-effectivesolutionstopracticalproblemsintheserviceofmankind.

Softwareengineeringisthat

formofengineering

thatappliestheprinciplesofcomputerscienceandmathematics

toachievingcost-effectivesolutionstosoftwareproblems.SEIsoftwareengineeringdefinitionfrom1990SEIReportonUndergraduateSoftwareEngineeringEducation(CMU/SEI-90-TR-003):软件工程定义总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。软件工程的特性1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性3.软件经常变化4.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论