软件工程导论(ppt 76页)36051.pptx
《软件工程导论(ppt 76页)36051.pptx》由会员分享,可在线阅读,更多相关《软件工程导论(ppt 76页)36051.pptx(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软软 件件 工工 程程Software Engineering主讲:主讲:wangzhenE-mail: 电话:电话:86798113 1软件工程软件工程软软件件业业是是决决定定21 21世世纪纪国国际际竞竞争争地地位位的的战战略略性产业,是信息时代的朝阳产业。性产业,是信息时代的朝阳产业。1.1.软软件件产产业业是是信信息息产产业业的的核核心心,是是国国际际竞竞争的焦点和战略制高点。争的焦点和战略制高点。2.2.软件关系到国家政治、经济和社会的安软件关系到国家政治、经济和社会的安全及民族文化的发扬光大。全及民族文化的发扬光大。3.3.发展软件产业对优化我国产业结构、提发展软件产业对优化我国产
2、业结构、提高经济运行质量具有极其重要的作用。高经济运行质量具有极其重要的作用。4.4.软软件件是是国国民民经经济济建建设设中中诸诸多多关关键键技技术术的的基础。基础。2 软件工程软件工程 近二十年来计算机软件已经成为现代科学近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门、研究和解决工程问题的基础,以及管理部门、生产部门、服务行业中的关键因素,渗透到了生产部门、服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。各个领域,成为当今世界不可缺少的一部分。展望二十一世纪,软件仍将成为驱动任何事展望二十一世纪,软件仍将成为驱动任何事情情,从基础教育到遗传工
3、程取得新进展的动力。从基础教育到遗传工程取得新进展的动力。学习研究工程化的软件开发方法,使开发学习研究工程化的软件开发方法,使开发过程更加规范,是我们学习的目标和动力。过程更加规范,是我们学习的目标和动力。3软软 件件 工工 程程软件工程导论(第四版)软件工程导论(第四版)张海藩张海藩 清华大学出版社清华大学出版社(2003)教教材材4软软 件件 工工 程程 实用软件工程实用软件工程(第二版)(第二版)郑人杰郑人杰 殷人昆殷人昆 陶永雷陶永雷 清华大学出版社(清华大学出版社(1996)软件工程软件工程-实践者的研究方法实践者的研究方法(英译版(英译版第五版)第五版)Roger S.Pressm
4、an机械工机械工业出版社业出版社参考书目参考书目5软软 件件 工工 程程课程评分方法课程评分方法 大作业大作业 30%+期末考试期末考试 70%=总评总评 100%其它其它作业仅供参考。可通过作业仅供参考。可通过e-mail递交递交考勤仅供参考,若抽查考勤仅供参考,若抽查3次缺勤,次缺勤,总成绩不及格总成绩不及格6学生管理系统学生管理系统StudentMisvv学生管理系统学生管理系统针对的用户是学校学生针对的用户是学校学生管理部门。管理部门。相应的需求有:相应的需求有:FF 能够存储一定数量的学生信息能够存储一定数量的学生信息,并方便有并方便有效的进行相应的学生数据操作和管理,主效的进行相应
5、的学生数据操作和管理,主要包括:要包括:大作业大作业7 学籍管理学籍管理学籍管理学籍管理学生基本信息的导入、录入、删除及修改。学生基本信息的导入、录入、删除及修改。学生基本信息的导入、录入、删除及修改。学生基本信息的导入、录入、删除及修改。学生辅助信息学生辅助信息学生辅助信息学生辅助信息(综合测评、奖励、处分等综合测评、奖励、处分等综合测评、奖励、处分等综合测评、奖励、处分等)的录入、删除的录入、删除的录入、删除的录入、删除及修改。及修改。及修改。及修改。学生贷款管理(录入、删除及修改。查询)学生贷款管理(录入、删除及修改。查询)学生贷款管理(录入、删除及修改。查询)学生贷款管理(录入、删除及
6、修改。查询)学生保险管理(录入、删除及修改。查询)学生保险管理(录入、删除及修改。查询)学生保险管理(录入、删除及修改。查询)学生保险管理(录入、删除及修改。查询)学生就业管理(录入、删除及修改。查询)学生就业管理(录入、删除及修改。查询)学生就业管理(录入、删除及修改。查询)学生就业管理(录入、删除及修改。查询)学生勤工助学管理(录入、删除及修改。查询)学生勤工助学管理(录入、删除及修改。查询)学生勤工助学管理(录入、删除及修改。查询)学生勤工助学管理(录入、删除及修改。查询)学生各种信息的多关键字检索查询。学生各种信息的多关键字检索查询。学生各种信息的多关键字检索查询。学生各种信息的多关键
7、字检索查询。8FF 能够对需要的统计结果提供打印输出。能够对需要的统计结果提供打印输出。FF 能够提供一定的安全机制,提供数据信能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息授权访问,防止随意删改,同时提供信息备份的服务。息备份的服务。v 可选题目:可选题目:-商业管理系统的分析、设计与实现商业管理系统的分析、设计与实现-教务管理系统的分析、设计与实现教务管理系统的分析、设计与实现-订票管理系统的分析、设计与实现订票管理系统的分析、设计与实现v 可以自选题目可以自选题目,但需要教师认可但需要教师认可9应提交的文档应提交的文档n n软件需求规格说明书软件需求规格说明书n
8、 n软件设计规格说明书软件设计规格说明书n n用户安装及使用手册用户安装及使用手册n n系统测试计划系统测试计划n n演示程序演示程序n n其它其它10软软 件件 工工 程程目的目的 体验软件工程各阶段的主要工作,特别体验软件工程各阶段的主要工作,特别注意吸取教训;注意吸取教训;学会与他人合作,培养团队精神,单干学会与他人合作,培养团队精神,单干户将得不到成绩。户将得不到成绩。分组:分组:班长组织班长组织每组每组6-8人,选一个组长。人,选一个组长。组长负责:组织、分工、安排进度、作业提交等。组长负责:组织、分工、安排进度、作业提交等。作业提交作业提交:每组一个每组一个,但必须注明分工但必须注
9、明分工.110.软件概论软件概论什么是软件什么是软件软件的分类软件的分类软件的发展软件的发展1.软件危机软件危机软件危机的表现软件危机的表现软件危机的原因软件危机的原因2.软件工程软件工程软件工程软件工程软件工程的目的和要求软件工程的目的和要求第一章第一章 软件工程学概述软件工程学概述12软件软件是计算机系统中与硬件相互依存的另是计算机系统中与硬件相互依存的另一部分,它是包括一部分,它是包括程序程序,数据数据及其相关及其相关文文档档的完整集合的完整集合程序程序是按事先设计的功能和性能要求执行是按事先设计的功能和性能要求执行的的指令序列指令序列数据数据是使程序能正常操纵信息的是使程序能正常操纵信
10、息的数据结构数据结构文档文档是与程序开发,维护和使用有关的是与程序开发,维护和使用有关的图图文材料文材料0.软件概论软件概论13软件的特点软件的特点软件是一种软件是一种逻辑实体逻辑实体,而不是具体的物理,而不是具体的物理实体。因而它具有抽象性实体。因而它具有抽象性软件的生产与硬件不同,在它的开发过程软件的生产与硬件不同,在它的开发过程中中没有明显的制造过程没有明显的制造过程在软件的运行和使用期间,在软件的运行和使用期间,没有硬件那样没有硬件那样的机械磨损,老化问题的机械磨损,老化问题0.软件概论软件概论140.软件概论软件概论15软件的开发和运行常受到计算机系统的限制,软件的开发和运行常受到计
11、算机系统的限制,对计算机系统有着不同程度的依赖性对计算机系统有着不同程度的依赖性软件的开发至今软件的开发至今尚未完全摆脱手工艺的开发尚未完全摆脱手工艺的开发方式方式软件本身是复杂的软件本身是复杂的实际问题的复杂性实际问题的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性 软件成本相当昂贵软件成本相当昂贵相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素0.软件概论软件概论160.软件概论软件概论17软软件的分类件的分类按软件的功能进行划分:按软件的功能进行划分:系统软件系统软件 使计算机系统各个部件、相关软件和数据协调、使计算机系统各个部件、相关软件和数据协调、高效地工作的软件高效地工
12、作的软件0.软件概论软件概论操作系统操作系统数据库管理系统数据库管理系统设备驱动程序设备驱动程序通信处理程序等通信处理程序等18支撑软件支撑软件 协助用户开发软件的工具软件协助用户开发软件的工具软件0.软件概论软件概论文本编辑程序文本编辑程序文件格式化程序文件格式化程序磁盘向磁带进行数据传输的程序磁盘向磁带进行数据传输的程序程序库系统程序库系统支持需求分析、设计、实现、测试和支支持需求分析、设计、实现、测试和支持管理的软件持管理的软件19应用软件应用软件0.软件概论软件概论商业数据处理软件商业数据处理软件工程与科学计算软件工程与科学计算软件计算机辅助设计制造软件计算机辅助设计制造软件系统仿真软
13、件系统仿真软件智能产品嵌入软件智能产品嵌入软件医疗、制药软件医疗、制药软件事务管理、办公自动化软件事务管理、办公自动化软件计算机辅助教学软件计算机辅助教学软件20按软件规模进行划分:按软件规模进行划分:类别类别 参加人员数参加人员数 研制期限研制期限 源程序行数源程序行数 微型微型 1 14周周 0.5k 0.软件概论软件概论 小型小型 1 16月月 1k2k 数值计算或数据处理.通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。中型中型 25 12年年 5k50k 应用程序和系统程序。软件人员之间、与用户之间的联系、协调的配合关系。因
14、而计划、资料书写以及技术审查需要比较严格地进行。系统的软件工程方法是完全必要的。21 大型大型 520 23年年 50k100k 编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。0.软件概论软件概论 甚大型甚大型 1001000 45年年 1M(=1024k)若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型
15、极大型 20005000 510年年 1M10M 军事指挥、弹道导弹防御系统。只是对软件工程技术依赖的程度不同而已。221.软件危机软件危机(SoftwareCrisis)在在6060年代中期以前年代中期以前:个体化软件开发方法.用户 程序员(编写者=使用者),无文档资料在在6060年代中期年代中期-70-70年代中期年代中期:软件作坊,产品软件.个体化软件开发方法.软件危机:软件危机:在计算机软件开发、维护过程中所遇到的一系列严重问题。231.软件危机软件危机例例:美国美国IBM公司在公司在1963年至年至1966年开发的年开发的IBM360机的操作系统。这一项目花了机的操作系统。这一项目花
16、了5000人一人一年的工作量,最多时有年的工作量,最多时有1000人投入开发工作,人投入开发工作,写出了近写出了近100万行源程序。万行源程序。.据统计,这个据统计,这个操作系统每次发行的新版本都是从前一版本中操作系统每次发行的新版本都是从前一版本中找出找出1000个程序错误而修正的结果。个程序错误而修正的结果。.在程序运行时发现的错误,在程序运行时发现的错误,必须设法改正 用户有新的需求,用户有新的需求,必须相应地修改程序 硬件或硬件或OSOS的更新,的更新,通常需要相应地修改程序241.软件危机软件危机 这个项目的负责人这个项目的负责人F.D.BrooksF.D.Brooks事后总结了他事
17、后总结了他在组织开发过程中的沉痛教训时说:在组织开发过程中的沉痛教训时说:“.“.正像正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,程序设计工作正像这样一个泥潭,.一批批程一批批程序员被迫在泥潭中拼命挣扎,序员被迫在泥潭中拼命挣扎,.谁也没有料到谁也没有料到问题竟会陷入这样的困境问题竟会陷入这样的困境.”.”。IBM360IBM360操作系操作系统的历史教训成为软件开发项目的典型事例为人们统的历史教训成为软件开发项目的典型事例为人们所记取。所
18、记取。SoftwareCrisis!251.软件危机软件危机 项目没有被很好地理解;计划不周,最终导致项目没有被很好地理解;计划不周,最终导致进度拖延、成本超支。进度拖延、成本超支。软件危机的表现:软件危机的表现:计划很难制定致使经费预算常常突破:由于缺乏软件开发的经验,主观盲目地制定计划,执行起来和实际情况有很大差距;对于工作量估计不准确,进度计划无法遵循,开发工作完成的期限一拖再拖。已经拖延了的项目,为了加快进度而增加人力,反而更加延误了时间。项目没有被很好地理解:“闭门造车闭门造车闭门造车闭门造车”。需求在开发的初期阶段提得不够明确,或是未能得到确切的表达。软件人员和用户又未能及时交换意
19、见,使得一些问题不能及时解决,造成开发后期矛盾的集中暴露。然而这时问题既难于分析,也难于挽回。261.软件危机软件危机 没有充分的文档资料没有充分的文档资料(documentation)“软件软件”程序,人与人的程序,人与人的交流交流比写程序困比写程序困难得多。难得多。软件可靠性软件可靠性(reliability)缺少度量的标准,质量无缺少度量的标准,质量无法保证。法保证。如何保证软件产品的质量,是非常复杂困难的如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件,如:航天问题。特别对于规模庞大的软件,如:航天.271.软件危机软件危机 软件难以维护软件难以维护(maintai
20、nability)不易升级不易升级(evolvability)开发过程没有统一的、公认的方法论和规范指导,加之不重视文字资料工作,资料很不完整;忽视每个人与其他人的接口部分,发现了问题修修补补,这样的软件很难维护。(5)未能充分做好检测工作未能充分做好检测工作(test)在运行中暴露出大量的问题,轻者影响系统的正常工作,重者发生事故,甚至造成生命财产的重大损失。28软件危机产生的原因:软件危机产生的原因:(1)软件自身的特点软件自身的特点(2)在开发和维护过程中,采用了错误的方法在开发和维护过程中,采用了错误的方法和技术和技术v早期的个体化开发特点早期的个体化开发特点v急于求成,仓促上阵急于求
21、成,仓促上阵我们认为的问题我们认为的问题=用户要解决的问题?用户要解决的问题?v认为软件认为软件=编程、运行;轻视软件维护编程、运行;轻视软件维护编程工作量编程工作量10-20%软件维护工作量软件维护工作量55-70%v没有软件生命周期概念没有软件生命周期概念1.软件危机软件危机29高中低早中后变化出现的时期代价v软件开发过程中,引入同一变动软件开发过程中,引入同一变动付出的代价随时间变化趋势付出的代价随时间变化趋势1.软件危机软件危机30改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估计费用改正一个问题估计的工作量20200200010005.02.5
22、0.050.5(美元)(人天)31对软件的常见误解对软件的常见误解用户的误解开发人员的误解管理者的误解1.软件危机软件危机32误解误解先对软件需求做一般的说明,先对软件需求做一般的说明,以后再逐步明确就可以了以后再逐步明确就可以了.需求本身就是不断变化的,软需求本身就是不断变化的,软件容易改变可以很快调整适应件容易改变可以很快调整适应这种变化这种变化.现实现实l软件需求不明确是造成软件软件需求不明确是造成软件开发费用增加和延时交货的开发费用增加和延时交货的主要原因主要原因.l软件开发费用随着开发阶段软件开发费用随着开发阶段的后移而大大增加的后移而大大增加.1x1.5-6x60-100 x软件开
23、发软件开发费用费用设计阶段设计阶段开发阶段开发阶段维护阶段维护阶段用户的误解1.软件危机软件危机33开发人员的误解误解误解l一旦程序开发完毕工作正常,一旦程序开发完毕工作正常,我的任务就完成了我的任务就完成了l在程序工作之前,无法顾及软在程序工作之前,无法顾及软件的质量问题件的质量问题.l对于一个成功的项目来说,唯对于一个成功的项目来说,唯一能够提供的就是可以工作的一能够提供的就是可以工作的程序程序.现实现实一个软件的一个软件的50%-70%的工作的工作量耗在软件交付使用以后量耗在软件交付使用以后.对于某些错误软件审查比软件对于某些错误软件审查比软件测试更加有效测试更加有效.一个完整的软件要包
24、括程序、一个完整的软件要包括程序、各种文件和各种数据各种文件和各种数据.1.软件危机软件危机34管理者的误解管理者的误解误解误解书上已经有各种软件开发的书上已经有各种软件开发的标准,拿来用就是了标准,拿来用就是了.已经有足够的软件开发工具已经有足够的软件开发工具可供使用可供使用.一旦项目的程序员不够可以一旦项目的程序员不够可以随时增加随时增加.现实现实l书上是有各种软件开发的标准,书上是有各种软件开发的标准,但不是过时就是不适用但不是过时就是不适用.l软件工具不是一拿来就能用的软件工具不是一拿来就能用的.l“项目后期增加程序员会使项项目后期增加程序员会使项目的完成更加推后目的完成更加推后.-B
25、rooks1.软件危机软件危机35 按工程化的原则和方法组织软件开发是软件按工程化的原则和方法组织软件开发是软件开发的一个主要出路。开发的一个主要出路。50年代到60年代时,程序设计曾经被看做是一种任人发挥创造才能的技术领域。写出的程序通篇充满了程序技巧,这些程序很难被别人看懂。然而随着计算机的广泛使用,人们逐渐抛弃了这种观点。对于稍大的、并需要较长时间为许多人使用的程序,人们要求这些程序容易看懂、容易使用,并且容易修改和扩充。多个软件人员分工合作、共同完成;只有在项目的总体要求和技术规范的约束下充分发挥和施展。n解决问题的出路解决问题的出路1.软件危机软件危机361.软件危机软件危机 Bet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程导论ppt 76页36051 软件工程 导论 ppt 76 36051
限制150内