软件工程概述.ppt

上传人:豆**** 文档编号:57944551 上传时间:2022-11-06 格式:PPT 页数:47 大小:898.50KB
返回 下载 相关 举报
软件工程概述.ppt_第1页
第1页 / 共47页
软件工程概述.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《软件工程概述.ppt》由会员分享,可在线阅读,更多相关《软件工程概述.ppt(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、软件工程概述软件工程概述1 1本课程的特点本课程的特点2 2学习的主要内容学习的主要内容3 3培养目标培养目标4 4教学安排教学安排5 5主要参考书目主要参考书目6 6考核方式考核方式课程简介1、是一门很重要的专业课,学习内容比较多;、是一门很重要的专业课,学习内容比较多;2、属、属“工程工程”学科;学科;3、是一门需不断完善的、发展的、可创新的学科、是一门需不断完善的、发展的、可创新的学科。2011年3月8日由国务院学位委员会、中华人民共和国教育部联合发出“关于印发学位授予和人才培养学科目录(2011年)的通知”(学位201111号),通知中将将软件工程由原来的二级学科新列为一级学科(学科代

2、码为0835),原来软件工程学科是计算机科学与技术一级学科下面的二级学科。返回一、课程特点1、软件工程的基本概念及软件危机、软件工程的基本概念及软件危机2、软件生存周期及软件开发模型、软件生存周期及软件开发模型3、软件计划(问题定义及可行性研究)、软件计划(问题定义及可行性研究)4、软件分析、软件分析(需求分析需求分析)5、软件系统设计、软件系统设计6、软件测试、软件测试7、软件维护、软件维护8、面向对象软件工程、面向对象软件工程9、软件项目管理、软件项目管理返回二、学习主要内容通过本课程的学习,通过本课程的学习,消除错误的认识,学习软件工程基本理论,消除错误的认识,学习软件工程基本理论,掌握

3、软件开发全过程中的各重要阶段的任务及相关描述方法,掌握软件开发全过程中的各重要阶段的任务及相关描述方法,使学生能真正的从中了解软件开发的整个过程。为了使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能,具备软件工

4、程师的基本生掌握软件开发的基本技能,具备软件工程师的基本素质。素质。产生两个转变产生两个转变转变对软件的认识转变对软件的认识 程序程序-上升上升-系统系统转变思维定式转变思维定式 程序员程序员-上升上升-系统工程师系统工程师(系统分析员)(系统分析员)三、培养目标培养目标1、见附件2、答疑 时间:待定 地点:明德楼D座0413 四、教学安排动脑:动脑分析实际问题!动手:动手撰写文档、编写程序!学好本课程的关键学好本课程的关键2022/11/51、主要参考书目:、主要参考书目:软件工程软件工程 张海藩张海藩 编著编著 清华大学出版社清华大学出版社2、其他参考书目:、其他参考书目:软件工程与实践软

5、件工程与实践贾铁军、甘泉主编贾铁军、甘泉主编 清华大学出版社清华大学出版社 实用软件工程实用软件工程 赵池龙、杨林赵池龙、杨林 主编主编 电子工业出版社电子工业出版社 实用软件工程实用软件工程 郑人杰主编郑人杰主编 清华大学出版社清华大学出版社返回五、参考教材1、课程性质:考试课、课程性质:考试课2、考核方式:考试(、考核方式:考试(60)综合设计(综合设计(20)平平时(时(20)返回六、考核方式第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 软件工程软件工程软件工程软件工程 本章将对软件的地位和作用、软件的特点、软件的发展、软件的危机以及软件工程学科的形成、软件生命周期及软

6、件过程(或叫软件开发模型)等方面的问题和基本概念进行介绍。传统工程新兴工程气象工程生物工程2022/11/51.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。其中相关 文档分为面向用户的文档和面向开发者的文档。固件固件(Firmware)就是写入就是写入EROM或或EPROM(可编程只读存储器可编程只读存储器)中的程序,通俗中的程序,通俗的理解就是的理解就是“固化的软件固化的软件”,更简单的说,固件就是,更简单的说,固件就是BIOS的软件,但又与普通的软件,但又与普

7、通软件完全不同,它是固化在集成电路内部的程序代码,负责控制和协调集成电路软件完全不同,它是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。的功能。2022/11/52、软件特点.软件是一种逻辑实体,而不是具体的物理实体.软件的生产与硬件不同,无明显制造过程.在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线2022/11/5 定制的且本身是复杂的(逻辑结构复杂,解决问题复杂,相当多的软件都涉及到社会因素)开发与运行受制于计算机硬件,有依赖性 至今尚未完全摆脱手工的开发方式 软件的成本相当昂

8、贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件软件1950197019851995硬件硬件2022/11/53、软件的分类系统软件支撑软件应用软件(1 1)按软件的功能进行划分按软件的功能进行划分按软件的功能进行划分按软件的功能进行划分2022/11/5支撑软件一般类型一般类型一般类型一般类型:文本编辑程序文本编辑程序文本编辑程序文本编辑程序 文本格式化程序文本格式化程序文本格式化程序文本格式化程序支持需求分析支持需求分析支持需求分析支持需求分析:PSL/PSA PSL/PSA问题描述语言问题描述语言问题描述语言问题描述语言 关系数据库管理系统

9、关系数据库管理系统关系数据库管理系统关系数据库管理系统支持设计支持设计支持设计支持设计:图形软件包图形软件包图形软件包图形软件包 结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序支持测试支持测试支持测试支持测试:静态分析器静态分析器静态分析器静态分析器 测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序支持实现支持实现支持实现支持实现:编辑程序编辑程序编辑程序编辑程序 连接编辑程序连接编辑程序连接编辑程序连接编辑程序支持管理支持管理支持管理支持管理:标准检验程序标准检验程序标准检验程序标准检验程序 库管理程序库管理程序库管理程序库管理程序2022/

10、11/5(2)2)按软件的规模进行划分按软件的规模进行划分按软件的规模进行划分按软件的规模进行划分 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数)微型微型微型微型小型小型小型小型中型中型中型中型大型大型大型大型甚大型甚大型甚大型甚大型极大型极大型极大型极大型1 11 12-52-55-205-20100-1000100-10002000-50002000-50001-41-4周周周周1-61-6周周周周1-21-2年年年年2-32-3年年年年4-54-5年年年年5-105-10年年年年约约约约500500行行行行 约约约约20002000行行行行

11、 5000-500005000-50000行行行行5 5万万万万-10-10万行万行万行万行100100万行万行万行万行10001000万行万行万行万行2022/11/5 (3)(3)按软件服务对象划分按软件服务对象划分按软件服务对象划分按软件服务对象划分项目软件产品软件2022/11/5(4)按软件工作方式划分 实时软件:收到请求中断后立即响应 分时软件:按时间片响应多个联机用户 交互式:一问一答式 批处理软件:一批数据一次性地处理(5)按使用的频度划分 一次使用:比如验证需求、采集数据的软件,如人口普查软件,火箭发射软件等。频繁使用:(6)按软件失效的影响划分 高可靠性:军事、金融 一般可

12、靠性:4、软件的发展、软件的发展(伴随着计算机硬件系统伴随着计算机硬件系统4个不同的发展阶段而发展个不同的发展阶段而发展)时时期期硬件硬件软软件件早期早期时时代代20世世纪纪60年代中期以前年代中期以前晶体管晶体管计计算机算机程序程序设计阶设计阶段段个体化生个体化生产产 程序程序第二代第二代20世世纪纪60年代中期到年代中期到70年代中期年代中期集成集成电电路路计计算机算机程序系程序系统阶统阶段段作坊式生作坊式生产产 程序程序+说说明明软软件危机出件危机出现现软软件工程件工程诞诞生生第三代第三代20世世纪纪70年代中期到年代中期到80年代中期年代中期微微处处理器理器个人个人计计算机算机软软件工

13、程件工程阶阶段段工程化思想工程化思想 程序程序+数据数据+文档文档分布式系分布式系统统第四代第四代20世世纪纪80年代中期至今年代中期至今面向面向对对象象阶阶段段硬件与硬件与软软件件综综合合软软件开件开发发第四代技第四代技术术计算机软件发展的计算机软件发展的4个阶段个阶段 2022/11/5程序 3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80 软件危机:计算机软件的开发和维护过程中所遇到的软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种一系

14、列严重问题。(正常、不正常运行软件都具有这种问题)问题)1.2.1 软件危机的介绍软件危机的介绍1.2 软件危机软件危机IBM 公司研发初期的公司研发初期的OS/360,共约,共约100万条指令,花费了万条指令,花费了5000个人年;经费达数亿美元,个人年;经费达数亿美元,而结果却令人沮丧,错误多达而结果却令人沮丧,错误多达2000 个以上,系统根本无法正常运行。个以上,系统根本无法正常运行。OS/360 系统的负系统的负责人责人Brooks 这样描述开发过程的困难和混乱:这样描述开发过程的困难和混乱:“像巨兽在泥潭中垂死挣扎,挣扎得越像巨兽在泥潭中垂死挣扎,挣扎得越猛,泥浆沾得越多陷入更深,

15、最后没有一个野兽能够逃脱淹没在泥潭中的命运猛,泥浆沾得越多陷入更深,最后没有一个野兽能够逃脱淹没在泥潭中的命运”。案例案例1-11-11)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;2)用户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;软件危机的典型表现:软件危机的典型表现:4)软件常常是不可维护的;)软件常常是不可维护的;5)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;6)软软件件成成本本在在计计算算机机系系统统总总成成本本中中所所占占的的比比例逐

