【文档说明】软件工程导论(1)概述课件.ppt,共(60)页,253.007 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44985.html
以下为本文档部分文字说明:
软件工程导论(1)概述课件第一章软件工程概述1.1软件的基本概念1.2软件危机1.3软件系统的开发1.4现代软件工程1.5本章小结基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.1软件的基本概念1.1.1软件的概念1.1.2软件的特征1.1.3软件的种类基本
概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.1.1软件的概念软件是指与计算机系统的操作有关的计算机程序、规程、规则以及任何与之有关的文件。软件包括程序和文档两部分:程序:适合于计
算机处理的指令序列以及所处理的数据;文档:与软件开发、维护和使用有关的文字材料。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.1.2软件的特征软件不同于硬件一般具有如下特征:1)软件是一种逻辑性系统元素,不是物理性系统元素;2)软件只能设计或实现出来,不能用传统意义上
的制造进行生产;3)软件不会“磨损”,而硬件却会磨损;4)软件的开发和运行常常受到计算机系统的限制;基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.1.2软件的特征5)软件的维护比硬件复杂;6)软件
的开发至今仍未完全摆脱手工艺的开发方式;7)软件的成本相当昂贵;8)相当多的软件工作涉及到社会因素。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.1.3软件的种类按规模分:微型软件、小型软件、中型软件、大型软件、特大型软件按工作方式分:
实时处理软件、交互式工作软件、分时工作软件、批处理软件按服务对象分:项目软件、产品软件按计算机处理能力分:数值计算型软件、逻辑(符号)推理型软件、人机交互型软件、数据密集型软件基本概念软件危机系统开发软件工
程本章小结9/4/2022•软件工程导论1.1.3软件的种类按功能分:系统软件应用软件管理软件实时软件工程分析和科学计算软件嵌入式软件人工智能软件基本概念软件危机系统开发软件工程本章小结9/4/2022•软
件工程导论1.2软件危机1.2.1软件的发展阶段1.2.2软件危机的挽救基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.2.1软件的发展阶段50-60年代第一代计算机发展到第二代计算机,个体化软件生产——程序设计阶段60年代中-70年代中第二代计算机发展
到第三代计算机,作坊式软件生产——程序系统阶段基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.2.1软件的发展阶段70年代至今第三代计算机发展到第四代计算机,软件产品化、系列化、工程化、标准化生产——软件工程阶段发展趋势从技术性的软件工程阶段过
渡到企业技术计划、社会信息化的计算机系统工程阶段基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.2.2软件危机的挽救软件危机的表现:软件生产供不应求软件开发成本和进度估计不准软件开发人员对用户需求缺乏深入准确的了解软件产品质量差软件的可维护
性、适应性差软件文档资料不完整不合格软件价格昂贵基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.2.2软件危机的挽救造成软件危机的原因软件本身的特点导致开发和维护困难;软件开发方法不正确;开发人员和管理人员只重视开发而轻视
问题的定义和软件维护;软件开发技术本身落后于硬件技术水平和客观需求;软件管理技术差。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.2.2软件危机的挽救软件危机的解决方案:采用工程化方法和工程途径来研制与维护软件
采用先进的技术、方法与工具来开发与设计软件采用必要的组织管理措施基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3软件系统的开发1.3.1系统开发人员1.3.2软件开发基础1.3.3系统开发方法基本概念
软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3软件系统的开发评判软件好坏的准则:正确性可靠性简明性有效性可维护性适应性基本概念软件危机系统开发软件工程本章小结软件符合规定需求的程度在规定的条件和时间内软件不引起系统失效的
概率要求软件简单易读,它和软件设计语言的表达能力以及软件设计风格有关软件的时间效率和空间效率软件能够修改和升级的容易程度软件使不同的系统约束条件和用户需求得到满足的容易程度9/4/2022•软件工程导论1.3软件系统的开发应
用软件的开发过程:应用软件系统开发计算机技术水平系统需求应用系统开发基础开发人员基本概念软件危机系统开发软件工程本章小结开发方法与工具9/4/2022•软件工程导论1.3.1系统开发人员系统开发人员是指完成系统开发
任务的项目组成员。包括:系统分析与设计人员用户基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.2软件开发基础应用软件系统是运行在计算机硬件、系统软件和网络基础上的,因此应用软件的开发基础主要
包括:操作系统编译程序数据库管理系统网络与分布式系统设计基础基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法目前用于系统开发的主要方法:结构化方法面向对象方法专家系统方法基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论
1.3.3系统开发方法结构化方法:系统的基本构成要素是模块采用自顶向下、逐步求精的思想吸收用户参与系统分析与设计采用图示工具附加语义说明的方法阐述系统的结构与功能基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工
程导论1.3.3系统开发方法结构化方法:工作内容与步骤常用方法:数据流程图法、结构化分析/设计方法、IDEF方法、Jackson方法分析:问题是什么?设计:如何解决?实现:解决方案分析确定数据流图分析确定实体联
系图设计建立结构图设计建立关系数据模式过程设计编码调试运行维护基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法面向对象方法:对象的基本特性标识唯一性分类性多态性
继承性封装性基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法面向对象方法:工作内容与步骤分析:问题是什么?设计:如何解决?实现:解决方案分析确定对象分析确定结构分析确定主题分析确定属性和实例
关联分析确定行为和消息关联设计建立问题空间类设计建立用户界面类设计建立任务管理类设计建立数据管理类操作设计编码调试运行维护基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法面向对象方法:基本要点系统分析阶段建立的系统逻辑
模型具有一个相对稳定的结构;系统设计与实现是对上述逻辑模型的细化或实例化;系统开发过程是系统需求、分析、设计、实现、测试等一系列模型的可以有效地解决系统复杂性问题;构成系统的基本单元——对象可设计成软件构件,具有一定的可重组性。基本概念软
件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法专家系统方法:是一种围绕知识来组织软件系统的方法。系统的基本要素:知识应用知识的推理机制基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法专家系统方法:工作内容与步骤
分析:问题是什么?设计:如何解决?实现:解决方案分析确定知识及知识之间的关系设计建立知识库设计建立推理机设计建立数据库设计建立解释器设计建立知识获取器编码调试运行维护基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程
导论1.3.3系统开发方法各种方法特点比较:结构化软件面向对象软件专家系统软件概念功能的集合事物的集合知识的集合构成过程+数据以过程为中心(数据+相应的操作)的封装以数据为中心知识+推理以知识为中心运行控制顺序处理
方式过程驱动控制交互式、并行处理方式消息驱动控制交互式、并行处理方式数据驱动控制基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.3.3系统开发方法各种方法特点比较:结构化软件面向对象软件专家系统软件开发重点设计分析知识的获取与表达应用数据类型比较简单的数值计算和数据统计
管理软件的开发大型复杂的人机交互式软件和数据统计管理软件的开发逻辑推理型软件的开发发展方向面向对象方法基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4现代软件工程1.4.1软件工程概述1.4.2软件生命周期1.4.
3传统软件工程模式1.4.4现代软件工程模式基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.1软件工程概述概念软件工程指制定并采用合理的工程原则,从而以最低的成本、最短的时间、最好
的质量开发出满足用户需求的软件。软件工程包括三个要素:方法、工具及过程。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.1软件工程概述研究的内容理论、结构、方法、工具、环境、管理、规范等。软件工程学软件
开发理论、结构程序正确性证明理论软件可靠性理论软件成本估算模型软件开发模型模块划分原理软件开发技术软件开发方法学软件工具软件环境软件工程管理、规范软件管理(人员、计划、标准、配置)软件经济(成本估算、质量评价)基本概念软件危机系统开发软件工程本章小结9/4
/2022•软件工程导论1.4.1软件工程概述研究的基本目标定义良好的方法学,面向计划、开发维护整个软件生存周期的方法学;确定的软件成分,记录软件生存周期每一步的软件文档资料,按步显示轨迹;可预测的结果,在生存周期中,每隔一定时间可以进行复审。基本概念软件危机系统开
发软件工程本章小结9/4/2022•软件工程导论1.4.1软件工程概述基本原则抽象目标分解局部化与信息隐藏一致性确定性基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.2软件生命周期(1)软件定义期问题定义可行性研究需求分析基
本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.2软件生命周期(2)软件开发期系统设计详细设计编码测试基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.2软件生命周期(3)软件维护期软件维护:改正性维护适应性维护完善性维护基
本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软件工程模式瀑布模型计划需求分析设计编码测试运行维护评价定义阶段开发阶段维护阶段返回计划定义做什么的问题结构设计如何做的体系结构修改设计基本概念软件危机系统开发软件工
程本章小结9/4/2022•软件工程导论1.4.3传统软件工程模式具有维护循环的瀑布模型计划需求分析设计编码测试运行评价软件开发维护循环计划需求分析设计编码基本概念软件危机系统开发软件工程本章小结9/4/2
022•软件工程导论1.4.3传统软件工程模式瀑布模型的优点奠定了软件工程方法的基础,流水依赖,便于分工协作,推迟物理实现,易于修改文档,有复审质量保证。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软件工
程模式瀑布模型的缺点要求用户一开始就清楚地提出所有需求;需求变化对生命周期各个阶段产生的影响不同;实际项目很少完全遵循该模式提出的工作顺序;可运行的程序一直要到项目的最后阶段才可能得到。基本概念软件危机系
统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软件工程模式原型模型计划需求分析原型开发原型评价最终系统设计最终系统实现用户反馈意见确定用户的基本要求开发初始原型实现并运行原型修改并完善原型基本概念软件危机系统开发软件工程本章小结9/4/202
2•软件工程导论1.4.3传统软件工程模式原型模型的优点减少了信息交流中的问题;减少了设计中的错误;增加了用户的满意程度;能产生一个正确的系统需求描述;减少了日程表时间;基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软
件工程模式原型模型的优点减少了开发中的风险;减少了对用户的培训时间;简化了管理;降低了系统的成本;原型法可以作为一种学习工具,服务于系统开发过程。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4
.3传统软件工程模式原型模型的缺点由于在很短的时间内构造原型,用户有时会将原型当作最终系统来使用,而不能耐心地等待系统最终版本的完成,并拒绝在系统最终版本上工作。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传
统软件工程模式螺旋模型提交线制定计划决定目标、方案和限制风险分析评价方案、识别风险、消除风险实施工程开发、验证下一个产品客户评估软件需求原型1需求计划生存期风险分析原型2原型3可运行原型风险分析风险分析计划开发计划与组装测试
评审基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软件工程模式总体数据库规划模型行业分析建长远企业模型实体分析建主体数据库数据分布分析逻辑设计物理设计测试企业长远计算机管理目标抽象出经营
主题结构化分析维护基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.3传统软件工程模式总体数据库规划模型的优点起点高,不受行业水平的限制。总体数据库规划模型的缺点投资大,周期长,技术与社会性复杂,难度大。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程
导论1.4.3传统软件工程模式传统软件工程模式的缺点忽视了人在软件工程中的地位与作用;规定了软件开发各阶段的详细文档格式及要求。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.4
现代软件工程模式概述软件开发过程是以人为主,利用软件开发方法及工具进行的各种活动的有序过程。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.4现代软件工程模式系统分析系统构造软件组件系统测试系统开发与测试人员、方
法及工具系统需求或需求变化软件系统基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.4现代软件工程模式系统分析行为信息表示系统分析空间基本概念软件危机系统开发软件工程本章小结完整描述系统中处理的永久
与临时性信息,这些信息通常刻划了系统的内部状态。完全描述系统状态变化所需的处理或功能。详细描述系统的对外接口。9/4/2022•软件工程导论1.4.4现代软件工程模式系统构造实现环境系统设计空间行为信息表示基本概念软件危机系统开发软件
工程本章小结扩展9/4/2022•软件工程导论1.4.4现代软件工程模式系统测试单元测试集成测试系统测试基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.4现代软件工程模式软件组件软件组件是辅助或支撑
系统构造的一个过程,软件组件开发是开发与维护系统构造过程中用到的组件。将软件组件作为一个单独的过程,目的是将组件作为构造软件的“零部件”,在符合国际或工业标准与规范的前提下,应具有一定程度的通用性和可重用性,同一个组件可能应用到不同的应用中;同时易于修改与维护
,可以在不同的应用中进行裁剪后使用。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.4.4现代软件工程模式系统开发人员的组织管理明确系统开发人员与用户之间的责任与义务;明确各类开发人员的主要工作及责任;制定或选择工程开发规范。基本概
念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论1.5本章小结软件及其分类软件系统开发方法软件工程软件生命周期软件工程模式基本概念软件危机系统开发软件工程本章小结9/4/202
2•软件工程导论1.5本章小结本课程将从软件计划、软件需求分析、软件概要设计、软件详细设计、软件编码、软件测试等方面详细介绍软件工程的方法及应用。基本概念软件危机系统开发软件工程本章小结9/4/2022•软件工程导论谢谢!基本概念软件危机系
统开发软件工程本章小结第一章软件工程概述9/4/2022•软件工程导论