1-软件及软件工程介绍_第1页
1-软件及软件工程介绍_第2页
1-软件及软件工程介绍_第3页
1-软件及软件工程介绍_第4页
1-软件及软件工程介绍_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章软件及软件工程介绍计算机软件(software)是计算机系统中的程序、数据及其相关文档的完整集合。是重要的科技领域是软件产业的核心软件的作用:产品产品生产载体1软件的分类1-软件及软件工程介绍全文共34页,当前为第1页。计算机软件:重要的科技领域计算机软件的发展第一阶段(1946-1956):科学计算程序,

服务性程序和程序库,无管理、无文档第二阶段(1956-1968):操作系统,

数据库管理系统,延期完成、难以维护第三阶段(1968-现在):软件工程阶段(1970-1990)面向对象软件工程阶段(1980-现在)21-软件及软件工程介绍全文共34页,当前为第2页。(汉森人工智能)3返回1-软件及软件工程介绍全文共34页,当前为第3页。第1章软件及软件工程介绍计算机软件(software)是计算机系统中的程序、数据及其相关文档的完整集合。是重要的科技领域是软件产业的核心软件的作用:产品产品生产载体41-软件及软件工程介绍全文共34页,当前为第4页。软件产业的发展阶段早期专业的服务公司(1949-1959)早期软件产品公司(1959-1969)强大的企业解决方案提供商的出现(1969-1981)如Oracle,Sybase(华尔街数据库提供商),IBM客户大众市场软件(1981-1984)如微软,Lotus互联网增值服务(1994年至今)如雅虎、谷歌、腾讯。收入模式不再是通过销售软件获得,而是通过应用来自外部软件公司的软件获得收入。51-软件及软件工程介绍全文共34页,当前为第5页。全球软件产业的发展61-软件及软件工程介绍全文共34页,当前为第6页。第1章软件及软件工程介绍计算机软件(software)是计算机系统中的程序、数据及其相关文档的完整集合。是重要的科技领域是软件产业的核心软件的作用:产品产品生产载体7软件的分类1-软件及软件工程介绍全文共34页,当前为第7页。计算机软件的分类按功能分:系统软件支撑(工具)软件应用软件按工作方式分实时处理软件分时软件交互式软件批处理软件8例如:操作系统和编译程序;数据库管理系统,网络软件,RationalRose,软件开发环境;工程/科学计算软件,嵌入式软件,Web应用软件,人工智能软件,电子表格,CAD软件航空订票、信息查询一台主机多个终端,unix操作系统训练系统、游戏软件打印机的后台处理1-软件及软件工程介绍全文共34页,当前为第8页。按规模分微型软件(5百行以内);小型(2千行);中型(5万行)大型(10万行);甚大型(1百万行);巨型(1千万行)按服务对象的范围分定制(项目)软件:

军用指挥系统/卫星控制系统产品软件:

由软件开发机构开发直接提供给市场按使用频度分一次性软件:普查类软件高频度软件:天气预报计算软件按软件失效的影响分低稳定性软件:

如游戏软件;字处理高稳定性软件:飞船控制系统9返回1-软件及软件工程介绍全文共34页,当前为第9页。软件的特性形态特性:不可见的逻辑实体智能特性:凝聚了大量的脑力劳动开发特性:尚未完全摆脱手工方式质量特性:无法得到没有缺陷的软件产品生产特性:复制简单,但开发成本高管理特性:对大规模知识型工作者的智力劳动管理环境特性:依赖于计算机系统环境维护特性:维护工作量很大,修改可能引入副作用废弃特性:源于技术退化、维护成本提高应用特性:渗入国民经济和国防的各个领域。101-软件及软件工程介绍全文共34页,当前为第10页。软件危机背景1960s,计算机硬件迅速发展,软件发展滞后表现:软件开发周期长、成本高、质量差、维护困难原因:缺乏开发经验和数据积累缺少合适的交流方法和需求描述工具开发过程不规范测试阶段检测不充分111-软件及软件工程介绍全文共34页,当前为第11页。软件危机的解决方法充分吸取与借鉴人类长期以来从事各种工程项目所各界的行之有效的原理/概念/技术和方法,吸取以前软硬件研究与开发的经验教训开发软件工程支撑环境从管理和技术两方面着手,将软件开发工作变成一种组织良好/管理严密/各类人员协同配合的项目工程结论:按工程化的原则和方法组织软件开发工作软件发展改变了人们对软件的看法,软件工作的范围从写程序扩展到整个软件生存期。12如何开发软件?怎样满足对软件日益增长的需求?如何维护数量不断膨胀的已有软件?1-软件及软件工程介绍全文共34页,当前为第12页。软件生存期又称为软件生命周期(Lifecycle)通常分为3个阶段:定义、开发和维护

