




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲:主讲:饶国政饶国政天 津 大 学 天津大学25教学楼B-607 邮箱: 课件及相关资源: 2/faculty/rgz/new/se/ 计算机科学是什么?计算机科学是什么?1、是科学?是工程学科?还是一门技术?、是科学?是工程学科?还是一门技术?. 2、学科的智力本质是什么?、学科的智力本质是什么?3、它将持续兴旺下去还是衰落下去?、它将持续兴旺下去还是衰落下去?4、 计算机科学和工程的核心课程是否反映了这计算机科学和工程的核心课程是否反映了这个领域?个领域? 5、 怎样把理论和实验集成在计算课程中?怎样把理论和实验集成在计算课程中?6、 各核心课程培养计
2、算方面的能力吗?各核心课程培养计算方面的能力吗?7、 . 计算处于应用数学、科学和工程三者的主计算处于应用数学、科学和工程三者的主要过程的要过程的交叉路口交叉路口。 这三个过程在本学科是这三个过程在本学科是同等重要同等重要和基本的。和基本的。 它是理论、抽象和设计三者它是理论、抽象和设计三者唯一的交汇点唯一的交汇点。 (1) 计算科学计算科学 = 程序设计程序设计是错误的。是错误的。 (2) 计算领域的许多活动并不是程序设计,硬件设计、体计算领域的许多活动并不是程序设计,硬件设计、体系结构、操作系统结构、数据库应用等。系结构、操作系统结构、数据库应用等。 (3) 程序设计是本学科标准的实践活动
3、的一部分,每一个程序设计是本学科标准的实践活动的一部分,每一个计算工作者必须有程序设计的能力。但这并不意味着本学计算工作者必须有程序设计的能力。但这并不意味着本学科就建筑在程序设计的基础上,也不意味着导引性课程必科就建筑在程序设计的基础上,也不意味着导引性课程必须是程序设计方面的课程。须是程序设计方面的课程。 (4) 程序设计语言是涉足本领域特色的工具。程序设计语言是涉足本领域特色的工具。建议:程序设计作为核心课程的一部分,并把程序设计语建议:程序设计作为核心课程的一部分,并把程序设计语言作为涉足计算学科重要特色的有用媒介。言作为涉足计算学科重要特色的有用媒介。 (1) 计算学科是对描述和变换
4、信息的算法过计算学科是对描述和变换信息的算法过程的系统研究,程的系统研究,包括它的理论、分析、设计、有效性、实包括它的理论、分析、设计、有效性、实现和应用。现和应用。 (2) 全部计算科学的基本问题是全部计算科学的基本问题是什么能(有什么能(有效地)自动进行?效地)自动进行?。 (1) 面向学科的思维能力面向学科的思维能力发现本领域新的特性的能力,这些特性导致新的活动发现本领域新的特性的能力,这些特性导致新的活动方式和新的工具,以便这些特性能被其他人所利用。方式和新的工具,以便这些特性能被其他人所利用。(2) 使用工具的能力使用工具的能力使用本领域的工具有效地进行其他领域时间活动的能使用本领域
5、的工具有效地进行其他领域时间活动的能力。力。 建议:建议:把面向学科的思维能力作为计算专业课程设置的主要把面向学科的思维能力作为计算专业课程设置的主要目的。目的。同时,计算专业工作者必须充分熟悉工具,以便与其同时,计算专业工作者必须充分熟悉工具,以便与其他学科的人们有效地合作,进行那些学科的设计活动。他学科的人们有效地合作,进行那些学科的设计活动。 (1) 本学科和算法理论、数理逻辑和存储程序式电本学科和算法理论、数理逻辑和存储程序式电子计算机的发明一起,形成于子计算机的发明一起,形成于40年代初。年代初。(2) 计算的渊源可以深入扩展到数学和工程。数学计算的渊源可以深入扩展到数学和工程。数学
6、把分析分到这一领域,而工程把设计分到这一领把分析分到这一领域,而工程把设计分到这一领域。域。(3) 本学科包括它自己的理论、实验方法和工程。本学科包括它自己的理论、实验方法和工程。这与许多其他的自然科学不同。许多其他的自然这与许多其他的自然科学不同。许多其他的自然科学和运用其成果的工程学科是分开的(例如化科学和运用其成果的工程学科是分开的(例如化学和化学工程原理)、计算机科学与工程却是不学和化学工程原理)、计算机科学与工程却是不可分的,因为本学科的科学与工程形态从根本上可分的,因为本学科的科学与工程形态从根本上是相互渗透的。是相互渗透的。 计算作为数学的主要对象已有几千年了。计算作为数学的主要
7、对象已有几千年了。 自然现象的许多模型被用来导出方程,它的解就自然现象的许多模型被用来导出方程,它的解就导致那些自然现象的预言。例如轨道的弹道计算、导致那些自然现象的预言。例如轨道的弹道计算、天气预报和流体的流动等。解这些方程的许多方天气预报和流体的流动等。解这些方程的许多方法已经给出。例如线性方程组的解法、微分方程法已经给出。例如线性方程组的解法、微分方程的解法和求函数的积分。的解法和求函数的积分。 几乎在这同时,机械系统设计中所需要的计算成几乎在这同时,机械系统设计中所需要的计算成为工程主要关注的对象。例如计算静态物体压力为工程主要关注的对象。例如计算静态物体压力的算法、计算运动物体惯量的
8、算法和测量比我们的算法、计算运动物体惯量的算法和测量比我们直觉要大得多或小得多的距离的方法。直觉要大得多或小得多的距离的方法。 (1)新一代计算机体系结构。该方向包括神经元计算、)新一代计算机体系结构。该方向包括神经元计算、计算机设计与制造、网络与通信技术、大容量存储设备计算机设计与制造、网络与通信技术、大容量存储设备的研究、容错模型内容等;的研究、容错模型内容等;(2)并行与分布式软件开发方法学研究。该方向包括数)并行与分布式软件开发方法学研究。该方向包括数理逻辑、计算理论、形式语义学、高级语言与程序设计理逻辑、计算理论、形式语义学、高级语言与程序设计理论、系统软件设计、软件工程、容错理论等
9、内容;理论、系统软件设计、软件工程、容错理论等内容;(3)人工智能理论及其应用。该方向包括数理逻辑、高)人工智能理论及其应用。该方向包括数理逻辑、高等逻辑、算法理论、知识工程、神经元计算、人工智能等逻辑、算法理论、知识工程、神经元计算、人工智能高能语言与人工智能程序设计等内容;高能语言与人工智能程序设计等内容;(4)计算机应用的关键技术。主要将围绕计算可视化与)计算机应用的关键技术。主要将围绕计算可视化与虚拟现实,计算几何,科学计算这几个重点方向开展有虚拟现实,计算几何,科学计算这几个重点方向开展有工作,并带动数据库技术、计算机图形学、自然语言处工作,并带动数据库技术、计算机图形学、自然语言处
10、理与机器翻译、模式识别与图解处理等方向发展。在这理与机器翻译、模式识别与图解处理等方向发展。在这一综合方向上研究内容将几乎覆盖所有的计算科学应用一综合方向上研究内容将几乎覆盖所有的计算科学应用技术方向内容技术方向内容。 本领域研究满足技术要求、安全、可靠、本领域研究满足技术要求、安全、可靠、可信的程序和大型软件系统的设计。基本可信的程序和大型软件系统的设计。基本问题包括:问题包括:1.在程序和程序设计系统的开发背后的原理在程序和程序设计系统的开发背后的原理是什么?是什么?2.怎样去证明程序或系统满足它的技术要求?怎样去证明程序或系统满足它的技术要求?3.怎样去给定技术要求,使不遗漏重要的情怎样
11、去给定技术要求,使不遗漏重要的情况,而且可以分析它的安全性?况,而且可以分析它的安全性?4.怎样使软件系统通过不同阶段不断改进?怎样使软件系统通过不同阶段不断改进?5.怎样使软件设计得易理解和易修改?怎样使软件设计得易理解和易修改? 软件方法学和工具练域理论的主要部分是:软件方法学和工具练域理论的主要部分是:(l) 程序验证和证明。程序验证和证明。(2) 时态逻辑。时态逻辑。(3) 可靠性理论。可靠性理论。(4) 谓词演算、公理语义学、和认知心理学谓词演算、公理语义学、和认知心理学等支撑领域。等支撑领域。 软件方法学和工具抽象的主要部分是:软件方法学和工具抽象的主要部分是:(1) 定义技术要求
12、的方法。如调词变换器、程序设计演算、定义技术要求的方法。如调词变换器、程序设计演算、抽象数据类型和弗洛依德一霍尔抽象数据类型和弗洛依德一霍尔(Floyd-Hoare) 公理化符公理化符号。号。(2) 方法学,如逐步提炼、模块化设计、模块、分离编译、方法学,如逐步提炼、模块化设计、模块、分离编译、信息隐藏信息隐藏(information biding) 、数据流和抽象层次。、数据流和抽象层次。(3) 程序开发自动化的方法。例如,文本编辑程序,面向程序开发自动化的方法。例如,文本编辑程序,面向语法的编辑程序和屏幕编辑程序。语法的编辑程序和屏幕编辑程序。(4) 可信计算的方法学;例如,容错,安全性,
13、可靠性,可信计算的方法学;例如,容错,安全性,可靠性,恢复,恢复,N版本程序设计,多方式冗余,和检查点插入。版本程序设计,多方式冗余,和检查点插入。(5) 软件工具和程序设计环境。软件工具和程序设计环境。(6) 程序和系统的测度和评估。程序和系统的测度和评估。(7) 软件系统到特定机器结构的匹配问题域。软件系统到特定机器结构的匹配问题域。(8) 软件研制的生命周期模型。软件研制的生命周期模型。 软件方法学和工具领域设计和实验的主要内容是:软件方法学和工具领域设计和实验的主要内容是:(1) 技术要求描述语言技术要求描述语言(如如PSL 2,IMA JO) 、构造管理系统、构造管理系统(如如在在A
14、da APSE) 和修改控制系统和修改控制系统(如如 RCS,SCCS) 。(2) 指向语法的编辑器、行编辑器、屏幕编辑器和字处理系统。指向语法的编辑器、行编辑器、屏幕编辑器和字处理系统。(3) 在软件开发实践中倡导和使用的特定方法,如在软件开发实践中倡导和使用的特定方法,如HDM,及,及Dijkstra,Jackson,Mills或或Yourdon等人倡导的方法。等人倡导的方法。(4) 测试的过程和实践测试的过程和实践(例如,遍历、手模拟、模块间接口的检例如,遍历、手模拟、模块间接口的检查、测试集的程序通路列举和事件跟踪查、测试集的程序通路列举和事件跟踪) ,质量保证和计划管,质量保证和计划
15、管理。理。(5) 程序开发和查错,剖面分析,文本格式化和数据库操作的程序开发和查错,剖面分析,文本格式化和数据库操作的软件工具。软件工具。(6) 像国防部那样的安全计算系统的标准级和验证过程的技术像国防部那样的安全计算系统的标准级和验证过程的技术要求。要求。(7) 用户接口的设计。用户接口的设计。(8) 设计非常大的、可靠的、容错的和可信的系统的方法。设计非常大的、可靠的、容错的和可信的系统的方法。 学会如何在现代学会如何在现代IT企业的环境中做一个成功者;企业的环境中做一个成功者;学会如何做世界级的、高质量的研究;学会如何做世界级的、高质量的研究;学会如何创建大规模的软件产品。学会如何创建大
16、规模的软件产品。 微软全球资深副总裁微软全球资深副总裁 原微软亚洲研究院院长原微软亚洲研究院院长 首席科学家首席科学家 张亚勤张亚勤 The Challenges and Opportunities of the Global Software Industry. 软件产业的网络化趋势软件产业的网络化趋势 软件产业的服务化趋势软件产业的服务化趋势 软件产业的全球化趋势软件产业的全球化趋势智能网络智能网络(Intelligent Web)从静态网到动态网从静态网到动态网从被动方式到主动方式从被动方式到主动方式从呈现信息和浏览的窗从呈现信息和浏览的窗口到智能生成的平台口到智能生成的平台从从HTML
17、到到XML The Challenges and Opportunities of the Global Software Industry. 软件产业的网络化趋势软件产业的网络化趋势 软件产业的服务化趋势软件产业的服务化趋势 软件产业的全球化趋势软件产业的全球化趋势 相对目前相对目前“打打包式包式”软件,为用户软件,为用户提供智能化的提供智能化的“服务服务式式”软件。软件。 The Challenges and Opportunities of the Global Software Industry. 软件产业的网络化趋势软件产业的网络化趋势 软件产业的服务化趋势软件产业的服务化趋势 软件
18、产业的全球化趋势软件产业的全球化趋势强调开放性、交互性强调开放性、交互性支持主流的开放式标准支持主流的开放式标准人才的全球化人才的全球化对中国软件企业有什么启示和挑战?对中国软件企业有什么启示和挑战? Talent Beyond Technology _What Kind of Talent We Need for Modern Software Development扎实的基础扎实的基础创新、独立的工作能力创新、独立的工作能力主人翁精神和团队精神主人翁精神和团队精神勾通与协调能力勾通与协调能力成就感强、有激情成就感强、有激情自觉地干好工作自觉地干好工作契而不舍,从错误中学习契而不舍,从错误中
19、学习 我国复合型软件人才匮乏我国复合型软件人才匮乏, ,培养适应迅速培养适应迅速变化的市场需求的复合型软件人才已是迫在变化的市场需求的复合型软件人才已是迫在眉睫。眉睫。 复合型软件人才复合型软件人才具备不同专业背景、有市具备不同专业背景、有市场观念的开发管理、工程管理和软件经营等复合场观念的开发管理、工程管理和软件经营等复合型软件人才;型软件人才;2.2.软件需求分析很困难,不管三七二十一先软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随把软件做了再说,反正软件是灵活的,随时可以修改。时可以修改。 1.1.只要掌握了只要掌握了1-21-2门程序设计语言,进行软门程序设计
20、语言,进行软件开发就没有问题。件开发就没有问题。总之,错误认为:软件就是程序,开发软件就是总之,错误认为:软件就是程序,开发软件就是编写程序。编写程序。3.只要有最好的开发工具、最好的计算机,只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。一定能做出优秀的软件。1. 传统的软件工程方法传统的软件工程方法2. 面向对象的建模技术面向对象的建模技术UML统一建模语言统一建模语言3. 软件项目管理及软件项目管理及CMMI4. 软件复用及构件工程软件复用及构件工程 本课程以传统的软件工程技术为基础,主要本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最新技术讨论如何应用软件工程的
21、最新技术 UML统一统一建模语言进行软件开发,提高软件开发的水平和建模语言进行软件开发,提高软件开发的水平和技术。技术。作者:齐治昌、宁洪作者:齐治昌、宁洪出版社:高等教育出版社出版社:高等教育出版社ISBN:9787040146288面向面向21世纪课程教材、国家精品世纪课程教材、国家精品课程配套教材课程配套教材 作者:许家珆作者:许家珆主编主编白忠建白忠建,彭德中彭德中,吴磊编写吴磊编写出版社:电子工业出版社出版社:电子工业出版社SoftwareEngineering,6thEdition作者:作者:(英)(英)IanSommerville出版社:机械工业出版社出版社:机械工业出版社(影印
22、版)(影印版)本书是英国著名软件工程学家本书是英国著名软件工程学家IanSommerville系统介绍软件工程系统介绍软件工程理论的力作,以要求极高的一类系理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件统为实例,精辟透彻地阐述了软件工程的内涵。工程的内涵。http:/ 软件工程网软件工程网卡内基梅大学软件工程研究所卡内基梅大学软件工程研究所/ 对象技术和构件技术对象技术和构件技术链接链接 Rational公司公司 OMG(Object Management Group
23、)http:/ 软件工程网软件工程网卡内基梅大学软件工程研究所卡内基梅大学软件工程研究所/ 对象技术和构件技术对象技术和构件技术链接链接 Rational公司公司1 软件的概念;软件的概念; 软件的特点;软件的特点; 软件的分类;软件的分类; 软件的发展;软件的发展; 软件危机。软件危机。 软件是计算机系统的重要组成部分;软件是计算机系统的重要组成部分; 软件是逻辑产品,需要计算机硬件和系统软软件是逻辑产品,需要计算机硬件和系统软件的支撑;件的支撑; 软件是计算机控制系统的指挥中枢;软件是计算机控制系统的指挥中枢;
24、 软件是信息转换器,它能对信息进行加工、软件是信息转换器,它能对信息进行加工、处理或变换;处理或变换; 软件是工具,在人们的生活、工作、休闲,软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;术、教育中发挥具大作用;计算机世界的软件计算机世界的软件 软件是能够完成预定功能和性能,并对相软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操应数据进行加工的程序和描述程序及其操作的文档。作的文档。 软件软件 = 程序程序+数据数据+文档文档 程序程序 = 算法算法+数据结构数据结构 软件是被开
25、发或设计的软件是被开发或设计的,而不是传统意义上而不是传统意义上被制造的被制造的 软件不会软件不会”磨损磨损” 软件产业逐步走向基于构件的组装软件产业逐步走向基于构件的组装,但还是但还是定制的定制的 软件由程序、数据、文档软件由程序、数据、文档 组成。组成。数据数据 用程序设计语言要求的数据结构表示用程序设计语言要求的数据结构表示文档文档 规范规范 准确准确 清晰清晰 简洁简洁 无歧义无歧义 自然语言自然语言 结构化英语结构化英语 图表图表 程序设计语言程序设计语言 面向机器面向机器 汇编语言、机器语言等汇编语言、机器语言等 面向过程面向过程 Fortran, Pascal, C等等 面向对象
26、面向对象 C+, Java等等 面向问题面向问题 结构化查询语言结构化查询语言SQL等等系统软件系统软件 实时软件实时软件 商务软件商务软件 工程和科学计算软件工程和科学计算软件 嵌入式软件嵌入式软件 人工智能软件人工智能软件 个人计算机软件个人计算机软件软件发展的四个阶段软件发展的四个阶段1950-1965 没有系统的软件开发方法和管理机制、自定义软件、批没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布。处理、有限分布。1965-1975 产生人机交互的新概念、新技术软件产品、多用户、实产生人机交互的新概念、新技术软件产品、多用户、实时、数据库。时、数据库。1973-1988
27、微处理器的出现并广泛应用微处理器的出现并广泛应用 分布式系统、嵌入智能、低成本硬件、消费者的影响。分布式系统、嵌入智能、低成本硬件、消费者的影响。1986-2000 广域和局域网络迅速普及广域和局域网络迅速普及 强大的桌面系统、面向对象技术、专家系统、人工智能、强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网络计算机。神经网络、并行计算、网络计算机。 软件开发能力不能满足人们的需要。软件开发能力不能满足人们的需要。 社会对软件的依赖程度加大,人们普遍关注软件社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性的安全和可靠性 建造高可靠性、高质量软件的任务任重道远。建
28、造高可靠性、高质量软件的任务任重道远。 若干年前开发的应用软件经过几十次修改已无人若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。认识它的内部结构,己经不可维护。 由于经济原因由于经济原因,嵌入式系统存在许多怪现象,企嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁业不愿意投入资源再生产,而采取打补丁+时髦时髦界面的方法。界面的方法。软件危机的表现软件危机的表现软件产业的发展长期滞后,与硬件发展不协调。软件产业的发展长期滞后,与硬件发展不协调。软件开发成本过高软件开发成本过高软件质量得不到保证软件质量得不到保证软件开发效率低软件开发效率低难以控制开发进
29、度,工作量估计困难难以控制开发进度,工作量估计困难 软件不能满足社会发展的需求,成为软件不能满足社会发展的需求,成为社会、经济发展的制约因素社会、经济发展的制约因素 软件的规模加大、复杂性提高、性能增强软件的规模加大、复杂性提高、性能增强 软件是逻辑产品软件是逻辑产品, 尚未完全认识其本质和特点尚未完全认识其本质和特点 缺乏有效的、系统的开发、维护大型软件项目的缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法技术手段和管理方法 用户对软件需求的描述和软件开发人员对需求的用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开理解往往存在差异,用户经常要求
30、修改需求,开发人员很难适应发人员很难适应 软件开发的技术人员和管理人员缺乏软件工程化软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足的素质和要求,对工程化的开销认识不足 软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段: 6060年代末到年代末到7070年代为了年代为了克 服克 服 “” (Software crisis)(Software crisis)提出提出“软件工程软件工程”的名词的名词, , 将软将软件开发纳入工程化的轨道,件开发纳入工程化的轨道,基本形成软件工
31、程的概念、基本形成软件工程的概念、框架、技术和方法。称为框架、技术和方法。称为传传统统的软件工程的软件工程软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段: 8080年代中到年代中到9090年代,面向对象年代,面向对象的方法与技术得到发展,研究的重的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。系统的技术体系,称为对象工程。软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段: 8080年代中开始,年代中开始,人们在软件开发
32、人们在软件开发的实践过程中认识到:提高软件生产的实践过程中认识到:提高软件生产率,保证软件质量的关键是率,保证软件质量的关键是“软件过软件过程程”,是软件开发和维护中的管理和,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。支持能力,逐步形成软件过程工程。软件工程的发展已经历了四个重要阶段:软件工程的发展已经历了四个重要阶段:90起年代,基于构件(起年代,基于构件(Component)的开发方法取得重要进展,软件系统的的开发方法取得重要进展,软件系统的开发可开发可通过使用现成的可复用构件组装通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到完成,而无需从头开始构造,以此达
33、到提高效率和质量,降低成本的目的。称提高效率和质量,降低成本的目的。称为为构件工程。构件工程。软件工程软件工程是一门新兴的边缘学科是一门新兴的边缘学科, ,涉及的学科多,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:研究的范围广,研究的主要内容有以下几方面:软件开发技术软件开发技术软件管理技术软件管理技术为了克服软件危机,人们从其他产业的工业化为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在生产得到启示,于是在68年北大西洋公约的软件可年北大西洋公约的软件可靠性会议(靠性会议(NATO)上,首次提出了)上,首次提出了“软件工程软件工程”的概念。提出了在软件生产中采用工程化
34、的方法,的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。这种工程化的思想贯穿到软件开发和维护的全过程。是指在软件工具的支持下,所进行的一系列软是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。件开发和进化的活动。通常包括以下四类基本过程:通常包括以下四类基本过程:1 1、软件规格说明:、软件规格说明:规定软件的功能及其运行环境。规定软件的功能及其运行环境。2 2、软件开发:、软件开发:产生满足规格说明的软件。产生满足规格说明的软件。3 3、软件确认:、
35、软件确认:确认软件能够完成客户提出的要求。确认软件能够完成客户提出的要求。4 4、软件演进:、软件演进:为满足客户的变更要求,软件必须在为满足客户的变更要求,软件必须在使用的过程中演进。使用的过程中演进。工具工具和设备和设备有技能经过培有技能经过培训的开发人员训的开发人员软件工程软件工程过程过程方法方法工具工具软件工程釆用层次化的方法软件工程釆用层次化的方法,每个层次都包括过程、每个层次都包括过程、方法、工具三要素。方法、工具三要素。开发开发时期时期运行运行时期时期计划计划时期时期( (目标与范围说明书目标与范围说明书) )( (可行性论证论告可行性论证论告) )( (维护报告维护报告) )(
36、 (测试报告测试报告) )( (程序程序) )( (设计文档设计文档) )( (需求说明书需求说明书) )瀑布模型软件开发模型是描述软件开发过程中各种活动如软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为何执行的模型。因此又称为软件过程模型软件过程模型。软件过程模型是对软件开发实际过程的抽象和软件过程模型是对软件开发实际过程的抽象和简化。简化。目前典型的软件开发模型有:目前典型的软件开发模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。不同的开发方
37、法有不同的软件过程模型。 软件过程模型是软件开发全过程、软件开软件过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架发活动以及它们之间关系的结构框架 软件项目的管理提供里程碑和进度表软件项目的管理提供里程碑和进度表 为软件开发提供原则和方法为软件开发提供原则和方法 以软件需求完全确定为前提的以软件需求完全确定为前提的瀑布模型瀑布模型 在软件开发初期只能提供基本需求所采在软件开发初期只能提供基本需求所采用的渐进式开发模型如用的渐进式开发模型如原型模型、螺旋原型模型、螺旋模型、增量模型、并发开发模型模型、增量模型、并发开发模型 以形式化开发方法为基础的以形式化开发方法为基础的变换模型
38、变换模型 基于构件的开发过程基于构件的开发过程 敏捷开发过程敏捷开发过程-统一软件开发过程统一软件开发过程RUP开发开发时期时期运行运行时期时期计划计划时期时期( (目标与范围说明书目标与范围说明书) )( (可行性论证论告可行性论证论告) )( (维护报告维护报告) )( (测试报告测试报告) )( (程序程序) )( (设计文档设计文档) )( (需求说明书需求说明书) )瀑布模型 软件开发过程与软件生命周期是一致的软件开发过程与软件生命周期是一致的 相邻二阶段之间存在因果关系相邻二阶段之间存在因果关系 需对阶段性产品进行评审需对阶段性产品进行评审 软件生命周期模软件生命周期模型型,使软件
39、开发过程可以在使软件开发过程可以在分析、设计、编码、测试和维护的框架下分析、设计、编码、测试和维护的框架下进行;进行; 软件开发过程具有系统性、可控性,克服软件开发过程具有系统性、可控性,克服了软件开发的随意性了软件开发的随意性 。 项目开始阶段用户很难精确的提出产品需求,项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改由于技术进步,用户对系统深入的理解,修改需求十分普遍。需求十分普遍。 项目开发晚期才能得到程序的运行版本,这时项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。修改软件需求和开发中的错误代价很大。 采用线性模型组织项目开
40、发经常发生开发小组采用线性模型组织项目开发经常发生开发小组人员人员“堵塞状态堵塞状态”,特别是项目的开始和结束。,特别是项目的开始和结束。增量模型是一种非整体开发的模型。是一种进增量模型是一种非整体开发的模型。是一种进化式的开发过程。化式的开发过程。根据增量的方式和形式的不同,分为:根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于瀑布模型的渐增模型基于原型的快速原型模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。明确、设计方案有一定风险的软件项目。 增量增量 小而可用的软件小而可用的软件
41、特点特点 在前面增量的基础上开发后面的增量在前面增量的基础上开发后面的增量 每个增量的开发可用瀑布或快速原型模型每个增量的开发可用瀑布或快速原型模型 迭代的思路迭代的思路需求分析需求分析设计设计编码编码测试测试运行运行评价评价计划计划循环模型 速成原型的工作模型是一个循速成原型的工作模型是一个循环的模型。环的模型。1.1.快速分析快速分析 快速确定软件系统的快速确定软件系统的基本要求,确定原型所要体现的特基本要求,确定原型所要体现的特征征( (界面,总体结构,功能,性能界面,总体结构,功能,性能) )2.2.构造原型构造原型 考虑主要特征,快速考虑主要特征,快速构造一个可运行的系统。有三类原构
42、造一个可运行的系统。有三类原型:用户界面原型,功能原型,性型:用户界面原型,功能原型,性能原型。能原型。3.3.运行和评价原型运行和评价原型 4.4.修改与改进修改与改进原型的工作模型运行运行评价评价构造构造快速分析修改快速分析修改获取需求获取需求需求分析需求分析具体描述具体描述优化优化程序程序调整调整验证验证维护维护知识库知识库专家系统专家系统程序程序也称为基于知识的软件开发模型,是知识工程也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。与软件工程相结合的软件开发模型。智能模型软件开发的目标是要在规定的投资和时间内,软件开发的目标是要在规定的投资和时间内,开发出符合用
43、户的需求,高质量的软件,为此需开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。要有成功的开发方法。面向过程的开发方法面向过程的开发方法面向对象的开发方法面向对象的开发方法是现有的软件开发方法中最成熟,应用最广泛的是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。它的基本原则是功能的分解与抽象。 结构化程序设计方法结构化程序设计方法 SP法(法(Structured Program) 结构化设计方法结构化设计
44、方法 SD法(法(Structured Design) 结构化分析方法结构化分析方法 SA法(法(Structured Analysis)SA,SD,SP 法相互衔接,形成了法相互衔接,形成了一整套开发方法。一整套开发方法。什么是原型化方法什么是原型化方法原型原型是软件的一个早期是软件的一个早期的版本,它的版本,它反映了最终系统的部分重要特性。反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。个可运行的系统,使用户及早获得学习的机会。 原 型 化 方 法 又 称 速 成 原 型 法 (原 型 化 方 法 又 称 速 成 原 型 法 ( R a p i d Prototyping)。)。1、废弃(、废弃(throw away)型)型 )快速建)快速建立需求规格原型。立需求规格原型。 2、追加(、追加(add on)型)型法。采用循环渐进的开发方式,对系统模法。采用循环渐进的开发方式,对系统模型作连续精化。型作连续精化。YYNNYN细化的快速原型模型快速分析或修改快速分析或修改评价评价构造构造运运行行 原型模型支持软件需求开发,帮助用户和开发人原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。员理解需求,是软件需求工程的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园中班防溺水演练活动方案
- 2023-2028年中国榴莲干行业发展前景预测及投资战略规划研究报告
- 2022-2027年中国智慧商城建设行业市场运行现状及投资战略研究报告
- 股指期货套期保值策略的操作方案与实例详解
- 2025年中国汽车水泵市场调查研究及行业投资潜力预测报告
- 幼儿园师德师风专题培训方案
- 中国陶瓷行业市场发展监测及投资战略规划研究报告
- 衡水职教高考数学试卷
- 2025年中国多功能铣床行业市场调查研究及发展战略规划报告
- 中国裁剪桌行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 《国有企业管理人员处分条例》考试题库200题(含答案)
- 手术室甲状腺术中护理
- 安全与急救学习通超星期末考试答案章节答案2024年
- 酒店贵重物品寄存室管理制度
- 医用气体管道专业施工方案
- 【正版授权】 ISO 13408-5:2006 EN Aseptic processing of health care products - Part 5: Sterilization in place
- 二下《第五单元 混合运算 乘除法和加减法混合运算》课件
- 消化道出血介入栓塞术
- 填料塔的设计
- 美学与人生智慧树知到期末考试答案2024年
- 设计公司股东协议书
评论
0/150
提交评论