软件工程实践(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

北京理工大学软件工程实践汤铭端中国航天科工集团公司204所课程目的面向软件工程的工程应用了解软件工程的基本概念了解软件工程过程掌握基本的软件工程技术方法掌握基本的软件工程管理方法课程安排60学时(20周,每周3学时),20讲参考教材:《软件工程——实践者的研究方法》,(美)RogerS.Pressman著,第四版,黄柏素、梅宏译,北京:机械工业出版社,1999年10月课时每周二晚上6:40开始二号楼106多媒体教室每节课45分钟,休息10分钟第一节课6:40-8:00休息15分钟(8:00-8:15)第二节课8:15-9:10课程内容(旧)第一讲软件工程原理第二讲软件过程第三讲结构化方法概论第四讲需求分析第五讲需求分析方法第六讲软件设计第七讲软件设计方法第八讲软件编码和调试第九讲软件可靠性安全性设计指南第十讲软件测试策略第十一讲软件测试方法第十二讲软件维护和软件重用第十三讲软件项目策划第十四讲项目控制和风险管理第十五讲软件配置管理和需求管理第十六讲软件质量保证和软件评审与审查第十七讲SW-CMM介绍第十八讲新发展热点第十九讲复习第二十讲考试课程内容(新)第一讲软件工程原理第二讲软件过程第三讲结构化方法概论第四讲需求分析第五讲软件设计第六讲软件编码和调试第七讲软件可靠性安全性设计指南第八讲软件测试第九讲软件维护和软件重用第十讲项目管理概念和资质评估第十一讲软件项目策划第十二讲项目控制和风险管理第十三讲配置管理和需求管理第十四讲质量保证和评审与审查第十五讲SW-CMM介绍第十六讲SPI和SW-CMM评估第十七讲A5案例第十八讲新发展热点第十九讲复习第二十讲考试第一讲软件工程原理内容和目的为什么要实施软件工程?实施软件工程的益处?软件工程的基本内容?计算机系统工程概念系统分析和定义硬件软件系统(总体)设计硬件工程软件工程计算机软件计算机软件定义(GB):a.与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。b.与计算机系统的操作有关的程序、规程、规则及任何与之有关的文档。软件危机...计算机硬件性能/价格比和质量稳步提高软件成本逐年上升,质量没有可靠的保证软件已成为限制计算机系统发展的关健因素将软件开发和维护过程中遇到的一系列严重问题统称为“软件危机”在60年代后期开始认真研究解决软件危机的方法,逐步形成了新兴的计算机软件工程学...软件危机什么是软件危机?软件危机是指在计算机软件的开发和维护中所遇到的一系列严重问题。几乎所有软件都不同程度地存在这些问题概括地说软件危机包含两方面问题:如何开发软件,怎样满足对软件的日益增长的需求如何维护数量不断膨胀的已有软件软件危机主要表现1.对软件开发成本和进度的估计很不准确2.用户对“已完成的”软件不满意的现象经常发生3.软件产品的质量靠不住4.软件不可维护5.软件没有适当的文档资料6.软件成本占计算机系统总成本的比例逐年上升7.软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势产生软件危机的原因一方面与软件本身的特点有关在软件运行前,软件开发过程的进展难衡量,质量难评价,因此管理和控制软件开发过程相当困难;在软件运行中,软件维护意味着改正或修改原来的设计,较难维护;软件的显著特点是规模庞大,复杂度超线性增长。要保证高质量大型软件的开发,极端复杂困难,不仅涉及技术问题(如分析方法、设计方法、版本控制),更重要的是必须有严格而科学的管理。另一方面与软件开发和维护方法不正确有关,这是主要原因。特别是忽视软件需求分析的重要性忽视软件需求分析的重要性对用户要求没有完整准确的认识就匆忙着手编写程序软件开发与编程等同忽略文档软件定义不明轻视维护对软件开发的错误认识(1)已经有了关于建造软件的标准和规程使用了吗?开发者知道吗?适用吗?完整吗?已经有了很好的软件开发工具还需要计算机辅助软件工程(CASE)工具对软件开发的错误认识(2)如果计划落后,可以增加人员赶回来给一个已经延迟的软件项目增加人手只会使其更加延迟原有人员需要抽实践训练新手有了目标的一般描述就可以开始写程序不完善的系统定义是项目失败的主要原因对软件开发的错误认识(3)项目需求不断变化,但软件很灵活,变化能够很容易地得到满足软件需求的变化确实是经常的,但其产生的影响随着引入的时间不同而不同写出程序并使其正常运行,工作就结束了越早开始写程序,就要花越长时间才能够完成对软件开发的错误认识(4)在程序真正开始运行前,无法评估其质量正式的技术评审质量过滤器成功项目唯一应该提交的就是运行程序软件=程序+文档+数据文档是成功开发的基础文档为维护提供指导解决办法...全面解决软件危机需要一系列综合措施:在软件研制的各个阶段采用好的工具;对软件的实现提供有效的构件块;为保证软件质量提供自动设计技术;以及为协调、控制、管理提供基本理论和技术——软件工程。...解决办法软件工程这一要素将驾驭前面的工具、构件决和技术软件工程把管理、控制、评审等方法与分析、设计、编码、测试、维护等技术结合起来没有坚实的软件开发方法学,即使最先进的工具和技术也不能使软件危机有所减轻软件工程—工程化方法用于解决任何产品开发的一种工程化方法是:要求在定义、开发和维护阶段的每一步中都采用经过验证的方法要求一系列的复查,以便在产品开发中保证质量规定在每一步中要产生的特定的文档鼓励能够加速开发的各种工具和方法的使用与研制提供从原始产品概念到最后产品制造的一个可追溯的途径软件工程是使计算机软件走向工程科学的途径软件工程—软件工程定义软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。(FritzBauer1969)软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。(GB)软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。(IEEE93)软件工程是模仿在硬件研制中行之有效的一套计划、管理、技术、方法,基于软件的生存期概念而建立起来的。软件工程—视图1...质量焦点过程方法工具...软件工程—视图1质量焦点:任何工程方法必须以有组织的质量保证为基础。质量的理念刺激不断过程改进,导致出现更加成熟的软件工程方法。它是软件工程的根基。过程:软件工程的基础是过程。软件工程过程是将技术层结合在一起的凝聚力,使得软件能够合理地和及时地开发出来。方法:软件工程方法层提供了建造软件在技术上需要“怎么做”。工具:在工具层对过程和方法提供了自动和半自动的支持。软件工程—生存期概念计算机软件生存期中有三个阶段:定义阶段、开发阶段、维护阶段。定义阶段:为软件项目做出计划、预算资金和进度,分析并规定详细的需求——做什么开发阶段:用经过验证的各种设计、编码和测试方法把软件需求转变为一个可执行的程序——怎么做维护阶段:纠正所遇到的各种问题,修正软件使之适合于不同的工作环境,增强功能要求——改变每一个阶段都有一系列的工程步骤,每一步都以能加以复查并可移交才作为结束软件工程的基本原理B.W.Boehm(1983)1)用分阶段的生命周期计划严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组的人员应该少而精;7)承认不断改进软件工程实践的必要性。计划管理缺乏科学而周密的计划是软件开发普遍现象不成功软件项目一半以上由于计划不周造成应把软件生存期划分为若干阶段,制定科学周密、切实可行的计划,并严格按计划进行管理,这是软件项目取得成功的先决条件计划所做的和按计划去做计划一般包括:项目开发计划、软件配置管理计划、软件质量保证计划、软件测试计划等评审在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则质量保证工作不能等到程序编制完成后才进行:1.程序中的大部分错误是在编码之前造成的2.错误的检测与改正时间越晚,所付出的代价也就越高。3.错误还会被“放大”配置管理...软件研制各阶段产生的文档、报告、程序清单和数据等,构成软件配置全部软件配置是一个软件产品的真正代表,必须使其保持精确和一致为了保持软件配置的一致性,必须实行严格的产品控制,对变更进行严格的控制和管理...配置管理配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。它包括对软件配置的标识、控制、审计、记录等一系列的活动在软件研制过程中,由业已经过正式审核与同意,可用作下一步开发的基础,并且只有通过正式的修改管理步骤方能加以修改的规格说明或产品形成了配置管理的基线软件开发方法和工具软件工程鼓励研制和采用各种先进的软件开发方法和工具各种软件开发方法的出现和采用大大改善了软件的开发效率和维护效率软件工程辅助工具、计算机辅助软件工程(CASE)环境工具和环境的使用进一步提高了软件的开发效率、维护效率和软件质量文档...软件研制是脑力劳动,具有不可见性为了实现对软件研制过程的管理,在软件研制的每个阶段,都应按规定的格式编写出完整准确的文档文档是软件中不可缺少的组成部分...文档的作用1)作为阶段工作成果和结束标志;2)向管理人员提供软件开发过程中的进展和情况,把软件开发过程中的一些“不可见的”事物转换成“可见的”文字资料;3)记录开发过程中的技术信息,便于协调以后的软件开发、使用和修改;4)提供对软件的有关运行、维护和培训的信息,便于各类人员之间相互了解彼此的工作;5)向潜在用户报告软件的功能和性能,使他们能判定该软件能否服务于自己的需要。开发小组软件开发小组的组成人员的素质应该好,而人数则不宜过多开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素随着开发人员数目的增加,因为交流情况讨论问题造成的通信开销也急剧增加组成少而精的开发小组是一条基本原理不断改进仅有前面六条基本原理并不能保证软件开发和维护的过程能赶上时代前进的步伐、跟上技术的不断进步Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理不仅要积极地采纳新的软件技术,而且要注意不断总结经验谢谢!68389085(O)68389504(H)mdtang@btamail.net.cn

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功