版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1讲软件和软件工程软件工程导论之用工程化的方法来开发软件1本讲内容软件〔概念、特点〕软件危机〔表现和根源〕软件工程〔概念、目标和原那么〕2计算机软件什么是计算机软件计算机软件的特点3可执行局部不可执行局部文档1文档2文档3什么是计算机软件?与计算机系统操作有关的程序以及任何与之相关的文档的集合程序4什么是程序(1/2)程序:由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列程序例子Main(){inti,j;
//变量定义
charStr[10];i=i+j;//语句说明
……}5什么是程序(2/2)程序设计语言具有良好、严格语法和语义目前程序设计语言主要有以下几种类型面向机器:如汇编语言、机器语言等面向过程:如Fortran,Pascal,C等等面向对象:如Java等等面向问题:如结构化查询语言SQL等等6什么是文档文档:记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料需求分析文档软件设计文挡等编写文档目的促进对软件的开发,管理和维护;便于各种人员(用户,开发人员)的交流7文档例子软件需求规格说明书8软件特点不会老化逻辑产品(智力,无形)维护困难和复杂(完善,纠错,…...)生产只需复制软件开发性质如本钱、进度等难以估计软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理9本讲内容软件〔概念、特点〕软件危机〔表现和根源〕软件工程〔概念、目标和原那么〕10软件危机什么是软件危机软件危机的表现产生软件危机的根源解决危机的技术途径解决危机的管理途径11什么是软件危机软件在开发和维护过程中遇到的一系列问题困扰学术界和工业界用户对软件开发缺乏信心软件开发的高投入和高风险12软件危机的表现(1of3)本钱高IBM360OS,5000多人年,耗时4年(1963-1966),花费2亿多美元美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年到达85%美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元计算机软件和硬件费用比13
14软件危机的表现(2of3)软件质量得不到保证软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭软件越来越多的应用于平安犹关(safetycritical)的系统,对软件质量提出更高的要求80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误美国阿托拉斯火箭的发射失败,原因是软件故障英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消日本第5代机因为软件问题在投入50亿美元后于1993年下马由于软件质量问题导致失败的软件工程非常多15软件危机的表现(3of3)进度难以控制工程延期比比皆是由于进度问题而取消的软件工程较常见只有一小局部的工程能够按期完成维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用16产生软件危机的根源逻辑产品,不同于物理产品复杂性高逻辑产品,逻辑复杂性,远高于硬件复杂性软件的复杂性随规模呈指数级上升规模大应用扩大,代码量,1000万行,仍在不断膨胀影响软件生产率和质量的因素比较复杂人员的能力和水平团队合作缺乏有效、系统原理、原那么、方法和工具的指导和辅助17对软件开发的深层次认识开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样正如建设狗窝和高楼大厦大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动18解决危机的技术途径20世纪60年代爆发,然而实际上软件危机随着计算机软件的产生而产生,只是在此之前其问题的严重性没有引起人们的关注和重视提出有效的方法和工具支持软件开发1968年提出软件工程概念和思想20世纪70年代的结构化软件开发方法20世纪80年代的面向对象的软件开发方法新的技术:软件重用、快速原型、需求工程典型技术:COM,Java,C++,J2EE,.Net,….支撑工具和环境:Jbuilder,VisualStudio,WebLogic,…19技术手段不能完全解决软件危机到了20世纪90年代,软件危机依然存在,甚至更为严重应用牵引技术的开展瀑布模型结构化软件开发方法OO软件开发方法技术推动应用的深化应用的扩大和深入应用变得越来越大和复杂,技术变得更加力不从心错误的观念“只要有好的软件开发方法和工具就能高效率地开发出高质量的软件”20解决危机的管理途径问题出在哪里?20世纪80年代末,美国DoD和工业界开始认识到管理的重要性美国DoD的一项研究说明,70%的工程由于管理不善导致难以控制进步、本钱和质量;进一步的研究发现:管理是影响软件工程成功开发的全局性因素,而技术只影响局部如果软件开发组织不能对软件工程进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品21本讲内容软件〔概念、特点〕软件危机〔表现和根源〕软件工程〔概念、目标和原那么〕22软件工程软件危机-->根源-->解决途径:软件工程产生:1968年NATO计算机科学会议软件工程是运用工程的、数学的、计算机等科学概念、方法和原理来指导软件开发和管理和维护的一门学科23
过程方法工具软件工程软件工程构成三要素过程管理局部方法技术手段工具自动或半自动地支持软件的开发和管理要素之间相互关联和支持24软件工程目标(1/2)正确性满足用户的需求(功能、性能等)可靠性具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当造成软件系统失效的能力可维护性便于对软件增加新功能、改进性能、修改错误、移植可重用性软件易于被再次使用25软件工程目标(2/2)可追踪性对软件进行正向和反向追踪的能力可移植性从一个环境搬迁到另一个环境可互操作性多个软件要素相互通讯协同完成任务能力有效性充分利用计算机的时间和空间资源26软件工程原那么(1/2)抽象关注事物根本、重要的局部,忽略不相关成分抽象可以使我们的思维聚焦于问题本质,从而简化问题,控制问题复杂度,推动复杂、庞大软件系统开发模块化模块是程序中一个逻辑上相对独立、具有良好的接口定义的编程单位:过程、函数、类、程序包等模块化是指将复杂的系统分解为由一个个相对独立的模块来加以实现,有助于抽象和信息隐藏以及表示复杂的系统信息隐藏模块中的软件设计决策信息封装起来的技术,只知道它的功能以及对外的接口,而不知它的内部细节有助于软件开发人员的注意力集中于更高的抽象层次27软件工程原那么(2/2)局部化物理模块内集中逻辑上相互关联的计算资源确保模块内各成分关系密切而模快之间的关系松散,保证模块具有良好的独立性一致性整个软件系统均使用统一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Mevalonolactone-生命科学试剂-MCE-8562
- 二零二五年度版股东借款合同争议调解与赔偿协议书
- 二零二五年度电商平台跨境电商税收筹划合作协议
- 二零二五年度特色小吃店整体转让合同
- 2025年度航空航天维修与服务版劳动合同
- 施工组织设计对土木工程项目的重要性探讨
- 施工日志填写样本施工质量检查与验收记录
- 科技前沿电子产品的设计与制造新趋势
- 营销策略与学校品牌形象塑造探讨
- 风险评估模型在小型商业企业线上贷款中的应用
- 高考百日誓师动员大会
- 贾玲何欢《真假老师》小品台词
- 2024年北京东城社区工作者招聘笔试真题
- 《敏捷项目管理》课件
- 统编版(2024新版)七年级上学期道德与法治期末综合测试卷(含答案)
- 黑龙江省哈尔滨市2024届中考数学试卷(含答案)
- 前程无忧测评题库及答案
- 高三日语一轮复习助词「と」的用法课件
- 物业管理服务房屋及公用设施维修养护方案
- 医疗器械法规培训
- 无子女离婚协议书范文百度网盘
评论
0/150
提交评论