16、年上升;例逐年上升;7)软件开发生产率提高的速度跟不上计算机)软件开发生产率提高的速度跟不上计算机应用的发展趋势。应用的发展趋势。1.2.2 产生软件危机的原因产生软件危机的原因1)软件本身特点造成;)软件本身特点造成;2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。主要表现:主要表现:(a)忽视软件需求分析;)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行;(c)轻视软件维护;)轻视软件维护;在软件开发的不同阶段进行修改需要付出的代在软件开发的不同阶段进行修改需要付出的代价很不相同:价很不相同:高高中中低低早期早期中期中期后期后期软

17、件开发时期软件开发时期代价代价引入同一修改的代价随时间变化的趋势引入同一修改的代价随时间变化的趋势1)技技术术方方法法。推推广广使使用用在在实实践践中中总总结结出出来来的的开开发发软软件件的的成成功功技技术术和和方方法法,并并研研究究探探索索更更有有效效的的技术和方法;技术和方法;2)开发工具。开发和使用更好的软件工具;)开发工具。开发和使用更好的软件工具;3)组织管理。良好的组织管理措施。)组织管理。良好的组织管理措施。1.2.3 解决软件危机的途径解决软件危机的途径 为为了了解解决决软软件件危危机机产产生生的的问问题题,软软件件工工程程与与方方法法学学逐逐渐渐形形成成,然然后后出出现现了了

