软件工程电子教案大同大学省公共课一等奖全国赛课获奖课件.pptx
《软件工程电子教案大同大学省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《软件工程电子教案大同大学省公共课一等奖全国赛课获奖课件.pptx(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程-原理、方法与应用电子教案电子教案54课时第1页课程安排n理论理论n内容:基本原理、方法和技术内容:基本原理、方法和技术n形式:讲授、自学、讨论形式:讲授、自学、讨论n实践实践n内容:结构一个应用系统(包含分析、设计、内容:结构一个应用系统(包含分析、设计、编码、测试)编码、测试)n形式:分组、分阶段文档、编码、集成形式:分组、分阶段文档、编码、集成第2页软件工程主要内容n软件工程基本概念软件工程基本概念n软件开发模型软件开发模型n软件开发各阶段任务、技术、方法软件开发各阶段任务、技术、方法n传统方法、面向对象方法传统方法、面向对象方法n软件工程管理软件工程管理n软件质量确保软件质量确
2、保n软件工程环境软件工程环境第3页第一章 绪论n软件与软件危机软件与软件危机n软件工程学软件工程学n传统软件工程和面向对象软件工程传统软件工程和面向对象软件工程n软件工程应用软件工程应用第4页软件(定义一)软件(定义一)n程序、软件与软件产品程序、软件与软件产品独唱独唱-小合唱小合唱-合唱合唱-万人大合唱万人大合唱|简单程序简单程序 较复杂程序较复杂程序 软件软件n软件定义:软件定义:软件软件=程序程序+数据数据+文档文档程序:按事先设计功效和性能需求执行指令序列程序:按事先设计功效和性能需求执行指令序列数据:是程序能正常操纵信息数据结构数据:是程序能正常操纵信息数据结构文档:与程序开发、维护
3、和使用相关图文材料文档:与程序开发、维护和使用相关图文材料 第5页计算机软件(定义二)计算机软件(定义二)n计算机软件指计算机系统中计算机软件指计算机系统中程序及其文档程序及其文档n程序是程序是计算任务计算任务处理对象处理对象和和处理规则处理规则描述描述n任务:以计算机为处理工具任务都是计算任务任务:以计算机为处理工具任务都是计算任务n处理对象:数据(如数据、文字、图形、图像、处理对象:数据(如数据、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数声音等,它们只是表示,而无含义)或信息(数据及相关含义)据及相关含义)n处理规则普通指处理动作和步骤。程序必须装入处理规则普通指处理动作
4、和步骤。程序必须装入计算机内才能工作计算机内才能工作n文档是为了便于了解程序所需说明性资料,文档普文档是为了便于了解程序所需说明性资料,文档普通是给人看,不一定装入计算机通是给人看,不一定装入计算机第6页软件分类软件分类n系统软件系统软件:属于计算机系统中最靠近硬件一层,其:属于计算机系统中最靠近硬件一层,其它软件普通都经过系统软件发挥作用,它与详细应它软件普通都经过系统软件发挥作用,它与详细应用领域无关。如操作系统、编译程序等。用领域无关。如操作系统、编译程序等。n支持软件支持软件:支持软件开发和维护软件。如数据库管:支持软件开发和维护软件。如数据库管理系统、网络软件、软件开发环境等。理系统
5、、网络软件、软件开发环境等。n应用软件应用软件:特定应用领域专用软件。如实时软件、:特定应用领域专用软件。如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等人工智能软件等。第7页n 按软件工作方式划分:按软件工作方式划分:实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件n 按软件服务对象范围划分:按软件服务对象范围划分:项目软件项目软件 产品软件产品软件 第8页n 按使用频度进行划分:按使用频度进行划分:一次使用一次使用 频繁使用频繁使用n 按软件失效影响进行划分:按软件失效影响进行划分:
6、高可靠性软件高可靠性软件 普通可靠性软件普通可靠性软件第9页软件发展n 1946-1956年年 从计算机问世到实用高级程序语言出现前从计算机问世到实用高级程序语言出现前存放容量比较小,运算速度比较慢存放容量比较小,运算速度比较慢采取个体工作方式采取个体工作方式,用低级语言编写程序用低级语言编写程序应用领域主要是以数值数据处理为主科学应用领域主要是以数值数据处理为主科学计算,其计算,其特点是输入、输出量较小特点是输入、输出量较小衡量程序质量标准主要是功效,即运行时间省、占衡量程序质量标准主要是功效,即运行时间省、占用内存小用内存小主要研究内容是科学计算程序、服务性程序和程序主要研究内容是科学计算
7、程序、服务性程序和程序库,研究对象是次序程序库,研究对象是次序程序第10页n1956-1968年年 从实用高级程序语言出现到软件工程出现前从实用高级程序语言出现到软件工程出现前存放器容量大,外围设备得到快速发展,出现存放器容量大,外围设备得到快速发展,出现了高级程序设计语言了高级程序设计语言应用领域包含应用领域包含数据处理(非数值数据),其特数据处理(非数值数据),其特点是计算量不大,但输入、输出量却较大点是计算量不大,但输入、输出量却较大高速主机与低速外围设备矛盾突出,出现了操高速主机与低速外围设备矛盾突出,出现了操作系统、并发程序、数据库及其管理系统作系统、并发程序、数据库及其管理系统20
8、20世纪世纪6060年代初提出了软件一词,开始认识到年代初提出了软件一词,开始认识到文档主要性文档主要性研究高级程序设计语言、编译程序、操作系统、研究高级程序设计语言、编译程序、操作系统、支持编程工具及各种应用软件支持编程工具及各种应用软件工作方式逐步从个体方式转向合作方式工作方式逐步从个体方式转向合作方式出现软件危机出现软件危机第11页n1968年年-至今至今 从软件工程出现到现在从软件工程出现到现在硬件向巨型机和微型机二个方向发展,出现了硬件向巨型机和微型机二个方向发展,出现了计算机网络,软件方面提出了软件工程,出现计算机网络,软件方面提出了软件工程,出现了了“计算机辅助软件工程计算机辅助
9、软件工程”(CASE)计算机应用领域渗透到各个业务领域,出现了计算机应用领域渗透到各个业务领域,出现了嵌入式应用,其特点是受制于它所嵌入宿主系嵌入式应用,其特点是受制于它所嵌入宿主系统统开发方式逐步由个体合作方式转向工程方式开发方式逐步由个体合作方式转向工程方式软件工程方面研究主要包含软件开发模型、软软件工程方面研究主要包含软件开发模型、软件开发方法及技术、软件工具与环境、软件过件开发方法及技术、软件工具与环境、软件过程、软件自动化系统等程、软件自动化系统等软件方面研究以智能化、自动化、集成化、并软件方面研究以智能化、自动化、集成化、并行化、以及自然化为标志软件开发新技术行化、以及自然化为标志
10、软件开发新技术第12页软件特点软件特点n软件是一个逻辑实体,而不是有形系统元软件是一个逻辑实体,而不是有形系统元件,其开发成本和进度难以准确地估算件,其开发成本和进度难以准确地估算n软件是被开发或被设计,它没有显著制造软件是被开发或被设计,它没有显著制造过程,一旦开发成功,只需复制即可,但过程,一旦开发成功,只需复制即可,但其维护工作量大其维护工作量大n软件使用没有硬件那样机械磨损和老化问软件使用没有硬件那样机械磨损和老化问题题第13页第14页 软件其它特点:软件其它特点:n软件开发和运行常受到计算机硬件限软件开发和运行常受到计算机硬件限制,制,对计算机硬件有着不一样程度依对计算机硬件有着不一
11、样程度依赖性赖性n软件开发至今软件开发至今还未完全实现自动化还未完全实现自动化n软件成本相当昂贵软件成本相当昂贵n相当多软件工作相当多软件工作包括到社会原因包括到社会原因第15页第16页软件特征(归纳)软件特征(归纳)n软件是逻辑,而不是物理软件是逻辑,而不是物理n软件开发与人关系亲密软件开发与人关系亲密n软件开发成本大软件开发成本大n软件生产是简单拷贝软件生产是简单拷贝n软件不会磨损和老化软件不会磨损和老化n软件受环境影响大软件受环境影响大n软件维护易产生新问题软件维护易产生新问题第17页软件技术进步落后于需求增加第18页软件开发发展过程软件开发发展过程计算机应用计算机应用发展发展软件数量多
12、软件数量多规模大规模大软件成本高质软件成本高质量低量低个体化软件开发方法个体化软件开发方法软件维护困难软件维护困难软件危机软件危机软件工程软件工程第19页软件危机软件危机 定义:定义:计算机软件开发和维护过程所碰到计算机软件开发和维护过程所碰到一系列严重问题一系列严重问题 第20页软件危机表现软件危机表现n对软件开发成本和进度预计经常很不正确对软件开发成本和进度预计经常很不正确n用户对用户对“已完成已完成”软件系统不满意现象经常发生软件系统不满意现象经常发生n软件产品质量往往靠不住软件产品质量往往靠不住n软件经常是不可维护软件经常是不可维护n软件通常没有适当文档资料软件通常没有适当文档资料n软
13、件成本在计算机系统总成本中所占百分比逐年上软件成本在计算机系统总成本中所占百分比逐年上升升n软件开发生产率提升速度远远跟不上计算机应用快软件开发生产率提升速度远远跟不上计算机应用快速普及深入趋势速普及深入趋势第21页软件危机原因软件危机原因n软件是逻辑产品,开发进度、成本难以预计软件是逻辑产品,开发进度、成本难以预计n缺乏或不完整、不一致文档给维护带来困难缺乏或不完整、不一致文档给维护带来困难n用户对软件需求描述往往不够准确,有遗漏,有二义用户对软件需求描述往往不够准确,有遗漏,有二义n软件开发人员对需求了解与用户原来愿望有差异软件开发人员对需求了解与用户原来愿望有差异n大型软件项目需多人协同
14、完成,缺乏管理经验大型软件项目需多人协同完成,缺乏管理经验n开发人员不能有效地、独立自主地处理大型软件全部开发人员不能有效地、独立自主地处理大型软件全部关系关系n缺乏有力方法学和工具支持缺乏有力方法学和工具支持n软件项目标特殊性和人类智力不足软件项目标特殊性和人类智力不足第22页软件危机原因(归纳)软件危机原因(归纳)n原因原因n客观:客观:软件本身特点软件本身特点n逻辑部件逻辑部件n规模庞大规模庞大n主观:主观:不正确开发方法不正确开发方法n忽略需求分析忽略需求分析n错误认为:软件开发错误认为:软件开发=程序编写程序编写n轻视软件维护轻视软件维护第23页克服软件危机路径克服软件危机路径n消除
15、错误概念和做法消除错误概念和做法n推广使用成功开发技术和方法推广使用成功开发技术和方法n使用软件工具和软件工程支持环境使用软件工具和软件工程支持环境n加强软件管理加强软件管理第24页软件语言软件语言software language 软件语言是用于书写计算机软件语言。软件语言是用于书写计算机软件语言。它主要包含:它主要包含:1.需求定义语言需求定义语言 2.功效性语言功效性语言 3.设计性语言设计性语言 4.实现性语言(即程序设计语言)实现性语言(即程序设计语言)5.文档语言文档语言第25页1.需求定义语言需求定义语言requirements definition language需求定义语言
16、用来书写软件需求定义。需求定义语言用来书写软件需求定义。软件需求定义是软件功效需求和非功效需软件需求定义是软件功效需求和非功效需求定义性描述。软件功效需求刻画软件求定义性描述。软件功效需求刻画软件“做什做什么么”,软件非功效需求刻画诸如功效性限制、,软件非功效需求刻画诸如功效性限制、设计限制、环境描述、数据与通信规程及项目设计限制、环境描述、数据与通信规程及项目管理等管理等 经典需求定义语言有经典需求定义语言有PSL语言(语言(Problem Statement Language问题陈说语言)问题陈说语言)第26页2.功效性语言功效性语言functional language功效性语言用来书写
17、软件功效规约功效性语言用来书写软件功效规约(functional specification)软件功效规约是软件功效严格而完整软件功效规约是软件功效严格而完整陈说。通常它只刻画软件系统陈说。通常它只刻画软件系统“做什么做什么”外部功效,而不包括系统外部功效,而不包括系统“怎样做怎样做”内部内部算法。算法。经典功效性语言有广谱语言、经典功效性语言有广谱语言、Z语言。语言。第27页3.设计性语言设计性语言design languagen设计性语言用来书写软件设计规约(design specification)n 软件设计规约是软件设计严格而完整陈述。一方面,它是软件功能归约算法性细化,刻画软件“如
18、何做”内部算法,其次,它是软件实现依据。n典型设计性语言有PDL语言(Program Design Language)第28页4.实现性语言实现性语言 实现性语言用来书写计算机程序。实现实现性语言用来书写计算机程序。实现性语言也称编程语言或程序设计语言性语言也称编程语言或程序设计语言(programming language)程序设计语言可按语言级别、对使用者程序设计语言可按语言级别、对使用者要求、应用范围、使用方式、成份性质等各要求、应用范围、使用方式、成份性质等各种角度进行分类种角度进行分类 第29页 A)按语言级别分按语言级别分:低级语言低级语言和和高级语言高级语言 低级语言低级语言是与
19、特定计算机体系结构亲密相关程是与特定计算机体系结构亲密相关程序设计语言,如机器语言、汇编语言。其特点是与序设计语言,如机器语言、汇编语言。其特点是与机器相关,功效高,但使用复杂,开发费时,难维机器相关,功效高,但使用复杂,开发费时,难维护。护。高级语言高级语言是不反应特定计算机体系结构程序设计是不反应特定计算机体系结构程序设计语言,它表示方法比低级语言更靠近于待解问题表语言,它表示方法比低级语言更靠近于待解问题表示方法。其特点是在一定程度上与详细机器无关,示方法。其特点是在一定程度上与详细机器无关,易学、易用、易维护。但高级语言程序经编译后产易学、易用、易维护。但高级语言程序经编译后产生目标程
20、序功效往往较低。生目标程序功效往往较低。第30页B)按用户要求分按用户要求分:过程式语言过程式语言和和非过程式语言非过程式语言 过程式语言(过程式语言(procedural language)是经过指是经过指明一列可执行运算及运算次序来描述计算过程程序设明一列可执行运算及运算次序来描述计算过程程序设计语言。如计语言。如FORTRAN、COBOL、C等。等。非过程式语言(非过程式语言(nonprocedural language)是是不显式指明处理过程细节程序设计语言。在这种语言不显式指明处理过程细节程序设计语言。在这种语言中尽可能引进各种抽象度较高非过程性描述伎俩,以中尽可能引进各种抽象度较高
21、非过程性描述伎俩,以期做到在程序中增加期做到在程序中增加“做什么做什么”描述成份,降低描述成份,降低“怎怎样做样做”细节描述。如第四代语言(细节描述。如第四代语言(4GL)、函数式语)、函数式语言、逻辑式语言。言、逻辑式语言。第31页 命令式语言(命令式语言(imperative language)即过程式语即过程式语言。言。申述式语言(申述式语言(declarative language)是着重描是着重描述要处理什么,而非描述怎样处理语言。申述式语言述要处理什么,而非描述怎样处理语言。申述式语言程序是关于问题解约束陈说,这些约束迫使含于实现程序是关于问题解约束陈说,这些约束迫使含于实现中算法
22、处理机制生成一个解或一组解。如中算法处理机制生成一个解或一组解。如函数式语言、函数式语言、逻辑式语言逻辑式语言。B)按用户要求分:按用户要求分:过程式语言过程式语言和和非过程式语言非过程式语言 (也可称:(也可称:命令式语言命令式语言和和申述式语言)申述式语言)第32页 函数式语言函数式语言(functional programming language)中中函数是结构程序基本成份,它提供一些设施用于结构函数是结构程序基本成份,它提供一些设施用于结构更为复杂函数。程序人员依据提出问题去定义求解函更为复杂函数。程序人员依据提出问题去定义求解函数(即主程序),其中可能包含一些辅助函数。如数(即主程
23、序),其中可能包含一些辅助函数。如Lisp语言。语言。逻辑式语言逻辑式语言(logic programming language)基本运基本运算单位是谓词。谓词定义了变元间逻辑关系。比如,算单位是谓词。谓词定义了变元间逻辑关系。比如,Prolog语言基本形式是语言基本形式是Horn子句,其程序围绕着某子句,其程序围绕着某一主题事实、规则和问询三类语句组成。这三类语句一主题事实、规则和问询三类语句组成。这三类语句分别用来陈说事实、定义规则和提出问题。分别用来陈说事实、定义规则和提出问题。申述式语言(申述式语言(declarative language)第33页 C)按应用范围分:按应用范围分:通
24、用语言通用语言和和专用语言专用语言 通用语言通用语言指目标非单一语言,如指目标非单一语言,如FORTRAN、COBOL、C等。等。专用语言专用语言指目标单一语言,如自动指目标单一语言,如自动数控程序数控程序APT。第34页 D)按使用方式分:按使用方式分:交互式语言交互式语言和和非交互式语言非交互式语言 交互式语言交互式语言指含有反应人机交互作用指含有反应人机交互作用语言,如语言,如BASIC。非交互式语言非交互式语言指不反应人机交互作用指不反应人机交互作用语言,如语言,如FORTRAN、COBOL。第35页 E)按成份性质分:按成份性质分:次序语言次序语言、并发语言并发语言、分布语言分布语言
25、 次序语言次序语言指只含次序成份语言,如指只含次序成份语言,如FORTRAN、C。并发语言并发语言指含有并发成份语言,如指含有并发成份语言,如Modula、Ada、并发、并发Pascal。分布语言分布语言指考虑到分布计算要求语言,指考虑到分布计算要求语言,如如Modula。第36页5.文档语言文档语言 documentation languagen 文档语言文档语言用来书写软件文档。用来书写软件文档。计算机软件文档是计算机开发、维护和计算机软件文档是计算机开发、维护和使用过程档案资料和对软件本身阐述性资使用过程档案资料和对软件本身阐述性资料。料。通惯用自然语言或半形式化语言书写。通惯用自然语言
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 电子 教案 大同 大学 公共课 一等奖 全国 获奖 课件
限制150内