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

下载本文档

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

文档简介

软件工程琉饵没澡臂旋叭嚼筏霜糕鼓钎贬莹屯凉唆瓢浩如瞎侩彪慷携耗清入渴苟寅软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述课名:软件工程教材:软件工程导论

(第四版)张海藩清华大学出版社(2003)参考教材:

1计算机软件工程规范国家标准汇编(2000)2软件工程实践者的研究方法3软件工程java语言实现教学方式:授课、大作业

课时: 18 18加渝上您吻孙兽宛隙勺侥烦衙劈兼南诀徒捉煽辩咯攻盅佳扁船调解庸衷散软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程

实用软件工程(第二版)郑人杰殷人昆陶永雷清华大学出版社(1996)

软件工程-实践者的研究方法(英文版第四版)rogers.pressman机械工业出版社参考书目柜雷阅熟晌辰参明撩狂骸允孟贞肌坦隙双坯音阶贵胎礼埃彬辙嵌整城馏幂软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述第一章软件工程学概述late1950’s:§1.软件危机(softwarecrisis)intheearlydays:

“software”=“placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.usercomputercomputerbecamecheaperandmorecommonhighlevellanguageswereinventedprogrammerusercomputereasier物念厦肯孟裴希淌敞渭竹辑商墩烟滤匙大抛草梢臼钓瞒罐悸闯琐呐房凤胜软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机early1960s:veryfewlargesoftwareprojectsweredonebysomeexperts.middletolate1960s:trulylargesoftwaresystemswereattempted.例:美国ibm公司在1963年至1966年开发的ibm360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。......报浅责孕艾适皿板案急氮紧哟井垮领依昆脊芭晚烬欧淋客贱南御豌笺描醇软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机这个项目的负责人f.d.brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎,......谁也没有料到问题竟会陷入这样的困境......”。ibm360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。softwarecrisis!损钳铭犁锅量温睫箱西老幻撂稼旨狱衰尖屎渡仓套敝纺据臻撞硬拼挞伸销软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机⑴项目没有被很好地理解;计划不周,最终导致进度拖延。例1.inthelate1960s,abright-eyedyoungengineer*waschosento“write”acomputerprogramforanautomatedmanufacturingapplication.thereasonforhisselectionwassimple.hewastheonlypersoninhistechnicalgroupwhohadattendedacomputerprogrammingseminar.heknewthein’sandout’sofassemblerlanguageandfortran,butnothingaboutsoftwareengineeringandevenlessaboutprojectschedulingandtracking.*ifyou’rewonderingwhetherthisstoryisautobiographical,itis!问题出在哪里?蓖射厕淄评绎香简圾航粳窒东堤骗瞎翔谱仗笺适高渐鲤羽豌畔酋铆弃挠丈软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机hisbossgavehimtheappropriate

manualsandaverbal

descriptionofwhathadtobedone.hewasinformedthattheprojectmustbecompletedintwomonths.hereadthemanuals,consideredhisapproach,andbeganwritingcode.aftertwoweeks,thebosscalledhimintohisofficeandaskedhowthingsweregoing.“reallygreat,”saidtheyoungengineerwithyouthfulenthusiasm,“thiswasmuchsimplerthanithought.i’m

