书签 分享 收藏 举报 版权申诉 / 38
上传文档赚钱

类型第1章软件工程概述课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4414607
  • 上传时间:2022-12-07
  • 格式:PPT
  • 页数:38
  • 大小:206.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第1章软件工程概述课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件工程 概述 课件
    资源描述:

    1、2022-12-71【本章重点本章重点】软件的概念和特点、软件工程的软件的概念和特点、软件工程的框架及基本原则框架及基本原则【本章用途本章用途】本章论述的有关软件工程的基本本章论述的有关软件工程的基本概念、原理及相关知识能帮助读者对软件工程概念、原理及相关知识能帮助读者对软件工程的原理和方法有一个概括的、本质的认识。的原理和方法有一个概括的、本质的认识。2022-12-72许多人把软件这个术语等同于计算机程序,许多人把软件这个术语等同于计算机程序,其实这种理解是很狭隘的。其实这种理解是很狭隘的。软件是程序和所有使程序正确运行所需要的软件是程序和所有使程序正确运行所需要的相关文档和配置信息。相关

    2、文档和配置信息。一个软件系统通常包含大量独立的程序、用一个软件系统通常包含大量独立的程序、用于设置这些程序的配置文件、描述系统结构的系于设置这些程序的配置文件、描述系统结构的系统文档和如何使用该系统的用户文档,以及告知统文档和如何使用该系统的用户文档,以及告知用户下载最新产品信息的用户下载最新产品信息的Web站点。站点。2022-12-73n软件具有如下特点:软件具有如下特点:软件是一种逻辑实体,不是具体的物理实体。软件是一种逻辑实体,不是具体的物理实体。软件产品的生产主要是研制。软件产品的生产主要是研制。软件具有软件具有“复杂性复杂性”,其开发和运行常受到,其开发和运行常受到计算机系统的限制

    3、。计算机系统的限制。软件成本昂贵,其开发方式目前尚未完全摆软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。脱手工生产方式。软件不存在磨损和老化问题,但存在退化问软件不存在磨损和老化问题,但存在退化问题。题。2022-12-74时间失效率时间失效率理想曲线实际曲线图图1.1给出了硬件的失效率曲线,它是一个给出了硬件的失效率曲线,它是一个U型曲型曲线(即浴盆曲线),说明硬件随着使用时间的增线(即浴盆曲线),说明硬件随着使用时间的增加失效率急剧上升。加失效率急剧上升。图图1.2所描述的软件失效率曲线,它没有所描述的软件失效率曲线,它没有U型曲线型曲线的右半翼,表明软件随着使用时间的增加失效率的

    4、右半翼,表明软件随着使用时间的增加失效率降低,因为软件不存在磨损和老化问题,然而存降低,因为软件不存在磨损和老化问题,然而存在退化问题。在退化问题。图图1.1图图1.22022-12-75软件产品有以下两类:软件产品有以下两类:(1)通用软件产品通用软件产品 这类软件产品由软件开发机构制作,在市场上公开这类软件产品由软件开发机构制作,在市场上公开销售,可以独立使用。这类软件产品有:数据库软销售,可以独立使用。这类软件产品有:数据库软件、字处理软件、绘图软件以及工程管理工具等。件、字处理软件、绘图软件以及工程管理工具等。(2)定制软件产品定制软件产品 这类软件产品受特定的客户委托,由软件承包商专

    5、这类软件产品受特定的客户委托,由软件承包商专门为这类客户开发。这类软件有:电子设备的控制门为这类客户开发。这类软件有:电子设备的控制系统、特定的业务处理系统和空中交通管制系统等。系统、特定的业务处理系统和空中交通管制系统等。这两类产品的一个重要这两类产品的一个重要区别区别在于:在通用软件中,在于:在通用软件中,软件描述由开发者自己完成,而定制软件产品的软软件描述由开发者自己完成,而定制软件产品的软件描述通常是由客户给出,开发者必须按客户要求件描述通常是由客户给出,开发者必须按客户要求进行开发。进行开发。2022-12-76n软件工程是一类工程。工程是将理论和知识应用于实践的软件工程是一类工程。

    6、工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。计算机科学和数学用于构造模型与算法,学和管理科学。计算机科学和数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划资源、对质量和成本进行管理。管理科学用于计划资源、对质量和成本进行管理。n早期软件开发的经验是:非正规的软件开发并不奏效。多早期软件开发的经验是:

    7、非正规的软件开发并不奏效。多数软件项目有时甚至要推迟几年才能完成,而且比预计的数软件项目有时甚至要推迟几年才能完成,而且比预计的费用高,不可靠,难以维护,总之,做得很差。软件开发费用高,不可靠,难以维护,总之,做得很差。软件开发陷入危机,结果是硬件成本在下降而软件成本却呈快速增陷入危机,结果是硬件成本在下降而软件成本却呈快速增长之势,因而必须要有新的技术和方法来控制大型软件系长之势,因而必须要有新的技术和方法来控制大型软件系统固有的复杂性。统固有的复杂性。2022-12-77n70年代初,自年代初,自“软件工程软件工程”这一概念提出以来,主要围绕软这一概念提出以来,主要围绕软件过程以及软件复用

    8、,开展了有关软件生产技术和软件生产件过程以及软件复用,开展了有关软件生产技术和软件生产管理的研究与实践。管理的研究与实践。n其主要成果有:提出了应用广泛的面向对象语言以及相关的其主要成果有:提出了应用广泛的面向对象语言以及相关的面向对象方法,大力开展了计算机辅助软件工程的研究与实面向对象方法,大力开展了计算机辅助软件工程的研究与实践。践。n尤其是近几年来,针对软件复用及软件生产,软件构件技术尤其是近几年来,针对软件复用及软件生产,软件构件技术以及软件质量控制技术、质量保证技术得到了广泛的应用。以及软件质量控制技术、质量保证技术得到了广泛的应用。n目前各个软件企业都十分重视资质认证,并想通过这些

    9、工作目前各个软件企业都十分重视资质认证,并想通过这些工作进行企业管理和技术的提升。进行企业管理和技术的提升。2022-12-78IEEEIEEE【IEE93IEE93】给出了软件工程的定义:给出了软件工程的定义:“把系统的、规范的、可度量的方法应用把系统的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程应于软件的开发、运行和维护过程,即将工程应用于软件;并研究以上实现的途径用于软件;并研究以上实现的途径”2022-12-79l软件工程软件工程(Software Engineering)的框架可概括为:的框架可概括为:目目标、过程标、过程和和原则原则。(1)软件工程软件工程目标目

    10、标是生产具有正确性、可用性以及是生产具有正确性、可用性以及开销合宜的产品。开销合宜的产品。正确性指软件产品达到预期功能的程度。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程可用性指软件基本结构、实现及文档为用户可用的程度。度。开销合宜是指软件开发、运行的整个开销满足用户要开销合宜是指软件开发、运行的整个开销满足用户要求的程度。求的程度。2022-12-710 (2)软件工程软件工程过程过程是生产一个最终能满足需是生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、软件工程

    11、过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。认以及维护等活动。2022-12-711 (3)软件工程的软件工程的原则原则是指围绕工程设计、工是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须程支持以及工程管理在软件开发过程中必须遵循的原则。遵循的原则。四项基本原则四项基本原则:选取适宜的开发范型。选取适宜的开发范型。采用合适的设计方法。采用合适的设计方法。提供高质量的工程支持。提供高质量的工程支持。重视开发过程的管理。重视开发过程的管理。2022-12-712 从本质上讲,计算机科学研究的是构成计算机

    12、和软件系统从本质上讲,计算机科学研究的是构成计算机和软件系统基础的有关理论和方法,而软件工程则研究软件制作中的实际基础的有关理论和方法,而软件工程则研究软件制作中的实际问题。正如电子工程师必须具有一定的物理学知识一样,软件问题。正如电子工程师必须具有一定的物理学知识一样,软件工程人员同样必须具有一定的计算机科学知识。工程人员同样必须具有一定的计算机科学知识。理论上,所有软件工程都应该以计算机科学理论作为坚理论上,所有软件工程都应该以计算机科学理论作为坚实的基础,但实际情况并非如此。软件工程人员常常必须要用实的基础,但实际情况并非如此。软件工程人员常常必须要用特定的方法去开发软件。对于实际、复杂

    13、的问题,计算机科学特定的方法去开发软件。对于实际、复杂的问题,计算机科学的经典理论不可能总是适用的,这时就需要应用软件工程的方的经典理论不可能总是适用的,这时就需要应用软件工程的方法来解决。法来解决。2022-12-713系统工程应该是基于计算机的系统工程,研究由软件系统工程应该是基于计算机的系统工程,研究由软件起主导作用的、有关复杂系统的开发和进化的方方面起主导作用的、有关复杂系统的开发和进化的方方面面,包括硬件开发、系统决策、过程设计、系统实施面,包括硬件开发、系统决策、过程设计、系统实施和软件工程等。和软件工程等。系统工程人员要做的是描述这个系统,定义总的体系系统工程人员要做的是描述这个

    14、系统,定义总的体系结构,然后集成各个组件以完成整个系统。他们较少结构,然后集成各个组件以完成整个系统。他们较少关注系统各组件(硬件、软件等)的工程问题。关注系统各组件(硬件、软件等)的工程问题。系统工程的产生比软件工程要早。随着软件在系统中系统工程的产生比软件工程要早。随着软件在系统中的比重不断增大,软件工程技术正被应用于系统工程的比重不断增大,软件工程技术正被应用于系统工程过程之中。过程之中。2022-12-714软件工程是更广泛的系统工程的一部分。软件工程是更广泛的系统工程的一部分。软件是非物质的,经典的数学模型只适用于一部分而不是全软件是非物质的,经典的数学模型只适用于一部分而不是全部的

    15、软件。部的软件。软件工程不必一味地模仿传统工程,它们是完全不同的。软件工程不必一味地模仿传统工程,它们是完全不同的。软件设计者必须做好准备去开发能适应环境变化的软件。这软件设计者必须做好准备去开发能适应环境变化的软件。这是软件应该具备的性质。也是软件工程不同于传统工程的地是软件应该具备的性质。也是软件工程不同于传统工程的地方。方。2022-12-715信息系统是应用软件的一个分支信息系统是应用软件的一个分支。因为它的应用面极其广泛,。因为它的应用面极其广泛,市场前景巨大,如管理信息系统市场前景巨大,如管理信息系统(MIS)、企业资源计划系统、企业资源计划系统(ERP)、办公自动化系统、办公自动

    16、化系统(OA)、金税(税务)系统、金关、金税(税务)系统、金关(海关)系统、金卫(医疗卫生)系统、保险系统、金融系(海关)系统、金卫(医疗卫生)系统、保险系统、金融系统、证券系统、港口系统、民航系统、物流系统、公安系统、统、证券系统、港口系统、民航系统、物流系统、公安系统、人口普查系统、电信计费系统、数字化城市系统等。人口普查系统、电信计费系统、数字化城市系统等。信息系统工程信息系统工程是专门研究信息系统建设的工程,它是专门研究信息系统建设的工程,它是软件工是软件工程的一个分支程的一个分支,或者说它是软件工程的一部分。信息系统建,或者说它是软件工程的一部分。信息系统建设除了需要遵守软件工程的普

    17、遍原理和方法之外,还要遵守设除了需要遵守软件工程的普遍原理和方法之外,还要遵守自己的特殊原理和方法,所以在讨论软件工程时也附带讨论自己的特殊原理和方法,所以在讨论软件工程时也附带讨论一下信息系统工程。一下信息系统工程。信息系统工程是一门新兴的工程学科信息系统工程是一门新兴的工程学科,目前还不十分成熟,目前还不十分成熟,正处在发展之中,很多名词和定义还不规范,需要人们进一正处在发展之中,很多名词和定义还不规范,需要人们进一步探索。步探索。2022-12-716复杂问题需要软件工程,单靠程序设计无法解决复杂问题。复杂问题需要软件工程,单靠程序设计无法解决复杂问题。复杂系统必须在编程之前进行设计。像

    18、建筑业一样,在建造复杂系统必须在编程之前进行设计。像建筑业一样,在建造复杂系统之前必须进行结构设计。必须用复杂系统之前必须进行结构设计。必须用抽象和抽象和“分治分治”的的方法对系统进行模块化。在程序员编写代码之前,对每个模方法对系统进行模块化。在程序员编写代码之前,对每个模块都要进行详细说明,并且必须定义与其他模块的接口。块都要进行详细说明,并且必须定义与其他模块的接口。在设计一个系统之前,软件工程师必须了解它的在设计一个系统之前,软件工程师必须了解它的需求需求。这就。这就意味着必须做需求分析,而且必须用某种建模语言说明。最意味着必须做需求分析,而且必须用某种建模语言说明。最终,软件工程还是一

    19、个终,软件工程还是一个团队活动团队活动,必须对团队进行管理。因,必须对团队进行管理。因此,项目管理此,项目管理(project management)对软件工程是有影响的。对软件工程是有影响的。总之,软件工程为系统提供一个体系结构的解决方案,包括总之,软件工程为系统提供一个体系结构的解决方案,包括设计体系结构组件,将组件集成为一个可操作的系统,项目设计体系结构组件,将组件集成为一个可操作的系统,项目管理等。软件工程是一门精妙的学问,程序设计只是其中一管理等。软件工程是一门精妙的学问,程序设计只是其中一项有用的技能。项有用的技能。2022-12-7172022-12-718表表1.1 优良软件具

    20、有的属性优良软件具有的属性产品特性产品特性含义含义可维护性可维护性软件必须能够不断进化以满足客户的需求变化,这是软软件必须能够不断进化以满足客户的需求变化,这是软件产品最根本的特性,因为工作环境是不断变化的,软件产品最根本的特性,因为工作环境是不断变化的,软件也必然要跟着变化件也必然要跟着变化可依赖性可依赖性软件可依赖性还包括一系列特性,包括可靠性、保密性、软件可依赖性还包括一系列特性,包括可靠性、保密性、安全性。可靠的软件在系统失败的情况下,也不会导致安全性。可靠的软件在系统失败的情况下,也不会导致人员伤亡和经济损失人员伤亡和经济损失有效性有效性软件不要浪费内存和处理器等系统资源,因而有效性

    21、应软件不要浪费内存和处理器等系统资源,因而有效性应包括响应时间、处理时间、内存利用率等方面包括响应时间、处理时间、内存利用率等方面可用性可用性软件必须具备可用性。必须是用户不用特殊的努力就能软件必须具备可用性。必须是用户不用特殊的努力就能操作。即软件必须具备相似的用户界面和充分的说明文操作。即软件必须具备相似的用户界面和充分的说明文档档2022-12-719(1)多样性的挑战多样性的挑战(2)交付上的挑战交付上的挑战(3)信任的挑战信任的挑战2022-12-720(1)用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理(2)坚持进行阶段评审坚持进行阶段评审(3)实行严格的产品控制实行

    22、严格的产品控制(4)采纳现代程序设计技术采纳现代程序设计技术(5)结果应能清楚地审查结果应能清楚地审查(6)开发小组的人员应少而精开发小组的人员应少而精(7)承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性2022-12-721 软件开发方法软件开发方法就是软件开发所遵循的办就是软件开发所遵循的办法和步骤,以保证所得到的运行系统和法和步骤,以保证所得到的运行系统和支持的文档满足质量要求。软件开发方支持的文档满足质量要求。软件开发方法有很多种,其中,针对系统分析和设法有很多种,其中,针对系统分析和设计活动的软件开发方法和针对系统全局计活动的软件开发方法和针对系统全局的软件开发方法

    23、尤为重要。下面简略地的软件开发方法尤为重要。下面简略地介绍其中的四种软件开发方法。介绍其中的四种软件开发方法。2022-12-722(1)结构化分析的步骤结构化分析的步骤n结构化分析结构化分析(structured analysis,简称,简称SA)与所有与所有的软件分析方法一样,也是一种模型的确立活动。的软件分析方法一样,也是一种模型的确立活动。nSA方法就是使用独有的符号,来确立描绘信息方法就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。能和行为,以及其他为确立模型不可缺少的描

    24、述。2022-12-723 结构化分析基本步骤:结构化分析基本步骤:构造数据流模型构造数据流模型:根据用户当前需求,在创建实体:根据用户当前需求,在创建实体关系图的基础上,关系图的基础上,依据数据流图依据数据流图(DFD)构造数据流模型。构造数据流模型。构建控制流模型构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造:一些应用系统除了要求用数据流建模外,通过构造控制流图控制流图(CFD),构建控制流模型。,构建控制流模型。生成数据字典生成数据字典(DD):对所有数据元素的输入、输出、存储结构,甚至:对所有数据元素的输入、输出、存储结构,甚至是中间计算结果进行有组织的列表。目前一般采用

    25、是中间计算结果进行有组织的列表。目前一般采用CASE的的“结构化结构化分析和设计工具分析和设计工具”来完成。来完成。生成可选方案生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。约。2022-12-724(2)结构化设计步骤结构化设计步骤 结构化设计结构化设计是一种面向数据流的设计方法,就是采是一种面向数据流的设计方法,就是采用最佳的可能方法设计系统的各个组成部分以及各用最佳的可能方法设计系统的各个组成部分以及各成

    26、分之间的内部联系的技术,目的在于提出满足系成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件统需求的最佳软件的结构,完成软件层次图或软件结构图。结构图。2022-12-725结构化设计步骤:结构化设计步骤:首先研究、分析和审查首先研究、分析和审查数据流图数据流图。从软件的需求规格说明中弄。从软件的需求规格说明中弄清数据流加工的过程。清数据流加工的过程。然后根据数据流图然后根据数据流图决定问题的类型决定问题的类型。数据处理问题有两种典型。数据处理问题有两种典型的类型:变换型和事务型。针对两种不同的类型分别进行分析的类型:变换型和事务型。针对两种不同的类型分别

    27、进行分析处理。处理。由数据流图推导出由数据流图推导出系统的初始结构图系统的初始结构图。也就是把数据流图映射。也就是把数据流图映射到软件模块结构,设计出模块结构的上层。到软件模块结构,设计出模块结构的上层。利用一些试探性原则来改进系统的初始结构图,直到得到利用一些试探性原则来改进系统的初始结构图,直到得到符合符合要求的结构图要求的结构图为止。即在数据流图的基础上逐步分解高层模块,为止。即在数据流图的基础上逐步分解高层模块,设计中下层模块,并对软件模块结构进行优化,最终得到更为设计中下层模块,并对软件模块结构进行优化,最终得到更为合理的软件结构。合理的软件结构。描述模块接口描述模块接口。修改和补充

    28、数据词典修改和补充数据词典。制定测试计划制定测试计划。2022-12-726n模块化程序设计方法模块化程序设计方法就是把一个待开发的软件就是把一个待开发的软件系统分解成若干可单独命名和编址的较为简单系统分解成若干可单独命名和编址的较为简单的部分,称为模块的部分,称为模块(modules)。每个模块分别独。每个模块分别独立地开发、测试,最后再组装出整个软件系统。立地开发、测试,最后再组装出整个软件系统。n这种开发方法是对复杂的系统这种开发方法是对复杂的系统“分而治之分而治之”,“各个击破各个击破”,这种方法不仅可以将软件系统,这种方法不仅可以将软件系统开发的复杂性在分解过程中降低,便于修改、开发

    29、的复杂性在分解过程中降低,便于修改、维护,而且还容易实现同一个系统不同部分的维护,而且还容易实现同一个系统不同部分的并行开发,从而提高了软件的生产效率。并行开发,从而提高了软件的生产效率。2022-12-727将模块定义为多大较合适,下面五条标准可供参考将模块定义为多大较合适,下面五条标准可供参考:(1)模块可分解性模块可分解性:如果一种设计方法提供了将问题分解成子问:如果一种设计方法提供了将问题分解成子问题的系统化机制,它就能降低整个系统的复杂性,从而实现一题的系统化机制,它就能降低整个系统的复杂性,从而实现一种有效的模块化解决方案。种有效的模块化解决方案。(2)模块可组装性模块可组装性:如

    30、果一种设计方法使现存的(可复用的)设:如果一种设计方法使现存的(可复用的)设计模块能够被组装成新系统,它就能提供一种不用一切从头开计模块能够被组装成新系统,它就能提供一种不用一切从头开始的模块化解决方案。始的模块化解决方案。(3)模块可理解性模块可理解性:如果一个模块可以作为一个独立的单位(不:如果一个模块可以作为一个独立的单位(不用参考其他模块)被理解,那么它就易于构造和修改。用参考其他模块)被理解,那么它就易于构造和修改。(4)模块连续性模块连续性:如果对系统需求的微小修改只导致对单个模块:如果对系统需求的微小修改只导致对单个模块而不是对整个系统的修改,则修改引起的副作用就会被最小化。而不

    31、是对整个系统的修改,则修改引起的副作用就会被最小化。(5)模块保护模块保护:如果模块内出现异常情况,并且它的影响限制在:如果模块内出现异常情况,并且它的影响限制在模块内部,则错误引起的副作用就会被最小化。模块内部,则错误引起的副作用就会被最小化。2022-12-728n面向数据结构方法面向数据结构方法就是根据问题的数据就是根据问题的数据结构定义一组映射,把问题的数据结构结构定义一组映射,把问题的数据结构转换为问题的程序结构。转换为问题的程序结构。n面向数据结构方法有很多,它实际上是面向数据结构方法有很多,它实际上是结构化方法的变形,着重数据结构而不结构化方法的变形,着重数据结构而不是数据流,把

    32、程序结构设计成与问题的是数据流,把程序结构设计成与问题的数据结构一样,不强调模块定义。数据结构一样,不强调模块定义。2022-12-729每个面向数据结构的开发方法都有自己的一套开每个面向数据结构的开发方法都有自己的一套开发方法,但概括起来有如下共同特点:发方法,但概括起来有如下共同特点:将分析结果作为设计基础,无明显分界;将分析结果作为设计基础,无明显分界;都必须标识关键实体和动作;都必须标识关键实体和动作;信息具有层次性;信息具有层次性;提供一组将层次化的数据结构映射到程序结构的步提供一组将层次化的数据结构映射到程序结构的步骤;骤;数据结构由顺序、选择和重复构造成分表示。数据结构由顺序、选

    33、择和重复构造成分表示。2022-12-730面向对象对象类继承通信。面向对象对象类继承通信。如果一个软件系统是使用这样如果一个软件系统是使用这样4个概念设计和实现个概念设计和实现的,则可以认为这个软件系统是面向对象的。的,则可以认为这个软件系统是面向对象的。2022-12-731面向对象开发方法面向对象开发方法基本要点基本要点:(1)数据的抽象数据的抽象,即类与子类的概念及相互关系。任何客观,即类与子类的概念及相互关系。任何客观的事物和实体都是的事物和实体都是对象对象,复杂对象可以由简单对象组成。,复杂对象可以由简单对象组成。(2)数据及对它的操作的一体化,即)数据及对它的操作的一体化,即封装

    34、封装的概念和方法。具的概念和方法。具有相同数据和操作的对象可归并为一个类,具有封装性,有相同数据和操作的对象可归并为一个类,具有封装性,形成一个包装;对象是类的一个实例;一个类可以产生很形成一个包装;对象是类的一个实例;一个类可以产生很多对象。多对象。(3)属性与操作由父类向子类传递,即)属性与操作由父类向子类传递,即继承继承的概念与方法。的概念与方法。类可以派生出子类,继承能避免共同行为的重复。类可以派生出子类,继承能避免共同行为的重复。(4)客观事物之间的相互关系用)客观事物之间的相互关系用统一的、消息传递的方法统一的、消息传递的方法来来描述。描述。2022-12-732 选择一种适宜的开

    35、发方法,应综合考虑选择一种适宜的开发方法,应综合考虑以下方面因素:以下方面因素:(1)开发人员的基本素质及经验阅历。开发人员的基本素质及经验阅历。(2)项目进度安排及人员组成情况。项目进度安排及人员组成情况。(3)现有资源状况。现有资源状况。(4)进行可行性研究。进行可行性研究。(5)对待开发项目的领域知识了解情况。对待开发项目的领域知识了解情况。2022-12-733可以从以下软件开发方法的可以从以下软件开发方法的四个方面来进行评价:四个方面来进行评价:(1)技术特征技术特征:支持各种技术概念的方法特色。如层次性、:支持各种技术概念的方法特色。如层次性、信息隐蔽性、并行性、安全性、正确性、一

    36、致性、可验证性、信息隐蔽性、并行性、安全性、正确性、一致性、可验证性、数据抽象和过程抽象能力等。数据抽象和过程抽象能力等。(2)使用特征使用特征:具体开发时的有关特色。如易理解性、可靠:具体开发时的有关特色。如易理解性、可靠性、可维护性、可复用性、可适应性、可移植性、可追踪性、性、可维护性、可复用性、可适应性、可移植性、可追踪性、可互操作性、可修改性及工具支持等。可互操作性、可修改性及工具支持等。(3)管理特征管理特征:增强软件开发活动管理能力方面的特色。如:增强软件开发活动管理能力方面的特色。如对各阶段的确定、易管理性、支持团队开发、费用估算等。对各阶段的确定、易管理性、支持团队开发、费用估

    37、算等。(4)经济特征经济特征:使开发部门的生产力和软件质量得到提高,:使开发部门的生产力和软件质量得到提高,产生经济效益的有关特色。如分析该方法产生的局部效益、产生经济效益的有关特色。如分析该方法产生的局部效益、全生存周期效益、获得该方法的代价、使用它的代价和管理全生存周期效益、获得该方法的代价、使用它的代价和管理它的代价等等。它的代价等等。2022-12-734 软件工程已提出和宣传多年,但真正获得广泛应用的软件工程已提出和宣传多年,但真正获得广泛应用的时间并不太长。软件开发在技术和管理两个方面的复时间并不太长。软件开发在技术和管理两个方面的复杂程度,均与软件的规模密切相关。越是规模大的软杂

    38、程度,均与软件的规模密切相关。越是规模大的软件,越要在开发和维护中严格遵守软件工程的原则和件,越要在开发和维护中严格遵守软件工程的原则和方法。方法。(1)中、小型程序)中、小型程序(2)大型程序大型程序 从极小程序到极大程序,软件工程都有它的用武之地,从极小程序到极大程序,软件工程都有它的用武之地,其作用不可低估。其作用不可低估。2022-12-735(1)考虑整个项目或者产品的市场前景。)考虑整个项目或者产品的市场前景。(2)从用户的角度来考虑问题。)从用户的角度来考虑问题。(3)从技术的角度考虑问题。)从技术的角度考虑问题。(4)合理进行模块的分割。)合理进行模块的分割。(5)人员的组织和

    39、调度。)人员的组织和调度。(6)开发过程中文档的编写。)开发过程中文档的编写。(7)充分考虑实施时可能遇到的问题。)充分考虑实施时可能遇到的问题。2022-12-736 “敏捷开发敏捷开发”(Agile Development)被)被认为是软件工程的一个重要的发展。它认为是软件工程的一个重要的发展。它强调软件开发应当是能够对未来可能出强调软件开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。现的变化和不确定性作出全面反应的。2022-12-737 网构软件网构软件是在是在Internet开放、动态和多变环境下软件系统基开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结

    40、构的自然延伸,又具本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征:的基本特征:(1)自主性)自主性:是指网构软件系统中的软件实体具有相对独立:是指网构软件系统中的软件实体具有相对独立性、主动性和自适应性。自主性使其区别于传统软件系统中性、主动性和自适应性。自主性使其区别于传统软件系统中软件实体的依赖性和被动性;软件实体的依赖性和被动性;(2)协同性)协同性:是指网构软件系统中软件实体之间可按多种静:是指网构软件系统中软件实体之间可按多种静态连接和动态合作方式在开放的网络环境下

    41、加以互连、互通、态连接和动态合作方式在开放的网络环境下加以互连、互通、协作和联盟。协同性使其区别于传统软件系统在封闭集中环协作和联盟。协同性使其区别于传统软件系统在封闭集中环境下单一静态的连接模式;境下单一静态的连接模式;2022-12-738(3)反应性)反应性:是指网构软件具有感知外部运行和使用环境并:是指网构软件具有感知外部运行和使用环境并对系统演化提供有用信息的能力。反应性使网构软件系统具对系统演化提供有用信息的能力。反应性使网构软件系统具备了适应备了适应Internet开放、动态和多变环境的感知能力;开放、动态和多变环境的感知能力;(4)演化性)演化性:是指网构软件结构可以根据应用需

    42、求和网络环:是指网构软件结构可以根据应用需求和网络环境变化而发生动态演化,主要表现在其实体元素数目的可变境变化而发生动态演化,主要表现在其实体元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性上;演性、结构关系的可调节性和结构形态的动态可配置性上;演化性使网构软件系统具备了适应化性使网构软件系统具备了适应Internet开放、动态和多变开放、动态和多变环境的应变能力;环境的应变能力;(5)多态性)多态性:是指网构软件系统的效果体现出相容的多目标:是指网构软件系统的效果体现出相容的多目标性。它可以根据某些基本协同原则,在动态变化的网络环境性。它可以根据某些基本协同原则,在动态变化的网络环境下,满足多种相容的目标形态。多态性使网构软件系统在网下,满足多种相容的目标形态。多态性使网构软件系统在网络环境下具备了一定的柔性和满足个性化需求的能力。络环境下具备了一定的柔性和满足个性化需求的能力。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第1章软件工程概述课件.ppt
    链接地址:https://www.163wenku.com/p-4414607.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库