![第1章与软件工程_第1页](http://file4.renrendoc.com/view/c5dcd1c91e9422144f62ea5d2a32faa8/c5dcd1c91e9422144f62ea5d2a32faa81.gif)
![第1章与软件工程_第2页](http://file4.renrendoc.com/view/c5dcd1c91e9422144f62ea5d2a32faa8/c5dcd1c91e9422144f62ea5d2a32faa82.gif)
![第1章与软件工程_第3页](http://file4.renrendoc.com/view/c5dcd1c91e9422144f62ea5d2a32faa8/c5dcd1c91e9422144f62ea5d2a32faa83.gif)
![第1章与软件工程_第4页](http://file4.renrendoc.com/view/c5dcd1c91e9422144f62ea5d2a32faa8/c5dcd1c91e9422144f62ea5d2a32faa84.gif)
![第1章与软件工程_第5页](http://file4.renrendoc.com/view/c5dcd1c91e9422144f62ea5d2a32faa8/c5dcd1c91e9422144f62ea5d2a32faa85.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程主讲:饶国政天津大学联系方式天津大学25教学楼B-607邮箱:软件工程在计算机领域中的位置软件方法学和工程-基本问题
本领域研究满足技术要求、安全、可靠、可信的程序和大型软件系统的设计。基本问题包括:
1.在程序和程序设计系统的开发背后的原理是什么?
2.怎样去证明程序或系统满足它的技术要求?
3.怎样去给定技术要求,使不遗漏重要的情况,而且可以分析它的安全性?
4.怎样使软件系统通过不同阶段不断改进?
5.怎样使软件设计得易理解和易修改?软件方法学和工程–理论软件方法学和工具练域理论的主要部分是:
(l)程序验证和证明。
(2)时态逻辑。
(3)可靠性理论。
(4)谓词演算、公理语义学、和认知心理学等支撑领域。软件方法学和工程-抽象软件方法学和工具抽象的主要部分是:
(1)定义技术要求的方法。如调词变换器、程序设计演算、抽象数据类型和弗洛依德一霍尔(Floyd-Hoare)公理化符号。
(2)方法学,如逐步提炼、模块化设计、模块、分离编译、信息隐藏(informationbiding)、数据流和抽象层次。
(3)程序开发自动化的方法。例如,文本编辑程序,面向语法的编辑程序和屏幕编辑程序。
(4)可信计算的方法学;例如,容错,安全性,可靠性,恢复,N版本程序设计,多方式冗余,和检查点插入。
(5)软件工具和程序设计环境。
(6)程序和系统的测度和评估。
(7)软件系统到特定机器结构的匹配问题域。
(8)软件研制的生命周期模型。软件方法学和工程–设计软件方法学和工具领域设计和实验的主要内容是:
(1)技术要求描述语言(如PSL2,IMAJO)、构造管理系统(如在AdaAPSE)和修改控制系统(如RCS,SCCS)。
(2)指向语法的编辑器、行编辑器、屏幕编辑器和字处理系统。
(3)在软件开发实践中倡导和使用的特定方法,如HDM,及Dijkstra,Jackson,Mills或Yourdon等人倡导的方法。
(4)测试的过程和实践(例如,遍历、手模拟、模块间接口的检查、测试集的程序通路列举和事件跟踪),质量保证和计划管理。
(5)程序开发和查错,剖面分析,文本格式化和数据库操作的软件工具。
(6)像国防部那样的安全计算系统的标准级和验证过程的技术要求。
(7)用户接口的设计。
(8)设计非常大的、可靠的、容错的和可信的系统的方法。一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势智能网络(IntelligentWeb)·从静态网到动态网·从被动方式到主动方式·从呈现信息和浏览的窗口到智能生成的平台·从HTML到XML一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势
相对目前“打包式”软件,为用户提供智能化的“服务式”软件。一、全球软件产业的现状、趋势与挑战TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势·强调开放性、交互性·支持主流的开放式标准·人才的全球化对中国软件企业有什么启示和挑战?本课程学习的主要内容1.传统的软件工程方法2.软件项目管理3.软件复用及构件工程
本课程以传统的软件工程技术为基础,主要讨论如何提高软件开发的水平和技术。作者:齐治昌、宁洪出版社:高等教育出版社ISBN:9787040146288面向21世纪课程教材、国家精品课程配套教材1.软件工程(第2版)
教材及主要参考书教材及主要参考书作者:许家珆主编白忠建,彭德中,吴磊编写出版社:电子工业出版社2.软件工程—方法与实践教材及主要参考书3.软件工程SoftwareEngineering,6thEdition作者:(英)IanSommerville出版社:机械工业出版社(影印版)
本书是英国著名软件工程学家IanSommerville系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。参考网站http://软件工程网卡内基梅大学软件工程研究所对象技术和构件技术链接Rational公司OMG(ObjectManagementGroup)http://软件工程网卡内基梅大学软件工程研究所对象技术和构件技术链接Rational公司第一章1软件与软件工程1.1软件软件的概念;软件的特点;软件的分类;软件的发展;软件危机。软件的概念软件是计算机系统的重要组成部分;软件是逻辑产品,需要计算机硬件和系统软件的支撑;软件是计算机控制系统的指挥中枢;软件是信息转换器,它能对信息进行加工、处理或变换;软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;计算机世界的软件
软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。
软件=程序+数据+文档程序=算法+数据结构软件的特点软件是被开发或设计的,而不是传统意义上被制造的软件不会”磨损”软件产业逐步走向基于构件的组装,但还是定制的
软件的描述
软件由程序、数据、文档组成。数据
用程序设计语言要求的数据结构表示文档
规范准确清晰简洁无歧义自然语言结构化英语图表
程序设计语言面向机器汇编语言、机器语言等面向过程Fortran,Pascal,C等面向对象C++,Java等面向问题结构化查询语言SQL等软件分类系统软件实时软件商务软件工程和科学计算软件嵌入式软件人工智能软件个人计算机软件软件的发展软件发展的四个阶段1950---1965
没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布。1965---1975
产生人机交互的新概念、新技术软件产品、多用户、实时、数据库。1973---1988
微处理器的出现并广泛应用 分布式系统、嵌入智能、低成本硬件、消费者的影响。1986---2000
广域和局域网络迅速普及 强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网络计算机。2软件发展存在的问题软件开发能力不能满足人们的需要。社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性建造高可靠性、高质量软件的任务任重道远。若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。软件危机的表现软件产业的发展长期滞后,与硬件发展不协调。软件开发成本过高软件质量得不到保证软件开发效率低难以控制开发进度,工作量估计困难
软件不能满足社会发展的需求,成为社会、经济发展的制约因素软件危机2.软件危机原因软件的规模加大、复杂性提高、性能增强软件是逻辑产品,尚未完全认识其本质和特点缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足1.2软件工程的产生和发展
软件工程(SoftwareEngineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。
随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软件技术的新课题。
软件工程的发展已经历了四个重要阶段:4.第四代软件工程
—
构件工程3.第三代软件工程
—
过程工程2.第二代软件工程
—
对象工程1.第一代软件工程
—
传统的软件工程软件工程的发展已经历了四个重要阶段:1.第一代软件工程
—
传统的软件工程2.第二代软件工程
—
对象工程3.第三代软件工程
—
过程工程4.第四代软件工程
—
构件工程
60年代末到70年代为了克服“软件危机”
(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。
软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:}
软件开发技术软件开发方法、技术软件开发工具及环境软件管理技术软件规范(国际规范)}
软件管理技术1.3软件工程过程与软件生存期
为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。通常包括以下四类基本过程:1、软件规格说明:规定软件的功能及其运行环境。2、软件开发:产生满足规格说明的软件。3、软件确认:确认软件能够完成客户提出的要求。4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。软件工程过程
(Softwareengineeringprocess)软件工程过程
(Softwareengineeringprocess)规程与方法工具和设备有技能经过培训的开发人员过程软件工程三要素软件工程过程方法工具软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)软件生命周期(SDLD)—瀑布模型瀑布模型1.4软件开发模型软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。软件过程模型是对软件开发实际过程的抽象和简化。
目前典型的软件开发模型有:
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。软件过程模型软件过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架软件项目的管理提供里程碑和进度表为软件开发提供原则和方法以软件需求完全确定为前提的瀑布模型在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型、增量模型、并发开发模型
以形式化开发方法为基础的变换模型基于构件的开发过程敏捷开发过程---统一软件开发过程RUP五类软件开发过程模型瀑布模型问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型瀑布模型主要思想
软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审瀑布模型的优点软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。瀑布模型的缺点项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。增量模型(incrementalmodel)增量模型是一种非整体开发的模型。是一种进化式的开发过程。根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。增量模型和瀑布模型之间的本质区别是什么?增量模型特点增量小而可用的软件特点在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型迭代的思路
为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。需求分析设计编码测试运行评价计划循环模型循环模型
速成原型的工作模型是一个循环的模型。1.快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)2.构造原型考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行和评价原型
4.修改与改进原型的工作模型运行评价构造快速分析修改
智能模型(intelligentmodel)获取需求需求分析具体描述优化程序调整验证维护知识库专家系统程序
也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。智能模型1.5软件开发方法
软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。软件开发方法可分为两大类:面向过程的开发方法面向对象的开发方法结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。一、结构化开发方法的组成结构化程序设计方法SP法(StructuredProgram)结构化设计方法SD法(StructuredDesign)结构化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互衔接,形成了一整套开发方法。结构化方法及瀑布模型什么是原型化方法(PrototypingMethod)原型化方法及其工作模型
原型——是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。原型化方法又称速成原型法(RapidPrototyping)。原型化方法及其工作模型
1、废弃(throwaway)型
RSP法(RapidSpecificPrototyping)快速建立需求规格原型。
2、追加(addon)型
RCP法(RapidCyclicPrototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续精化。构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN细化的快速原型模型图2细化的快速原型模型快速分析或修改评价构造运行原型模型的优点原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线性过程。
对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级语文上册 第一单元 2 花的学校说课稿 新人教版
- 【培优卷】同步分层练习:四年级下册语文第12课《在天晴了的时候》(含答案)
- 电商平台教育与培训市场分析
- 2025年度新能源汽车充电桩电气安装工程合同
- 【培优卷】同步分层练习:五年级下册语文第13课《人物描写一组》(含答案)
- 2025年度离婚后财产分割协议书范本下载
- 现代办公室设计如何减轻员工焦虑和压力?-以办公环境为视角的病例分析
- 2025年度知识产权质押贷款合同起草与执行细则
- 沟通技巧对提升职场人际关系及心理调适的影响
- 浙教版数学七年级下册《5.1 分式》听评课记录6
- GB/T 16475-1996变形铝及铝合金状态代号
- 无纸化会议系统解决方案
- 上海铁路局劳动安全“八防”考试题库(含答案)
- 《愿望的实现》教学设计
- 效率提升和品质改善方案
- 义务教育学科作业设计与管理指南
- 物业客服培训PPT幻灯片课件(PPT 61页)
- 《汽车发展史》PPT课件(PPT 75页)
- 工地试验室仪器期间核查作业指导书
- 反诈骗防诈骗主题教育宣传图文PPT教学课件
- 浅谈化工生产装置大修安全环保管理
评论
0/150
提交评论