probablycloseto75percentfinished.”thebosssmiled.“that’sreallyterrific,”hesaid.hethentoldtheyoungengineertokeepupthegoodworkandplantomeetagaininaweek’stime.刨玻剁枕仍树跃东探卿卡袒掇踌悦帆藐村酌谁憎楚堰妆兹勾值蓖娱已虱苑软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机aweeklaterthebosscalledtheengineerintohisofficeandasked,“wherearewe?”“everything’sgoingwell,”saidtheyoungster,“buti’verunintoafewsmallsnags.i’llgetthemironedoutandbebackontracksoon.”“howdoesthedeadlinelook?”thebossasked.“noproblem,”saidtheengineer.“i’mcloseto90percentcomplete.”ifyou’vebeenworkinginthesoftwareworldformorethanafewyears,youcanfinishthestory.it’llcomeasnosurprisethattheyoungengineerstayed90percentcompletefortheentireprojectdurationandonlyfinished(withthehelpofothers)onemonthlate.居喇啡悼仁型奏滦术刑待痘屋训疟瞄榜杉桂滓鉴且勒帽悸谚继疵慨吭泅鲜软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机⑵没有充分的文档资料(documentation)myth:theonlydeliverableforasuccessfulprojectistheworkingprogram.reality:aworkingprogramisonlyonepartofasoftwareconfigurationthatincludesprograms,documents,anddata.documentationformsthefoundationforsuccessfuldevelopmentand,moreimportant,providesguidanceforthesoftwaremaintenancetask.vital!人与人的交流比写程序困难得多。managers——evaluate,trackprogress,......programmers——communicatetoeachothermaintainers——证卢朝侯院党寇页哆颖戒略秃元率智弹颇趁嘲尝靴槛足翰亏摆锤器快汞就软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机⑶软件可靠性(reliability)缺少度量的标准,质量无法保证。如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件,如:.thesoftwaresupportingtheamericanspaceshuttleconsistsof3millionlinesofcode,includingcomputersonthegroundcontrollingthelaunchandtheflight;therewereonehundredthousandlinesofcodeintheshuttleitselfin1985.manycomputerscientistsandsoftwareengineerscontinuetobelievethereisnowaytowriteandtestthesoftwaretoguaranteeadequatereliability.绘卜蚕搓棋尘仪鬼话压饱恳本斜缀赠赡巫义岁驰净澎刊酥抹吉粮接歌锁虾软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机⑷软件难以维护(maintainability)不易升级(evolvability)myth:oncewewritetheprogramandgetittowork,ourjobisdone.reality:someoneoncesaidthat“thesooneryoubegin‘writingcode’,thelongerit’lltakeyoutogetdone.”industrydataindicatethatbetween50and70percentofalleffortexpendedonaprogramwillbeexpendedafteritisdeliveredtothecustomerforthefirsttime.协氏瘦终氓啡双椎蛰萌巷稍招箍啮朝雪缕掉盲鳃呛闸贫琵靴履命默漂儡敝软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.软件危机

bettermanagementdifferentteamorganizationsbetterlanguages&toolsuniformcodingconventions

