软件工学程概述.ppt

上传人:小飞机 文档编号:6377455 上传时间:2023-10-22 格式:PPT 页数:75 大小:1.79MB
返回 下载 相关 举报
软件工学程概述.ppt_第1页
第1页 / 共75页
软件工学程概述.ppt_第2页
第2页 / 共75页
软件工学程概述.ppt_第3页
第3页 / 共75页
软件工学程概述.ppt_第4页
第4页 / 共75页
软件工学程概述.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

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

1、软件工程Software Engineering,任世卿沈阳理工大学信息学院2012-2013第2学期,1.掌握软件工程的基本原理、基本概念和相关的技术方法,主要包括可行性研究、需求分析、总体设计、详细设计、编码、测试、维护、项目管理等方面的基本知识与方法;2.能结合所学知识,在实际项目开发中能灵活运用,要求在课程设计或毕业设计环节中,能正确运用软件工程的思想、方法、技术进行软件开发。,课程目标:,第1章 软件工程学概述,著名软件公司,目前是全球最大的电脑软件提供商。微软公司现有雇员6.4万人,2011年营业额699.4亿美元,其主要产品为Windows操作系统、Internet Explor

2、er网页浏览器及Microsoft Office办公软件套件。,第1章 软件工程学概述,著名软件公司,1911年创立,是全球最大的信息技术和业务解决方案公司,目前拥有全球雇员 30多万人,业务遍及160多个国家和地区。该公司创立时的主要业务为商用打字机,及后转为文字处理机,然后到计算机和有关服务。2011年营业额为1069亿美元。软件方面,IBM软件集团整合有五大软件品牌,包括Lotus,WebSphere,DB2,Rational,Tivoli,在各自方面都是软件界的领先者或强有力的竞争者。1999年以后,微软的总体规模才超过IBM软件集团。截止目前,IBM软件集团也是世界第二大软件实体。,

3、第1章 软件工程学概述,著名软件公司,Oracle公司(甲骨文公司)是世界上最大的企业软件公司,向遍及145个国家的用户提供数据库、工具和应用软件以及相关的咨询、培训和支持服务。2011年雇员数目为108429人,年收入为268.2亿美元。主要有以下几类产品:数据库:Oracle数据库、数据仓库、MySQL等。中间件:数据集成、业务分析、SOA、WebCenter等。管理软件:客户关系管理、企业绩效管理、财务管理。,第1章 软件工程学概述,著名软件公司,Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。2011年年营业额为380亿美元,2011年员工数为32467

4、。,第1章 软件工程学概述,著名软件公司,百度是全球最大的中文搜索引擎,2000年1月由李彦宏、徐勇两人创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的青玉案元夕词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。2011年年营业额:145.01亿元(约23.04亿美元)2012年员工数:约20000人搜索市场份额:83.6%,第1章 软件工程学概述,著名软件公司,百度是全球最大的中文搜索引擎,2000年1月由李彦宏、徐勇两人创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的青

5、玉案元夕词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。2011年年营业额:145.01亿元(约23.04亿美元)2012年员工数:约20000人搜索市场份额:83.6%,第1章 软件工程学概述,著名软件公司,东软是中国领先的IT解决方案与服务供应商。目前,公司开发的各种软件已被广泛运用于工程、电力、电信、房地产、工厂设计等行业,软件的商品化率是国内最高的。东软以软件技术为核心,提供行业解决方案和产品工程解决方案以及相关产品与服务。2012年7月24日,东软集团爆出知识产权商业犯罪案,涉案人数多达28人。,第1章 软件工程学概述,1.1 软件危机1.2 软件工程1.3 软件生命

6、周期1.4 软件过程,第1章 软件工程学概述,知识点:1.软件的定义和分类2.软件危机的含义和典型表现3.产生软件危机的原因4.消除软件危机的途径,第1课时,第1章 软件工程学概述,软件,定义:软件是程序、数据及相关文档的完整集合。程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。,第1章 软件工程概述,软件,Software pervades our world,and we sometimes take for granted its role in making our lives more comfor

