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

下载本文档

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

文档简介

第9章软件工程

为什么提出软件工程从20世纪40年代开始到软件工程术语提出为止的20多年时间里,对软件开发的理解就是编程序,那时的编程有以下特点:软件规模相对较小,人们关心的是计算机硬件的发展。作为一个计算机专业人员,他必须懂得计算机的结构。作为一个机构,其大量资金也是用于计算机硬件开销上,软件只是作为展现其硬件性能的一种手段而投入的少量资金。为什么提出软件工程编程仅作为一门技艺,大部分软件技术人员不太关心他人的工作,决定软件质量的惟一因素就是该编程人员的素质。缺少有效方法与软件工具的支持。由于重视个人技能,软件开发过程能见度低,许多管理人员不知道他们的软件技术人员工作究竟做得如何。由于人们重视个人技能,一旦需要做某些修改,就要原编程人员进行修改。这使得软件开发后的维护工作很难进行。软件工程的背景和历史1968年由NATO(北大西洋公约组织)在德国Garmish召开的学术会议上,FeitzBauer首先提出了“软件工程”概念。软件工程与编程前者是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护单纯的代码编写是软件工程发展的前身是软件工程中占据很少时间和空间的一部分计算机学科的发展计算机科学(CS)计算机科学(CS)计算机工程(CE)软件工程(SE)信息系统(IS)计算学科(computingDiscipline)

早期

第二阶段第三阶段第四阶段面向批处理

多用户

分布式系统

强大的桌面系统有限的分布

实时

嵌入“智能”面向对象技术自定义软件

数据库

低成本硬件

专家系统

软件产品消费者的影响

人工神经网络

并行计算

网络计算机195019601970198019902000Evolutionofsoftware#为什么发展如此之快不准确的时间和金钱的估算软件质量的低下相对硬件产品开发软件开发费用的增加维护、增强软件系统的必要性硬件价格大幅度下降软件技术面临的问题

规模复杂性生产率

Windows95有1000万行代码

Windows2000有5000万行代码例:Exchange2000和Windows2000开发人员结构Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人软件危机的主要特征软件开发周期大大超过规定日期;软件开发成本严重超标;软件质量难于保证。软件工程的定义FritzBauer在NATO会议上给出的定义:

“软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。”软件工程的定义(2)

IEEE【IEE83】给出的软件工程定义:

“软件工程是开发、运行、维护和修复软件的系统方法。”软件工程的定义(3)IEEE【IEE93】给出了一个更加综合的定义:

“将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。”软件工程是一门交叉学科软件工程的主要研究内容软件开发技术:软件开发方法学软件开发过程软件工具和软件工程环境软件工程管理:软件管理学软件经济学软件心理学软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。软件工程—一种层次化技术工具方法过程质量焦点Softwareengineeringlayers软件工程三个要素:方法、工具、过程软件工程知识结构

2001年5月ISO/IECJTC1(ISO和IEC的第一联合技术委员会)发布了《SWEBOK指南V0.95(试用版)》SWEBOK把软件工程学科的主体知识分为10个知识领域。软件工程知识结构软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量“软件工程”课程

与其它软件专业课的区别(1)立足于系统的整体。(2)讲授系统分析、系统设计、测试及维护的理论和方法。(3)构筑一个软件系统,实践软件开发全过程。学习“软件工程”的目的转变对软件的认识:上升程序系统转变思维定式:上升程序员系统工程师

(系统分析员)软件和软件生命期模型(SoftwareLifeCycle)软件产品或软件系统从设计、投入使用到被淘汰的全过程。软件生存期的阶段划分(1)可行性研究与计划(2)需求分析(3)总体设计(4)详细设计(5)实现(6)集成测试(7)确认测试(8)使用和维护成长期(开发期)计划期

成年期(运行期)软件工作的范围只考虑编写程序涉及整个软件生存周期扩展到

软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件开发模型也常称为: 软件过程模型 软件生存周期模型 软件工程范型软件开发模型可行性研究与计划需求分析设计编码运行维护测试定义阶段开发阶段维护阶段1.瀑布模型(WaterfallModel)开发软件不仅仅是编程瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。2.推迟实现的观点。3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。瀑布模型适用于开发用户需求明确并且很少变化的软件!!2.演化模型首先针对已提出的核心需求开发软件的第一个版本,又称“原型”。用户使用原型并反馈意见进入下一轮,完成定义、设计、编码、测试、使用、反馈等阶段;进行多轮修正,直到实现用户的所有需求,交付使用。演化模型适用于开发事先用户需求不明确的软件!!信息流(细化)R:需求C/T:编码/测试D:设计I/AS:安装和验收支持R1DC/TI/ASR2RnDDC/TC/TI/ASI/AS工作版本1工作版本2工作版本n3.螺旋模型螺旋模型将瀑布模型和演化模型等结合起来,并且强调了其他模型

温馨提示

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

评论

0/150

提交评论