软件工程引论精.ppt

上传人:石*** 文档编号:74239065 上传时间:2023-02-25 格式:PPT 页数:41 大小:3.65MB
返回 下载 相关 举报
软件工程引论精.ppt_第1页
第1页 / 共41页
软件工程引论精.ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《软件工程引论精.ppt》由会员分享,可在线阅读,更多相关《软件工程引论精.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程引论第1页,本讲稿共41页u软件的概念软件的概念u软件的分类软件的分类u软件的发展软件的发展u软件生存期软件生存期u软件工程的产生及发展软件工程的产生及发展u软件工程的目的和要求软件工程的目的和要求第2页,本讲稿共41页 软件工程是计算机科学与技术专业的一门专软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系业核心课程。通过本课程的学习,使学生掌握系统的统的软件开发理论软件开发理论、技术和方法技术和方法,使用,使用正确的工正确的工程方法程方法开发出成本低、可靠性好并在机器上能高开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下效

2、运行的软件,为今后从事软件开发和维护打下坚实的基础。坚实的基础。课程的性质、目的与任务课程的性质、目的与任务第一章 软件工程引论第3页,本讲稿共41页 本课程比较全面、系统地介绍软件工程的概念、技术本课程比较全面、系统地介绍软件工程的概念、技术与方法。与方法。主要内容包括:主要内容包括:软件工程概述软件工程概述、软件生存周期软件生存周期及及软件软件需求分析需求分析、软件设计方法软件设计方法、软件测试技术软件测试技术等。等。通过本课程的学习,使学生能真正的了解软件开发的通过本课程的学习,使学生能真正的了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发整个过程。为了让学生真正得以实践

3、,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后对自己开发的软析、概要设计、详细设计、编码直到最后对自己开发的软件进行测试,这样一个软件开发全过程,使学生掌握软件件进行测试,这样一个软件开发全过程,使学生掌握软件开发的基本技能。开发的基本技能。课程主要内容课程主要内容第一章 软件工程引论第4页,本讲稿共41页第一章 软件工程引论学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生

4、在学习本开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握课程前应掌握信息管理系统信息管理系统、数据结构数据结构、结构化程序结构化程序设计设计、面向对象程序设计面向对象程序设计以及以及程序设计方法论程序设计方法论。通过本课程的学习,为学生后期的毕业设计环节通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。奠定了良好的基础。第5页,本讲稿共41页引引 言言水利工程建筑工程机械工程 软件工程软件工程 本章将对软件的地位和作用、软件的特点、软件本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件的发展、软件的危机以及软件工程学科的形成、软件 生

5、期等方面的问题和基本概念做详细介绍。生期等方面的问题和基本概念做详细介绍。传统工程传统工程新兴工程新兴工程气象工程生物工程第6页,本讲稿共41页第一节第一节 软件的概念与特点软件的概念与特点1 1、软件、软件softwaresoft+ware软制品软制品(软体软体)软件是计算机系统中与硬件相互依存的另一部分。软件是计算机系统中与硬件相互依存的另一部分。它包括它包括程序程序、数据数据及其及其相关文档相关文档的完整集合。的完整集合。第7页,本讲稿共41页第一节第一节 软件的概念与特点软件的概念与特点2 2、软件特点、软件特点 软件是一种软件是一种逻辑实体逻辑实体,而不是具体的物理,而不是具体的物理

6、实体。因而它实体。因而它具有抽象性具有抽象性 软件的软件的生产生产与硬件不同,在它的开发过程与硬件不同,在它的开发过程中中没有明显的制造过程没有明显的制造过程 在软件的运行和使用期间,没有硬件那样在软件的运行和使用期间,没有硬件那样的的机械磨损机械磨损,老化问题老化问题 软件的开发和运行常受到计算机系统的限软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的制,对计算机系统有着不同程度的依赖性依赖性第8页,本讲稿共41页第一节第一节 软件的概念与特点软件的概念与特点软件的开发至今尚未完全摆脱软件的开发至今尚未完全摆脱手工的开手工的开发方式发方式软件本身是软件本身是复杂复杂的的 实

