欢迎来到天天文库
浏览记录
ID:26960790
大小:5.02 MB
页数:981页
时间:2018-11-30
《《软件工程概述》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章软件工程概述§1.1软件工程的背景和历史1968年由NATO(北大西洋公约组织)在德国Garmish召开的学术会议上,FeitzBauer首先提出了“软件工程”概念。Evolutionofsoftware早期第二阶段第三阶段第四阶段面向批处理多用户分布式系统强大的桌面系统有限的分布实时嵌入“智能”面向对象技术自定义软件数据库低成本硬件专家系统软件产品消费者的影响人工神经网络并行计算网络计算机195019601970198019902000软件技术面临的问题复杂性生产率例:
2、Windows95有1000万行代码Windows2000有5000万行代码Exchange2000和Windows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人软件危机的主要特征软件开发周期大大超过规定日期;软件开发成本严重超标;软件质量难于保证。改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估计费用改正一个问题估计的工作量20200200010005.02.50.050
3、.5(美元)(人天)yet,SuccessHasntComeEasily31%53%16%SuccessfullyChallengedCanceled成功的标准:用户在用用户可很容易做完要做的事失败的根本原因:开发人员写出的东西达不到用户要求(人的问题.技术问题)处在十字路口的中国软件产业主权大国必须建立基于自主技术的、完整的软件产业体系。软件本国提供率:中国1/3左右,美国97%“印度模式”还是“中国模式”软件人才结构不合理,缺乏中高级软件人才软件人员缺乏软件工程化的概念。软件工程的定义FritzBauer
4、在NATO会议上给出的定义:“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。”软件工程的定义IEEE【IEE83】给出的软件工程定义:“软件工程是开发、运行、维护和修复软件的系统方法。”软件工程的定义IEEE【IEE93】给出了一个更加综合的定义:“将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”软件工程的定义软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低
5、成本为目的。软件工程是一门交叉学科软件工程的主要研究内容软件开发技术:软件开发方法学软件开发过程软件工具和软件工程环境软件工程管理:软件管理学软件经济学软件心理学软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。软件工程—一种层次化技术工具方法过程质量焦点Softwareengineeringlayers软件工程三个要素:方法、工具、过程软件工程框架可用性性性确正合算选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理基本过程原则目标过程支
6、持过程组织过程软件工程与一般工程的差异软件是逻辑产品而不是实物产品软件的功能依赖于硬件和软件的运行环境以及人们对它的操作软件设计的复杂性软件特征:功能的多样性实现的多样性能见度低软件结构合理性差智力密集及知识产权保护软件工程知识结构2001年5月ISO/IECJTC1(ISO和IEC的第一联合技术委员会)发布了《SWEBOK指南V0.95(试用版)》(GuidetotheSoftwareEngineeringBodyofKnowledge,简称SWEBOK)SWEBOK把软件工程学科的主体知识分为10个知识领域
7、。软件工程知识结构软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量“软件工程”课程与其它软件专业课的区别(1)立足于系统的整体。(2)讲授系统分析、系统设计、测试及维护的理论和方法。(3)构筑一个软件系统,实践软件开发全过程。“软件工程”课程教学与实践的目标转变对软件的认识:上升程序系统转变思维定式:上升程序员系统工程师(系统分析员)工程化训练系统分析员的地位用户分析员程序员“一个好的工业,应有一套良好的标准来配套”软件的工业化生产过程应具备的特点:明确的
8、工作步骤详细具体的规范化文档明确的质量评价标准软件产品的标准化软件开发过程的标准化软件工程技术的两个明显特点:强调规范化强调文档化§1.2软件生存周期1.2.1软件生存周期(SoftwareLifeCycle)软件产品或软件系统从设计、投入使用到被淘汰的全过程。1.2.1软件生存期的阶段划分(1)可行性研究与计划(2)需求分析(3)总体设计上游(4)详细设计(5)实现(6)集成测试(7
此文档下载收益归作者所有