您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第01课:嵌入式系统软件工程概述 绪论0829
第1讲:软件工程概论第一次课嵌入式系统软件工程概述广东科学技术职业学院宋维第1讲:软件工程概论第1讲绪论第1讲:软件工程概论●软件●软件的发展及软件工程●软件生存周期●软件开发模型●领域分析本讲内容第1讲:软件工程概论一软件第1讲:软件工程概论问题:1、什么叫硬件?2、什么叫软件?3、你从那些角度来理解软件概念?第1讲:软件工程概论1.Windows2.word3.成绩计算软件4.IE浏览器演示几个软件以引出软件第1讲:软件工程概论1.1软件的概念1、软件的常识定义:软件是相对硬件而言的,是计算机系统中的程序、数据及其相关文档的总称。第1讲:软件工程概论程序是能完成确定任务,用计算机语言描述的,并能够在计算机系统上执行的语句序列。第1讲:软件工程概论求1+2+3+…+100累加和main(){inti,sum=0;for(i=1;i=100;i++)sum=sum+1;printf(“sum=%d\n”,sum);}第1讲:软件工程概论数据用来描述软件所要处理的业务和事物的静态特征,是程序处理的对象。第1讲:软件工程概论文档是指与程序开发、维护和使用有关的图文资料。第1讲:软件工程概论需要从以下两个方面理解软件:1)在计算机系统中,我们把除了所有可见性设备和资源之外的计算机系统的组成部分统称为软件。2)软件的概念比程序广泛,程序是软件的构成部分。第1讲:软件工程概论1.1软件的概念2、软件的本质:软件是认识的中介、是人意识的外化、是人的意识基于机器的特殊反映。第1讲:软件工程概论1.2软件的特征1.智能性软件是人的智力劳动的产物,具有明显的智能性特征。2.无形性软件不象可见设备那样具有明显的物理形体和形态,人们无法直接观察到它的形态。第1讲:软件工程概论3.抽象性软件是一种逻辑实体,而不是具体的物理实体,具有抽象性。4.依附性软件不象其它产品和设备能够独立存在和工作,软件的开发和运行必须依赖于计算机系统硬件。第1讲:软件工程概论5.复杂性软件的复杂性是由软件可以解决任何行业和领域中的问题的特征所决定的。6.泛域性软件可以服务与人类智能所能到达的所有领域。第1讲:软件工程概论7.非损性软件在使用过程中不象其他产品存在损耗和老化现象,只要硬件环境不发生故障和改变,软件就可以永远使用。8.复制性由于软件在光、电、磁的介质上贮存,所以软件具有可复制性。第1讲:软件工程概论9.演化性软件投入运行之后,软件的功能、性能、人机界面、硬件环境处于不断变化之中,我们把软件在生存周期中不断变化的特性称之为软件的动态演化性。第1讲:软件工程概论1.按软件功能划分系统软件是指能与计算机硬件紧密结合,使计算机系统的各个部件、相关的软件和数据协调有效工作的软件。操作系统;数据库管理系统;设备驱动程序等.1.3软件的分类第1讲:软件工程概论1.按软件功能划分应用软件则是指为特定领域开发和服务的一类软件,我们在日常工作和生活中,大量应用的是这类软件。企业管理软件;财务管理软件;股票管理软件等.1.3软件的分类第1讲:软件工程概论问题二:1、说出两个系统软件的例子。2、说出两个应用软件的例子。第1讲:软件工程概论2.按软件规模划分按照软件开发所需要的人力、时间和源程序行数可以把软件划分成为微型、小型、中型、大型和超大型五类。表1-1软件规模划分类型开发人员开发期限源程序行数微型11-4周0.5K小型11-6月1K-2K中型2-51-2年5K-50K大型5-202-3年50K-100K超大型20以上3年以上1M以上第1讲:软件工程概论二软件的发展与软件工程第1讲:软件工程概论2.1软件发展的三个阶段1946年世界上第一台计算机出现之后,就有了程序的概念,程序是软件的前身。几十年来,软件的发展经历了程序设计,程序系统和软件工程三个阶段。第1讲:软件工程概论特点阶段程序设计程序系统软件工程年代50-60年代60-70年代70年代以后软件内涵程序程序及说明书程序、数据、文档程序设计语言机器及汇编语言高级语言支撑及开发环境软件工作范围程序编写包括设计和测试软件生存周期开发组织个人小组小组,软件机构软件规模小型中小型大中小型质量因素个人程序技术小组技术水平管理水平开发技术和手段子程序,程序库结构化程序设计软件工程方法和环境维护责任者程序设计者开发小组维护人员硬件特征性能低,可靠性差,价格昂贵大中小型机高速、大容量、微型和网络化软件特征不受重视软件危机开发方法,并未完全摆脱危机和手工方式表1-2软件发展的三个时期和特点第1讲:软件工程概论1.人们对软件的看法逐步全面化◆从专家到一般开发人员◆从艺术到工程◆从程序设计技巧到需求分析、设计、编程、调试、维护等全面软件开发第1讲:软件工程概论2.软件的内涵发生了重大变化软件的概念和内涵从简单的程序发展成为程序、数据以及软件开发所需的一切文档。第1讲:软件工程概论3.软件的需求是软件发展的动力◆软件可以应用到社会生活的各个领域;◆软件产业成为国民经济支柱型产业;◆程序软件需求刺激着软件开发的发展第1讲:软件工程概论4.从程序编写发展到整个软件生存期软件的范围从程序发展到整个软件生存周期。第1讲:软件工程概论2.2软件危机60年代初,由于认识、技术和需求的变化,出现了严重软件危机,具体表现在:◆软件开发不能按照计划进行控制和完成,普遍存在拖延工期的现象;◆开发出来的软件满足不了用户的需求;◆软件投资严重超出预算;◆软件可靠性和可用性差。第1讲:软件工程概论软件质量难于保证;失败的根本原因在于:开发人员写出的东西达不到用户要求(管理问题人的问题、技术问题)———因软件危机提出了软件工程第1讲:软件工程概论2.3软件工程一、软件工程概念的提出软件工程(softwareengineering)的概念是于1968年在北大西洋公约组织举行的一次学术会议上首次提出来的。经过几十年的发展,软件工程已经成为一门独立的学科。第1讲:软件工程概论2.3软件工程二、软件工程的概念软件工程是运用计算机科学、数学、管理学等原理和方法,遵循系统化的思想,运用工程化方法,探索和指导软件开发和维护的一门综合性学科。第1讲:软件工程概论软件工程是一门年轻的学科,到目前为止,对软件工程学科的构成和基本内容还没有形成统一认识。主要包括以下分支学科:1.软件工程原理2.软件工程方法3.软件工程技术4.软件工程管理三、软件工程学科的基本内容5.软件工程质量6.软件工程环境7.软件工程应用第1讲:软件工程概论SWEBOK把软件工程学科的主体知识分为10个知识领域。这10个领域包括:软件需求,软件设计,软件构造,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过程,软件工程工具和方法,软件质量。第1讲:软件工程概论1.软件工程原理软件工程原理是软件工程学科所遵循的基本规律和原则,包括:◆软件工程学基础;◆软件工程学科中的基本规律;◆软件工程学科应遵循的基本原则。第1讲:软件工程概论2.软件工程方法软件工程方法是软件工程学科的核心。包括:▲软件开发方法▲软件管理方法▲软件度量方法▲软件维护方法第1讲:软件工程概论3.软件工程技术软件工程技术主要包括:▲软件开发技术▲软件度量技术▲软件演化技术▲软件应用技术▲软件管理技术▲其它相关技术▲软件环境技术第1讲:软件工程概论4.软件工程管理主要包括:▲软件项目管理▲人员管理▲软件过程管理▲经费管理▲软件维护管理▲进度管理▲软件质量管理▲文档管理第1讲:软件工程概论5.软件工程度量主要包括:▲软件费用度量▲工作量度量▲生产效率度量▲质量度量▲性能度量▲结构和复杂性度量▲软件算法度量▲软件预决算第1讲:软件工程概论6.软件工程环境软件环境由计算机硬件、通信网络、支撑软件等要素构成。软件必须考虑软件环境以及软件环境对软件开发的制约和影响。计算机硬件通信网络支撑软件第1讲:软件工程概论7.软件工程应用软件工程应用主要研究如何有效地把软件工程原理、方法、技术应用到软件开发和维护过程中去,以有效地提高软件开发效率和质量。农业工业交通航天科研第1讲:软件工程概论三软件生存周期与软件开发模型第1讲:软件工程概论3.1软件生存周期软件生存周期所历经的阶段到目前还没有统一的划分标准,从三阶段到十二阶段不等。五阶段:●软件策划●软件分析●软件设计●系统实现●软件演化第1讲:软件工程概论–三阶段:软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。–软件生存周期模型,又叫软件开发模型,是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。第1讲:软件工程概论软件开发模型(SoftwareDevelopmentModel)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。第1讲:软件工程概论典型的开发模型有:①瀑布模型(waterfallmodel);②渐增模型/演化/迭代(incrementalmodel);③原型模型(prototypemodel);④螺旋模型(spiralmodel);⑤喷泉模型(fountainmodel);⑥智能模型(intelligentmodel);7.混合模型(hybridmodel)第1讲:软件工程概论1.边做边改模型(Build-and-FixModel)遗憾的是,许多产品都是使用边做边改模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改.在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:(1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改(2)忽略需求环节,给软件开发带来很大的风险;(3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。第1讲:软件工程概论3.2软件生存期模型3.2.1瀑布模型瀑布模型反映了软件生存期各阶段明确任务、自上而下、顺序固定、逐级过渡的结构模式,各阶段的联系就象瀑布流水一样自上而下、不可逆返。第1讲:软件工程概论软件策划需求分析软件设计实现测试维护瀑布模型第1讲:软件工程概论软件工程过程软件工程过程定义:方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。瀑布模型的产出第1讲:软件工程概论瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果第1讲:软件工程概论各阶段标准文档要求可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。第1讲:软件工程概论各阶段标准文档要求软件需求说明书(软件规格说明书):对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基
本文标题:第01课:嵌入式系统软件工程概述 绪论0829
链接地址:https://www.777doc.com/doc-4012076 .html