18、两两个个相相互互相相承承又又各各有有侧侧重重的学科:的学科:1)软软件件工工程程学学:主主要要应应用用工工程程的的方方法法和和技技术术研研究究软软件件开开发发与与维维护护的的方方法法、工工具具和和管管理理的的一一门门交交叉叉学科。学科。2)程序设计方法学:主要应用数学的方法研究)程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科。程序的性质以及程序设计的理论和方法的学科。1.3 软件工程软件工程1.3.1 软件工程的介绍软件工程的介绍1968年年NATO会会议议:软软件件工工程程就就是是为为了了经经济济地地获获得得可可靠靠的的且且能能在在实实际际机机器器上上有有效效

19、地地运运行行的的软软件件,而而建建立立和和使用完善的工程原理。使用完善的工程原理。1993年年IEEE:软软件件工工程程是是(1)把把系系统统的的、规规范范的的、可可度度量量的的途途径径应应用用于于软软件件开开发发、运运行行和和维维护护过过程程;(2)研究()研究(1)中提到的途径。)中提到的途径。1.软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;2.软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;3.软件经常变化;软件经常变化;4.开发软件的效率非常重要;开发软件的效率非常重要;5.和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;6.软件必须有效地支持它

20、的用户;软件必须有效地支持它的用户;7.在软件工程领域中是由具有一种文化背景的人在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。替具有另一种文化背景的人创造产品。软件工程的本质特性:软件工程的本质特性:1.3.2 软件工程的基本原理软件工程的基本原理1.用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;坚持进行阶段评审;3.实行严格的产品控制;实行严格的产品控制;4.采用现代程序设计技术;采用现代程序设计技术;5.结果能清楚地审查;结果能清楚地审查;6.开发小组的人员应该少而精;开发小组的人员应该少而精;7.承认不断改进软件工程实践

