版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程张聚礼zhjl@兰州理工大学计算机与通信学院1第1章软软件工程程学概述述1.0什么是软软件?1.1软件危机机1.2软件工程程1.3软件生命命周期1.4软件过程程1.5小结习题2软件是计算机机系统中中与硬件件相互依依存的另另一部分分,它是包括括程序、数数据及其相关关文档的完整集集合。程序是按事先设计计的功能和和性能要要求执行行的指令令序列。。数据是使程序序能正常常操纵信信息的数数据结构构。文档是与程序序开发,,维护和和使用有有关的图图文材料料。§1.0什么是软软件?3软件的表表现形式式:软件分为为有形部分和无形部分:软件的有有形部分分:是软件的的各种具具体表现现形式,包括软件文档档,程序代码码,二进制代代码,用户界面面,输出报表表等。软件的无无形部分分:是软件的的内部逻逻辑,是软件本本身所包包含的思想。4软件的分分类:按软件的的功能进进行划分分:系统软件件操作系统统数据库管管理系统统设备驱动动程序通信处理理程序等等•5支撑软件件文本编辑辑程序文件格式式化程序序磁盘向磁磁带向数数据传输输的程序序程序库系系统支持需求求分析、、设计、、实现、、测试和和支持管管理的软软件•6应用软件件商业数据据处理软软件工程与科科学计算算软件计算机辅辅助设计计/制造造软件系统仿真真软件智能产品品嵌入软软件医疗、制制药软件件事务管理理、办公公自动化化软件计算机辅辅助教学学软件•7按软件工工作方式式划分::实时处理理软件分时软件件交互式软软件批处理软软件按软件服服务对象象的范围围划分::项目软件件产品软件件即针对特特定某个个客户的的要求,,并仅为为其使用用的软件件。又称称工程软软件,特特点是有有明确的的合同,,严格的的工期,,约定的的维护期期等。如如"XXX公司XXX系统"。即针对某某一领域域客户的的共有需需求而开开发的软软件。特特点是通通用、功功能丰富富而冗余余,通过过一次性性的购买买行为获获得等。。如操作作系统软软件、数数据库软软件、CAD软件等。。8软件发展展阶段::程序设计计阶段—50至60年代程序系统统阶段—60至70年代软件工程程阶段—70年代以后后9软件开发发工具的的变迁::穿孔机打打孔编程程汇编语言言(Z80、M6800、8086/88)高级语言言(Cobol、Basic、Dbase、TurboC、FoxBase、Foxpro等)C/S、B/S体系结构构的开发发工具(VFP、VC、VB、Delphi、Powerbuilder、C++Builder、OracleDeveloper/2000、Java、MS..net等等)10§1.1软件危机机美国IBM公司在1963年至1966年开发的的IBM360机的操作作系统。。这一项项目花了了5000人一年的的工作量量,最多多时有1000人投入开开发工作作,写出出了近100万行源程程序。据据统计,,这个操操作系统统每次发行行的新版版本都是是从前一一版本中中找出1000个程序错错误而修修正的结结果。.......这个项目目的负责责人事后后总结了了他在组组织开发发过程中中的沉痛教训训时说:““.......正像一只只逃亡的的野兽落落到泥潭潭中做垂垂死的挣挣扎,越越是挣扎扎,陷得得越深,,最后无无法逃脱脱灭顶的的灾难。。.......程序设计计工作正正像这样样一个泥泥潭,.......一批批程程序员被被迫在泥泥潭中拼拼命挣扎扎,.......”SoftwareCrisis!•11软件危机机⑴项目目没有被被很好地地理解;;计划不不周,最最终导致致进度拖拖延。例:在20世纪60年代后期期,一位位热情的的年青工工程师受受命为一一个自动动化制造造应用项项目“编编写”计计算机程程序。选选择他的的理由非非常简单单,因为为在整个个技术小小组中他他是唯一一参加过过计算机机编程培培训的人人。这位位工程师师对汇编编语言的的IN和OUT指令以及及Fortran语言有所所了解,,但是却却根本不不懂软件件工程,,更不要要说项目目进度安安排和跟跟踪了。。他的老板板给了他他一大堆堆相关的的手册,,以及需需要做些些什么的的口头描述述。年轻人人被告知知该项目目必须在在两个月月之内完完成。他阅读了了这些手手册,想想好了解解决方法法,就立即编写写代码。两周后后,老板板将他叫叫到办公公室询问问项目进进展情况况。问题出在在哪里??欠缺文档档欠缺设计计,急于于编程•12软件危机机“非常好好”工程程师以年年轻人的的热情回回答道,,“这个个项目远远比我想想像的简简单。我我差不多多已经完完成了75%的任务。。老板笑了了,说道道:“真真是太棒棒了”然然后他嘱嘱咐年轻轻人继续续努力工工作,准准备好一一周后再再汇报一一次工作作进度。。一周后老老板将年年轻人叫叫到办公公室,问问他说::“现在在进度如如何?””“一切顺顺利”年年轻人回回答说,,“但是是我遇到到了一些些小麻烦烦。我会会排除这这些困难难,很快快就可以以回到正正轨上来来。”“你觉得得在最后后期限之之前能否否完成??”老板板问道。。“没有问问题”工工程师答答道。““我差不不多已经经完成了了90%””问题:年轻工程程师在整整个项目目工期内内始终停停留在90%的进度上上,(在在别人的的帮助下下)直到到交付期期限之后后一个月月才做完完。•13软件危机机⑵没有有充分的的文档资资料(documentation)人与人的的交流比写程序序困难得得多。Managers———评价,进程跟踪踪,........Programmers———与其它程程序的通通信接口口Maintainers——维护•14软件危机机⑶软件件可靠性性(reliability)缺少度量量的标准准,质量量无法保保证。如何保证证软件产产品的质质量,是是非常复复杂困难难的问题题。特别别对于规规模庞大大的软件件。⑷软件件难以维维护(maintainability)不易升级级(evolvability)15软件危机机的产生生的原因因及总结结(1)对软件开开发成本本和进度度的估计计常常很很不准确确。拖期,项目管理理经验欠欠缺。(2)用户对““已完成成的”软软件系统统不满意意的现象象经常发发生。模糊的需需求、、闭门造造车、忙忙于编程程,仓促上阵阵。(3)软件产品品的质量量往往靠靠不住。。可靠性和和质量保保证欠缺缺,缺少测试试。(4)软件常常常是不可可维护的的。设计死板板,没有整体体考虑。。•16(5)软件通常常没有适适当的文文档资料料。缺少设计计资料、、难以维维护,写文档嫌嫌麻烦。。(6)软件成本本在计算算机系统统总成本本中所占占的比例例逐年上上升。软件过于于庞大,,成本过高高。(7)软件开发发生产率率提高的的速度,,远远跟跟不上计计算机应应用迅速速普及深深入的趋趋势。跟不上计计算机和和软件技技术的发发展速度度,技术落后后。17软件开发发付出代代价分析析根据美国国一些软软件公司司的统计计资料,,在后期期引入一一个变动动比在早早期引入入相同变变动所需需付出的的代价高高2~3个数量级级。图1.1定性地描描绘了在在不同时时期引入入一个变变动需要要付出的的代价的的变化趋趋势。维护是极极端艰巨巨复杂的的工作,,需要花花费很大大代价。。18消除软件件危机的的办法1、理解软件件的概念念:软件件是程序序、数据据及相关关文档的的完整集集合。2、应该推广广使用在在实践中中总结出出来的开开发软件件的成功功的技术术和方法法——注意总结结和积累累3、应该开发发和使用用更好的的软件工工具。4、软件工程程学的一一个重要要目标就就是提高高软件的的可维护护性,减减少软件件维护的的代价。。总之,为为了解决决软件危危机,就就要引入入“软件件工程””,既要有技技术措施施(方法和工工具),又要有有必要的的组织管管理措施施。19§1.2软件工程程所谓软件件工程,,提倡的的是一种种软件开开发中的的系统思思想的具具体实现现,是一一门科学学,也被被称为是是软件产产业中的的“软””科学。。软件工程程这一概概念,主主要是针针对20世纪60年代“软软件危机机”而提提出的。。它首次次出现在在1968年NATO(北大西西洋公约约组织))会议上。。主要围围绕软件件项目,,开展有有关开发发模型、、方法以以及支持持工具的的研究。。其主要成成果有::提出了了瀑布模模型,开开发了一一些结构构化程序序设计语语言(例例如PASCAL语言,Ada语言)、、结构化化方法等等。并且且,围绕绕项目管管理提出出了费用用估算、、文档复复审等方方法和工工具。70年代初,,自“软软件工厂厂”这一一概念提提出以来来,主要要围绕软软件过程程以及软软件复用用,开展展了有关关软件生生产技术术和软件件生产管管理的研研究与实实践。其主要成成果有::提出了了应用广广泛的面面向对象象语言以以及相关关的面向向对象方方法,大大力开展展了计算机辅辅助软件件工程(CASE)的研究与与实践。。20软件工程程的定义义:IEEE:软件工程程是开发发、运行行、维护护和修复复软件的的系统方方法FritzBauer:建立并使使用完善善的工程程化原则则,以较较经济的的手段获获得能在在实际机机器上有有效运行行的可靠靠软件的的一系列列方法21软件工程程的本质质特性::1.软件工程程关注于于大型程程序的构构造——分析与设设计2.软件工程程的中心心课题是是控制复复杂性——分解3.软件经常常变化——要有准确确的需求求4.开发软件件的效率率非常重重要——经验技巧巧5.和谐地合合作是开开发软件件的关键键——团队精神神6.软件必须须有效地地支持它它的用户户——用户在用用7.在软件工工程领域域中是由由具有一一种文化化背景的的人替具具有另一一种文化化背景的的人——具有知识识面非常常广的领领域业务务背景,缺乏应用用领域的的相关知知识,是是软件开开发项目目出现问问题的常常见原因因。22软件工程程的基本本原理::主要有七七条基本本原理::⑴用分阶段段的生命命周期计计划严格格管理项目概要要计划里程碑计计划项目控制制计划产品控制制计划验证计划划运行维护护计划⑵坚持进行行阶段评评审⑶实行严格格的产品品控制——基准配置置管理(Baselineconfigurationmanagement)•23⑹开发小组组的成员员应该少少而精1+1<<2⑷采用现代代程序设设计技术术⑸结果应能能清楚地地审查—setstandards⑺承认不断断改进软软件工程程实践的的必要性性——即不仅要积积极主动动地采纳纳新的软软件技术术,而且且要注意意不断总总结经验验。24软件工程程方法学学软件工程程三要素素:方法、工具和过程方法为软件开开发提供供了““如何做做”的的技术工具为软件工工程方法法提供了了自动的的或半自自动的软软件支撑撑环境软件工程程过程定义了:方法使用用的顺序序要求交付付的文档档资料为保证质质量和适适应变化化所需要要的管理理软件开发发各个阶阶段完成成的里程程碑传统方法法学面向对象象方法学学251.传统方法法学称为生命周期期方法学学或结构化范范型。它采用结结构化技技术(结构化分分析、结结构化设设计和结结构化实实现)来完成软软件开发发的各项项任务,,并使用用适当的的软件工工具或软软件工程程环境来来支持结结构化技技术的运运用。把软件生生命周期期的全过过程依次次划分为为若干个个阶段,,前一个个阶段是是后一个个阶段的的基础。。262.面向对象象方法学学提出本方方法的原原因:当软件规规模庞大大,或者者对软件件的需求求是模糊糊的或会会随时间间而变化化的时候候,使用用传统方方法学开开发软件件往往不不成功,,此外,,使用传传统方法法学开发发出的软软件,维维护起来来仍然很很困难。。面向对象象方法学学4个要点::对象+类+继承+用消息通通信优点:简化了软软件的开开发和维维护,提提高了软软件的可可重用性性。27§1.3软件生命命周期举例:瀑布模型型(WaterfallModel)维护开发定义问题定义可行性研究需求分析详细设计编码&单元测试综合&系统测试运行&维护总体设计软件生命命周期由由上述三三个时期期组成系统需求求必须事先静态态地精确确定义28问题定义义和可行行性研究究:确定要开开发软件件系统的的总目标标给出功能、性能、可靠性以及接口等方面的的要求完成该软软件任务务的可行行性研究究估计可利利用的资源(计算机硬硬件,软软件,人人力等)、成本、效益、开发进度度制定出完完成开发发任务的的实施计划划,连同可行性研研究报告告,提交管管理部门门审查29需求分析析对待开发发软件提提出的需需求进行行分析并给出详细的定定义编写软件需求求说明书书或系统功能能说明书书及初步的系系统用户户手册提交管理理机构评评审30设计总体设计计—“如何解决决问题””可以列出出多种解解决方案案进行比比较把各项需需求转换换成软件件的体系系结构。。结构中中每一组组成部分分都是意意义明确确的模块块,每个个模块都都和某些些需求相相对应详细设计计—对每个模模块要完完成的工工作进行行具体的的描述,,为源程程序编写写打下基基础编写设计计说明书书,提交交评审。。31编码把软件设设计转换换成计算算机可以以接受的的程序代代码,即即写成以以某一种种特定程程序设计计语言表表示的““源程序清清单”写出的程程序应当当是结构良好好、清晰晰易读的,且与与设计相相一致的的32测试单元测试试,查找各各模块在在功能和和结构上上存在的的问题并并加以纠纠正组装测试试,将已测测试过的的模块按按一定顺顺序组装装起来按规定的的各项需需求,逐逐项进行行有效性测测试,决定已已开发的的软件是是否合格格,能否否交付用用户使用用33运行和维维护改正性维维护运行中发发现了软软件中的的错误需需要修正正适应性维维护为了适应应变化了了的软件件工作环环境,需需做适当当变更完善性维维护为了增强强软件的的功能需需做变更更34技术审查查和管理理审查任务:发现技术术方面的的错误监督项目目进度、、经费开开支、投投资回收收的前景景等。35§1.4软件过程程定义:软件过程程是为了获获得高质质量软件件所需要要完成的的一系列列任务的的框架,,它规定定了完成成各项任任务的工工作步骤骤。通常用软软件过程程模型描描述软件件过程。。广泛使用用的4种典型的软件过过程模型型如下所所示:瀑布模型型——文档驱动动掌握快速原型型模型——原型驱动动掌握增量模型型——构件驱动动了解螺旋模型型——风险+原型驱动动了解361瀑布模型型在20世纪80年代之前前,是惟一被被广泛采采用的生生命周期期模型,现在仍然然是软件件工程中中应用最最广泛的的过程模模型。主要用于于描述传统统软件工工程方法法学的软件过过程。图1.3实际际的瀑布布模型特点:脱离用用户•37瀑布模型型的特点点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 带活动头的扳手产品供应链分析
- 供应链金融物流行业经营分析报告
- 临摹用字帖产业链招商引资的调研报告
- 电磁锁项目营销计划书
- 家用筛产品供应链分析
- 装饰别针首饰项目营销计划书
- 小画家的色彩世界-描绘梦想展现创意的旅程
- 专业运动员的管理行业经营分析报告
- 便携式多媒体播放器产业链招商引资的调研报告
- 养老院餐饮供应服务行业相关项目经营管理报告
- ppt精选模板:火箭军部队国防模板优质ppt通用模板课件(26页PPT)
- 会计基础案例
- 小学数学概念教学策略ppt课件
- 对数函数的图像和性质》说课稿
- 出租房退房验收表
- 常用外窗及幕墙热工性能参数
- 物业安全检查记录表(共7页)
- 个人住房情况承诺书
- 国学经典文化PPT课件
- GB_T 14976-2012流体输送用不锈钢无缝钢管
- 导数概念ppt课件
评论
0/150
提交评论