7、际问题的复杂性实际问题的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性 软件软件成本相当昂贵成本相当昂贵相当多的软件工作涉及到相当多的软件工作涉及到社会因素社会因素2 2、软件特点、软件特点第9页,本讲稿共41页第一节第一节 软件的概念与特点软件的概念与特点磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线硬件失效率曲线时间时间失失效效率率时间时间失失效效率率软件失效率曲线软件失效率曲线第10页,本讲稿共41页第一节第一节 软件的概念与特点软件的概念与特点软件技术的发展落后于需求软件技术的发展落后于需求时间软件需求差距软件技术硬、软件成本比例的变化硬、软件成本比例的变化年份成本%软软软软 件

8、件件件1950197019851995硬硬 件件软件复杂性第11页,本讲稿共41页软件的分类软件的分类 1 1、按软件的、按软件的功能功能进行划分进行划分系统软件支撑软件应用软件 1 1、按软件的、按软件的功能功能进行划分进行划分系统软件支撑软件应用软件 1 1、按软件的、按软件的功能功能进行划分进行划分系统软件支撑软件应用软件 1 1、按软件的、按软件的功能功能进行划分进行划分系统软件支撑软件应用软件 1 1、按软件的、按软件的功能功能进行划分进行划分系统软件支撑软件应用软件第12页,本讲稿共41页软件的分类软件的分类系统软件系统软件系统软件系统软件u u 操作系统操作系统操作系统操作系统u

9、 u 数据库管理系统数据库管理系统数据库管理系统数据库管理系统u u 设备驱动程序设备驱动程序设备驱动程序设备驱动程序u u 通信处理程序等通信处理程序等通信处理程序等通信处理程序等第13页,本讲稿共41页软件的分类软件的分类支撑软件支撑软件支撑软件支撑软件u u文本编辑程序文本编辑程序文本编辑程序文本编辑程序u u文件格式化程序文件格式化程序文件格式化程序文件格式化程序u u磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序磁盘向磁带向数据传输的程序u u程序库系统程序库系统程序库系统程序库系统u u支持需求分析、设计、实现、支持需求分析、设计、实现、支持需求分析

10、、设计、实现、支持需求分析、设计、实现、测试和支持管理的软件测试和支持管理的软件测试和支持管理的软件测试和支持管理的软件第14页,本讲稿共41页软件的分类软件的分类应用软件应用软件应用软件应用软件u u 商业数据处理软件商业数据处理软件商业数据处理软件商业数据处理软件u u 工程与科学计算软件工程与科学计算软件工程与科学计算软件工程与科学计算软件u u 计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件u u 系统仿真软件系统仿真软件系统仿真软件系统仿真软件u u 智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件u u 医疗、制药软件医疗、

11、制药软件医疗、制药软件医疗、制药软件u u 事务管理、办公自动化软件事务管理、办公自动化软件事务管理、办公自动化软件事务管理、办公自动化软件u u 计算机辅助教学软件计算机辅助教学软件计算机辅助教学软件计算机辅助教学软件第15页,本讲稿共41页软件的分类软件的分类2 2、按软件的、按软件的规模规模进行划分进行划分 按开发软件所需的按开发软件所需的 人力、时间以及完成的人力、时间以及完成的 源代码行数。源代码行数。第16页,本讲稿共41页软件的分类软件的分类类别类别参加人数参加人数研制期限研制期限产品规模产品规模(源代码行数源代码行数)微型小型中型大型甚大型极大型112-55-20100-100

