软件工程完整版课件全套ppt教程(最新).ppt
《软件工程完整版课件全套ppt教程(最新).ppt》由会员分享,可在线阅读,更多相关《软件工程完整版课件全套ppt教程(最新).ppt(320页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1目录页软件工程概述第1章本章本章要点要点n=Y了解软件的概念、特点及主要分类;n=Y掌握软件危机的产生、表现及原因;n=Y掌握软件工程的定义以及基本原理;n=Y掌握软件生存周期概念;n=Y理解软件开发模型;n=Y了解软件开发工具与环境。2目录页1.1软件与软件危机第1章1 1软件的定义软件的定义软件是计算机中与硬件相互依存的另一部分,软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。简言之,软件程序数据软件程序数据+ +文档文档。1.1.1 软件的定义及其特点软
2、件的定义及其特点3目录页2.软件具有下列特点:软件具有下列特点:软件是一种逻辑产品,它具有抽象性和无形性。软件的生产与硬件不同。软件在运行和使用中,不会磨损和老化,但它存在退化问题。软件的开发和运行对计算机系统有一定的依赖性。软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。软件开发成本高、风险高。相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。1.1软件与软件危机第1章1.1.1 软件的定义及其特点软件的定义及其特点4目录页1.软件技术的发展软件技术的发展1.1软件与软件危机第1章1.1.2 软件的发展及其分类软件的发展及其分类 5目录页2.软件的分类软件的分类1.1软
3、件与软件危机第1章1.1.2 软件的发展及其分类软件的发展及其分类 (1)基于软件的功能划分系统软件、应用软件、支撑软件 (2)基于软件规模的划分微型软件、小型软件、中型软件、大型软件、甚大型软件和极大型软件6种。 (3)基于软件工作方式的划分实时处理软件、分时软件、交互式软件、批处理软件。(4)其他几类软件嵌入式软件、基于Web的软件 。6目录页1. 软件危机的主要表现软件危机的主要表现1.1软件与软件危机第1章1.1.3 软件危机软件危机(1)软件不能满足用户的需求。(2)软件开发成本严重超标,开发周期大大超过规定日期。(3)软件质量难于保证,可靠性差。(4)软件难于维护。(5)软件开发速
4、度跟不上计算机发展速度。7目录页2. 软件危机产生的原因软件危机产生的原因1.1软件与软件危机第1章1.1.3 软件危机软件危机(1)忽视软件开发前期的调研和需求分析工作。(2)缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。(3)开发过程缺乏统一的、规范化的方法论指导。(4)忽视与用户、开发组成员间的及时有效的沟通。(5)文档资料不规范或不准确。导致开发者失去工作的基础,管理者失去管理的依据。(6)没有完善的质量保证体系。8目录页3. 软件危机解决途径软件危机解决途径1.1软件与软件危机第1章1.1.3 软件危机软件危机 要解决软件危机问题,需要采取以下措施: (1)使用好
5、的软件开发技术和方法。 (2)使用好的软件开发工具,提高软件生产率。 (3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。 为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。软件工程正是从技术和管理两方面来研究如何更好地开发和维护计算机软件的。9目录页 为了克服软件危机,为了克服软件危机,1968年年10月在北大西洋公约组织(月在北大西洋公约组织(NATO)召开的计算机科学会议上,)召开的计算机科学会议上,Fritz Bauer首次提出首次提出“软件工程软件工程”的概念,试图将工程化方法应用于软件开发。的概念,试图将工程化方法应用于软件开发。 许多计算机和软件
6、科学家尝试把其他工程领域中行之有效的工程学知识运用到软件开发中许多计算机和软件科学家尝试把其他工程领域中行之有效的工程学知识运用到软件开发中来。经过不断实践和总结,最后得出一个结论:按工程化的原则和方法组织软件开发工作是有来。经过不断实践和总结,最后得出一个结论:按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一条主要出路。效的,是摆脱软件危机的一条主要出路。 软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目标是软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目标是实现软件的优质高产。软件工程的目的是在经费的预算范围内,按期交付出
7、用户满意的、质量实现软件的优质高产。软件工程的目的是在经费的预算范围内,按期交付出用户满意的、质量合格的软件产品。合格的软件产品。1.2软件工程第1章1.2.1 软件工程的定义和目标软件工程的定义和目标10目录页 著名软件工程专家著名软件工程专家Boehm综合有关专家和学者的意见并根据多年来开发软件的经验,提综合有关专家和学者的意见并根据多年来开发软件的经验,提出了软件工程的七条基本原理。出了软件工程的七条基本原理。(1)用分阶段的软件生存周期计划进行严格的质量管理。)用分阶段的软件生存周期计划进行严格的质量管理。(2)坚持进行阶段评审。)坚持进行阶段评审。(3)实行严格的产品控制。)实行严格
8、的产品控制。(4)采用现代程序设计技术。)采用现代程序设计技术。(5)软件工程结果应能清楚地审查。)软件工程结果应能清楚地审查。(6)开发小组的人员应该少而精。)开发小组的人员应该少而精。(7)承认不断改进软件工程实践的必要性。)承认不断改进软件工程实践的必要性。1.2软件工程第1章1.2.2 软件工程的基本原理软件工程的基本原理11目录页1.2软件工程第1章1.2.3 软件工程的研究内容软件工程的研究内容12目录页1.3软件生存周期第1章13目录页1.4软件开发模型第1章1.4.1 瀑布模型瀑布模型14目录页1.4软件开发模型第1章1.4.1 瀑布模型瀑布模型瀑布模型的主要优点:瀑布模型的主
9、要优点:(1)原理简单、容易掌握。)原理简单、容易掌握。(2)各阶段间都有验证和确认环节,以便进行质量管理。)各阶段间都有验证和确认环节,以便进行质量管理。(3)主要用于支持结构化方法。)主要用于支持结构化方法。瀑布模型的主要缺点:瀑布模型的主要缺点:(1)缺乏灵活性,不能适应用户需求的变化。)缺乏灵活性,不能适应用户需求的变化。(2)缺乏演化性,返回上一级的开发需要付出十分高昂的代价。)缺乏演化性,返回上一级的开发需要付出十分高昂的代价。(3)是线性的软件开发模型,回溯性很差。)是线性的软件开发模型,回溯性很差。15目录页1.4软件开发模型第1章1.4.2 快速原型模型快速原型模型16目录页
10、1.4软件开发模型第1章1.4.2 快速原型模型快速原型模型快速原型模型的优点:快速原型模型的优点:(1)增强了开发者与用户间的交流,有助于满足用户的真实需求。)增强了开发者与用户间的交流,有助于满足用户的真实需求。(2)用户可及早得到有用的产品,可及早发现问题,随时纠正错误。)用户可及早得到有用的产品,可及早发现问题,随时纠正错误。(3)减小技术、应用风险,可降低开发费用,缩短开发时间。)减小技术、应用风险,可降低开发费用,缩短开发时间。快速原型模型的缺点:快速原型模型的缺点:(1)缺乏丰富而强有力的软件工具和开发环境。)缺乏丰富而强有力的软件工具和开发环境。(2)对设计人员水平及开发环境要
11、求较高。)对设计人员水平及开发环境要求较高。(3)在多次重复改变原型的过程中,程序员会厌倦。)在多次重复改变原型的过程中,程序员会厌倦。(4)对于做到彻底测试,更新文档较为困难。)对于做到彻底测试,更新文档较为困难。17目录页1.4软件开发模型第1章1.4.3 渐增模型渐增模型18目录页1.4软件开发模型第1章1.4.3 渐增模型渐增模型渐增模型的优点:渐增模型的优点:渐增模型是瀑布模型的一个变体,可以看作是重复执行的多个瀑布模型,具有瀑布模型渐增模型是瀑布模型的一个变体,可以看作是重复执行的多个瀑布模型,具有瀑布模型的所有优点,此外,还有以下优点:的所有优点,此外,还有以下优点:(1)可分批
12、次提交软件产品,方便用户及时了解软件开发进展情况,及早发现问题。)可分批次提交软件产品,方便用户及时了解软件开发进展情况,及早发现问题。(2)以组件为单位进行开发,降低了软件开发风险。)以组件为单位进行开发,降低了软件开发风险。(3)开发顺序灵活。优先级最高的服务首先交付。)开发顺序灵活。优先级最高的服务首先交付。渐增模型的缺点:渐增模型的缺点:(1)由于对整个软件系统的需求没有一个完整的定义,会给总体设计带来麻烦。)由于对整个软件系统的需求没有一个完整的定义,会给总体设计带来麻烦。(2)在把每个新的增量构件集成到现有软件结构中时,必须不破坏原来已开发出的产品。)在把每个新的增量构件集成到现有
13、软件结构中时,必须不破坏原来已开发出的产品。(3)软件的体系结构必须是开放的,即向现有产品中加入新构件的过程必须简单、方便。)软件的体系结构必须是开放的,即向现有产品中加入新构件的过程必须简单、方便。每次增量开发的产品都应当是可测试的、可扩充的。每次增量开发的产品都应当是可测试的、可扩充的。19目录页1.4软件开发模型第1章1.4.4 喷泉模型喷泉模型20目录页1.4软件开发模型第1章1.4.4 喷泉模型喷泉模型喷泉模型的主要特点:喷泉模型的主要特点:(1)各阶段相互重叠,反映了软件过程的并行性。)各阶段相互重叠,反映了软件过程的并行性。(2)以分析为基础,资源消耗呈塔形,在分析阶段消耗资源最
14、多。)以分析为基础,资源消耗呈塔形,在分析阶段消耗资源最多。(3)反映了软件过程迭代的自然特性,从高层返回低层无资源消耗。)反映了软件过程迭代的自然特性,从高层返回低层无资源消耗。(4)强调增量开发,依据分析一点、设计一点的原则,不要求一个阶段的彻底完成,整)强调增量开发,依据分析一点、设计一点的原则,不要求一个阶段的彻底完成,整个过程是一个迭代的逐步提炼的过程。个过程是一个迭代的逐步提炼的过程。(5)是对象驱动的过程,对象是所有活动作用的主体,也是项目管理的基本内容。)是对象驱动的过程,对象是所有活动作用的主体,也是项目管理的基本内容。21目录页1.4软件开发模型第1章1.4.5 螺旋模型螺
15、旋模型22目录页1.4软件开发模型第1章1.4.5 螺旋模型螺旋模型23目录页1.5软件开发方法第1章1结构化方法结构化方法结构化方法又称传统方法、生存周期法、面向过程的方法、面向功能的方法、面向数据结构化方法又称传统方法、生存周期法、面向过程的方法、面向功能的方法、面向数据流的方法。该方法采用结构化分析、结构化设计和结构化程序设计等技术来完成软件开发。一流的方法。该方法采用结构化分析、结构化设计和结构化程序设计等技术来完成软件开发。一般是先确定软件功能,再对功能进行分解,确定怎样开发软件,然后再实现软件功能。般是先确定软件功能,再对功能进行分解,确定怎样开发软件,然后再实现软件功能。所谓结构
16、化分析,就是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流所谓结构化分析,就是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析。所谓结构化设计,就是根据模块独立性准则、图来建立系统的功能模型,从而完成需求分析。所谓结构化设计,就是根据模块独立性准则、软件结构准则,将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实软件结构准则,将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的总体设计。所谓结构化程序设计,就是根据结构程序设计原理,将每个模块的功能用现系统的总体设计。所谓结构化程序设计,就是根据
17、结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从而实现详细设计。相应的标准控制结构表示出来,从而实现详细设计。24目录页1.5软件开发方法第1章2面向数据结构方法面向数据结构方法面向数据结构方法(也称为面向数据结构方法(也称为Jackson方法)。该方法从目标系统的输入、输出数据结构入方法)。该方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。这一方法以数据结构手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。这一方法以数据结构为驱动,其优点是通俗易懂,特别适合信息系统中数据层(数据库服务器)上的设计与实现,为驱
18、动,其优点是通俗易懂,特别适合信息系统中数据层(数据库服务器)上的设计与实现,对输入、输出数据结构明确的中小型系统特别有效。其缺点是实现窗口界面较困难。该方法也对输入、输出数据结构明确的中小型系统特别有效。其缺点是实现窗口界面较困难。该方法也可与其他方法结合,用于模块的详细设计。可与其他方法结合,用于模块的详细设计。25目录页1.5软件开发方法第1章3面向对象方法面向对象方法面向对象方法是一种自底向上和自顶向下相结合的方法,该方法把对象作为数据和在数面向对象方法是一种自底向上和自顶向下相结合的方法,该方法把对象作为数据和在数据上的操作(服务)相结合的软件构件。用对象分解取代结构化方法的功能分解
19、。把所有对象据上的操作(服务)相结合的软件构件。用对象分解取代结构化方法的功能分解。把所有对象都划分成类,把若干个相关的类组织成具有层次结构的系统,下层的类继承上层的类所定义的都划分成类,把若干个相关的类组织成具有层次结构的系统,下层的类继承上层的类所定义的属性和服务。对象之间通过发送消息进行联系。使用面向对象方法开发软件时,可以重复使用属性和服务。对象之间通过发送消息进行联系。使用面向对象方法开发软件时,可以重复使用对象和类等构件,从而降低了软件开发成本,所开发的软件能适应需求变化,稳定性好,可重对象和类等构件,从而降低了软件开发成本,所开发的软件能适应需求变化,稳定性好,可重用性好,可维护
20、性好,对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。用性好,可维护性好,对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。26目录页1.6软件工具与开发环境第1章1.6.1 软件工具软件工具软件工具是指用来辅助计算机软件开发、维护和管理的软件。按照软件过程活动可将软软件工具是指用来辅助计算机软件开发、维护和管理的软件。按照软件过程活动可将软件工具分为支持软件开发过程的工具、支持软件维护过程的工具、支持软件管理过程与支持过件工具分为支持软件开发过程的工具、支持软件维护过程的工具、支持软件管理过程与支持过程的工具等。程的工具等。支持软件开发过程的工具包括需求分析工具、设
21、计工具、编码与排错工具和测试工具等;支持软件开发过程的工具包括需求分析工具、设计工具、编码与排错工具和测试工具等;支持软件维护过程的工具包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具支持软件维护过程的工具包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等;支持软件管理与软件支持的工具包括项目管理工具、配置管理工具和软件评和再工程工具等;支持软件管理与软件支持的工具包括项目管理工具、配置管理工具和软件评价工具等。价工具等。27目录页1.6软件工具与开发环境第1章1.6.2 软件开发环境软件开发环境1计算机辅助软件工程计算机辅助软件工程 计算机辅助软件工程(计
22、算机辅助软件工程(Computer|Aided Software Engineering,CASE)将各种软件工具、)将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。2集成化集成化CASE环境环境集成化开发环境(集成化开发环境(Integrated|CASE,I|CASE)是一种把支持多种软件开发方法和过程模)是一种把支持多种软件开发方法和过程模型的软件工具集成到一起的软件开发环境。型的软件工具集成到一起的软件开发环境。3软件工程环境软件工程环境软件工程环境(软件工程环境(Softw
23、are Engineering Environment,SEE)是指以软件工程为依据,支持)是指以软件工程为依据,支持典型软件生产的系统。包括三层含义,一组软件工具的集合;工具按一定方法或模型组织;工典型软件生产的系统。包括三层含义,一组软件工具的集合;工具按一定方法或模型组织;工具支持整个生存周期各阶段或部分阶段。具支持整个生存周期各阶段或部分阶段。28目录页软件的定义及可行性研究第2章本章本章要点要点n理解问题定义的内容与方法;n学会书写问题定义报告;n理解可行性研究的任务与步骤;n学会书写可行性研究报告;n学会绘制系统流程图。29目录页2.1问题定义第2章30目录页(1)问题的背景,弄清
24、楚待开发系统现在处于什么状态,为什么要开发它,是否具备开)问题的背景,弄清楚待开发系统现在处于什么状态,为什么要开发它,是否具备开发条件等问题。发条件等问题。(2)提出开发系统的问题要求以及总体要求。)提出开发系统的问题要求以及总体要求。(3)明确问题的性质、类型和范围。)明确问题的性质、类型和范围。(4)明确待开发系统要实现的目标、功能和规模。)明确待开发系统要实现的目标、功能和规模。(5)提出开发的条件要求和环境要求。)提出开发的条件要求和环境要求。 以上主要内容应写在问题定义报告(或系统目标和范围说明书)中,作为这一阶段的以上主要内容应写在问题定义报告(或系统目标和范围说明书)中,作为这
25、一阶段的“工作总结工作总结”。 2.1问题定义第2章2.1.1 问题定义的内容问题定义的内容31目录页具体步骤如下具体步骤如下:首先,系统分析员要针对用户的要求做详细的调查研究,认真听取用户对问题的介绍;阅首先,系统分析员要针对用户的要求做详细的调查研究,认真听取用户对问题的介绍;阅读与问题有关的资料,必要时还要深入现场,亲自操作;调查开发系统的背景;了解用户对开读与问题有关的资料,必要时还要深入现场,亲自操作;调查开发系统的背景;了解用户对开发的要求。发的要求。其次是与用户反复讨论,以使问题进一步确定化。经过用户和系统分析员双方充分协商,其次是与用户反复讨论,以使问题进一步确定化。经过用户和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 完整版 课件 全套 ppt 教程 最新
限制150内