7、table,efficient,and effective.,软件无处不在,有时我们想当然地认为它使我们的生活更加舒适、方便和高效。,第1章 软件工程学概述,软件,系统软件,应用软件,操作系统,语言处理系统,服务程序,分类,2013年1月编程语言排行榜榜单,第1章 软件工程学概述,1 含义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。例子:IBM公司用6000人年开发了OS360,费用高达5亿多美元。,第1章 软件工程学概述,软件开发历史上规模最宏大的项目应当是IBM于1961年发起的 OS360操作系统项目,希望通过工业化的方式组织实施这个规模巨大的软件开发计划。当时,

8、IBM选择了经验丰富的项目经理Fred Brooks,雇佣了最好的系统分析员、编程员和工程管理人员。但是,在项目将要结束的时候发现,研发费用已经远远超过了预期,甚至比美国政府研制第一个 原子弹的“曼哈顿计划”还要高昂,而且项目起初制定的目标并没有最后完全实现。,第1章 软件工程学概述,1965年,OS360项目完成,虽然产品获得了商业成功,但是当时的 IBM CEO Thomas Watson Jr一直困惑为什么软件项目要比硬件项目花费大得如此多,而且目标如此难以管理。对此,当时主持该项目的Brooks也无法给出答案。10年 后,Brooks在他的The Mythical Man Month一

9、书中回答了这个问题。Brooks认为传统工业化管理的核心在于合理分工,将工作划分为简单的步骤,并且优化这些步骤,然后通过管理这些步骤 完成产品的过程,而这种方法在软件产业中有很大的局限性,无法很好操作和控制。,第1章 软件工程学概述,MicroSoft Vista(2007年-2009年)数以千万行计的代码,繁多的功能和缺陷,对电脑硬件的苛刻要求,庞大的开发费用,千奇百怪的推广活动 比尔盖茨声称开发Vista用掉的60亿美元是他“花过的最值的钱”。Vista有5000W行代码,开发人员有2000人,从4000W行代码的XP到Vista只有1000W行代码,而这两千人花费了五年时间,第1章 软件

10、工程学概述,2 典型表现:对软件开发成本和进度的估计常常很不准确。无论是CMMI、ISO9000、RUP等重量级方法学还是以极限编程XP为首的轻量级方法学都没能成为拯救软件开发的“银弹”,微软的Vista操作系统、Office2007一拖再拖,软件经理和开发人员都逃不出50%甚至以上的超期和超资怪圈。,第1章 软件工程学概述,2 典型表现:(2)用户对“已完成的”软件系统不满意的现象经常发生。(3)软件产品的质量往往靠不住。(4)软件常常是不可维护的。,第1章 软件工程学概述,2 典型表现:(5)软件通常没有适当的文档资料。(6)软件成本在计算机系统总成本中所占的比例逐年上升。,第1章 软件工