12、02000-50001-4周1-6周1-2年2-3年4-5年5-10年约500行 约2000行 5000-50000行5万-10万行100万行1000万行第17页,本讲稿共41页软件的分类软件的分类3 3、按软件、按软件开发方式开发方式划分划分软件项目开发软件产品开发第18页,本讲稿共41页软件的分类软件的分类实时处理软件交互式软件分时软件4 4、按软件的、按软件的工作方式工作方式划分划分批处理软件第19页,本讲稿共41页软件的发展软件的发展 早期早期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段 面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统

13、有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向对象技术面向对象技术 自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专家系统专家系统 软件产品软件产品 消费者的影响消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000第20页,本讲稿共41页第二节第二节 软件生存期软件生存期u 软件有一个孕育、诞生、成长、成熟、衰亡软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存的生存过程。这个过程即为计算机软件的生存期期u 软件生存期的六个步骤,即软件生存期的六个步骤,即制定计划制定计划

14、、需求分需求分析析、设计设计、程序编码程序编码、测试测试及及运行维护运行维护第21页,本讲稿共41页第二节第二节 软件生存期软件生存期第22页,本讲稿共41页第二节第二节 软件生存期软件生存期(1 1)制订计划制订计划u 确定要开发软件系统的确定要开发软件系统的总目标总目标u 给出给出功能功能、性能性能、可靠性可靠性以及以及接口接口等方面的要求等方面的要求u 完成该软件任务的完成该软件任务的可行性研究可行性研究u 估计可利用的估计可利用的资源资源 (硬件,软件,人力等硬件,软件,人力等)、成本成本、效益效益、开发进度开发进度u 制定出完成开发任务的制定出完成开发任务的实施计划实施计划,连同可行

15、性研究报,连同可行性研究报告,提交管理部门审查告,提交管理部门审查第23页,本讲稿共41页第二节第二节 软件生存期软件生存期(2 2)需求分析和定义需求分析和定义u对用户提出的要求进行对用户提出的要求进行分析分析并给出并给出详详细的定义细的定义u编写编写软件需求说明书软件需求说明书或或系统功能说明书系统功能说明书及及初步的系统用户手册初步的系统用户手册u提交管理机构提交管理机构评审评审第24页,本讲稿共41页第二节第二节 软件生存期软件生存期(3 3)软件设计软件设计u概要设计概要设计 把各项需求转换成把各项需求转换成软件的体系结构软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块

16、结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应都和某些需求相对应u详细设计详细设计 对每个模块要完成的工作进行具体对每个模块要完成的工作进行具体的描述,为源程序编写打下基础的描述,为源程序编写打下基础u编写编写设计说明书设计说明书,提交评审提交评审。第25页,本讲稿共41页第二节第二节 软件生存期软件生存期(4 4)程序编写程序编写u 把软件设计转换成计算机可以接受的把软件设计转换成计算机可以接受的程序代码程序代码,即写成以某一种即写成以某一种特定程序设计语言特定程序设计语言表示的表示的“源源程序清单程序清单”u 写出的程序应当是写出的程序应当是结构良好结构良好、清晰易读清晰

17、易读的,的,且且与设计相一致与设计相一致的的第26页,本讲稿共41页第二节第二节 软件生存期软件生存期(5 5)测试阶段测试阶段u 单元测试单元测试,查找各模块在功能和结构上存,查找各模块在功能和结构上存在的问题并加以纠正在的问题并加以纠正u 组装测试组装测试,将已测试过的模块按一定顺序组装,将已测试过的模块按一定顺序组装起来起来u 按规定的各项需求,按规定的各项需求,逐项进行有效性测试逐项进行有效性测试,决,决定已开发的软件是否合格,能否交付用户使用定已开发的软件是否合格,能否交付用户使用第27页,本讲稿共41页第二节第二节 软件生存期软件生存期(6 6)运行运行/维护维护u 改正性维护改正

