




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章第一章 软件工程现状及发展软件工程现状及发展 1高级软件工程(第一章)软件工程现状及发展课件(2018)2 2参考资料参考资料 系统分析与设计导论系统分析与设计导论,(美),(美)Jeffrey L. Jeffrey L. WhittenWhitten等著等著 ,机械工业出版社。,机械工业出版社。 ( (美美)Roger S.Pressman)Roger S.Pressman著,郑人杰等译,软件工程著,郑人杰等译,软件工程: :实践者的研究方法实践者的研究方法( (原书第原书第8 8版版本科教学版本科教学版) ),机械工,机械工业出版社。业出版社。 Joey George Joey Ge
2、orge 等著,龚晓庆等著,龚晓庆 等译,面向对象分析与设等译,面向对象分析与设计(原书第计(原书第2 2版),清华大学出版社。版),清华大学出版社。 秦航,软件设计和体系结构,清华大学出版社秦航,软件设计和体系结构,清华大学出版社。 张友生,软件体系结构原理、方法与实践(第张友生,软件体系结构原理、方法与实践(第2 2版),版),清华大学出版社清华大学出版社。3 3网上参考资料网上参考资料学生上网查找、收集学生上网查找、收集4什么是软件?什么是软件?软件软件是指计算机是指计算机程序程序、运行程序所需的、运行程序所需的数数据据、与程序有关的、与程序有关的文档资料文档资料的总称。的总称。“软件软
3、件” 强调的产品、工程、产业或学科层面强调的产品、工程、产业或学科层面“程序程序”更侧重技术层面的含义更侧重技术层面的含义运行程序所需的数据运行程序所需的数据计算机程序计算机程序文档文档5软件的特点软件的特点软件是一种软件是一种逻辑实体逻辑实体,而不是具体的物理实,而不是具体的物理实体。因而它具有抽象性;体。因而它具有抽象性;软件的生产与硬件不同,在它的开发过程中软件的生产与硬件不同,在它的开发过程中没有明显的制造过程;没有明显的制造过程;在软件的运行和使用期间,在软件的运行和使用期间,没有硬件那样的没有硬件那样的机械磨损,老化问题。机械磨损,老化问题。6软件的特点(续)软件的特点(续)软件的
4、开发和运行常受到计算机系统的限制,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性对计算机系统有着不同程度的依赖性软件的开发至今软件的开发至今尚未完全摆脱手工艺的开发方尚未完全摆脱手工艺的开发方式式软件本身是复杂的软件本身是复杂的u 实际问题的复杂性实际问题的复杂性u 程序逻辑结构的复杂性程序逻辑结构的复杂性 软件成本相当昂贵软件成本相当昂贵相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素7软件开发技术的发展过程软件开发技术的发展过程1950-19601950-1960年代:年代: 软件软件= =程序程序(Program) (Program) 面向过程的软件
5、面向过程的软件= =算法算法(Algorithm)+(Algorithm)+数据结构数据结构(Data Structure) (Data Structure) 19701970年代:年代: 软件软件= =程序程序(Program)+(Program)+文档文档(Document) (Document) 软件软件= =程序程序(Program)+(Program)+文档文档(Document)+(Document)+数据数据(Data) (Data) 19801980年代:年代: 面向对象的软件面向对象的软件= =对象对象(Object)+(Object)+消息消息(Message) (Mess
6、age) 19901990年代年代至今:至今: 面向构件的软件面向构件的软件= =构件构件(Component)+(Component)+框架框架(Framework) (Framework) 面向服务的软件面向服务的软件= =服务服务(Service)+(Service)+消息消息(Message)+(Message)+总线总线(Bus) (Bus) 8软件危机软件危机 软件危机:计算机软件的开发和维护过程所遇到的一软件危机:计算机软件的开发和维护过程所遇到的一系列严重问题;系列严重问题; 软件危机的表现:软件危机的表现: - 对软件开发成本和进度的估算很不准确对软件开发成本和进度的估算很不
7、准确,甚至严重拖,甚至严重拖期和超出预算;期和超出预算; - 无法满足用户需求,导致用户很不满意;无法满足用户需求,导致用户很不满意; - 质量很不可靠,经常失效;质量很不可靠,经常失效; - 难以更改、调试和增强;难以更改、调试和增强; - 没有适当的文档;没有适当的文档; - 软件成本比重上升;软件成本比重上升; - 软件开发生产率跟不上计算机应用迅速深入的趋势。软件开发生产率跟不上计算机应用迅速深入的趋势。 9什么是软件工程?什么是软件工程? 软件工程是一种工程形式,它运用计算机科学和数学软件工程是一种工程形式,它运用计算机科学和数学原理,针对软件问题获得一种经济有效的解决方案。原理,针
8、对软件问题获得一种经济有效的解决方案。用系统的、规范的、可度量的方法,开发、运行和维用系统的、规范的、可度量的方法,开发、运行和维护软件。护软件。软件工程最基本的核心软件工程最基本的核心质量和生产率。质量和生产率。软件工程是一门非常强调实践的学科(最佳实践)。软件工程是一门非常强调实践的学科(最佳实践)。 软件工程是采用系统工程学和管理学相结合的软件工程是采用系统工程学和管理学相结合的原理、方法和技术来指导、管理和实施软件的原理、方法和技术来指导、管理和实施软件的各种活动,包括软件开发、运行、维护和服务各种活动,包括软件开发、运行、维护和服务等。等。10什么是高质量和生产率什么是高质量和生产率
9、?高质量就是最大程度地满足客户需求、帮助高质量就是最大程度地满足客户需求、帮助客户获得成功;客户获得成功; 高生产力就是以最小的成本获得最好的收益高生产力就是以最小的成本获得最好的收益,即在规定的时间和预算之内完成软件开发,即在规定的时间和预算之内完成软件开发、维护和服务等任务、维护和服务等任务 。11如何理解软件工程的基本思想?如何理解软件工程的基本思想?将软件看成一个系统将软件看成一个系统通过迭代来完善软件系统,逐渐逼近客户的需求通过迭代来完善软件系统,逐渐逼近客户的需求软件开发是工程和艺术的统一、创造性和规范性软件开发是工程和艺术的统一、创造性和规范性的统一的统一过程决定产品,持续改进过
10、程过程决定产品,持续改进过程质量以预防为主、重在文化建设质量以预防为主、重在文化建设以客户为中心、软件即服务以客户为中心、软件即服务个人和团队并重个人和团队并重向传统的成熟工业学习向传统的成熟工业学习适合自己的,才是最好的适合自己的,才是最好的12软件工程的四个要素软件工程的四个要素 管理:针对不同的领域建立目标、标准和规则管理:针对不同的领域建立目标、标准和规则过程:定义完成软件各项任务的工作阶段、内过程:定义完成软件各项任务的工作阶段、内容、流程、阶段性成果和验收要求容、流程、阶段性成果和验收要求方法:软件开发、运行和维护等所需的技术方方法:软件开发、运行和维护等所需的技术方法法工具:为方
11、法的运用提供自动或半自动的软件工具:为方法的运用提供自动或半自动的软件支撑环境支撑环境13软件过程基本概念软件过程基本概念过程过程是针对一个给定目标的一系列运作步骤,是针对一个给定目标的一系列运作步骤,是在过程环境下的一系列有序活动;是在过程环境下的一系列有序活动;活动活动是过程对象一次状态改变,也叫过程步;是过程对象一次状态改变,也叫过程步;任务任务是完成活动所需要的原子动作。是完成活动所需要的原子动作。如,实现(或构造)是属于开发过程的一个活动,而详如,实现(或构造)是属于开发过程的一个活动,而详细设计、设计复审、编码、测试计划以及规范开发、细设计、设计复审、编码、测试计划以及规范开发、代
12、码复审和测试等都被看作是任务,实现(活动)由代码复审和测试等都被看作是任务,实现(活动)由这些任务构成这些任务构成14软件生产的问题软件生产的问题用户对生产出的软件不满意用户对生产出的软件不满意开发人员往往不注重或不善于和客户交流,找开发人员往往不注重或不善于和客户交流,找出客户真正需要的东西,匆忙地进行开发,在出客户真正需要的东西,匆忙地进行开发,在开地过程中又不能从客户那里得到反馈信息,开地过程中又不能从客户那里得到反馈信息,最后生产出的软件和客户想要的相差很远,难最后生产出的软件和客户想要的相差很远,难免出现纠纷。免出现纠纷。15软件生产问题的原因软件生产问题的原因软件需求不充分软件需求
13、不充分没有将问题搞清楚就匆忙上马,在开发过程中没有将问题搞清楚就匆忙上马,在开发过程中又不能和客户有效地沟通,许多问题在交付软又不能和客户有效地沟通,许多问题在交付软件时才集中地爆发出来,这时候已经是大势已件时才集中地爆发出来,这时候已经是大势已去,难以挽回了(在实际的软件开发中,去,难以挽回了(在实际的软件开发中,首先首先应该满足的是客户的需要应该满足的是客户的需要,开发软件不是为了,开发软件不是为了展示个人的技巧。)展示个人的技巧。)16软件发展趋势软件发展趋势遗留软件将继续发挥作用。遗留软件将继续发挥作用。软件应用范围将继续扩大,成为信息社软件应用范围将继续扩大,成为信息社会的基础设施。
14、会的基础设施。网络化软件将是发展重点。网络化软件将是发展重点。软件的可靠性与安全性日趋重要。软件的可靠性与安全性日趋重要。工业化生产是必由之路。工业化生产是必由之路。17软件工程技术的发展软件工程技术的发展分布式对象技术分布式对象技术pMicrosoft COM/DCOM/COM+Microsoft COM/DCOM/COM+pOMG CORBA(Common Object Request OMG CORBA(Common Object Request Broker Architecture)Broker Architecture)pSun Microsystem JavaBeanSun Mi
15、crosystem JavaBean18软件工程技术的发展软件工程技术的发展软件复用技术软件复用技术pPattern(analysis, design, process)Pattern(analysis, design, process)pFrameworkFrameworkp基于构件的开发基于构件的开发19基于云计算平台进行软件开发基于云计算平台进行软件开发微软云计算平台服务 阿里巴巴云计算平台服务 20现代软件开发对人才的要求现代软件开发对人才的要求扎实的基础扎实的基础创新、独立的工作能力创新、独立的工作能力主人翁精神和团队精神主人翁精神和团队精神沟通与协调能力沟通与协调能力成就感强、有激
16、情成就感强、有激情自觉地干好工作自觉地干好工作锲而不舍,从错误中学习锲而不舍,从错误中学习21软件开发中的错误观点软件开发中的错误观点只要掌握了只要掌握了1-21-2门程序设计语言,进行软件开发就没有门程序设计语言,进行软件开发就没有问题。问题。软件需求分析很困难,不管三七二十一先把软件做了软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。软件需求再说,反正软件是灵活的,随时可以修改。软件需求分析很困难,不管三七二十一先把软件做了再说,反分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。正软件是灵活的,随时可以修改。只要有最好的开发工具、最好的计算机,一定能做出只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。只要有最好的开发工具、最好的计算机优秀的软件。只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。,一定能做出优秀的软件。总之,错误认为:软件就是程序,开发软件就是编写总之,错误认为:软件就是程序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论