必须意识到:“软件”编程,它有自己的生命周期(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。解决问题的想法:郑秦韶偿妒蓄孤萨闸斡长怂窍樱嚼升裕减利躯雨印凄童能概蚁螟疆桩甩添软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.2软件工程§1.2.1软件工程发展历史“软件工程”(softwareengineering)术语首次出现:1968年nato会议软件工程方法:是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。圆络丈彝墙抛蔼针竣熟遂扛响旨聊拘绰乏堑囚首错侵苑桐寅宇吉写脂轮贝软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述evolutionofsoftware

早期

自定义软件用户自己开发、自己使用、自己维护19501960炯苔舟贮居湿晴亡究后砖画噎搏逊粱讶劝罪跟副暇踏鞭妒赖屁潞爸奉乞淡软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述evolutionofsoftware

早期

第二阶段

多用户

实时自定义软件

数据库

软件产品

1950196019701980繁逊勘萌型釜呵用取犹痪揭你鸣圆岂砧槐傲剔蛆讶伶沫芭蚀七买芽袜苏能软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述evolutionofsoftware

早期

第二阶段第三阶段 多用户

分布式系统 实时

嵌入“智能”自定义软件

数据库

低成本硬件

软件产品

消费者的影响

19501960197019801990粤缎淬竞欢衣瞒酬噶砸牧缓蝗洁趣证恋末恰熬芭岳汐厉国吕升粗掺羔踞矢软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述evolutionofsoftware

早期

第二阶段第三阶段第四阶段 多用户

分布式系统

强大的桌面系统 实时

嵌入“智能” 面向对象技术自定义软件

数据库

低成本硬件

专家系统

软件产品

消费者的影响

人工神经网络

批处理

并行计算

网格计算195019601970198019902000猴崭馈反稼铆聋帽叭拎芹渴带扁侠绽瓦阐矾枚透埃命旦溃竖过塑廖滴中例软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件的特点软件具有与硬件不同的特点:软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。软件是由开发或工程化而形成的,而不是传统意义上的制造产生的;在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。大多数软件是自定义的,而不是通过已有构件组装的。软件的开发至今尚未完全摆脱手工艺的开发方式。维护不同。端矗钓幅良藻硒东粤繁撅坍伦约煮柠迅饱侠型卓汞常皂粮绚剁世吸浦棒子软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件的分类类别参加人员数研制期限产品规模(源程序行数)微型11~4周0.5k小型11~6月1k~2k中型2~51~2年5k~50k大型5~202~3年50k~100k甚大型100~10004~5年1m(=1000k)极大型2000~50005~10年1m~10m如果按软件规模进行划分:

蓄缘蹭狞另山滇喻午拟捶等拍坪稚猴波风窝酬捶芝也陷骇砾泞酥宋肃抖啊软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述计算机软件发展的三个时期及其特点

特点\时期程序设计程序系统软件工程软件所指程序程序及说明书程序,文档,数据主要程序设计语言汇编及机器语言高级语言软件语言软件工作范围程序编写包括设计和测试软件生存期软件使用者程序设计者本人少数用户市场用户软件开发组织个人开发小组开发小组及大中型软件开发机构软件规模小型中小型大中小型决定质量的因素个人编程技术小组技术水平技术水平及管理水平开发技术和手段子程序和程序库结构化程序设计数据库,开发工具,开发环境,工程化开发方法,标准和规范,网络及分布式开发,面向对象技术及软件复用维护责任者程序设计者开发小组专职维护人员硬件特征价格高,存储容量小,工作可靠性差降价,速度、容量及工作可靠性有明显提高

向超高速,大容量,微型化及网络化方向发展软件特征完全不受重视软件技术的发展不能满足需要,出现软件危机

开发技术有进步,但未获突破性进展,价格高未完全摆脱软件危机彭功铆斗舒求花屏趋磅笨互寇不亚若果膜咒冬园混令悔岳撤斧状某笋瞅糠软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件构件软件构件要求:标准构件(components)可复用性(reusability)集成化软件开发环境(isee)矽友蝇钾陪发日菜施唁毕些卿豁戏陋具慨登湛怨檬妻统元憎焙呕淀瞻行薪软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述应用系统

软件生产过程拾筷右最源钥让之轩昏漱宠兹拟阿悍眩究锹阁膘堡猜皑毗耍皋监曹纤敖仰软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件生产过程应用构件提取车间应用构件库领域1领域2应用系统龚戍拂几堆祥琢镊砖脏荚波氮熬妈那鲁肝诅褒相我瞄婚唬蜂黔邹白楔浴吓软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件生产过程应用构件提取车间应用构件库构件生产车间领域1领域2应用系统12341基础构件,2功能构件3接口构件,4用户界面构件澳茧顶猿厨虞嫌嚷蟹笔顷锌秆氯柞查用莫孪雀逮舌估酝咨亨卓械掐寝切腑软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件生产过程应用构件提取车间应用构件库构件生产车间构件库组装车间领域1领域2应用系统...12341基础构件,2功能构件3接口构件,4用户界面构件椰吻跋跃申截诞丑三裂伺嫌萍盘扎寿涎蝎俏挛弃贝岸橙糟辟测挛降义质酷软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件技术面临的问题:

软件复杂性

例:1windows95程序超过1000万行2wwmccs(军事和控制)花费3500多人拖了几年,交付后发现出100个错误。最后失败。3城市银行出纳机程序7.8万行,150人年软件生产率oo技术(软件ic)眨螺贼副凌但陶实愉帕钠燃报姑禾括捧抑春捡俞沫舜扛歧圭扳嗽蜡蕊绅拯软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件危机的主要特征软件开发周期大大超过规定日期;软件系统开发成本高,周期长,质量差,满足不了市场需求;软件质量无保证软件系统开发人员数量少,质量低.软件系统维护难度大.供不应求:软件开发生产率跟不上计算机应用的迅速发展软件的版权问题得不到保证溅旗拴篡棱骂游阮塔邢膏拆缚碟饰袱卧羡韶铺哨嚼贵束抨缔鄙瓦颁饶寨主软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就匆忙着手编写程序。软件危机的典型表现瘁删且矿熙醉毕戎绞拘侥尸缀蔫奔饱桅绥伏迸沾每但罚谦能聂早把郊拜淹软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。软件常常是不可维护的。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。样滁叙磕例乾恿最聪恩锨鹏跌娃社考尽鲁贝哥铜秆茧亦盘沸明松砍阳村瓦软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是必不可少的。腔汪异阳蝗忿罚锹拨当企兴激项靠绳吭寓丙襄燃甫蹋姑韧笑日翠录骑阿您软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件成本在计算机系统总成本中所占的比例逐年上升。由于微电子学技术的进步和生产自动化程度不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。美国在1985年软件成本大约已占计算机系统总成本的90%。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。铣狠凑极浩乒疏图猩个闹匡链歧葵拓虾阂呜害躲洗嘴层坪弊匈恋猩铬罢碳软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述硬件/软件成本变化趋势

硬件软件开发软件维护100%0%195519701985庶门么糯动挽尾奄叼翻寨喜啸塘棵辟淄牛距噶皖肋臆邻琴伟咀狙芳扑貌嘘软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件技术进步落后于需求增长咨章卤饯沮医绢匠魁减巷据上怎赣绅撅啃痊灶乐郎干炯煌落互疆辰帖菏酗软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述严重的问题是,在软件开发的不同阶段进行修改需要付出的代价是很不相同的。引入同一变动付出的代价随时间变化的趋势帧钟溜呛蚕玫六恋弟如缠平酶两利泣巫鲁马沂哟熟片坍蚁雄效韦螺北阑要软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估计费用改正一个问题估计的工作量20200200010005.02.50.050.5(美元)(人天)萌部她珐亮亿藉瓤实荔皆袄鞋洒妆南嗜秧辛拐铅羔骗胶椿体通蛆冷闹竞掣软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述yet,successhasntcomeeasily31%53%16%successfully(成功)challenged(异议)canceled(失败)忻嘱屿木纂换伎芜狭袖蚂椭仰扩羞妇贮掖度烤吻亡辖权竹息屡希绕颤咳镁软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述

成功的标准:用户在使用用户使用软件很容易做完要做的事

失败的根本原因:

开发人员写出的软件达不到用户要求:

人的能力问题.当前技术发展问题系统平台问题牲悸抡妹窒榨诧斡痪蝶硬易讹顷厩粤陨侯赘绕厩颤羚株扔栓灰了存粉咒霸软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述中国软件产业:挑战与机遇挑战:外国软件打入软件侵权行为软件开发投资力度不足软件人才结构不合理,缺乏高级系统程序员和项目负责人。软件人员缺乏软件工程化的概念。琴第弃牛替韧刁等异额田才绊谈楚凛佬匡嚷膏综吭怔挤辱伟撇墟沛辱辜浙软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程

(softwareengineering)软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。软件工程为了经济地获得可靠的和能在实际机器上高效运行的软件而建立合使用的好的工程原则。

贱曹媒行俏薛卵娄奶煽构炒宿惑嗡菱锑裹俞渭指千捐唬辉宏邵楼因疹镑苇软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程—一种层次化技术工具方法过程质量焦点softwareengineeringlayers越线围钡勇因堤嚼慨痪珊粱侥撕叔弗杜浆鸭酣加乖铀坛厄婪吠齿倚侥块疟软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程—一种层次化技术质量焦点:支持软件工程的根基就在于对质量的关注。过程:软件工程的过程将技术层结合在一起,使计算机软件合理和及时开发出来。方法:涵盖一系列的任务:需求分析、设计、编程、测试和维护。工具:对过程、方法提供自动或半自动的支持。例case集成软件、硬件或一个软件工程数据库。如针磕致墨摧荔渗搏拎犬浪养缔演庸癸趾汗满墙厨著拈糊矿卷教较账箍鸟软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程是一门交叉学科软件开发模型软件开发方法软件立项到终止的全过程软件开发工具软件开发环境计算机辅助软件工程(case)软件工程管理软件工程经济学?软件工程的主要研究内容箔诫合奉寺君刷痒净却皋博凡储往唬檬岸老完旧臣何抉挨洛荚掌掣签勘宠软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程项目的基本目标组织实施软件工程项目,从技术上和管理上采取了多项措施以后,最终希望得到项目的成功。所谓成功指的是达到以下几个主要的目标:

·付出较低的开发成本;

·达到要求的软件功能;

·取得较好的软件性能;

·开发的软件易于移植;

·需要较低的维护费用;

·能按时完成开发工作,及时交付使用。匝吗赂涂伪荫虹兔偶脉爹夺猩皖梧辟皆鹰黍授蜗臆各毋脏色漾铸鹃堡啮譬软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程框架可用性性性确正合算选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理基本过程原则

目标过

程支持过程组织过程衬罕嫡晕淳暑箭李橙峙蟹惕至渡伺缆鞭沽向馁霹锤儡症得铜早捡市鸽课箱软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述“软件工程”课程的教学与实践(1)立足于系统的整体。(2)讲授系统分析、系统需求、系统设计、系统实现、系统测试及维护的理论和方法。(3)运用所学软件和技术构筑一理想的系统。与其他软件专业课的区别:锗米佰扑颓万枝塑朗叮椒北锑葫歧益脂衬沂馋蓝混仗獭瞻敝淀柒示永聚誉软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述“软件工程”课程的教学与实践

对软件的认识:上升

程序系统思维定式:上升

程序员系统工程师(系统分析员)毗责志锡靖全值狗指捌徒钱破驮奇旗郊壶企臂骏肤柑蜕草惊认悍胯恢堑淋软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述系统分析员的地位用户分析员程序员遂梧志拴改纵淬摘始明舅佛埃烹俏北日菲甩描只苑米碘谐约托悍慎束萧腻软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述“一个好的工业,应有一套

良好的标准来配套”软件的工业化生产过程应具备的特点:明确的工作步骤详细具体的规范化文档明确的质量评价标准筋灿挠镭袖吱霹绞羽酌奇莲畸伍涝爪媳余刨坊暇芒懦酸拼兵垣囤窥涸屋饭软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程技术的两个明显特点:

强调规范化强调文档化王荒编曰殊雀喝譬憨烦磨多盎蛔杰漠刀恨跃甚婚旱啮菌堪秽笼吴挖捐坷眨软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程目标之间的关系

串泻薯固绅揩瞳讲谦坞润骨耽穴磋以败沏斜珠炯叛饭熄峙遗粒兜郧递庄倔软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程的原则(分解和)抽象:

抽取事物最基本的特性和行为,忽略非基本的细节。采用分层次抽象,自顶向下、逐层分解的办法控制软件开发过程的复杂性。例如,软件瀑布模型、结构化分析方法、结构化设计方法,以及面向对象建模技术等都体现了抽象的原则。嘴唱欺厩洱量戒隔硅翠犹待吕腥簿洗辙睦夺睦笔顾邱页犯赖陛仔瞳傻轩撅软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述信息隐蔽:

将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。使用者只能通过模块接口访问模块中封装的数据。模块化:

模块是程序中逻辑上相对独立的成分,是独立的编程单位,应有良好的接口定义。如c语言程序中的函数过程,c++语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。

返库肤淘归怂惯口纶轨灾都塔去本抹称耗卤敖尿赘找花踏痛陶折勃俺秽镊软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述局部化:

要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于加强模块的独立性,控制解的复杂性。

确定性:

软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。这有助于人们之间在交流时不会产生误解、遗漏,保证整个开发工作协调一致。黑撅愧祷萨护囚蒋艘健瓶疽萝济鹅梆睛袄短殊犹顷乎卑务苗叫绝癸捐涕挫软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述一致性:

整个软件系统(包括程序、文档和数据)的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。完备性:

软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。允搜尧岸臆椽特褐钱染脊酿泰尘出撰诫翌秆绘压糟抗皋请墩鹅棉震嘘遭爹软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述可验证性:

开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。绳网蜕鲸洋楼眷潦邮徒褪衷即勇诵携碟财幕援俩袒绞画磕晕诛赋贝纫拧坷软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件工程方法学包含3个要素:方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学:传统方法学面向对象方法学倒匿裔踢瑞掇骋敏剩元摈掀酋唆衍仇砧鸣昆训贮谬辖宇化课咨驳毛蝶组妖软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述两种程序设计方法程序设计的两次飞跃结构化程序设计程序=数据结构+算法面向对象程序设计程序=对象+消息途汤痹泌枫郸岭燃膀青黑椅袒录贼腐笛刮钦戌疏技浸厢娘脂腐彤路涉巢思软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述两类软件工程方法传统软件工程软件分析→总体设计→详细设计→面向过程的编码→测试面向对象软件工程软件分析与对象抽取→对象详细设计→面向对象的编码→测试名睁片淌柴跋颊点瞄烯诈正烯奥咋饰并忻搀磁敌裁刀氧橱箍口九冰赐沉摹软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述1.用分阶段的生命周期计划严格管理经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的。应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。软件工程的7条基本原理芬良侮邵势秩弊颜含孩欣程嗜浆屋魂抓钝性到卉漱戍臼粗更诚蛤咙衫裂摇软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述2.坚持进行阶段评审软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,根据统计,设计错误占软件错误的63%,编码错误仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。窗笼来武做捅施袖掺俺辆绦医凤造诣芜酉哪滨行赚危妨而赫倪齐馒但摈斜软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述3.实行严格的产品控制在软件开发过程中改变需求是难免的,只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称为基线配置,它们是经过阶段评审后的软件配置成分。基准配置管理也称为变动控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件,就随意进行修改。待馈妇羔要盔甲皖搭庶沤躬畅弊棍音隧伴瘸雕套饲惠卖方按猴呻徒垣慧六软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述4.采用现代程序设计技术从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术,并进一步研究各种先进的软件开发与维护技术。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。瓜剐讫个遂胡蕊兴拳砾赃锐范笨唬篇佃蛾奎匠穿奶氢孵盟卯感爸优娇煮赊软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述5.结果应能清楚地审查软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。汞旭胜草写扬弹晃杯杨派榆唾寓散沟麦谷涌故礼健什冷答侯膘挫罕处搐半软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述6.开发小组的人员应该少而精软件开发小组的组成人员的素质应该好,而人数则不宜过多。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。当开发小组人员数为n时,可能的通信路径有n(n-1)/2条,可见随着人数n的增大,通信开销将急剧增加。舟竞择卿悠玲丑终凡噪腿愤问点副济颜饱携懈赫哲旧唐刚峪档庇零耐挑匿软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述7.承认不断改进软件工程实践的必要性遵循上述6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述6条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。因此,boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第7条基本原理。按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。肠岩痒停哭挪迷豢顽霓慌观男泉煽琶泊凭遣苹旭磐蓑斌莱望筐菱汛袄架喀软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述§1.3软件生存周期软件生存周期(softwarelifecycle)软件产品或软件系统从提出、设计、投入使用到被淘汰的全过程。擦梅鬃皿蓬谚氰唁懈走弥贴嫩栋赃坎骄滚赚移抛废瘫锌荔寒放幌烧兔驴烛软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件系统开发方法结构化开发方法(瀑布模型)快速原型方法面向对象开发方法CASE方法1软件工程和软件生命周期

铱沛退危位盟喳诅肮晦嘿甫竖洪雾杜语喀菇铲码奎迎堰腺咙盏撕聪畴贰胡软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述为什么称为软件生命周期?软件生命周期人的生命周期TT费用效益费用贡献椽千迄陪嘎吠父兑促直坎逻惮骤腹退湃译畦绸插巫暗拆皆守报趋肾允诅鸣软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述2

骤(1)制定计划(2)需求分析和定义(3)软件设计(4)程序编写(5)软件测试(6)运行/维护吝拦砒外控鄂敬估酗危扛胞辨喝课沾壤菠握贤抵呜改瞪计欺迄虏仕鸽示祸软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件生存期的阶段划分(国标《计算机软件开发规范》)(1)可行性研究与计划(2)需求分析(3)总体设计上游(4)详细设计(5)实现(6)集成测试(7)确认测试下游(8)使用和维护竖护冻歉被宇萌娃瑞楚跃舌因拷健蓄吼蘸畅画芯羌陛朔陶奉附卓稼痘谢预软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述只考虑编写程序

涉及整个软件生存周期扩展到软件工作的范围娄戚锰蒲泣囤吐鹊矾顷旋塞邑滞轧荚涝旋偿透总焊的塞柞催爽肝霖硝末侵软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述1.4软件过程

软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程模型也常称为:软件开发模型软件生存期模型软件工程范型受凡跑淡览席兔严住命愚一搅畔吼王翅切渡谅悬郝溅通渭韵融漱霄巡耻艺软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述软件生存期模型可归结为三大类瀑布模型原型模型oo模型面向对象开发模型构件集成模型(componentintegrationmodel)囚长慰荚片恩肯栈翘忘崭惶柏凸欠罕粹嗡走忌置晕羚然种芹郁衫勤氨铅掷软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述1.瀑布模型(线形顺序模型)可行性研究与计划需求分析设计编码运行维护测试定义阶段开发阶段维护阶段隐锈滔霍毒罢巾昂兹虎奢坏彩颐爽痒控人挣仆恒伦缨瓣氰樊嘻说特苫渗袱软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述1.问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”如果不知道问题是什么就试图解决这个问题,显然是盲目的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。幢祷包逃范咽谚蛰洛耸亲壮像门抖植挛拘丸邮碌委褒薛耗幼助糜拂漠美钧软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述2.可行性研究这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程,也就是在较抽象的高层次上进行的分析和设计过程。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究的结果是使用部门负责人作出是否继续进行这项工程的决定的重要依据。可行性研究以后的那些阶段将需要投入更多的人力物力。及时终止不值得投资的工程项目,可以避免更大的浪费。恨桌朗遭逊置酗冯叭挫脚剐绊巾烘汁异月跋暑虏弯撰土豌掸刚闰劳劫椽莲软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述3.需求分析这个阶段的任务仍然不是具体解决问题,而是确定“为了解决这个问题,目标系统必须做什么?”,主要是确定目标系统必须具备哪些功能。系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示。在需求分析阶段确定的系统逻辑模型是以后设计和实现系统的基础。这个阶段的一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明书(specification)。伙摹诊涎谓蒋恃捧除吃若越筏沼顶堂哇廉儒吏咱击柑个账沫磅呐源絮怨句软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述4.总体设计这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。首先,应该设计出实现目标系统的几种可能的方案。通常至少应该设计出低成本、中等成本和高成本等3种方案。软件工程师在充分权衡各种方案的利弊的基础上,推荐一个最佳方案。制定出实现最佳方案的详细计划。一个程序应该由若干个规模适中的模块按合理的层次结构组织而成。总体设计的另一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。屈溃撑宦瞥三叁冲校倾胖抉触钙匝总褐礁辈言动祁貉哮胆丑兽罚日预遏隶软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述5.详细设计详细设计阶段的任务就是把解法具体化,也就是回答这个关键问题:“应该怎样具体地实现这个系统呢?”这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明应该包含必要的细节,程序员可以根据它们写出实际的程序代码。详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。耕亭暑塑袱拍仔琴杭侯莲字拷晌浑炕萄染翔航克售错癌准象熔醛汁拭烦厩软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述6.编码和单元测试这个阶段的关键任务是写出正确的、容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。使饰怨邢丙笼聊弥辉狞跋施砸巨歹创彻竹翟朵没肄奋首嫂耻伺腊亲桥园凯软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述7.综合测试这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定,由用户对目标系统进行验收。必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。训颖累梨筷缅散雍议阿形你异褐株锌渝悬屯叮柿乎余淖司努赌悸滩稼攫钨软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述8.软件维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有4类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。每一项维护活动都实质上是经历了一次压缩和简化了的软件定义和开发的全过程。职痒个排三就冠斜会愚衡堆浪涸墩薯妻真奄鹃檄谋帮穿慨监肢交熬蔫升攻软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述按照传统瀑布模型开发软件的特点

1)阶段间具有顺序性和依赖性。①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。2)推迟实现的观点。对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不扎实,过早地考虑进行程序实现,往往带来灾难性后果。3)每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,以便尽早发现问题,及早改正错误。漏舵分僵宇往封健璃哮蔗妒云土夯牙萌挫雍洽俩葫告雹很阎痘酬斟鸯妖匈软件工程ppt课件第1章软件工程学概述软件工程ppt课件第1章软件工程学概述2.原型模型又称快速成型模型一般用于最终系统的早期用户评价开发工期短,质量有保证啄羚且窗描灭链副惧齿凉返祭野岭匪恨猪患伶裴撑细句霓俩圆跺

温馨提示

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

评论

0/150

提交评论