软件工程导论-第一章.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 第一章
- 资源描述:
-
,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,软件工程导论,参考书目,实用软件工程(第二版),郑人杰、殷人昆、陶永雷,清华大学出版社,1997年,软件工程(第二版),齐治昌、谭庆平、宁洪,高等教育出版社,2004年,计算机科学技术百科全书(第二版),张效强主编,清华大学出版社,2005年,Software Engineering A Practitioners Approach(Sixth Edition),Roger S Pressman,2005年,(中文版)郑人杰等译,机械工业出版社,2007年,什么是软件?,软件危机的产生及消除,软件工程学的诞生,软件生命周期,第一章,迄今为止,计算机系统已经经历了4个不同的发展阶段,但是,我们仍然没有彻底摆脱“软件危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。,计算机软件已经成为一种驱动力,进行商业活动的引擎,现代科学研究和工程问题解决的基础,区分现代产品和服务的关键因素,现代社会中不可缺少的,软件,定义,软件的发展,软件特征,软件,定义,能够完成预定功能和性能的可执行的,指,令集合,(,计算机程序),软件是,使得程序能够适当地操作信息的数据结构,描述程序的操作和使用的文档,软件,软件的发展,早期,面向批处理,有限的分布,自定义软件,第二阶段,多用户,实时,数据库,软件产品,第三阶段,分布式系统,嵌入“智能”,低成本硬件,消费者的影响,第四阶段,强大的桌面系统,面向对象技术,专家系统,人工神经网络,并行计算,网路计算机,1950,1960,1970,1980,1990,2000,软件,软件特征,软件是一种逻辑实体,而不是具体的物理实体,软件的生产与硬件不同,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,磨合调整,磨损用坏,硬件失效率曲线,时间,失效率,修改点,实际曲线,理想曲线,时间,失效率,软件失效率曲线,软件,软件特征,软件是一种逻辑实体,具有抽象性,软件没有明显的制造过程,软件在使用过程中,没有磨损、老化的问题,软件对硬件和环境有着不同程度的依赖性,软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低,软件是复杂的,而且以后会更加复杂,软件的成本相当昂贵,大多数软件是自定的,而不是通过已有的构件组装而来的,软件工作牵涉到很多社会因素,1.1,.,1,软件危机,介绍,软件危机包含两方面问题:,如何开发软件,以满足不断增长,日趋复杂的需求;,如何维护数量不断膨胀的软件产品。,Software depression,(,软件萧条,),Software affliction,(,软件困扰,),“,慢性的苦恼”,软件危机主要有以下表现:,对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。,用户对“已完成”系统不满意的现象经常发生。,软件产品的质量往往靠不住。,Bug,一大堆,,Patch,一个接一个。,软件的可维护程度非常之低。,软件通常没有适当的文档资料。,软件的成本不断提高。,软件开发生产率的提高赶不上硬件的发展和人们需求的增长。,规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升,如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,对用户要求没有完整准确的认识就匆忙着手编写程序,越早开始写程序,完成它所需要用的时间往往越长,所以.,围绕如何开发好一个软件人们提出了很多理论,形成软件工程这样一个新领域,面向方面的编程,净室理论,极限编程,SOA,架构,AJax,.,恰当的过程,问题定义,也就是确定要求解决的问题是什么;,可行性研究,决定该问题是否存在一个可行的解决办法;,需求分析,也就是深入具体地了解用户的要求,在所要开发的系统(不妨称之为目标系统)必须做什么这个问题上和用户取得完全一致的看法。,软件设计,(,通常又分为概要设计和详细设计两个阶段,),编写程序的阶段,大量的测试工作,(,需要的工作量通常占软件开发全部工作量的,40%,50%),才能最终交付使用。,所以,编写程序只是软件开发过程中的一个阶段,而且在典型的软件开发工程中,编写程序所需的工作量只占软件开发全部工作量的,10%,20%,软件开发工作量分配比例,40%50%,10%20%,费用分配比例,55%70%,在软件开发的不同阶段进行修改需要付出的代价是很不相同的,1.1.3,消除软件危机的途径,对计算机软件有一个正确的认识,(,软件程序),必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。,推广使用在实践中总结出来的开发软件的成功技术和方法。,开发和使用更好的软件工具。,1.2,软件工程,软件工程的概念及范畴,“软件工程”,-Software Engineering,于,1968,年,NATO,组织在,德国召开的一次会议上提出,是把软件当作一种工业产品,要求“采用工程化的,原理与方法对软件进行计划、开发和维护”。,1968,年早期定义:“软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”这个定义不仅指出了软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。,1993,年,IEEE,进一步给出了一个更全面更具体的定义:“软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。”,IEEE(Institute of Electrical and Electronics Engineers)美国电气及电子工程师学会,一个美国的工程技术和电子专家的组织,但它是因大量其他国家的会员而出名的。IEEE致力于电气、电子、计算机工程和与科学有关的领域的开发和研究。,围棋与软件工程的感想,围棋,围棋棋谱拿过来的时候,大师问“后面应该走哪里?”,十个初级爱好者选择的落点散布在棋盘各处,十个职业棋手说的落子点都差不多,甚至包括后面的几步,这就是高手和低手的差别,软件工程,当一个小程序拿过来的时候,项目经理让大家编写,十个中国软件工程师写出来的程序各有“特色”、千差万别,十个印度软件工程师写出来的程序差不多,以至于怀疑是“抄袭”。,思考:,软件开发是否需要追求风格一致和代码一致,软件开发是否应该抹杀个人的创造性,人们普遍认为软件工程具有下述的本质特性。,软件工程关注于大型程序的构造,“大”与“小”的分界线,构造出包含若干个相关程序的“系统”。,软件工程的中心课题是控制复杂性,问题分解,使得分解出的每个部分是可理解的,而且各部分之间保持简单的通信关系。,这种方法并不能降低问题的整体复杂性,软件经常变化,为了不被很快淘汰,因此开发过程中必须考虑将来可能的变化,开发软件的效率非常重要,社会对新应用系统的需求超过了人力资源所能提供的限度,软件工程的一个重要课题:寻求开发与维护软件更好和更有效的工具,和谐地合作是开发软件的关键,软件必须有效地支持它的用户,必须仔细地研究用户,以确定适当的功能需求、可用性要求及其他质量要求,软件开发不仅应该提交软件产品,而且应该写出用户手册和培训材料,此外,还必须注意建立使用新系统的环境。,在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人,缺乏应用领域的相关知识,是软件开发项目出现问题的常见原因,1.2.2,软件工程的基本原理,著名的软件工程专家B.W.Boehm综合这些学者们的意见并总结了TRW公司多年开发软件的经验,于1983年在一篇论文中提出了软件工程的7条基本原理。他认为这7条原理是确保软件产品质量和开发效率的原理的最小集合。,1.,用分阶段的生命周期计划严格管理,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。,2.,坚持进行阶段评审,大部分错误是在编码之前造成的,错误发现与改正得越晚,所需付出的代价也越高,3.,实行严格的产品控制,一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件,就随意进行修改。,4.,采用现代程序设计技术,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。,5.,结果应能清楚地审查,根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。,6.,开发小组的人员应该少而精,微软,MSN Messenger,开发小组成员,1.James Baker-,项目经理,2.Scott Swanson-,集团产品经理,3.Tony Biggs-,高级产品经理,4.Tony Bristol-,高级产品经理,5.Carmen Zlateff-,首席程序经理,6.Jose Figueroa-Morales-,软件开发工程师,7.,承认不断改进软件工程实践的必要性,1.2.3,软件工程方法学,把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。,软件工程方法学包含,3,个要素:方法、工具和过程,方法,完成软件开发的各项任务的技术方法,回答“怎样做”的问题;,工具,为运用方法而提供的自动的或半自动的软件工程支撑环境;,过程,为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,传统方法学,面向对象的方法学,传统方法学,(,生命周期方法学,),采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。,把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种方法学开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地进行开发。,从上而下,顺序地完成软件开发的各阶段任务。,目前,传统方法学仍然是人们在开发软件时使用得十分广泛的软件工程方法学。这种方法学历史悠久,为广大软件工程师所熟悉,而且在开发某些类型的软件时也比较有效,因此,在相当长一段时期内这种方法学还会有生命力。,面向对象的方法学,出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识实践解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。,面向对象的方法学,把对象作为融合了数据及在数据上的操作行为的统一软件构件;,把所有对象都划分成类;,按照父类与子类的关系,把若干个相关类组成一个层次结构的系统;,对象彼此间仅能通过发送消息互相联系。,面向对象,=,对象(,Object,),+,分类(,Classification,),+,继承(,Inheritance,),+,用消息进行通信(,Communication with Message,),软件工程学,软件开发技术,软件工程管理,软件开发方法学,软件工具,软件工程环境,软件工程管理学,软件经济学,-,软件工程学的范畴,软件工程学,1.3,软件生命周期,概括地说,软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。,软件生命周期,问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试,软件维护,问题的定义与可性行研究,当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。,所以在软件工程中把这一步称为 计划时期,可行性分析报告,主要内容,1.市场分析,2.政策分析,3.竞争实力分析,4.技术可行性分析,5.时间和资源可行性分析,6.知识产权分析,开始,问题定义,可性行研究,可行否?,项目实施计划,终止项目的建议,结束,Y,计划时期的工作流程图,N,软件需求分析,主要是确定目标系统必须具备哪些功能,系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。,通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。,总体设计,又称为概要设计,回答:“应该怎样实现目标系统”,实现目标系统的几种方案,制定最佳方案的详细计划,详细设计,把解法具体化,回答:,“应该怎样具体地实现这个系统?”,设计出程序的详细规格说明,又称为“模块设计”,编码和单元测试,写出正确的容易理解、容易维护的程序模块。,测试模块,综合测试,集成测试,根据设计的软件结构,把经过单元测试检验的模块按某种策略装配起来,在装配过程中对程序进行必要的测试。,验收测试,按照规格说明书的规定,由用户对目标系统进行验收。,保存结果,生产软件的最终目的是为了满足客户需求,我们以客户需求作为评判软件质量的标准,认为软件缺陷(,Software Bug,)的具体含义包括下面几个因素:,软件未达到客户需求的功能和性能;,软件超出客户需求的范围;,软件出现客户需求不能容忍的错误;,软件的使用未能符合客户的习惯和工作环境。,80-20 原则,80%的软件缺陷常常生存在软件 20%的空间里。,实践证明 80%的软件缺陷可以借助人工测试而发现,20%的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有 5%左右的软件缺陷需要通过其他方式进行发现和修正。,软件维护,改正性维护:诊断和改正在使用过程中发现的软件错误。,适应性维护:修改软件以适应环境的变化,完善性维护:根据用户的要求改进或扩充软件使它更完善,预防性维护:修改软件为将来的维护活动预先做准备,软件维护人员15名,掌握JAVA基础或DELPHI基础,熟悉SQL或熟悉ORACLE数据库,适应外派或出差(省内外),有一定的沟通能力,有软件维护或软件工程实施工作经验者优先。,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




软件工程导论-第一章.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12558769.html