




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程主讲人:王玉林Email:wyl@软件工程主讲人:王玉林课程简介课程类别必修课考试方式闭卷成绩构成平时10%+期中20%+实验(包含项目)20%+期末50%学时:32+16(信安)或48+16(软件)课程简介课程类别2课程简介教材软件工程:共同演进的方法介绍田文洪王玉林周俊临等人编著机械工业出版社出版说明:当前正在出版!参考资料软件工程——实践者的研究方法
R.S.Pressman机械工业出版社
AnintroductiontoSoftwareEngineeringIanSommerville机械工业出版社课程简介教材3课程简介主要内容介绍职业化、规范化的软件开发概念,原则,方法和实践。包括介绍软件产品的特点;软件工程的历史发展背景;软件过程模型;软件工程分析,设计和测试等实践原则和方法;软件项目管理(计划,管理和控制,风险,配置等)基本概念和方法主要要求通过本课程的学习,可使学生了解软件工程的基本知识和方法,熟悉软件工程的各种环节(需求分析,设计,编码,测试,部署等)。掌握软件工程传统经典和现代高级的理论和方法,并能应用到实际的软件项目开发中
课程简介主要内容4软件工程知识机构杨芙清院士提出的软件工程体系结构软件工程知识机构杨芙清院士提出的软件工程体系结构5软件工程过程分析,设计,编码,测试(四分法)背景,需求分析,过程模型,模型设计,计划,实施,测试,部署(主要阶段)软件工程过程分析,设计,编码,测试(四分法)6软件工程知识体系软件工程知识体系(IEEE)需求构建测试维护配置管理过程质量工程管理工具设计软件工程知识体系软件工程知识体系(IEEE)需求构建测试维护7第一章软件工程简介软件的相关知识介绍1软件工程的原则4软件工程的相关课题5软件工程的概念3软件危机2小结6第一章软件工程简介软件的相关知识介绍1软件工程的原则4软件本章学习目标123了解本课程的主要内容以及他们之间的关系。理解软件的特征和分类。理解软件和软件工程的概念。本章学习目标123了解本课程的主要内容以及他们之间的关系。理程序软件可执行部分不可执行部分文档1文档2文档3什么是软件?软件定义:软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料程序软件可执行部分不可执行部分文档1文档2文档3什么软件的特征软件是逻辑的,而不是物理的软件是开发的或者是工程化的,并不是制造的软件开发环境对产品影响较大软件开发时间和工作量难以估计软件会多次修改软件的开发进度几何没有客观衡量标准软件测试困难软件不会磨损和老化软件维护易产生新的问题软件生产是简单的拷贝软件的特征软件是逻辑的,而不是物理的软件双重作用软件是一种产品,也是开发其他软件产品的工具支持或直接提供系统所需的功能控制(如操作系统)其他程序改善通信(如,网络软件)帮助开发其它软件(例如,软件开发工具)许多其它功能软件双重作用软件是一种产品,也是开发其他软件产品的工具软件的分类系统软件(操作系统)应用软件(办公软件)工程/科学软件(Matlab,Maple)嵌入式软件(iPod,iphone)产品线软件(Intel,Simens)Web应用(Webapplications)普适计算—无线网络网络资源—网络作为一个计算引擎开放源码(好事,也是一种潜在的祸根!)网格计算/云计算软件的分类系统软件(操作系统)软件的发展50’中期~60’中期60’中期~70’中期70’中期~80’中期80’中期~现在产业化工程作坊式个体化软件的发展50’中期~60’中期产业化为什么发展如此之快计算需求:软件必须适应新的计算环境或技术;业务要求:软件必须改善,以实现新的业务需求;嵌入式需求:软件必须扩展,以满足和新一代系统或数据库之间的互操作性;架构需求:软件必须重新设计,使其在新的网络环境是可用的。为什么发展如此之快计算需求:软件必须适应新的计算环境或技术;软件技术面临的问题
规模越来越大复杂性越来越高生产率
要求越来越高天才程序员??软件技术面临的问题规模天才程序员??效率和质量定义在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机软件危机的具体表现:·开发成本和进度估计不准·用户对“已完成的”软件系统不满意·软件质量往往靠不住·软件常常是不可维护的·软件通常没有适当的文档资料·软件成本逐年上升·软件开发生产率滞后于硬件和计算机应用普及效率和质量定义在计算机软件的开发和维护过程中所遇到的一系硬件/软件成本变化趋势
硬件
软件
100%0%195519701985硬件/软件成本变化趋势100%0%1955197019软件技术进步落后于需求增长软件技术进步落后于需求增长产生软件危机的原因原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护产生软件危机的原因原因
缓解软件危机?第一章软件工程概述-课件
消除软件危机的途径软件工程!!!
对计算机软件有一个正确的认识(软件≠程序)
必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。
消除软件危机的途径软件工程!!!软件工程的定义定义IEEE计算机协会将软件工程定义为:(1)应用系统化的、科学化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。(2)对(1)中各种方法的研究。
目标软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件。软件工程的定义定义IEEE计算机协会将软件工程定义为:(1)软件工程—一种层次化技术工具方法过程质量焦点软件工程层次图软件工程三个要素:方法、工具、过程软件工程—一种层次化技术工具方法过程质量焦点软件工程层次软件工程的发展已经历了四个重要阶段:4.第四代软件工程
—
构件工程3.第三代软件工程
—
过程工程2.第二代软件工程
—
对象工程1.第一代软件工程
—
传统的软件工程软件工程的发展已经历了四个重要阶段:4.第四代软件工程—软件工程的发展已经历了四个重要阶段:1.第一代软件工程
—
传统的软件工程2.第二代软件工程
—
对象工程3.第三代软件工程
—
过程工程4.第四代软件工程
—
构件工程60年代末到70年代为了克服“软件危机”
(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。软件工程的发展已经历了四个重要阶段:60年代末到70年软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。软件工程的发展已经历了四个重要阶段:80年代中到90软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。软件工程的发展已经历了四个重要阶段:80年代中开始,软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。软件工程的发展已经历了四个重要阶段:90起年代,软件工程的7个原则B.W.Boehm于1983年总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。使用阶段性生命周期计划的管理进行连续的验证保证严格的产品控制使用现代编程工具/工程实践保持清晰的责任分配用更好更少的人保持过程改进软件工程的7个原则B.W.Boehm于1983年总结了开软件工程知识体系软件工程知识体系(IEEE)SoftwareEngineeringBodyofKnowledge需求构建测试维护配置管理过程质量工程管理工具(编码,测试等)设计软件工程知识体系软件工程知识体系(IEEE)Softwar软件知识体系及其关联软件构造软件设计软件测试软件维护过程管理软件项目管理方法与工具软件质量软件安全软件需求交付升级软件知识体系及其关联软件构造软件设计软件测试软件维护过程管理软件工程是一门交叉学科计算机工程计算机科学管理学数学项目管理质量科学软件工程学系统工程。。。软件工程是一门交叉学科计算机工程一些对软件工程的误解(1)M代表误解,R代表现实。管理方面的误解:M1:我们已经有一本关于软件生产的标准和过程的书,这还不能让我们学习到需要的知识吗?R1:相比最新的大型主机,工作站和PC,这会使我们在做高质量软件开发时花费得更多。M2:如果我们项目进度落后了,可以加入更多的程序员来赶进度。R2:软件开发的机制和手工作业不一样。在一个延迟了的软件项目中加入新的开发人员只会让它延迟更多。M3:如果我们将软件项目外包给第三方,我们就轻松了,让那个公司去完成它吧。R3:如果组织管理方不懂得如何从内部管理和控制软件项目,即使将项目外包也无济于事。一些对软件工程的误解(1)M代表误解,R代表现实。一些对软件工程的误解(2)客户:由于用户不正确的期望,最后导致对开发人员的不满。
M1:对目标的一般陈述就足以开始编程,我们可以今后再补充细节。
R1:前期糟糕的项目需求定义,是导致软件失败的主要原因。M2:项目需求的确在不断变化,但变化所产生的影响是根据变化提出的时间不同而不同的。一些对软件工程的误解(2)客户:由于用户不正确的期望,最后导需求变化的影响需求变化的影响一些对软件工程的误解(3)实践者:软件从业者积累了50年的编程文化。在早期的软件开发中,编程被视为一种艺术形式。M1:一旦我们编程完毕并成功运行,我们的工作就结束了。
R1:“越早开始写代码,我们就会花费越长的时间去完成它”。工业数据显示,软件开发60%-80%的精力将耗费在软件首次提交给用户以后。
M2:当我的程序运行之前,我没有办法评估它的质量。
R2:一个最有效的软件质量保证机制应当在项目的正式开始启动时——可以通过技术报告体现。一些对软件工程的误解(3)实践者:软件从业者积累了50年
M3:唯一可交付的工作成果是一个成功运行的项目程序。
R3:一个可运行的程序只是软件结构的一部分,它还包含了许多其它因素。
M4:软件工程将会让我们去创建大量不必要的文档,并且总是使我们的进度放慢。软件工程仅仅是文档而已。R4:软件工程并不是创建文档,而是创建质量。更好的质量减少返工的概率。更少返工会让项目更早交付。所有的文档都是提高团队沟通和质量所必须的。M3:唯一可交付的工作成果是一个成功运行的项目程序。软件工程职业道德和责任规范公众:以公众利益为目标
客户和雇主:满足其最大利益产品:符合专业标准判断:完整性和独立性管理:软件项目经理和领导人专业:完整性和声誉同行:平等互助支持自我:自我约束、自我激励软件工程职业道德和责任规范公众:以公众利益为目标本章小结软件工程的目标是提供一个系统框架,用于建立高质量的软件。软件:随着解决特定问题和行业自身的信息分析工具变化而演进早期的“编程”文化和历史造成了一系列的问题,这些问题延续至今需要学习如何建立高品质和大规模的软件本章小结软件工程的目标是提供一个系统框架,用于建立高质量的软作业1.什么是软件?2.什么是软件工程?3.软件工程具有哪些特点?4.什么是导致软件危机的主要原因?5.为什么职业道德和责任十分重要?作业1.什么是软件?软件工程主讲人:王玉林Email:wyl@软件工程主讲人:王玉林课程简介课程类别必修课考试方式闭卷成绩构成平时10%+期中20%+实验(包含项目)20%+期末50%学时:32+16(信安)或48+16(软件)课程简介课程类别43课程简介教材软件工程:共同演进的方法介绍田文洪王玉林周俊临等人编著机械工业出版社出版说明:当前正在出版!参考资料软件工程——实践者的研究方法
R.S.Pressman机械工业出版社
AnintroductiontoSoftwareEngineeringIanSommerville机械工业出版社课程简介教材44课程简介主要内容介绍职业化、规范化的软件开发概念,原则,方法和实践。包括介绍软件产品的特点;软件工程的历史发展背景;软件过程模型;软件工程分析,设计和测试等实践原则和方法;软件项目管理(计划,管理和控制,风险,配置等)基本概念和方法主要要求通过本课程的学习,可使学生了解软件工程的基本知识和方法,熟悉软件工程的各种环节(需求分析,设计,编码,测试,部署等)。掌握软件工程传统经典和现代高级的理论和方法,并能应用到实际的软件项目开发中
课程简介主要内容45软件工程知识机构杨芙清院士提出的软件工程体系结构软件工程知识机构杨芙清院士提出的软件工程体系结构46软件工程过程分析,设计,编码,测试(四分法)背景,需求分析,过程模型,模型设计,计划,实施,测试,部署(主要阶段)软件工程过程分析,设计,编码,测试(四分法)47软件工程知识体系软件工程知识体系(IEEE)需求构建测试维护配置管理过程质量工程管理工具设计软件工程知识体系软件工程知识体系(IEEE)需求构建测试维护48第一章软件工程简介软件的相关知识介绍1软件工程的原则4软件工程的相关课题5软件工程的概念3软件危机2小结6第一章软件工程简介软件的相关知识介绍1软件工程的原则4软件本章学习目标123了解本课程的主要内容以及他们之间的关系。理解软件的特征和分类。理解软件和软件工程的概念。本章学习目标123了解本课程的主要内容以及他们之间的关系。理程序软件可执行部分不可执行部分文档1文档2文档3什么是软件?软件定义:软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料程序软件可执行部分不可执行部分文档1文档2文档3什么软件的特征软件是逻辑的,而不是物理的软件是开发的或者是工程化的,并不是制造的软件开发环境对产品影响较大软件开发时间和工作量难以估计软件会多次修改软件的开发进度几何没有客观衡量标准软件测试困难软件不会磨损和老化软件维护易产生新的问题软件生产是简单的拷贝软件的特征软件是逻辑的,而不是物理的软件双重作用软件是一种产品,也是开发其他软件产品的工具支持或直接提供系统所需的功能控制(如操作系统)其他程序改善通信(如,网络软件)帮助开发其它软件(例如,软件开发工具)许多其它功能软件双重作用软件是一种产品,也是开发其他软件产品的工具软件的分类系统软件(操作系统)应用软件(办公软件)工程/科学软件(Matlab,Maple)嵌入式软件(iPod,iphone)产品线软件(Intel,Simens)Web应用(Webapplications)普适计算—无线网络网络资源—网络作为一个计算引擎开放源码(好事,也是一种潜在的祸根!)网格计算/云计算软件的分类系统软件(操作系统)软件的发展50’中期~60’中期60’中期~70’中期70’中期~80’中期80’中期~现在产业化工程作坊式个体化软件的发展50’中期~60’中期产业化为什么发展如此之快计算需求:软件必须适应新的计算环境或技术;业务要求:软件必须改善,以实现新的业务需求;嵌入式需求:软件必须扩展,以满足和新一代系统或数据库之间的互操作性;架构需求:软件必须重新设计,使其在新的网络环境是可用的。为什么发展如此之快计算需求:软件必须适应新的计算环境或技术;软件技术面临的问题
规模越来越大复杂性越来越高生产率
要求越来越高天才程序员??软件技术面临的问题规模天才程序员??效率和质量定义在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机软件危机的具体表现:·开发成本和进度估计不准·用户对“已完成的”软件系统不满意·软件质量往往靠不住·软件常常是不可维护的·软件通常没有适当的文档资料·软件成本逐年上升·软件开发生产率滞后于硬件和计算机应用普及效率和质量定义在计算机软件的开发和维护过程中所遇到的一系硬件/软件成本变化趋势
硬件
软件
100%0%195519701985硬件/软件成本变化趋势100%0%1955197019软件技术进步落后于需求增长软件技术进步落后于需求增长产生软件危机的原因原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析错误认为:软件开发=程序编写轻视软件维护产生软件危机的原因原因
缓解软件危机?第一章软件工程概述-课件
消除软件危机的途径软件工程!!!
对计算机软件有一个正确的认识(软件≠程序)
必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。
消除软件危机的途径软件工程!!!软件工程的定义定义IEEE计算机协会将软件工程定义为:(1)应用系统化的、科学化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。(2)对(1)中各种方法的研究。
目标软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件。软件工程的定义定义IEEE计算机协会将软件工程定义为:(1)软件工程—一种层次化技术工具方法过程质量焦点软件工程层次图软件工程三个要素:方法、工具、过程软件工程—一种层次化技术工具方法过程质量焦点软件工程层次软件工程的发展已经历了四个重要阶段:4.第四代软件工程
—
构件工程3.第三代软件工程
—
过程工程2.第二代软件工程
—
对象工程1.第一代软件工程
—
传统的软件工程软件工程的发展已经历了四个重要阶段:4.第四代软件工程—软件工程的发展已经历了四个重要阶段:1.第一代软件工程
—
传统的软件工程2.第二代软件工程
—
对象工程3.第三代软件工程
—
过程工程4.第四代软件工程
—
构件工程60年代末到70年代为了克服“软件危机”
(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。软件工程的发展已经历了四个重要阶段:60年代末到70年软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。软件工程的发展已经历了四个重要阶段:80年代中到90软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。软件工程的发展已经历了四个重要阶段:80年代中开始,软件工程的发展已经历了四个重要阶段:1、第一代软件工程
—
传统的软件工程2、第二代软件工程
—
对象工程3、第三代软件工程
—
过程工程4、第四代软件工程
—
构件工程
90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。软件工程的发展已经历了四个重要阶段:90起年代,软件工程的7个原则B.W.Boehm于1983年总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。使用阶段性生命周期计划的管理进行连续的验证保证严格的产品控制使用现代编程工具/工程实践保持清晰的责任分配用更好更少的人保持过程改进软件工程的7个原则B.W.Boehm于1983年总结了开软件工程知识体系软件工程知识体系(IEEE)SoftwareEngineeringBodyofKnowledge需求构建测试维护配置管理过程质量工程管理工具(编码,测试等)设计软件工程知识体系软件工程知识体系(IEEE)Softwar软件知识体系及其关联软件构造软件设计软件测试软件维护过程管理软件项目管理方法与工具软件质量软件安全软件需求交付升级软件知识体系及其关联软件构造软件设计软件测试软件维护过程管理软件工程是一门交叉学科计算机工程计算机科学管理学数学项目管理质量科学软件工程学系统工程。。。软件工程是一门交叉学科计算机工程一些对软件工程的误解(1)M代表误解,R代表现实。管理方面的误解:M1:我们已经有一本关于软件生产的标准和过程的书,这还不能让我们学习到需要的知识吗?R1:相比最新的大型主机,工作站和PC,这会使我们在做高质量软件开发时花费得更多。M2:如果我们项目进度落后了,可以加入更多的程序员来赶进度。R2:软件开发的机制和手工作业不一样。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Z世代消费行为对品牌形象塑造的影响:2025年新消费品牌形象报告
- 2025年医院电子病历系统在医院信息化建设中的远程诊断应用报告
- 土壤改良技术革新:2025年新型土壤改良剂研发成果与应用报告
- 2025年医药行业CRO模式下的临床试验伦理审查与合规性评估报告
- 2025年工业废气催化燃烧技术环保设备行业发展趋势与市场分析报告
- 老年教育课程设置与教学方法创新基于2025年老年教育信息化建设的实践研究报告
- 保险考试题库及答案
- 线下演出市场复苏:2025年演出行业产业链协同创新报告
- 安全再培训试题及答案
- 安全试题100道及答案
- 2025年护理管理学课程考试试题及答案
- 学习任务群下小学语文整本书阅读的实践研究
- 终端营销实战手册
- 2025至2030中国汽车微电机行业发展趋势分析与未来投资战略咨询研究报告
- 2025年内蒙古能源集团煤电板块所属单位招聘笔试参考题库含答案解析
- 山东省菏泽市2023-2024学年高一下学期7月期末教学质量检测政治试卷(含答案)
- 安全文明施工专项方案及保证措施
- 圆桶养殖水质管理制度
- 2025-2030中国软磁材料行业市场发展分析及竞争格局与投资策略研究报告
- 经营管理岗考试题及答案
- T/CI 312-2024风力发电机组塔架主体用高强钢焊接性评价方法
评论
0/150
提交评论