第一章软件工程概述 1_第1页
第一章软件工程概述 1_第2页
第一章软件工程概述 1_第3页
第一章软件工程概述 1_第4页
第一章软件工程概述 1_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

软件工程概论,个人介绍,姓名:方海诺电话Q:454010252E-mail:fhn_noah获得证书:系统集成项目管理工程师(中级)信息系统项目管理师(高级),个人介绍,受教育情况2002年毕业于东北大学计算机系黑龙江大学MBA专业企业信息化方向工作经历IBM中国软件开发实验室IBMLotusWorkplaceClientTechnology项目Build组,担任Integrator,负责版本控制,代码集成,BVT,版本控制工具应用及培训深圳南凌科技发展有限公司软件事业部,担任QA,配置管理员,测试经理,参与完成黑龙江省运管规费征收系统,黑龙江省道路运输管理局综合办公管理系统V1.0版,黑龙江省道路运输管理局票据管理系统,吉林省道路旅客运输联网售票系统黑龙江软件园职业培训学校任教学主任,NITE-QAI软件测试工程师项目讲师,黑龙江大学大学生实训基地执行总监等职务哈尔滨文诺科技开发有限公司任总经理职务哈尔滨华夏计算机职业技术学院信息中心技术总监哈尔滨华德学院电信学院计算机应用系软件工程专业教师,课程介绍,课时:课堂教学部分:40培养目标通过本课程的学习,学生能够更加全面地理解软件开发、软件过程和软件项目管理的知识,并能适当地运用软件工程原理应用于实际行软件开发活动。,软件工程,第1章软件工程概述第2章软件立项与合同第3章需求分析第4章系统设计第5章软件实现第6章软件测试第7章软件发布与实施第8章软件维护第9章软件配置管理第10章软件项目管理,推荐图书,人月神话,(美)布鲁克斯著,汪颖译,清华大学出版社人件,TomDeMarcoTimothyLister,清华大学出版社质量免费-确定质量的艺术,(美)克劳士比著,杨钢,林海译,中国人民大学出版社软件工程:实践者的研究方法(原书第7版),(美)普雷斯曼著,郑人杰等译,机械工业出版社需求工程SwebokPMbok,2020/5/302007.11.15,2020/5/302007.11.15,WhySE?,需求分析和定义,对用户提出的要求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审,软件设计,概要设计把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应详细设计对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正组装测试,将已测试过的模块按一定顺序组装起来按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护运行中发现了软件中的错误需要修正适应性维护为了适应变化了的软件工作环境,需做适当变更完善性维护为了增强软件的功能需做变更,第一章软件工程概述(一),章节安排,软件的发展软件软件:地平线上的危机软件神话,1.1软件的发展,软件在社会上扮演了双重角色将计算机硬件的计算功能发挥出来它本身是一种产品同时,它也是一种传递产品的工具软件传递了我们这个时代最重要的产品信息,1.1软件的发展,70年代和80年代“新的工业革命”“工业社会将转换为信息社会”90年代知识的民主化将改变旧的权力结构,1.2软件,能够完成预定功能和性能的、可执行的指令(计算机程序);使得程序能够适当地操作信息的数据结构;描述程序的操作和使用的文档。软件=程序+数据(库)+文档+服务,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料,什么是软件?,软件组成,客户需求-CustomerRequirements市场需求文档-MRD(MarketingRequirementDocument)软件规格说明书-Specifications技术设计文档TechnicalDesignDocs测试文档TestDocuments在线帮助-Onlinehelp产品发布注释-ReleaseNotes/ReadMe产品软件包-Releasepackages,软件产品的其他内容,帮助文件Helpfiles示例Samplesandexamplestoillustratepoints产品支持文档Productsupportinformation错误信息Errormessages安装手册Setupandinstallationinstructions用户手册Usermanual(s)产品标签Labelandstickers产品广告或宣传材料Adsandmarketingmaterial,软件特征,软件则是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态的虚拟化最根本的:软件是一种逻辑元素而不是物理元素软件是开发出来的,而不是传统的方法制造出来的软件不会“磨损”,而是逐步完善大多数软件是自定义的,而不是通过已有的构件组装而来的,软件特征,故障率,理想曲线,实际曲线,时间,由于副作用造成故障率的提高,修改,软件特征,软件特征,大多数软件是自定义的,而不是通过已有的构件组装而来的科学计算函数库(60年代)重用数据结构重用组建,软件的分类,按软件规模进行划分:类别参加人员数研制期限源程序行数微型114周0.5k小型116月1k2k中型2512年5k50k大型52023年50k100k甚大型100100045年1M(=1000k)极大型20005000510年1M10M,软件的分类,按软件工作方式划分:实时处理软件分时软件交互式软件批处理软件按软件服务对象的范围划分:项目软件产品软件,软件的分类,按使用的频度进行划分:一次使用频繁使用按软件失效的影响进行划分:高可靠性软件一般可靠性软件,1.3软件:地平线上的危机,“软件危机”是在1958年正式提出软件项目不成功的例子比比皆是:1999年10月,耗资1.25亿美元的NASA的火星气象卫星失踪,据信这是由于一个简单的数据转换错误所导致的。人们发现卫星软件中,有些数据使用英制,它们应该被转换成公制。这个卫星应当充当另一项任务中的火星极地着陆项目的通信转发器,那个任务也失败了,原因不明。,千年虫(Y2K),在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日”,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息。就是为了这样一个简单的设计缺陷,全世界付出几十亿美元。,软件:地平线上的危机,美国IBM公司在1963至1966年开发的IBM360机的操作系统。这一项任务花费了5000人一年的工作量。最多的时候有1000人同时进行开发工作。写出了近100万行源程序。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果IBM360机操作系统的教训成为软件开发项目的典型示例为大家所记取。当然这个项目的负责人F.R.Brook根据经验教训,写出了著名的IT工程方面的书籍人月神话。,软件:地平线上的危机,1999年8月,在一个大型的商业高速数据网络中,软件的缺陷影响了70000个商业用户,时间长达8天。在受到影响的客户中,有美国最大的远期电子交易系统,该系统中断服务长达一周1998年4月,美国的一个重要的数据通信网络出现了长达24小时的故障,使美国大部分的信用卡管理系统交易受到影响。受到影响的还有一些大银行、零售商和政府的数据系统,最后查出也是软件故障所致,软件:地平线上的危机,1.什么是软件危机?指在计算机软件开发和维护过程中所遇到的一系列问题。(1)软件开发无计划性:不能正确估计软件开发成本和进度,无法估计工作量,难于控制开发进度。(2)软件需求不充分:需求是设计的基础,需求不充分直接导致软件产品不可靠,满足不了用户的需求,甚至无法使用。(3)软件开发过程无规范性:各行其是,没有文档。(软件工程过程中的四个基本活动:规格说明、开发、确认、演进)(4)软件无评测手段:软件质量无法保证。(软件产品质量度量、软件过程质量控制和保证),软件:地平线上的危机,2.什么原因导致软件危机的?(1)软件的固有特征:软件是复杂的。实际问题的复杂性、感知接受的复杂性、理性表达的复杂性。(另外,软件规模不断扩大。)(2)外部原因:软件开发范型(模型)软件设计方法(方法)软件开发支持(工具)软件开发管理(过程),1.4软件神话,关于建造软件的标准和规程的书籍很多很好的软件开发工具增加更多的程序员来赶上进度项目需求总是在不断变化,但这些变化能够很容易地满足,因为软件是灵活的程序真正运行之前,没有办法评估其质量成功项目唯一应该提交的就是运行程序,Bug,问题在哪里?,没有足够测试缺乏测试平台不正确的测试环境缺少集成测试缺少性能测试缺少强度测试缺少可靠性测试,测试的重要性,“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。微软的经验:Windows95/98Windows2000系统的稳定性有了明显改善,DEV:QA=1:2,小结,软件已经成为基于计算机系统及产品的关键组成部分。软件由程序、数据和文档组成。软件危机使得人们开始重视软件项目管理软件工程的目的就是为建造高质量的软件提供一个框架,第一章软件工程概述(二),章节安排,软件工程一种层次化技术软件过程软件过程模型线性顺序模型原型模型RAD模型演化软件过程模型第四代技术产品和过程,2.1软件工程定义,将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中程序设计阶段50至60年代程序系统阶段60至70年代软件工程阶段70年代以后,过程、方法和工具,软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。工具对过程和方法提供了自动的或半自动的支持。,2007.11.15,软件工程层次图,质量焦点,过程模型,方法,工具,2.2软件过程,2007.11.15,公共过程框架框架活动任务集合工作任务里程碑交付物SQA(软件质量保证)点辅助活动(软件质量保证软件配置管理和测试度),CMM,CapabilityMaturityModelbySEI软件能力成熟度模型一个具体的软件过程被明确地定义、管理、评价、控制和产生实效的程度。,CMM的五级构架,软件过程不正规、混乱,项目管理实践制度化,技术过程制度化,软件过程改良制度化、系统化,实施了产品和过程的数量化控制,1.INITIAL,2.REPEATABLE,3.DEFINED,4.MANAGED,5.OPTIMIZING,CapabilityMaturityModel,Disciplined,Standard,consistent,predictable,Continuousimproving,PA的内容,CMM结构,ISO国际标准化组织,ISO(InternationalOrganizationForStandardization)通过产品和服务的可交换性去推动国际贸易的发展推动和协调了国际标准化工作,发布国际协调标准化工作,发布国际协调标准,立项,客户,我们的工作太复杂了,帮我们开发一个系统吧,没问题!我们开发的系统一定会大大提高你们的工作效率,软件开发过程,项目启动会,指定项目经理,分配资源,制定初始计划、PDSP,投标书、项目建议书,召开项目启动会,需求获取,签字认可,业务需求,客户调研记录,SOW,SRS,签字认可,同行评审,入基线,客户,系统分析员,SCM,需求开发,需求变更,接收请求,并分析变更影响,变更后的工作产品,变更申请单,客户,变更请求,项目经理,批准变更,SCCB,SCM,基线库,提取工作产品,变更负责人,验证人,制定计划,项目详细计划,项目经理,项目进度计划,风险计划,培训计划,IC任务书,系统分析员,测试计划,SQA计划,SCM计划,SQA,SCM,同行评审,设计开发,NC列表,客户,开发总监,重大问题、项目组无法关闭的NC,月会、里程碑跟踪监控,测试,测试计划,单元测试报告,系统分析员,集成测试用例,验收系统测试用例,程序员,单元测试,测试员,集成测试,系统测试,验收测试,集成测试报告,系统测试报告,验收测试报告,BUG记录,测试-验收测试,测试员,设置测试环境,确定缺陷,执行测试,测试结果,验收测试报告,客户,测试所需的硬件、软件等,初始化测试环境,是否有缺陷,签字确认,系统分析员,修正缺陷,程序员,是,否,发布,SCCB,发行包,SCM,批准发布,提取最新版本工作产品,发布负责人,发行包测试,测试员,产品库,SQA,发布审计,基线库,客户,接收发行包,结项,项目文档,验证文档数据,过程数据,可重用组件,流转签字,相关部门,结项申请,批准入组织库,SEPG,项目经理,SQA,结项会议,项目委员会,2.3软件开发过程模型,瀑布模型原型模型快速应用开发(RAD)模型改进的V模型螺旋模型增量模型和迭代模型构件组装模型并发模型XP模型,2007.11.15,RequirementsAnalysis,SystemDesign,ProgramDesign,CodingUnitTest,IntegrationTesting,SystemTesting,AcceptanceTesting,Operationmaintenance,Prototyping,User/Customer,2.4原型+瀑布模型(线性顺序),2.5原型模型,2007.11.15,听取客户意见,建造/修改原型,用户测试运行模型,2.6(RAD)快速应用开发,2.7快速应用开发(RAD)V模型,2007.11.15,RAD-VModel(改进),RAD-VModel(进一步丰富),2007.11.15,螺旋模型,2007.11.15,

温馨提示

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

最新文档

评论

0/150

提交评论