《软件工程基础与训实教程.pptx》由会员分享,可在线阅读,更多相关《软件工程基础与训实教程.pptx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程基础与实训教程软件工程基础与实训教程杜文洁杜文洁 主编主编第第 1 1 章章 软件工程概述软件工程概述电子工业出版社下页下页上页上页内容介绍内容介绍1.1 软件危机1.2 软件工程1.3 软件的开发方法1.4 软件生存周期1.5 软件开发模型1.6 小结电子工业出版社下页下页上页上页1.1 软件危机软件危机1.1.1 1.1.1 软件的定义及特点软件的定义及特点 软件是计算机系统中与硬件相互依存的另一部分,它包括程序、软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档。其中程序是按照事先设计的功能和性能相关数据及其说明文档。其中程序是按照事先设计的功能和性能要
2、求执行的指令序列;数据是程序运行过程中处理的对象;文档要求执行的指令序列;数据是程序运行过程中处理的对象;文档是与程序开发、维护和使用有关的各种图文资料。是与程序开发、维护和使用有关的各种图文资料。软件有如下特点:软件有如下特点:(1 1)软件是一种逻辑实体,具有抽象性。)软件是一种逻辑实体,具有抽象性。(2 2)软件在使用过程中没有磨损的问题。)软件在使用过程中没有磨损的问题。(3 3)软件一旦研制成功,就可以重复制造,其生产过程就变)软件一旦研制成功,就可以重复制造,其生产过程就变成复制过程。成复制过程。(4 4)软件的开发和运行必须依赖于特定的计算机系统环境。)软件的开发和运行必须依赖于
3、特定的计算机系统环境。(5 5)软件开发至今尚未摆脱手工方式。)软件开发至今尚未摆脱手工方式。电子工业出版社下页下页上页上页1.1.2 1.1.2 软件危机的产生原因软件危机的产生原因 软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。题的现象。软件危机的产生有两方面的因素:一方面与软件本身的抽象性软件危机的产生有两方面的因素:一方面与软件本身的抽象性和复杂性有关,这是客观原因;另一方面则与软件开发和维护和复杂性有关,这
4、是客观原因;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。过程中使用的技术和方法有关,这是主观原因。其根本原因是软件开发过程不成熟,主要表现为:其根本原因是软件开发过程不成熟,主要表现为:(1 1)忽视软件开发前期的调研和分析工作。)忽视软件开发前期的调研和分析工作。(2 2)开发过程缺乏统一的规范。)开发过程缺乏统一的规范。(3 3)软件开发管理困难而负责。)软件开发管理困难而负责。(4 4)没有完善的质量保证体系。)没有完善的质量保证体系。电子工业出版社下页下页上页上页1.1.3 1.1.3 解决软件危机的方法解决软件危机的方法为了摆脱软件危机造成的困境,北大西洋公约
5、组织(为了摆脱软件危机造成的困境,北大西洋公约组织(NATONATO)的科学委员会于的科学委员会于19681968年在联邦德国召开的有关研讨会上,第一次年在联邦德国召开的有关研讨会上,第一次提出了提出了“软件工程软件工程”(Software EngineeringSoftware Engineering)的概念。从此,软件)的概念。从此,软件工程作为一门新兴的工程学科诞生了。工程作为一门新兴的工程学科诞生了。软件工程的主要思想是运用工程学的基本原理和方法来组织和软件工程的主要思想是运用工程学的基本原理和方法来组织和管理软件生产。管理软件生产。电子工业出版社下页下页上页上页1.2 软件工程软件工
6、程1.2.1 1.2.1 软件工程的定义及目标软件工程的定义及目标 软件工程就是采用工程的概念、原理、技术和方法来开发与软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理方法和最先进维护软件,把经过时间考验而证明是正确的管理方法和最先进的软件开发技术结合起来,运用到软件开发和维护过程中。的软件开发技术结合起来,运用到软件开发和维护过程中。软件工程旨在开发满足用户需求、及时交付、不超过预算和软件工程旨在开发满足用户需求、及时交付、不超过预算和无故障的软件,其主要目标如下:无故障的软件,其主要目标如下:(1 1)合理预算开发成本,付出较低的开发费用;)合
7、理预算开发成本,付出较低的开发费用;(2 2)实现预期的软件功能,达到较好的软件性能,满足用户的)实现预期的软件功能,达到较好的软件性能,满足用户的需求;需求;(3 3)提高所开发软件的可维护性,降低维护费用;)提高所开发软件的可维护性,降低维护费用;(4 4)提高软件开发生产率,及时交付使用。)提高软件开发生产率,及时交付使用。电子工业出版社下页下页上页上页1.2.2 1.2.2 软件工程研究的内容软件工程研究的内容 软件工程作为一门新兴的学科,研究的主要内容是软件开发技软件工程作为一门新兴的学科,研究的主要内容是软件开发技术和软件工程管理两方面。在软件开发技术方面,主要研究软术和软件工程管
8、理两方面。在软件开发技术方面,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件工件开发方法、软件开发过程、软件开发工具和环境。在软件工程管理方面,主要研究软件管理学、软件经济学、软件心理学程管理方面,主要研究软件管理学、软件经济学、软件心理学等。等。电子工业出版社下页下页上页上页1.3 软件的开发方法软件的开发方法1.3.1 1.3.1 面向过程的方法面向过程的方法 面向过程的方法包括面向过程需求分析、面向过程设计、面面向过程的方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。向过程编程、面向过程测试、面向过程维护、面向过程管理。面向
9、过程的方法又称结构化方法,习惯上叫做结构化分析、结面向过程的方法又称结构化方法,习惯上叫做结构化分析、结构化设计、结构化编程、结构化测试、结构化维护。面向过程构化设计、结构化编程、结构化测试、结构化维护。面向过程的方法的特点是:程序的执行过程不由用户控制,完全由程序的方法的特点是:程序的执行过程不由用户控制,完全由程序控制。面向过程的方法的优点是简单实用,缺点是维护困难。控制。面向过程的方法的优点是简单实用,缺点是维护困难。电子工业出版社下页下页上页上页1.3.2 1.3.2 面向数据的方法面向数据的方法 面向数据的方法,也称为面向元数据(面向数据的方法,也称为面向元数据(MetadataMe
10、tadata)的方法。元)的方法。元数据是关于数据的数据,组织数据的数据。数据是关于数据的数据,组织数据的数据。面向数据方法的特点是:程序的执行过程中,根据数据流动和面向数据方法的特点是:程序的执行过程中,根据数据流动和处理的需要,有时由程序员控制(如数据库服务器上触发器和存处理的需要,有时由程序员控制(如数据库服务器上触发器和存储过程的执行),有时由用户控制(如用户浏览层上控件的选择储过程的执行),有时由用户控制(如用户浏览层上控件的选择与执行)。与执行)。面向数据方法的优点是通俗易懂,特别适合信息系统中数据层面向数据方法的优点是通俗易懂,特别适合信息系统中数据层(数据库服务器)上的设计与实
11、现,缺点是实现窗口界面较困难。(数据库服务器)上的设计与实现,缺点是实现窗口界面较困难。电子工业出版社下页下页上页上页1.3.3 1.3.3 面向对象的方法面向对象的方法 面向对象方法起源于面向对象编程语言。面向对象方法包括分析、面向对象方法起源于面向对象编程语言。面向对象方法包括分析、设计和实现活动。它是一种把面向对象的思想运用于软件开发过设计和实现活动。它是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,建立在程,指导开发活动的系统方法,建立在“对象对象”概念(对象、类概念(对象、类和继承)基础上的方法学基于对象概念,以对象为中心,以类和和继承)基础上的方法学基于对象概念,
12、以对象为中心,以类和继承为构造机制来认识、理解、刻画客观世界和设计、构建相应继承为构造机制来认识、理解、刻画客观世界和设计、构建相应的软件系统。的软件系统。电子工业出版社下页下页上页上页 1.3.4 三种开发方法的比较三种开发方法的比较面向过程的方法、面向数据的方法和面向对象的方法这三种面向过程的方法、面向数据的方法和面向对象的方法这三种方法的比较如表方法的比较如表1-1所示。所示。表1-1 三种开发方法总结对比 方法名称方法名称优优点点缺点缺点适用情况适用情况面向过程的方法简单好学不适应窗口界面、维护困难大型工程计算、实时数据跟踪处理、各种自动化控制系统、系统软件实现等领域面向数据的方法通俗
13、易懂不适应窗口界面以关系数据库管理系统为支撑环境的信息系统建设面向对象的方法功能强大、易于维护不易掌握互联网时代,完全由用户交互控制程序执行过程的应用软件和系统软件的开发电子工业出版社下页下页上页上页软软件件生生命命周周期期是是指指软软件件产产品品或或软软件件系系统统从从产产生生、投投入入使使用用到到被被淘淘汰汰的的全全过过程程。软软件件生生命命周周期期大大致致可可以以分分为为6个个阶阶段段:可可行行性研究、需求分析、软件设计、编码、测试和维护。性研究、需求分析、软件设计、编码、测试和维护。1.4 软件生命周期软件生命周期电子工业出版社下页下页上页上页u 在在软软件件工工程程中中,人人们们通通
14、过过建建立立抽抽象象的的软软件件开开发发模模型型,把把软软件件生生命命周周期期中中的的各各个个活活动动或或步步骤骤安安排排到到一一个个框框架架中中,将将软软件开发的全过程清晰且直观地表达出来。件开发的全过程清晰且直观地表达出来。u 常常见见的的软软件件开开发发模模型型有有瀑瀑布布模模型型、原原型型模模型型、增增量量模模型型、螺旋模型以及统一软件开发过程。螺旋模型以及统一软件开发过程。1.5 软件开发模型软件开发模型电子工业出版社下页下页上页上页本本章章主主要要介介绍绍了了与与软软件件工工程程相相关关的的基基本本概概念念,同同时时还还介介绍绍了了软软件件工工程程的的目目标标和和研研究究内内容容。软软件件生生命命周周期期描描述述了了软软件件产产品品的的整整个个生生存存过过程程。使使用用软软件件开开发发模模型型来来描描述述软软件件开开发发各各个个阶阶段段之之间间的的关关系系,常常用用的的开开发发模模型型有有瀑瀑布布模模型型、原原型型模模型型、增量模型、螺旋模型和统一软件开发过程。增量模型、螺旋模型和统一软件开发过程。1.6 小结小结