软件定义

:(做什么)问题定义、可行性研究、需求分析软件开发:包括设计和实现(如何做)设计包括概要设计、详细设计实现包括编码和测试;测试包括单元测试、集成测试运行维护:(保持软件持久)发布、实施、维护、升级13定义开发运行维护1-软件及软件工程介绍全文共34页,当前为第13页。软件工程的框架可概括为:目标、过程和原则。软件工程目标:生产具有正确性、可用性以及开销合宜的产品。软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。包括开发过程、支持过程、管理过程等。软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。学习研究工程化的软件开发方法,使开发过程更加规范。培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力。141-软件及软件工程介绍全文共34页,当前为第14页。15软件工程框架可用性性性确正合算选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理基本过程支持过程组织过程目标过程原则1-软件及软件工程介绍全文共34页,当前为第15页。软件工程的目标软件工程的目标:是运用先进的软件开发技术和管理方法来提高软件的质量和生产率。质量指软件产品正确、可用。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现性能及文档为用户可用的程度。生产率指开销适宜。开销合宜是指软件开发、运行的整个周期、成本开销满足用户要求的程度。单位是代码行/人月,功能点/人月。目标:就是生产具有正确性、可用性以及开销合宜的产品。161-软件及软件工程介绍全文共34页,当前为第16页。生产率生产率和质量存在内在联系,但不存在根本对立。影响软件生产率的主要因素人员素质:开发组织的规模和专长问题因素:问题本身的复杂性,需求和设计约束改变的项数及变化的程度过程因素:使用的分析和设计技术,程序语言和CASE工具及复审技术资源因素:CASE工具,

软硬件资源的可用性171-软件及软件工程介绍全文共34页,当前为第17页。软件质量软件产品质量:指最终软件“好”的程度;产品的外部质量:客户能够看见的“好”,包括:正确性、可靠性、用户友好、性能、可维护性、可移植性、可重用性、安全性、健壮性、互操作性、可伸缩性,……产品的内部质量:模块性好,容易阅读、容易修改软件过程质量:软件生产过程“好”的程度181-软件及软件工程介绍全文共34页,当前为第18页。软件质量的评价特性正确性(Correctness)Degreewithwhichsoftwareadherestoitsspecifiedrequirements(软件功能达到设计规范和需求的程度)可靠性(Reliability)Probabilityoffailure-freesoftwareoperationforaspecifiedperiodoftimeunderpermissibleoperatingconditions(规定时间和条件下软件能正常维持工作的能力)可使用性:为使用需要的能力,又称为用户友好(User-friendliness)Softwaresystemisuserfriendlyifitsusersfinditeasytouse;Auserfriendlysoftwaremaynothaveanyuserinterface.Becausetheusermaybeanotherhardwarethatreceivestheservicesofferedbythesoftware191-软件及软件工程介绍全文共34页,当前为第19页。效率:在规定条件下软件实现功能所需资源的有效性,即性能(Performance):DegreewithwhichsoftwarefulfillsitspurposewithoutwastingcomputingresourcesWorstcase,bestcaseandaveragecasetimeandspacecomplexitiesprovideameasureofperformanceforaclassofsoftware可维护性(Maintainability):环境改变或发生故障时恢复正常所做的努力程度。Referstothemodificationsthataremadetoasoftwaresystemafteritsinitialrelease,Typesofmaintenance:Corrective:Correctsoftwareerrors.Adaptive:Satisfynewenvironments,whilekeepingthesamefunctionality.可移植性(Portability):软件到新环境下所做努力的程度Easewithwhichsoftwarecanbeusedwithdifferentenvironmentssuchasnewhardwareoroperatingsystem201-软件及软件工程介绍全文共34页,当前为第20页。可重用性(Reusability)Easewithwhichsoftwarecanbereusedindevelopingothersoftware安全性(Security)Dependsonhowvulnerablethesoftwareistotheunauthorizedusers健壮性(Robustness)Degreewithwhichsoftwarebehavesreasonably,evenincircumstancesthatwerenotanticipatedintherequirementsspecification可伸缩性(Scalability)Measureshowwellthesoftwarerespondstoincreasingloadwithfixedresourcesandhowwellittakesadvantageofadditionalresources互操作性(Interoperability)AbilityofasystemtocoexistandcooperatewithotherSystems211-软件及软件工程介绍全文共34页,当前为第21页。软件工程的过程软件工程目标的实现在理论和实践上均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。软件开发过程:开发模型和开发方法。软件支持过程:支持软件生存周期各个阶段的生产工具组成。软件开发环境是指能够连续地支持多个开发阶段的CASE工具。如Rose。软件管理过程:就是规范软件生产的过程,建立软件过程的标准化,其作用是:为评估软件组织的生产能力提供了标准;为改进软件组织的生产过程指明了方向。221-软件及软件工程介绍全文共34页,当前为第22页。主要在北美、但已受到业界的广泛关注除非洲少数国家外,几乎全球流行地区具体、详尽(CMM1.1本文有500多页)简短、概括(ISO9001和ISO9000-3共计不超过25页)标准文本特点接受SEI授权评估员对申报级的评估(任一级的申请均以低一级为基础)通过国家注册审核员的审核,获得被认可的认证机构的认证如何判定达到要求软件过程评估及过程的持续改进供方建立质量体系,向顾客做出质量保证注重于分为5级,设有18个关键过程域(KPA)23个质量体系要素要求集中体现软件业