21、的必要性。承认不断改进软件工程实践的必要性。1.3.3 软件工程方法学软件工程方法学 通常把在软件生命周期全过程中使用的一整套技通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(术方法的集合称为方法学(Methodology),也称),也称为范型(为范型(Paradigm)。)。软件工程方法学的软件工程方法学的3要素:方法、工具和过程要素:方法、工具和过程 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学-软件工程学的范畴 2、软件工程学 2022/11/51.传统方法学传统方法学 也称为生命周期方法学或结构化范型。也称

22、为生命周期方法学或结构化范型。结构化方法(结构化方法(Structure Method)有:有:1)结构化设计方法()结构化设计方法(SD););2)结构化分析方法(结构化分析方法(SA););3)结构化分析与设计技术()结构化分析与设计技术(SADT)4)JACKSON方法方法 5)WARNIER方法方法2.面向对象方法学面向对象方法学 把数据和对数据的操作紧密结合起来的方法,模拟把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。人类认识世界解决问题的方法和过程。面向对象的方法面向对象的方法 =对象(属性与服务的封装)对象(属性与服务的封装)+分类分类 +继承继承

23、 +通过消息的通讯通过消息的通讯1)适适用用于于实实时时事事物物处处理理系系统统的的有有限限状状态态机机方方法法(FSM););2)适用于并发软件系统的适用于并发软件系统的PETRI网方法;网方法;3)以数学概念和理论为基础的形式化方法,如)以数学概念和理论为基础的形式化方法,如 SDC公司的形式化开发方法公司的形式化开发方法FDM:(Formal Development Methodology)IBM公司的维也纳开发方法公司的维也纳开发方法VDM:(Vienna Development Method)3.其他开发方法其他开发方法 1.3 软件生命周期软件生命周期 三个时期八个阶段:三个时期八

24、个阶段:软件生命周期由软件定义、软件开软件生命周期由软件定义、软件开发和运行维护发和运行维护(也称为软件维护也称为软件维护)三个时期组成,每个三个时期组成,每个时期又进一步划分成若干个阶段。时期又进一步划分成若干个阶段。三个时期:三个时期:八个阶段:八个阶段:软件生命周期软件生命周期软件定义软件定义软件开发软件开发软件维护软件维护问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编码和单元测试编码和单元测试综合测试综合测试运行维护运行维护系统设计系统设计系统实现系统实现2022/11/5特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果

25、关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)1.问题定义问题定义任务:问题是什么任务:问题是什么通过对客户的访问调查,系统分析员扼要地写出关通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告。于问题性质、工程目标和工程规模的书面报告。经过讨论和必要的修改之后这份报告应该得到客户经过讨论和必要的修改之后这份报告应该得到客户的确认。的确认。结果:结果:关于

