软件工程重点

上传人:人*** 文档编号:493368559 上传时间:2023-01-02 格式:DOCX 页数:7 大小:22.55KB
返回 下载 相关 举报
软件工程重点_第1页
第1页 / 共7页
软件工程重点_第2页
第2页 / 共7页
软件工程重点_第3页
第3页 / 共7页
软件工程重点_第4页
第4页 / 共7页
软件工程重点_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《软件工程重点》由会员分享,可在线阅读,更多相关《软件工程重点(7页珍藏版)》请在金锄头文库上搜索。

1、学习“软件工程”的目的和意义学会如何在现代IT企业的环境中做一个成功者;学会如何做世界级的、高质量的研究;学会如何创建大规模的软件产品。微软全球资深副总裁原微软亚洲研究院院长首席科学家张亚勤一、全球软件产业的现状、趋势与挑战1. 软件产业的网络化趋势:智能网络(Intelligent Web)从静态网到动态网从被动方式到主动方式从呈现信息和浏览的窗口到智能生成的平台从HTML至U XML2. 软件产业的服务化趋势:相对目前“打包式”软件,为用户提供智能化的“服务式”软件。3. 软件产业的全球化趋势强调开放性、交互性支持主流的开放式标准人才的全球化二、现代软件开发对人才的要求扎实的基础;创新、独

2、立的工作能力;主人翁精神和团队精神勾通与协调能力;成就感强、有激情;自觉地干好工作;契而不舍,从错误中学习四、软件开发中的错误观点1. 只要掌握了 1-2门程序设计语言,进行软件开发就没有问题。2. 软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。3. 只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。总之,错误认为:软件就是程序,开发软件就是编写程序。本课程学习的主要内容1. 传统的软件工程方法2. 面向对象的建模技术一UML统一建模语言3, 软件项目管理及CMM4, 软件复用及构件工程本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最

3、新技术一UML统一建模语言 进行软件开发,提高软件开发的水平和技术。第一章概述1.1软件工程的产生和发展软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。 随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、 中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软 件技术的新课题。IBM公司的OS/360,共约100万条指令,花费了 5000个人年;经费达数亿美圆,而结果却令人沮 丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责

4、人Brooks这样描述开发过程的 困难和混乱:像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃 脱淹没在泥潭中的命运。”1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:DO 5 I=1,3误写为:DO 5 I=1 . 31967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,导至在进入大气层 时因打不开降落伞而烧毁。“软件危机”(Software crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。 而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使

5、大量 质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。“软件危机”主要表现在两个方面:(1) 软件产品质量低劣,甚至开发过程就夭折。(2) 软件生产率低,不能满足需要。软件工程的发展已经历了四个重要阶段:1. 第一代软件工程一传统的软件工程60年代末到70年代为了克服“软件危机” (Software crisis)提出“软件工程”的名词,将软件开发纳入工程 化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。2. 第二代软件工程对象工程80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计, 演化为一种完整的软件开发方法

6、和系统的技术体系,称为对象工程。3. 第三代软件工程过程工程80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是,软 件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。4. 第四代软件工程构件工程90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可 复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:软件开发方法、技术&软件开发工具及环境一一软件开发技术软件管理技术&软件规

7、范(国际规范)1.2软件工程过程与软件生存期为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠 性会议(NATO )上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系 列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。软件工程过程(Software engineering process)是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。通常包括以下四类基本过程:1、软件规格说明:规定软件的功能及其运行环境。2、软件开发:产生满足规格说明的软件。3、软件确认:确认软件能够完成客户提出的

8、要求。4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。1.3软件开发模型软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。软件过程模型是对软件开发实际过程的抽象和简化。目前典型的软件开发模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。瀑布模型增量模型(incremental model)增量模型是一种非整体开发的模型。是一种进化式的开发过程。根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软

9、件项目。循环模型为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。速成原型的工作模型是一个循环的模型。1. 快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)2. 构造原型考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性 能原型。3. 运行和评价原型4. 修改与改进智能模型(intelligent model)也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。1.4软件开发方法软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成

10、功的开发方法。软件开发方法可分为两大类:面向过程的开发方法面向对象的开发方法结构化方法及瀑布模型结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。一、结构化开发方法的组成结构化程序设计方法SP法(Structured Program)结构化设计方法SD法(Structured Design)结构化分析方法SA法(Structured Analysis)SA,SD,SP法相互衔接,形成了一整套开发方法。原型化方法及其工作模型

11、什么是原型化方法(Prototyping Method)原型一一是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。原型化方法又称速成原型法(Rapid Prototyping)。1、废弃(throw away )型RSP法(Rapid Specific Prototyping)快速建立需求规格原型。2、追加(add on)型RCP法(Rapid Cyclic Prototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续 精化。螺旋模型对大型软件,需要多个原型描述系统的生存期,螺

12、旋模型将瀑布模型与原型化模型结合起来,并加入了 风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:第一,确定目标、方案和限制条件;第二,评估方案、标识风险和解决风险;第三,开发确认产品;第四,计划下一周期工作。面向对象方法及其工作模型面向对象方法(OOSD(Object-Oriented Software Development)是80年代推出的一种全新的软件开发 方法。非常实用而强有力,被誉为90年代软件的核心技术之一。其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以 便对客观的信息实体进行结构和行为的模拟,从而使设计的软件

13、更直接地表现问题的求解过程。面向对象 的开发方法以对象作为最基本的元素,是分析和解决问题的核心。面向对象开发方法的组成OOSD由三部分组成:OOA(Object-Oriented Analysis)面向对象的分析强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。OOD(Object-Oriented Design)面向对象的设计与OOA密切配合顺序实现对现实世界的进一步建模。OOP (Object-Oriented Program)面向对象的程序设计是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。喷泉模型该模型是由B.H.Sollers和J.M.Edwards

14、于1990年提出的一种新的开发模型。它克服了瀑布模型不支 持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。其特点如下:1. 开发过程有分析、系统设计、软件设计和实现4个阶段。2. 各阶段相互重叠,它反映了软件过程并行性的特点。3. 以分析为基础,资源消耗成塔型。4. 反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。5. 强调增量开发,整个过程是一个迭代的逐步提炼的过程。第二章软件需求工程软件需求作为软件生命周期的第一个阶段,其重要性越来越突出,到20世纪80年代中期,逐步形成 了软件工程的子领域一需求工程。90年代后,需求工程成为软件界研究的重点之一。从

15、1993年起,每两年举办一次需求工程国际研讨 会(ISRE),1994年起,每两年举办一次需求工程国际会议(ICRE)。一些关于需求工程的工作小组相继 成立,使需求工程的研究得到了迅速进展。2.1软件需求工程的基本概念1. 什么是软件需求工程?2. 软件需求工程的任务是什么?3. 需求工程过程4. 软件需求分析方法对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过齿一一需求工程软件需求的重要性软件需求无疑是当前软件工程中的关键问题,没有需求就没有软件。美国于1995年开始对全国范围内的8000个软件项目进行跟踪调查。分析失败的原因发现,与需求过程相关的原因占了 45%,而其中缺乏最终用户的参与以及不完整的需 求又是两大首要原因,各占13%和12%。软件需求的困难软件需求是软件工程中最复杂的过程之一:1. 应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关。2. 非功能性需求建模技术的缺乏,及其与功能性需求有着错综复杂的联系,大大增加了需求工程的 复杂性。3. 沟通上的困难,由于系统分析员、需求分析员等各方面人

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号