18、性维护 运行中发现了软件中的错误运行中发现了软件中的错误需要修正需要修正u 适应性维护适应性维护 为了适应变化了的软件工作环为了适应变化了的软件工作环境,需做适当变更境,需做适当变更u 完善性维护完善性维护 为了增强软件的功能需做为了增强软件的功能需做变更变更第28页,本讲稿共41页第二节第二节 软件生存期软件生存期第29页,本讲稿共41页第三节第三节 软件危机软件危机 所谓软件危机,就是指在软件开发和软件维护过程所谓软件危机,就是指在软件开发和软件维护过程中所存在的一系列严重问题。中所存在的一系列严重问题。现代计算机应用系统中,软件的地位日益重要和突现代计算机应用系统中,软件的地位日益重要和

19、突出。如何满足日益增长的软件需求,如何维护应用中的出。如何满足日益增长的软件需求,如何维护应用中的大量已有软件,已经成为了计算机应用系统进一步发展大量已有软件,已经成为了计算机应用系统进一步发展的瓶颈。的瓶颈。第30页,本讲稿共41页软件危机的表现软件危机的表现 软件开发没有真正的计划性,对软件开发进度和软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计常常很不准确,计划的制定带有软件开发成本的估计常常很不准确,计划的制定带有很大的盲目因素。很大的盲目因素。对于软件需求信息的获取常常不充分,软件产品往往对于软件需求信息的获取常常不充分,软件产品往往不能真正地满足用户的实际需求。不能真

20、正地满足用户的实际需求。缺乏良好的软件质量评测手段,从而导致软件产缺乏良好的软件质量评测手段,从而导致软件产品的质量常常得不到保证。品的质量常常得不到保证。第31页,本讲稿共41页软件危机的表现软件危机的表现对于软件的可理解性、可维护性认识不够;软件的可对于软件的可理解性、可维护性认识不够;软件的可复用性、可维护性不如人意。复用性、可维护性不如人意。软件开发过程没有实现软件开发过程没有实现“规范化规范化”,缺乏必要的文档资料,缺乏必要的文档资料或者文档资料不合格、不准确,难以进行专业维护。或者文档资料不合格、不准确,难以进行专业维护。软件开发的人力成本持续上升。软件开发的人力成本持续上升。缺乏

21、自动化的软件开发技术,软件开发的生产率依然低下,缺乏自动化的软件开发技术,软件开发的生产率依然低下,远远满足不了急剧增长的软件需求。远远满足不了急剧增长的软件需求。第32页,本讲稿共41页产生软件危机的原因产生软件危机的原因 产生软件危机的原因可以归纳为主、客观两个方面。产生软件危机的原因可以归纳为主、客观两个方面。从客观上来看从客观上来看,软件不同于硬件,它的生产过程,软件不同于硬件,它的生产过程和产品都具有明显的和产品都具有明显的“不可视不可视”特征,这就导致在特征,这就导致在完成编码并且上机运行之前,对于软件开发过程的完成编码并且上机运行之前,对于软件开发过程的进展情况较难衡量,软件产品

22、的质量也较难进行先进展情况较难衡量,软件产品的质量也较难进行先期评价,因此,对于开发软件的过程进行管理和控期评价,因此,对于开发软件的过程进行管理和控制比较困难。制比较困难。第33页,本讲稿共41页产生软件危机的原因产生软件危机的原因 产生软件危机的原因可以归纳为主、客观两个方面。产生软件危机的原因可以归纳为主、客观两个方面。从主观上分析从主观上分析,导致软件危机发生的另一大原因,导致软件危机发生的另一大原因,可以归于在计算机系统发展的早期,软件开发的可以归于在计算机系统发展的早期,软件开发的“个体个体化化”特点,主要表现为忽视软件需求分析的重要性、忽特点,主要表现为忽视软件需求分析的重要性、