11、程学概述,2 典型表现:(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。,在19601980年期间,计算机硬件的生产由于采用计算机辅助设计、自动生产线等先进工具,使硬件生产率提高了100万倍,而软件生产率只提高了2倍,相差十分悬殊。,1.1 软件危机,1.1.2 产生软件危机的原因 1 客观原因:缺乏“可见性”较难维护 规模庞大,复杂性高,须多人分工合作,第1章 软件工程学概述,1.1 软件危机,1.1.2 产生软件危机的原因 2 主观原因:错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。,第1章 软件工程学概述

12、,1.1 软件危机,1.1.3 消除软件危机的途径1 首先应该对计算机软件有一个正确的认识,彻底消除“软件就是程序”的错误观念。,第1章 软件工程学概述,1.1 软件危机,1.1.3 消除软件危机的途径2 必须充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,并且研究探索更好更有效的技术和方法。,第1章 软件工程学概述,1.1 软件危机,1.1.3 消除软件危机的途径3 开发和使用计算机辅助软件工程(CASE)工具。,第1章 软件工程学概述,IBM Rational2002年

13、12月6日,IBM宣布以21亿美元收购软件设计工具厂商Rational。能够得到蓝色巨人青睐的公司绝非等闲之辈。截至到2002年6月30日止,该公司在之前十二个月里的营收已经高达六亿六千六百四十万美元,全世界几乎所有的大型软件项目中都不同程度地采用了它的技术、服务及软件工程环境或工具。,第1章 软件工程学概述,1.1 软件危机,1.1.3 消除软件危机的途径 软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。,第1章 软件工程学概述,知识点:1.软件工程的定义和本质特征2.软件工程的基本原理,第2课时,一、定义:采用工程的概念、原理、技术和方法来开发与维护软件,把

14、经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。,1.2 软件工程 1.2.1 软件工程的介绍,工程:“工程”是科学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以时间最短的和精而少的人力做出高效、可靠且对人类有用的东西,万里长城,秦始皇兵马俑,北京故宫,京杭大运河,神舟飞船/天宫一号,沈阳地铁,二、本质特性1.软件工程关注于大型程序的构造2.软件工程的中心课题是控制复杂性设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。A.如果C(P1)C(P2),

15、则E(P1)E(P2)B.C(P1+P2)C(P1)+C(P2)即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和。也就是说,对于一个复杂问题,将其分解成多个小问题分别解决比较容易。,3.软件经常变化4.开发软件的效率非常重要5.和谐地合作是开发软件的关键 遵守纪律 6.软件必须有效地支持它的用户7.在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品,一、软件工程的7条基本原理1.用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的。,1.2.2 软件工程的基本原理,2.坚持进行阶段评审理由:第一,大部分错

16、误是在编码之前造成的,例如,根据Boehm等人的统计,设计错误占软件错误的63%,编码错误仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。,3.实行严格的产品控制,4.采用现代程序设计技术,多核程序设计技术多线程编程技术线程池编程技术敏捷技术。,5.结果应能清楚地审查 多用数学,少用语文6.开发小组的人员应该少而精 1+1=?7.承认不断改进软件工程实践的必要性 与时俱进,知识点:1.软件工程方法学2.软件的生命周期,第3课时,一、传统方法学(1)采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,1.2.3 软件工程方法学,(2)把软件生命周期的全过程

17、依次划分为若干个阶段,然后顺序地完成每个阶段的任务。,(3)每一个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。(4)在每一个阶段结束之前都必须进行正式严格的技术审查和管理复审。,二、面向对象方法学(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。也就是说,用对象分解取代了传统方法的功能分解。,(2)把所有对象都划分成类(class)。(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。,类图,(4)对象彼此间仅能通过发送消息互相联系。,一、组成:3个

18、时期1、定义时期:问题定义:“要解决的问题是什么?”可行性研究:是否值得去解,是否有可行的解决办法需求分析:目标系统必须做什么,1.3 软件生命周期,2、开发时期:总体设计:应该怎样实现目标系统详细设计:怎样具体地实现这个系统编码和单元测试:写出正确的容易理解、容易维护的程序模块综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。,3、维护时期:软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。,知识点:1.软件过程2.可行性研究:数据流图和数据字典 成本/效益分析,第4课时,软件过程是完成各项任务的工作步骤,通常使用生命周期模型简洁地描述。,1.4 软件过程,1、模型

19、图示,一、瀑布模型,传统的瀑布模型,实际的瀑布模型,2、特点:阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点,一、瀑布模型,3、优点:规范文档验证,一、瀑布模型,4、缺点:预见性差缺乏有效沟通,一、瀑布模型,1、模型图示,二、快速原型模型,快速原型模型,2、优点:能满足用户的真实需求线性顺序开发,二、快速原型模型,1、模型图示,三、增量模型,增量模型,风险更大的增量模型,2、优点:能在较短时间内向用户提交可完成部分工作的产品逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品具有较好的可扩充性,三、增量模型,3、缺点:软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构,三、增量模型,1、模型图示,四、螺旋模型,简化的螺旋模型,完整的螺旋模型,2、优点:有利于已有软件的重用有助于提高软件质量减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险维护和开发之间并没有本质区别,四、螺旋模型,3、缺点:增加费用软件开发人员具有丰富的风险评估经验和知识,四、螺旋模型,1、模型图示体现了面向对象软件开发过程迭代和平滑过渡的特性,五、喷泉模型,喷泉模型,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号