制造业

(后扩展到其它领域)适用行业CMMISO9000常用的标准有ISO9000、CMMI,对比如下:生于同年:两者初始文本均为80年代后期推出。长于同根:两者均吸取了一些现代著名质量管理专家的理论。231-软件及软件工程介绍全文共34页,当前为第23页。软件工程的原则围绕工程设计、工程支持和工程管理,提出4条基本原则:

1.选择适宜的开发模型:与系统设计有关。系统设计中,

软件需求、硬件需求以及其他因素间是相互制约和影响的,经常需要权衡;

2.采用合适的设计方法:软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。3.提供高质量的工程支撑:软件工具与环境对软件过程的支持颇为重要,软件工程项目的质量和开销直接取决于对软件工程所提供的支撑质量和效用;

4.重视软件工程的管理:管理直接影响可用资源的有效利用,

生产满足目标的软件产品及提高软件组织的生产能力等问题。241-软件及软件工程介绍全文共34页,当前为第24页。提高软件的质量和生产率的目标形成了对软件过程、过程模型及工程方法在选取上的约束。251-软件及软件工程介绍全文共34页,当前为第25页。Boehm的7条基本原理围绕软件开发、支持和管理所提出的:使用现代程序设计技术坚持严格的产品控制重视管理:按软件生存周期分阶段制定计划并认真实施,坚持进行阶段评审,明确责任,用人少而精---------教材第5页26不断改进开发过程1-软件及软件工程介绍全文共34页,当前为第26页。软件工程研究的内容三要素:方法、工具、过程方法:如结构化方法、面向对象方法。工具:如CASE工具、北大青鸟系统、PowerDesigner、Erwin过程:为获得高质量的软件所需要完成的一系列任务的框架,完成各项任务的工作步骤。271-软件及软件工程介绍全文共34页,当前为第27页。软件工程的方法软件开发过程中的方法,方法学(Methodology)也称为范型(Paradigm):软件开发主要的两种方法结构化方法面向对象方法其他方法:面向数据的方法281-软件及软件工程介绍全文共34页,当前为第28页。结构化方法结构化方法经历阶段:顺序完成每个阶段,返工带来成本的增加。理论支持:

数据流程图,模块化设计理论,结构化程序设计技术方法支持:

自顶向下,符合一般思维习惯不足:

对用户需求变化的适应能力较差,数据和操作分离不符合自然界的规律291-软件及软件工程介绍全文共34页,当前为第29页。面向对象方法面向对象方法经历阶段:

各项开发活动之间是多次反复迭代的演化过程。理论支持:

对象+消息,类的构造优点:

适应用户需要变化的能力强;复用性好不足:

缺少明确的用户需求分析,没有形式化或半形式化的方式规定用户需求,

缺少支持从抽象到具体的思维过程。301-软件及软件工程介绍全文共34页,当前为第30页。软件工程的定义软件工程(SoftwareEngineering):目前尚无统一定义,常见的定义有:是研究软件开发和软件维护或管理的一门工程科学是研究软件生产各个方面的一门工程科学是研究怎样利用计算机科学和管理科学的知识,生产出高性价比软件产品的一门工程科学软

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论