23、忽视软件的可理解性、文档不完备、轻视软件的可维护性、视软件的可理解性、文档不完备、轻视软件的可维护性、过分强调编码技巧等等方面。过分强调编码技巧等等方面。第34页,本讲稿共41页解决软件危机的途径解决软件危机的途径 基于软件危机产生的主、客观原因,应从基于软件危机产生的主、客观原因,应从软件工程技软件工程技术术和和软件工程管理软件工程管理两方面来采取措施,防范软件危机的两方面来采取措施,防范软件危机的发生。发生。从管理层面上考虑从管理层面上考虑,应当注意推广和使用在实践中,应当注意推广和使用在实践中总结出来的开发软件的成功的技术和方法,并且探索更总结出来的开发软件的成功的技术和方法,并且探索更

24、好的、更有效的技术和方法,注意积累软件开发过程中好的、更有效的技术和方法,注意积累软件开发过程中的经验数据财富,逐步消除在计算机系统早期发展阶段的经验数据财富,逐步消除在计算机系统早期发展阶段形成的一些错误概念和做法。形成的一些错误概念和做法。第35页,本讲稿共41页解决软件危机的途径解决软件危机的途径 从技术角度考虑从技术角度考虑,应当开发和使用更好的软件开发工,应当开发和使用更好的软件开发工具,提高软件开发效率和开发工作过程的规范化程度。目具,提高软件开发效率和开发工作过程的规范化程度。目前广为使用的前广为使用的统一建模语言统一建模语言(UML)(UML)、各种各种配置管理工具配置管理工具

25、、缺陷管理工具缺陷管理工具和和自动测试工具自动测试工具都在软件工程活动中发挥了都在软件工程活动中发挥了很好的作用。很好的作用。计算机辅助软件工程计算机辅助软件工程(CASE)(CASE)更是目前备受更是目前备受重视的一个旨在实现软件开发自动化的新的领域。重视的一个旨在实现软件开发自动化的新的领域。第36页,本讲稿共41页第四节第四节 软件工程的产生及发展软件工程的产生及发展1 1、“软件工程软件工程”-Software Engineering 于于1968年年 NATO 组织在组织在德国召开的一次会议上提出德国召开的一次会议上提出把软件当作一种工业产品,把软件当作一种工业产品,“采用工程化的原

26、理与方法采用工程化的原理与方法对软件进行计划、开发、运行和维护对软件进行计划、开发、运行和维护”的系统方法。的系统方法。第37页,本讲稿共41页第四节第四节 软件工程的产生及发展软件工程的产生及发展 软件工程学 软件开发技术 软件工程管理软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学软件工程学的范畴 2 2、软件工程学软件工程学 第38页,本讲稿共41页第四节第四节 软件工程的产生及发展软件工程的产生及发展 3、软件的演变(即从传统软件开发到现代软件开发)程序软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80第39页

27、,本讲稿共41页软件工程三要素软件工程三要素软件工程三要素:方法、工具和过程软件工程三要素:方法、工具和过程u软件工程方法软件工程方法为软件开发提供了为软件开发提供了 “如何做如何做”的技术的技术u软件工具软件工具为软件工程方法提供了自动的或半自动的软件为软件工程方法提供了自动的或半自动的软件支撑环境支撑环境u软件工程过程软件工程过程定义了定义了:方法使用的顺序方法使用的顺序 要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑第40页,本讲稿共41页软件工程项目的基本目标软件工程项目的基本目标uu付出较低的开发成本付出较低的开发成本付出较低的开发成本付出较低的开发成本uu达到要求的软件功能达到要求的软件功能达到要求的软件功能达到要求的软件功能uu取得较好的软件性能取得较好的软件性能取得较好的软件性能取得较好的软件性能uu开发的软件易于移植开发的软件易于移植开发的软件易于移植开发的软件易于移植uu需要较低的维护费用需要较低的维护费用需要较低的维护费用需要较低的维护费用uu能按时完成开发工作,及时能按时完成开发工作,及时能按时完成开发工作,及时能按时完成开发工作,及时交付使用交付使用交付使用交付使用第41页,本讲稿共41页

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