26、系统规模和目标的报告书关于系统规模和目标的报告书 2.可行性研究可行性研究任务:有可行的解吗任务:有可行的解吗系统分析员需要进行一次大大压缩和简化了的系统系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。分析和设计过程。研究问题的范围,探索这个问题是否值得去解,是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。否有可行的解决办法。结果:结果:系统的高层逻辑模型(数据流图、成本效益分析)系统的高层逻辑模型(数据流图、成本效益分析)可行性论证报告(立即进行可行性论证报告(立即进行/推迟进行推迟进行/不能或不值不能或不值得进行)得进行)3.需求分析需求分析任务:必须做什么任

27、务:必须做什么主要是确定目标系统必须具备哪些功能。主要是确定目标系统必须具备哪些功能。系统分析员必须和用户密切配合,充分交流信息,系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。以得出经过用户确认的系统逻辑模型。结果:结果:系统的逻辑模型(数据流图、数据字典、简要的算系统的逻辑模型(数据流图、数据字典、简要的算法描述)法描述)用规格说明书准确地记录对目标系统的需求用规格说明书准确地记录对目标系统的需求4.总体设计总体设计任务:如何解决已提出的问题任务:如何解决已提出的问题设计出实现目标系统的几种可能的方案(低、中、设计出实现目标系统的几种可能的方案(低、中、高成本

28、)。高成本)。用适当的表达工具描述每种方案,分析优缺点,推用适当的表达工具描述每种方案,分析优缺点,推荐一个最佳方案,制定出实现最佳方案的详细计划。荐一个最佳方案,制定出实现最佳方案的详细计划。设计程序的体系结构。设计程序的体系结构。结果:结果:可能的解法(系统流程图、成本效益分析)可能的解法(系统流程图、成本效益分析)推荐的系统体系结构(层次图或结构图)推荐的系统体系结构(层次图或结构图)5.详细设计详细设计任务:怎样具体实现该系统任务:怎样具体实现该系统详细地设计每个模块,确定实现模块功能所需要的详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。算法和数据结构。结果:结果:每个模

29、块的算法和数据结构每个模块的算法和数据结构(程序流程图、程序流程图、PAD图、图、N-S图等图等)。6.编码和单元测试编码和单元测试任务:得到正确的程序模块任务:得到正确的程序模块选取一种适当的高级程序设计语言选取一种适当的高级程序设计语言(必要时用汇编语必要时用汇编语言言),把详细设计的结果翻译成用选定的语言书写的,把详细设计的结果翻译成用选定的语言书写的程序;程序;并且仔细测试编写出的每一个模块。并且仔细测试编写出的每一个模块。结果:结果:代码和测试报告代码和测试报告 7.综合测试综合测试任务:得到符合要求的软件任务:得到符合要求的软件通过集成测试、验收测试、现场测试、平行运行等方通过集成

30、测试、验收测试、现场测试、平行运行等方法对目标系统进一步测试检验。法对目标系统进一步测试检验。通过对软件测试结果的分析可以预测软件的可靠性;通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。调试过程什么时候可以结束。结果:结果:测试计划、详细测试方案以及实际测试结果测试计划、详细测试方案以及实际测试结果完整一致的软件配置完整一致的软件配置 8.软件维护软件维护任务:使系统持久地满足用户的需要任务:使系统持久地满足用户的需要改正性维护,诊断和改正在使用过程中发现的软件错改正性维护,诊断和改正在使用过程中发现的软件错误;误;适应性维护,修改软件以适应环境的变化;适应性维护,修改软件以适应环境的变化;完善性维护,根据用户的要求改进或扩充软件;完善性维护,根据用户的要求改进或扩充软件;预防性维护,修改软件为将来的维护活动做准备。预防性维护,修改软件为将来的维护活动做准备。每一项维护活动实质上是经历了一次压缩和简化了的每一项维护活动实质上是经历了一次压缩和简化了的软件定义和开发的全过程。软件定义和开发的全过程。结果:结果:完整准确的维护记录完整准确的维护记录 各类维护工作量所各类维护工作量所占比例占比例维护工作量在软件生命维护工作量在软件生命周期所占比例周期所占比例

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

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com